# Turing Patterns in 2D

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)

## WHAT IS IT?

Wikipedia explains:" The English mathematician Alan Turing introduced a concept, which came to be known as a Turing pattern, in a 1952 paper entitled "The Chemical Basis of Morphogenesis". This foundational paper describes how patterns in nature, such as stripes and spots, can arise naturally and autonomously from a homogeneous, uniform state."

This model illustrates a simple "reaction-diffusion" system pioneered by Alan Turing in 1952 to create pattern on a featureless surface. This "bare bones" model demonstrates his thinking, with similar equations but using today's vastly more powerful computer power.

The changes over time of two concentrations of chemicals are related to each other in two differential equations. When the parameters are set within suitable bounds, they operate on each other, on a uniformly seeded plane, to create a range of patterns. The differential equations are discretised so that the calculations proceed by simple arithmetic.

## HOW IT WORKS

Within each time-tick, every patch uses the equations on the most recent concentrations to calculate the changes to the concentrations. These changes are applied in the patch to to give the new concentrations. The equations each have a Reaction effect and a Diffusion effect. These push and pull the concentrations to higher or lower values. We know that diffusion smooths out disparities; one thinks of the temperature of a hot object coming to rest at ambient temperature. However Turing could see how a substrate with a much longer range of diffusion than that of the activator could be used to create patterns that persist. This model shows how. The equations are set up to create pattern when: 1)The ground is initially seeded so that concentrations of Activator and Substrate equals four exactly in every patch, 2) beta, which is the perturbation which sparks pattern formation, is suitably small and random. I use -.4 < beta < .4, 3) the diffusion rate of Activator, set here at .015 is say a fifth to a tenth of Di, the long-ranging diffusion rate. 4) s is suitably small. The user chooses s to shrink the Reaction effects, thereby enhancing the Diffusion effects. By varying s, you make a big difference in pattern formation.

## HOW TO USE IT

Press SETUP to initialize each cell in the grid to a uniform state.

Press GO to run the model.

## THINGS TO NOTICE

Run the model with the default slider settings.

What happens near the beginning of run?

After about 10,000 ticks, you should start to see a pattern emerging.

After more ticks the pattern firms up, filling the torus and eventually stops moving.

Prediction can be difficult. It can be hard to see why the specific rules and parameters can produce patterns. When emergent qualities have sufficient regularity to show as pattern we are in the "Turing space" for these equations. Unsuitable parameters will not produce pattern.

## THINGS TO TRY

What is the effect of varying the different sliders? I have indicated some displays obtained by walking through various settings for s with Da and Di held fixed, and also a few displays with Di varying. There are many other displays to be found with other combinations of s,Di,Da. Remember that Di must well exceed Da in order to form pattern -a great insight of Turing in 1952.

## EXTENDING THE MODEL

This model is an example of a "reaction-diffusion" system. By altering 1) the Reaction formulas, 2) the initial seeding arrangements in Setup, 3) the error-traps and 4) the display range, you may be able to simulate other reaction-diffusion systems.

## NETLOGO FEATURES

Set ticks to very fast. The torus has wrap-around continuity from side to side and from top to bottom; lines leaving at an edge reenter at the opposite edge. Perceiving this enables a better understanding of the pattern displayed.

## RELATED MODELS

"Fur" in Models Library/Biology "A continuous Activator-Inibitor System" by Bruce McClennnan in Netlogo Modelling Commons.

## CREDITS AND REFERENCES

"The Chemical Basis of Morphogenesis" Alan Turing (1952) Wikipedia -Turing Patterns Greg Turk. Generating synthetic textures using reaction- diffusion. Available on Internet

## HOW TO CITE

If you mention this model or the NetLogo software in a publication, we ask that you include the citations below.

Please cite the NetLogo software as:

- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

## COPYRIGHT AND LICENSE

Copyright 2003 Uri Wilensky.

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.

## Comments and Questions

;; Governing Formulas: ;; Change in concentrations Reaction effects: Diffusion effects: ;; dAct/dt = s (in*act -act -12 + beta ) +Da diffUAct ; Activator ;; dIn/dt = s (16 - in*act) +Di diffUIn ; Substrate/Inhibitor globals [ dex ] ;; width of patch. patches-own [ valIn valAct newvalIn newvalAct reactI diffUI reactA diffUA beta ] to setup clear-all set dex 1 ask patches ;; The world is seeded in equal and uniform concentrations, flat and featureless. [ set valIn 4 set valAct 4 ;; valAct is the concentration of the Activator, valIn is the value of the concentration of substrate. set pcolor scale-color blue valAct 3 4.5 ] reset-ticks end to go ;; observer procedure: runs by asking all patches in random order. ask patches [ calc-newvalues ] ;; each patch looks to neighbors4 for new values to be calculated for self-patch, ask patches [ update-values ] ;; self-patch is now updated. tick end to calc-newvalues ;; this patch procedure looks to each self-patch, diffusions use neighbors4 as N,S,E,W. set diffUI Di * ( ( sum [valin] of neighbors4 - ( 4 * valIn ) / dex ^ 2 ) ) ;; this faster diffusion spreads the creative instability. set diffUA Da * ( ( sum [valAct] of neighbors4 - ( 4 * valAct ) / dex ^ 2 ) ) ;; Da must be the lesser diffusion. set beta ( random-float .4 - random-float .4 ) ;; beta is the perturbation which sparks pattern formation; all else would be inert. set reactI s * ( 16.0 - valIn * valAct ) set reactA s * ( valIn * valAct - valAct - 12.0 + beta ) if abs reactA > 6 [ set reactI 0 set valAct 4] ;; this is an error trap to avoid distructive instability. set newvalIn valIn + ( reactI + diffUI ) set newvalAct valAct + ( reactA + diffUA ) if abs newvalAct > 9 or newvalAct < 1 [ set newvalAct 4 ] ;; this is an error trap to avoid distructive instability. end to update-values ;;use the results calculated above to update the self-cells. set valIn newvalIn set valAct newvalAct set pcolor scale-color green valAct 3 5 ;; configures the range of the display. ;; White patches are those where Activator values are high, Black patches where substrate is high, green intermediate. end

There is only one version of this model, created about 1 month ago by Cormac Burke.

## Attached files

File | Type | Description | Last updated | |
---|---|---|---|---|

Turing Patterns in 2D.png | preview | Preview for 'Turing Patterns in 2D' | about 1 month ago, by Cormac Burke | Download |

This model does not have any ancestors.

This model does not have any descendants.