NetLogo banner

NetLogo Publications
Contact Us

Modeling Commons

Beginners Interactive NetLogo Dictionary (BIND)
NetLogo Dictionary

User Manuals:
Farsi / Persian


NetLogo Models Library:
Sample Models/Biology

(back to the library)


[screen shot]

If you download the NetLogo application, this model is included. You can also Try running it in NetLogo Web


Does a single mechanism underlies such diverse patterns such as the stripes on a zebra, the spots on a leopard, and the blobs on a giraffe? This model is a possible explanation of how the patterns on animals' skin self-organize. It was first proposed by Alan Turing. If the model is right, then even though the animals may appear to have altogether different patterns, the rules underlying the formation of these patterns are the same and only some of the parameters (the numbers that the rules work on) are slightly different.

Thinking of the formation of fur in terms of rules also helps us understand how offspring of animals may have the same type of pattern, but not the same exact pattern. This is because what they have inherited is the rules and the values rather than a fixed picture. The process by which the rules and values generate a pattern is affected by chance factors, so each individual's pattern is different, but as long as the offspring receive the same rules and values, their own fur will self organize into the same type of pattern as their parents'.


We model the animal skin by a square array of many melanocytes (pigment cells) that are each in either of two states: colorful ('D' for differentiated) or not-colorful ('U' for undifferentiated). The state of a cell can flip between D and U. The color cells (the D's) secrete two types of 'morphogens': activators (A) and inhibitors (I). Activators, on their own, cause a central cell to become colorful; inhibitors, on their own, cause the central cell to become not colorful. These competing morphogens are secreted in all directions so you can think of each color cell as creating a puddle that grows around it, spreading to other cells.

Each cell, whether or not it is colorful, is itself the center of its own neighborhood. For now, suppose the neighborhood is a circle. Say this circular neighborhood has a radius of 6 cells. This means that the cell in the center can be affected by other cells that are as far as 6 cells away from it in any direction. So if there is a D cell within this circle and it is secreting morphogens then these morphogens will diffuse as far as this central cell (but a D cell 7 cells away will not directly or immediately affect it). Also, each cells has an inner circle of radius, say, 3 cells.

D cells within the inner circle each contributes morphogens of type A (activator) to the central cell. Between the inner circle and the perimeter of the outer circle we have a ring of cells that are more than 3 cells away from the center but 6 or less cells away from the center. Every D cell in this outer ring contributes morphogens of type I (inhibitor) to the central cell. So at every moment each cell is affected both by activator and inhibitor cells in its circle and the question is will it ultimately be activated and become colorful or inhibited and lose its color (or just remain the way it was). The logic is that if the power of the activators is bigger than the power of the inhibitors then the cell will become colorful and vice versa (and if the power is balanced then nothing happens). The idea of "power" is that it's not enough to know how many morphogens there are of each type affecting a cell but one must multiply each cell by its "power" (or you can think of power in terms of the concentration of the morphogens in the inner and outer neighborhoods). Another idea is that since we'll be multiplying both types of morphogens by their power, we might as well just call the power of the activators "1" and the power of the inhibitors "w * 1" or just w. So w is the ratio between the power of the inhibitors and the activators. If w is bigger than 1 that means the power of the inhibitors is greater than that of the activators (for instance, if w = 2 then the inhibitors are each double as strong as each of the activators and if w = 0.5 then the inhibitors are half as strong as the activators). If w = 0.5 and if we have as many inhibitors as we have activators that are affecting the central cell, we would logically assume that the center cells would be more activated than inhibited and so would probably become (or remain) colorful on that step. (A tricky point to notice is that while a certain D-cell is activating a neighboring cell, this same D-cell can be inhibiting a different cell further away.)

Here are the rules that summarize what we've been discussing: count up all the D cells in the ring and call this number D*I (for instance 2 inhibitors), and count up all the D cells in the circle of radius three and call this number D*A (for instance, 5 activators). Then compute D*A - w*D*I, and: * if it is > 0, set the central cell to D * if it is < 0, set the central cell to U * if it is = 0, leave the central cell unchanged

Note that this computation happens to all cells at the same time. After the first step and once the cells have been set accordingly, the entire business starts over at the next step. Once again, the cells are counted up according to the same rule. The rules have not changed but because some of the D cells are now U and vice versa we might get different counts and because of that -- different results of the "fight" between the A and I morphogens.

So what you see is that from step to step the individual cells often change from white (representing D or color cells) to black (representing U or no-color cells) and the overall impression is that the configuration of white and black changes as a whole. But these configurations are not random. You will see how these configurations often take form. Understanding how each cell behaves, as we have explained above, can help understanding how these global patterns take form.

All these explanations were for circular neighborhoods. In this model, the neighborhoods may be elliptical instead of circular. This is needed to produce stripes instead of spots.


In order that your first experiment will more-or-less match the explanations above, you should choose to set the initial-density slider to 50% (that gives each cell an equal chance of being white or black to start with and so the whole window will be roughly 50% white), set the INNER-RADIUS-X and INNER-RADIUS-Y sliders to 3 and the OUTER-RADIUS-X and OUTER-RADIUS-Y sliders to 6, and set RATIO to 0.35 (that means the I morphogens are 35% as powerful as the A morphogens). Now press SETUP. (In later experiments you are welcome to change those settings in various combinations.) It will take a while to complete. If you press STEP the model will advance a single step. If you press GO the model will keep stepping indefinitely.

It takes a while for the patches to determine their neighborhoods. Because of this, only press SETUP when you change the radius sliders. If you only change the INITIAL-DENSITY and RATIO sliders or if you'd like to run the model again with the same settings, press RESTART instead of SETUP. The RESTART button doesn't ask the patches to recalculate their neighborhoods.


As the model runs, patterns may begin to emerge. Eventually, they stabilize. (Well, sometimes the model will run into an endless flip-flop between two states, but we could call that dynamic stability.) Even when it seems to come to a halt, the model is still running and executing the commands and carrying out the computations, but nothing is changing visibly. This is because for each and every cell the power of activators is equal to that of the inhibitors, so nothing changes.


Run the model with different INITIAL-DENSITY settings. How, if at all, does the value of the INITIAL-DENSITY affect the emergent pattern? Do you get the same pattern? Do you get a different pattern? Does it take longer?

Note how fragile the self organization of the cells is to slight changes in parameters. If you hold all other factors and slightly change just the RATIO, from trial to trial, you will note that for small ratios you will invariably get completely white fur and for high ratios you will invariably get completely black fur (why is that?). For ratios in between it fluctuates. That happens partially because the initial setting of black/white coloration has a random element to it (see the RESTART procedure in the code).

Try changing the sliders to have different values in the X and Y directions.


If you find a combination of slider and switch values that consistently give you the fur patterns of a favorite animal, you could create a button, for instance "Zebra," that sets the sliders to those values. That way, if you make several of these, you can go on a virtual safari tour by moving between your favorite animals. One such combination that you could set in a single button could be: INNER-RADIUS-X 3, INNER-RADIUS-Y 3, OUTER-RADIUS-X 6, OUTER-RADIUS-Y 6, INITIAL-DENSITY 50%, RATIO 0.35.

You could call this, perhaps, Fish.

How about adding more colors? What could be the logic here? If you introduced, say, red, you would have to decide on specific conditions under which that color would appear. Also, you'd have to decide how that color influences other cells.


Voting, in the Social Science section, is based on simpler rules but generates patterns that are similar in some respects.


The mechanism of "diffusion-driven instability" was first proposed by Alan Turing in 1952. B.N. Nagorcka first proposed applying it to hair and fur. The particular variant presented in this model was proposed by David Young.

In building this model, we used information on this web site:

Research published in Nature Genetics (Economou et al, 2012) appears to confirm the mechanisms the model proposes.

A news article in IO9 by Alasdair Wilkins describing the research can be found here.

Here is a quote from the Wilkins article:

>Turing's idea was that biological patterns --- such as a tiger's stripes or a >leopard's spots - are formed by the interactions of a pair of morphogens, which >are the signaling molecules that govern tissue development. The particular pair >that Turing proposed was an activator and an inhibitor. Turing proposed that the >activator would form something like a tiger's stripe, but then interaction with >the inhibitor would shut down its expression, creating a blank space. Then the >process would reverse, and the next stripe would form. The interaction of these >two morphogens would combine to create the full stripe pattern. > >This hypothesis has remained mostly just speculation until now, as researchers >at King's College London have now tested the idea in the mouths of mice. The >roofs of mice's mouths contain regularly spaced ridges, and the researchers >discovered the precise two morphogens that were working as activator and >inhibitor to create the pattern, just as Turing suggested. What's more, when the >researchers tampered with one morphogen or the other to increase or decrease >their activity,the pattern of the ridges changed just as Turing's initial >equations predicted they would. Researcher Dr. Jeremy Green adds: > >"Regularly spaced structures, from vertebrae and hair follicles to the stripes on >a tiger or zebrafish, are a fundamental motif in biology. There are several >theories about how patterns in nature are formed, but until now there was only >circumstantial evidence for Turing's mechanism. Our study provides the first >experimental identification of an activator-inhibitor system at work in the >generation of stripes – in this case, in the ridges of the mouth palate. >Although important in feeling and tasting food, ridges in the mouth are not of >great medical significance. However, they have proven extremely valuable here in >validating an old theory of the activator-inhibitor model first put forward by >Alan Turing in the 50s."

Other new research published in the Journal of Experimental Biology (Egri et al, 2011) proposes an evolutionary explanation for the advantage conferred by stripes.

Thanks to Seth Tisue and Dor Abrahamson for their work on this model.


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

For the model itself:

Please cite the NetLogo software as:


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 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

This model was created as part of the projects: PARTICIPATORY SIMULATIONS: NETWORK-BASED DESIGN FOR SYSTEMS LEARNING IN CLASSROOMS and/or INTEGRATED SIMULATION AND MODELING ENVIRONMENT. The project gratefully acknowledges the support of the National Science Foundation (REPP & ROLE programs) -- grant numbers REC #9814682 and REC-0126227.

(back to the NetLogo Models Library)