Thought Toys · Emergence · Exhibit 15

Reaction & diffusion

Pour two chemicals into a dish. One slowly feeds the surface; the other eats the first, breeds copies of itself, and spreads. That's the entire recipe — yet from an even smear it organises itself into spots, stripes, mazes and holes that never quite hold still. Alan Turing proposed in 1952 that this is how a featureless embryo decides where to put a leopard's spots. Paint into the dish and watch it happen.

The dish — drag to paint in the spreading chemical

Keyboard: focus the dish, then to move the pipette (hold Shift to move ten cells at a time) and Enter or Space to squeeze a drop of chemical B onto that spot — the same painting the mouse does.

Tip: drag slowly across the dish to draw your own seeds, then watch the recipe grow them.

your turn — paint on the dish with your cursor, then press Spots and let the recipe take over

What you're seeing

Picture two substances mixed in a shallow dish. Call them A and B. A is topped up everywhere at a steady feed rate — how fast fresh A is replenished across the whole dish. B is the troublemaker: wherever a little of it meets A, it converts that A into more B — it's autocatalytic, it breeds itself. Left alone, B would take over the dish. But B is also drained away at a steady kill rate — how fast B decays back out of the mix, and the two chemicals spread at different speeds: the catalyst B oozes more slowly than the feedstock A.

That mismatch in spreading speeds is the whole secret. A clump of B grows in its centre but can't fan out fast enough to smooth itself flat, while A rushes in around the edges. Growth in the middle, starvation at the rim — and a featureless smear breaks into structure: dots that swell and split like dividing cells, ridges that wander into fingerprints, a lattice of holes. This is a Turing instability: a perfectly uniform mixture is unstable, and the tiniest speckle of noise blooms into pattern.

The two sliders are the dish's climate. Nudge the feed and kill rates by a hair and the whole character changes — coral freezes into spots, spots stretch into stripes, stripes invert into holes — because you've crossed a boundary between regimes. Drag on the dish to inject the catalyst and seed your own growth, or press Random seed and watch order condense out of a scatter of specks. Nothing here is choreographed; every shape is just these two rules, applied to every point, a few thousand times.

The rule, exactly. The Gray–Scott model. At each cell, with concentrations A, B: A′ = A + (Dᴀ∇²A − A·B² + f·(1−A))·Δt and B′ = B + (Dʙ∇²B + A·B² − (k+f)·B)·Δt, with diffusion Dᴀ = 1.0, Dʙ = 0.5 (the catalyst spreads half as fast), Δt = 1. The Laplacian ∇² uses a 3×3 stencil (centre −1, edges 0.2, corners 0.05) on a wrap-around grid. Recipes here are feed/kill pairs: coral (0.0545 / 0.062), spots (0.0367 / 0.0649), stripes (0.026 / 0.051), holes (0.039 / 0.058). (Checked offline before shipping: every recipe stays bounded with no blow-ups and forms persistent structure, while a high kill rate cleanly empties the dish.) Counter-example, verified in node: pattern is not guaranteed — push the kill rate high (k=0.07) and the dish empties to under 0.01% active, with no Turing structure.

Also in Emergence: Sandpiles & self-organized criticality →

All 16 in Emergence
  1. 01Phantom Traffic Jams
  2. 02Schelling's Segregation
  3. 07Conway's Game of Life
  4. 107Half a link each is dust. One link each is a web.
  5. 11Percolation
  6. 15Reaction & diffusion — you are here
  7. 18Sandpiles & self-organized criticality
  8. 22Diffusion-limited aggregation
  9. 29The simplest rule that makes complexity
  10. 32Fireflies that sync
  11. 41Small-world networks
  12. 43The Ising model
  13. 45Preferential attachment
  14. 81Nobody panicked, and the factory went haywire
  15. 84The tragedy of the shared field
  16. 88Nobody's leading. The flock turns as one.

← Back to the cabinet  ·  Thought Toys — Exhibit 15.