Martens disk cluster

Made with Python in DrawBot.

KABK crowns

2m20s of KABK crowns at 20 crowns per second. 16 unique segments (no collinear segments allowed); 26,332 unique combinations of 1–7 segments. This is the end of the series. Made with Python in DrawBot.

André Gürtler

Iterating through the matrix of André Gürtler’s modular script from the March 1966 cover of Typographische Monatsblätter. Letters must use one or two shapes, and they can’t overlap. In Python with DrawBot.


560 frames of Jurriaan Schrofer. Made with Python in DrawBot. Some context:


Kast, the whole thing

Getting ready for our faculty biennial and Robothon: Finally get to see the entire design space of my modular typeface Kast animated—here’s the ending of the image series. Made with Python in DrawBot.

Kast, top down

Getting ready for the faculty biennial—new & improved animated iteration through (some of) the design space of my modular font Kast. Counts top down so you can see more action. Made with Python in DrawBot.

Baudin fields

Letterform field inspired by Baudin’s Dossier A-Z cover. Playing with positive and negative space. Made in Python with DrawBot.

Kunstgewerbeschule Zürich student exercise

Based on a Kunstgewerbeschule Zürich weekend course ad I found in Typographische Monatsblätter, March 1975, in the amazing collection of the Letterform Archive. Made with Python in DrawBot.

Phased disk field

Disks moving in 2-, 3-, 4-, and 5-phase motion. Made with Python in DrawBot.

All the [a]s

With Gabriel Benderski. Gabriel wanted to make a series of <a>s from a 3 × 3 grid with a limited set of shapes. I wrote code to generate all 104,976 possible configurations of the design space using his rules. He chose 664 of them, which I then animated in random order.


Based on Karel Martens’s monoprint series using erector set pieces. What ‘made with Python in DrawBot’ means, in practice: I’m generating shapes & motion ‘from scratch’, literally drawing them and plotting their movements around the canvas with math/Boolean logic/trigonometry, animating frame by frame.


N, six phases. Made with Python in DrawBot.


Counting 65025–65536 in Kast, the last part of the design space.


Counting 1025–1536 in Kast.


Counting 513–1024 in the Kast design space, using the same code as in my previous post.


Counting 0–512 in the Kast design space. (I’ve noted before that the space can handle counts up to 65535, but sadly, my system memory isn’t as accommodating.) In this version, the Python code uses fills and strokes to indicate continuous solids and faces. Two weeks of (non-continuous!) work later, with lots of coffee, writing, drawing, and using paper cubes to model the steps the code was making along the way, it’s done. And the model behind the code is generalizable, so I could generate counts for an n × n × n design space.

This branch of my ongoing Kast project was inspired by seeing images of SPIN Studio’s Concrete Outline on the mylar slipcover of their first issue of Adventures In Typography (published by Unit Editions). I thought it should be possible to write code to make forms like those, and I had a project ready to try it out on.

The point of this coding—besides learning Python and making interesting images—is ultimately to plan further paper and rendering projects. The code will let me model quickly all the possibilities for the design spaces I have in mind.


First cut at an explanation for Kast, the typeface system behind all those paper photos I’ve posted.


Counting 0–512 in binary with Kast’s design space. Kast’s letterforms are based on the isometric projection of shaded virtual cubes stacked on a 3d grid with 2 × 2 × 4 = 16 cells. I’m using Python to map and document all the possible configurations of cubes in the grid (‘physically’ possible and impossible alike) by counting through the grid in binary (a cube can be absent=0 or present=1 at each position in the grid). I’ll eventually print the configurations and use what I learn from the process and documentation to plan paper and digitally-rendered constructions.