February 25, 2017
About 3 minutes
Visualization Morphogenesis STEM
Turing morphogenesis
Exploring how animals grow their coat patterns
Contents
How the zebra got his stripes?
In the last paper he published before his death, Alan Turing proposed a reaction-diffusion model as the basis for the development of many biological features, including the patterns of colour seen on animal coats and the arrangement of tentacles on hydras.1 The theory has become a basic model in biology, and has been used to study how blood clots, how tumours grow, how epidemics spread, and many other phenomena. This page lets you explore the same kind of system Turing examined in his paper. Try your hand at growing some coat patterns of your own!
Background
A reaction-diffusion system is a mathematical model that describes how the concentration of chemical substances changes in a space over time. It considers the interplay between two basic processes: local reactions that change one substance into another, and the diffusion of those substances over a surface. Imagine two people standing in a room, one spraying red paint and one spraying blue paint. There will be a high concentration of blue paint at the blue can’s nozzle, and a high concentration of red paint at the red can’s nozzle. But the concentrations won’t stay that way. Over time, the paint droplets will diffuse around the room, and where red and blue bump together, they will react to create varying hues of purple paint depending on how much of each colour went into the mix.
You can see a reaction-diffusion system in action by choosing the Grow pattern button above. You can think of the brightness of a given point as representing how much of a substance is present. At the start, everything is in a random state, but as soon as you set the process running, local reactions will start to increase or decrease the amount of substance at any given point. The product of those local reactions will slowly diffuse outward, interacting with the products of all of the other local reactions diffusing outward from their starting points. The end result is a nice pattern.
Using the app
Changing the A and B values will change the constants used by the model and will result in a variety of different natural-looking textures. I have provided some presets you can try out. The name of each preset suggests the kind of pattern it will produce, but it isn’t based on real-world data. Since the system starts as random noise, repeatedly solving it with the same values will produce of series of unique but similar textures, just as all zebras have stripes but no two zebras have exactly the same stripes.
The Growing time field lets you control the number of time steps that the simulation runs for. The higher the value, the longer it runs. Most systems will reach a nearly stable state by around 1000 iterations, so they don’t change much after that.
Multi-stage textures
Many animals develop their coat patterns in stages. Typically, a secondary pattern will emerge as the animal transitions to adulthood. You can experiment with this concept by unchecking the Randomize before growing option. Now the pattern will only be randomized when you request it by choosing the Randomize button. Do this once to get started, then run a simulation by pressing Solve. That’s your “baby” pattern. Awww. So cute! Now it’s time for the adult pattern to emerge: choose new constants and re-run the simulation without randomizing. They grow up so fast, don’t they?
Tip: Reducing the number of iterations to about 100–400 gives you more control over when to transition to adulthood.
Broken or stepped images
If you experiment with choosing your own constant values, you may find some combinations that lead to images that seem to loop until the colours break into steps rather than smooth gradients. This means that the simulation exceeded the precision limits of the computer’s arithmetic before the system reached a stable state. Just try again with different values.
Tiling images
The model used by this page assumes that the “fur cells” are arranged on the surface of a torus. That means that the texture images will tile seamlessly if placed next to each other, so they work well as textures in graphics applications and 3D models. In fact, the image you see above is actually four copies of a single smaller image arranged in a 2×2 grid!
Saving images
If you create a pattern that you want to keep, right click on the image and choose Save image as (or a similarly named option depending on your browser). For touchscreens, press and hold on the image instead of right clicking.
Bibliography
Alan M. Turing. The chemical basis of morphogenesis. Philosophical Transactions of the Royal Society of London. B 327, 37–72 (1952) ↩︎
Have a comment or correction? Let me know! I don’t use an automated comment system on this site, but I do appreciate feedback and I update pages accordingly.