Season States: lines that stop when they meet
2026Giclée prints on archival paper
Sizes vary by work
A line starts somewhere and moves forward. When it runs into another line, it stops. New lines grow off the old ones at right angles. That is the whole rule. People who see the result describe it as a city from the air, a crystal or a cracked glaze, but nothing in the program knows about any of those.
The algorithm
The rule comes from Jared Tarbell's Substrate, written in 2003. Each line is called a crack:
- Start a few cracks. Each one has a position and a direction.
- Move each crack forward a short step in a straight line.
- Stop a crack when it hits another one. If the spot ahead is already taken by a line running a different way, the crack ends there.
- Start a new crack in its place. It begins at a random point on a line that already exists, and heads off at a right angle to it, give or take a degree or two.
- Go back to step 2.
Only a fixed number of cracks can run at the same time. When one stops, a new one starts. Over thousands of steps the empty space is cut into rooms, and the rooms are cut into smaller rooms, until the surface is a field of nested rectangles.
Where the colour comes from
The lines are only half the picture. Behind each crack walks a sand painter. With every step, it throws grains of colour out sideways from the crack. The grains are thin, and they fade the further they travel. They stop at the next line along, wherever that is.
So the colour has nothing to do with the geometry. It is a wash that leans into whatever empty space sits beside each line, and stops when the space ends. The cells fill the way paper fills with water. The structure comes from the cracks, and the light comes from the spill.
The colours themselves are taken from a small palette image. Every distinct colour in it becomes one colour of sand.
What a season is, in numbers
I have been running this program with seasons in it. Nothing in Substrate knows about spring. There is no month setting. So the question becomes very specific: if I can't paint a season, which numbers are a season?
What I actually have is a handful of settings:
- how many cracks can run at once,
- how fast they move,
- how much sand is thrown,
- how far the wash reaches before it fades,
- and the palette.
Calling one combination Spring is a claim, and the picture either supports it or it doesn't.
Turned forty-five degrees
Tarbell's cracks mostly run with the edges of the frame, so they read as streets. Here the first cracks start on the diagonals, at 45 and 135 degrees. Every later crack is at a right angle to an earlier one, so the whole network stays on the diagonal. The same lines now read as woven cloth instead of a map: warp and weft, like a plaid. That single turn moved the work from city to textile. I didn't plan it, and I have kept it.
The edges are left unfinished on purpose. The wash is allowed to spill past the point where the lines stop, so the border comes out ragged, like the torn edge of handmade paper or the raw end of a length of cloth. A clean rectangle would say the pattern ends there. It doesn't. It just runs out of canvas.
Every image can be found again
Each image comes from a random seed and a list of settings, and the file name records all of them. Along the bottom of each print below is a line of small type: the season, the debt to Tarbell, and a code for the palette and settings that produced that run. It isn't a signature. It is closer to a label on a specimen. Each picture is one run out of an enormous number of possible runs, and the code is the only way that particular one can be found again.
Substrate has one difference from my other series. Here the size of the image changes the picture, not just its sharpness. The program works on a grid with one cell for every pixel, so a 10,000 pixel render has more than ten times as many places for cracks to subdivide as an 800 pixel preview. That is the point of rendering large: the print has finer structure, not the preview's structure blown up. It also means a small preview cannot stand in for the print, so I explore this series at the size it will be printed.
Spring
Spring.
Spring came out crowded. The cells are small and there are many lines. Everything is divided again and again until the surface is almost even: a field of green and water with no clearing anywhere. I didn't choose that density for what it means. It is what the program does when too many cracks run at once: they cut each other short, and the average size of a room collapses. It reads as growth because growth also looks like that. Many things start, and most of them run into a neighbour before they get far.
Summer
Summer.
Summer is the same program with fewer cracks. Each line runs longer, so the cells open up and some grow large enough to hold air. The palette moves to coral, cream and turquoise. The picture gains something Spring doesn't have: contrast, and white ground showing through. There are fewer events, and each one matters more. Heat, in my experience, is less busy than April, not more.
Autumn and winter
Two seasons exist so far. The problem with the other two is that the obvious answers are about colour, orange for autumn and blue-grey for winter, and colour is the smallest part of what separates these images. Autumn is probably the wash reaching further than the structure can hold. Winter is probably a question of how much white is allowed to survive.
The seasons were never in the program. What is in it is a small set of numbers that behave, at certain settings, the way a year behaves.
Substrate is made in Processing, after Jared Tarbell's Substrate (2003).