← Gallery

Differential Growth

A chain of nodes that keeps adding to itself while being pushed apart, until the only room left is folded.

Output

A set shares every setting — paper, border, the sketch’s own knobs — and differs only in the seed. Regenerate any one of them without touching the others.

PNG: 3508 × 4961 px at 300 dpi. PDF: vector, RGB, 297 × 420 mm page, no bleed. Printed area 297 × 420 mm.

0 mm

Millimetres of unprinted paper on every side. The piece is composed to fit what is left, not shrunk to fit it.

Seed

A closed ring folds inwards; an open line is free to wander off.

180

A tight seed leaves a compressed core in the middle of the finished piece; a wide one folds outward from a clean ring.

300

Growth

800

How long the simulation runs. Ticks left over after the ceiling is reached are spent evening the folds out.

0.006

Nodes inserted per tick, as a fraction of the chain. It compounds, so small numbers go a long way.

6.0

The spacing the chain wants along its own length. Keep it well under the repulsion radius or the folds have nothing to fold into.

6500

Growth stops here. The main cost of the render, along with the ticks.

Forces

0.50

Stiffness of the springs holding chain neighbours at the edge length. Turn it right down and the chain tears into chords.

0.18

Pull toward the midpoint of the two chain neighbours. Rounds the folds off; too much and the chain shrinks.

0.60

Push away from every nearby node that is not a chain neighbour — the springs already handle those.

14

How far a node can feel another. Sets the gap between folds.

0.05

Random nudge each tick. A little breaks the symmetry a ring would otherwise keep.

40

The walls the chain is pushed back from.

Drawing

0

Draw this many earlier states behind the final one, to show the chain growing.

1.50
0.0

A dot at every node. Useful for seeing where the insertions went.

Colour

How it works

A closed chain of nodes is under three forces at once. A spring holds each node at a set distance from its two chain neighbours. A second, weaker pull draws it toward the midpoint between them, which rounds off kinks. And every other node within a given radius — chain neighbour or not — pushes it away. The repulsion radius is set well above the spring length, so the line can never lie alongside itself closer than that, and that one number is what sets the gap between every fold in the finished piece.

None of that makes anything happen on its own. On an even ring the repulsion from the two neighbours cancels exactly and the chain simply sits there. Growth is the driver: every tick a fraction of the edges is picked at random and split at the midpoint, so the chain gets longer while the sheet it lives on does not. Folding is the only way to absorb the excess, and the fold spacing is fixed, so the pattern is forced.

Two failure modes are worth knowing about, because both were built and fixed here. A pull-only spring lets repulsion stretch an edge into a chord straight across the drawing; the spring has to push as well as pull. And a repulsion radius larger than the spring length applied to chain neighbours makes every edge split forever, so neighbours are exempt from repulsion and the springs handle them instead. Seeding from a wide ring rather than a tight one gives a clean annulus; a tight seed leaves a compressed core, because that material folded when the loop was still small and can never get out again.

R regenerate · S PNG · P PDF