CS 420/594 — Biologically Inspired Computation
NetLogo Simulation


This page was automatically generated by NetLogo 3.1.4. Questions, problems? Contact feedback@ccl.northwestern.edu.

The applet requires Java 1.4.1 or higher. It will not run on Windows 95 or Mac OS 8 or 9. Mac users must have OS X 10.2.6 or higher and use a browser that supports Java 1.4. (Safari works, IE does not. Mac OS X comes with Safari. Open Safari and set it as your default web browser under Safari/Preferences/General.) On other operating systems, you may obtain the latest Java plugin from Sun’s Java site.  General information on the models, including instructions for running them on your own computer, is available from the NetLogo Simulation Information Page.  To download this page, do not use "Save As," but right-click (or on Macs control-click) on this link.  You also need to download the NetLogo program, which you can do by right-clicking or control-clicking this link.

created with NetLogo

view/download model file: Pattern.nlogo


Could it be that 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. 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 values (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'.


This program simulates vertebrate skin patterns by use of a short-range activator and a long-range inhibitor. Each pigmented cell that is "turned on" (the white cells in the
program) produces 100 units of an activating morphogen and 100 units of an inhibiting morphogen. Both chemicals diffuse a specified number of times in the X and Y directions, and then each patch is evaluated. Patches with more activator than inhibitor turn white, and patches with more inhibitor than activator turn black. The process is then repeated; a steady-state pattern is usually quick to emerge.


The SETUP button randomly colors each patch and deposits the morphogens on patches that are white.

The GO button executes the model according to the rules above.

The GO ONCE button executes a single cycle of the simulation, sp that the changes are easier to see.

The DRAW WHITE and DRAW BLACK buttons allow the user to use the mouse to draw white and black patches, respectively.

The X_ACTIVE, Y_ACTIVE, X_INHIBIT, and Y_INHIBIT sliders control the diffusion of the activator and inhibitor morphogens in each direction. More specifically, the slider
variables control the number of times that each patch shares its contents with its two neighbors (in the given direction), such that each patch is left with an equal share of the patch's original morphogens.

INITIAL_DENSITY controls the initial density of activated cells (white patches).

The FIELD DISPLAY chooser controls the information displayed. In its default position (NONE) is shows the color (white or black) of the cells. If ACTIVATOR is chosen, then the concentration of the activator morphogen is displayed as a shade of red. If INHIBITOR is chosen, then the concentration of the inhibitor morphogen is displayed as a shade of blue. In either case the concentration is displayed after the morphogen has diffused, but before an activated cell secretes more of the morphogens.


Modification of the absolute and relative sizes of the slider variables can cause a variety of patterns to emerge, resembling everything from zebras to vermiculated rabbit fish.

The display shows the number and percentage of cells (patches) that change color on each time step, and plots this as a function of time. Notice how quickly the pattern stabilizes, but some of the cells (typically less than 1%) are always changing, showing that the pattern is not static but rather is a "stationary state." You can see this by changing some of the parameters (diffusion rates and bias), which may destabilize the pattern and cause it to converge to a new stationary state.


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? Try very large and very small values (e.g., 99%, 1%).

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 BIAS , from trial to trial, you will note that for large positive numbers you will invariably get completely white fur and for large negative numbers you will invariably get completely black fur (why is that?). For values in between it fluctuates. That happens partially because the initial setting of black/white coloration has a random element to it.

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

Once the pattern has stabilized, use the DRAW WHITE and DRAW BLACK controls to damage the pattern. Then use GO or GO ONCE to see whether the pattern will heal and how quickly. Does healing always restore the original pattern?


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.


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


Modified by B. J. MacLennan Sep. 7, 2003 for Java StarLogo 2.0.2 and Sep. 15, 2007 for NetLogo 3.2.4 from original version by William Thies on Scott Camazine's website. Modifications included monitoring of changed cells, field displays, and documentation.

Some of the above documentation is from the Fur model in the NetLogo model library (which is programmed differently, however):

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

In other publications, please use: Copyright 2003 Uri Wilensky. All rights reserved. See http://ccl.northwestern.edu/netlogo/models/Fur for terms of use.

Return to CS 420/594 home page

Return to MacLennan's home page

Send mail to Bruce MacLennan / MacLennan@utk.edu

Valid HTML 4.01! This page is www.cs.utk.edu/~mclennan/Classes/420/NetLogo/Pattern.html
Last updated: 2007-09-17.