Diffusion-Limited Aggregation

Release a particle far away, let it wander at random until it touches what is already there, and leave it where it stuck. Everything on this page grows from that one rule.

Growing...

Presets

Growth

12,000

How a particle gets to the cluster. The sticking rule never changes, so anything that changes here is caused by the journey rather than by the landing. On a line seed it also decides how tall the deposit grows for the same particle count: diffusion builds tall sparse columns, ballistic and Eden pack low and dense. The strip stays the width you set; the piece is a different shape, so it is drawn at a different size.

A lattice makes some directions cheaper to grow along. On its own the noise hides that; turn Noise Reduction up to see it.

100%

Below 1 a walker can bounce off and keep going, so it reaches into the fjords the tips would otherwise screen. Compact up close, still a fractal further out.

Off

A particle that lands is not always stuck where it first touched. Let it shuffle along the surface and settle where it is most sheltered, and it fills the crevices pure growth leaves open: denser, smoother, and still one contact from whatever it hit.

Off

A site has to be hit this many times before it grows, which takes the randomness out and lets the underlying anisotropy show. It also multiplies the work: every particle now needs that many walkers.

Off

A wind. The number is the distance past which a particle is carried rather than wandering. Growth runs into the wind, towards where the particles come from.

Rendering

100%

100%
Off

Colors

1
100%

Watch It Grow

Particles arrive in the order they actually stuck.

600/s

Turn this right down and you can follow one particle at a time: released at the edge, wandering in, and stopping the moment it touches. The whole cluster then takes as long as it takes, which is the point.

Every particle's route is recorded during the simulation, so what you see is the walk that particle really took, not an illustration of one. The long straight dashes are real too: where the walker has open space around it the simulation jumps it to the edge of that space in one go, which is exact and is why this finishes at all. If the trail starts over, the walker had wandered out past the launch circle. It is put back on the circle by the exact return law rather than thrown away, and where it had been is dropped: it came back around the outside rather than across the middle, so joining the two would draw a route it never took, and leaving the old stretch on screen just looks like another particle's trail.

Every particle starts somewhere on this line, which sits just outside the cluster and grows with it.

Zooms out as the cluster spreads, so the seed fills the view at the start rather than sitting as a speck in the middle of the finished frame. Turn it off to watch the piece fill a fixed frame.