Technique · Simulations
Reaction-diffusion
Two chemicals that feed and spread grow spots, stripes, mazes and coral. Poke the surface to plant new growth.
Reaction-diffusion is a simulation that evolves step by step. Every piece on Synapse Drip is made from a recipe that layers techniques like this one, and you can change any of it in the Studio.
Good to know
- Alan Turing's paper on the chemical basis of morphogenesis appeared in 1952, two years before he died; he called the hypothetical chemicals morphogens.
- J. D. Murray's Turing-type models explain why a small patterned animal can have a striped tail but a spotted body, as leopards do.
- Some corals, fish skins and seashells carry patterns that look very much like these solutions.
- In 1952 Alan Turing showed that two chemicals diffusing at different speeds can spontaneously form spots and stripes; experiments since have found such patterns in chemical reactions and in the spacing of mouse toes.
- The Gray-Scott model has two dials, feed and kill; John Pearson's 1993 survey of them found a zoo of patterns: spots that divide, worms, mazes and travelling solitons.
The mathematics
- The model is dA/dt = Da (laplacian A) - A B^2 + f (1 - A) and dB/dt = Db (laplacian B) + A B^2 - (k + f) B, here with f = 0.055: B turns two copies of itself and one of A into three of B.
- The spacing of the pattern is set by how far each chemical diffuses before it reacts: double both diffusion rates and the whole pattern grows by the square root of two, about 1.41.
- Diffusion smooths and reaction sharpens; a pattern appears only when the two chemicals spread at different speeds.
In art
- Jonathan McCabe's multi-scale Turing patterns, from around 2010, layer reaction-diffusion at several scales to make silky, cell-like images.
- The patterns of animal coats, from tabby stripes to giraffe patches, are a subject where mathematics and natural history meet.
More ways to use it
Related techniques
Cellular automata · Sandpile · Grain growth · Slime mould · Flocking boids · Attractor cloud · Elementary automaton · Synchrony