NetLogo banner

 Contact Us

 Modeling Commons

 User Manuals:


NetLogo Models Library:
Sample Models/Biology

(back to the library)

Fairy Circles

[screen shot]

If you download the NetLogo application, this model is included. (You can also run this model in your browser, but we don't recommend it; details here.)


This model is inspired by the natural phenomenon, Fairy Circles, which can be observed in the Namib Desert in Namibia. In the real world, rings of healthy grasses with barren centers form in geometric configurations across the desert plains. These rings, with life cycles of 30-40 years, have been studied by biologists for years.

This model is based on the recent theory proposed by Tarnita and colleagues in 2017. Fairy circles are formed and maintained through a multi-factor process. Subterranean termites create colonies, expand, and compete when they reach a neighboring colony. These termites eat the roots of the grasses surrounding their colonies. As they create colonies and eat grasses, the soil at their colonies becomes more porous and collects water. Grasses around the colonies compete for water. The grasses closer to the colony have more consistent access to water and become healthier. With this interaction of intraspecies competition, fairy circles form and are maintained.


This model creates a number of termite colonies that spawn termites. At each clock tick, termites randomly wander. If they find roots, termites will collect some of the roots and reorient towards the colony. Termites with roots take a step towards their home colony at each tick. When they reach the colony, the colony gains energy and the termite will go back to wandering. Termites die when they have reached the TERMITE-LIFETIME count. If a termite runs into a termite from another colony, they will fight and one will die.

Colonies create new termites as they gain energy. When the colony has reached a peak size and has enough energy, it will hatch a new colony in the world. Termite colonies die if all the termites are gone.

Grasses increase their root depth as they grow. They need water to maintain their growth. Grasses get water from the moisture in the soil. If grasses do not have enough water, they shrink and die if they have no roots.


  2. Press the SETUP button.
  3. Press the GO button.
  4. Remaining slider parameters (see below) can be adjusted while the model is running.
  5. Look at monitors to see the number of termites that are currently fighting or the number of grasses that have died.
  6. Look at the plots to see the distribution of root depth and soil moisture, or the number of colonies in the world.


INITIAL-NUMBER-OF-COLONIES: The initial number of termite colonies. ENERGY-GAIN-FROM-GRASS: The amount of energy termite colonies get from grass roots. POPULATION-NEEDED-TO-HATCH-NEW-COLONY: The amount of termites in a colony needed to create a new colony. TERMITE-LIFETIME: The number of ticks a termite lives. TERMITE-AGGRESSION: The range that termites will see and fight termites from another colony. MAX-ROOT-DEPTH: The maximum depth grasses will grow. MAX-MOISTURE-IN-SOIL: The maximum water the soil will hold. RAIN-RATE: The amount of rain water hitting a patch at each tick.

Notes: - Termites lose one unit of life at each tick. - In order for plants to survive and grow, they require a base amount of water plus a proportion of water based on their root depth.

Plots and Monitors

DEAD GRASSES: monitors the number of patches that have dead grasses COLONY COUNT: plots the number of termite colonies present FIGHTING TERMITES: plots the number of termites that have seen a termite from another colony. ROOT DEPTH DISTRIBUTION: plots the distribution of root depth across all patches SOIL MOISTURE DISTRIBUTION: plots the distribution of soil moisture across all patches


In this world, termite colonies are represented as magenta circles. Each colony as an initial number of green termites, a population that increases over time. While each patch is associated with both grasses and accumulated soil moisture, patches are colored to reflect the state of grasses in the world. Brown patches are those with dead grass. Green patches are those with living grass. The shade of green reflects the size of grasses. Grasses that are lighter greed have longer roots than those that are darker green.

With this representation, the focus is on the aggregate level interactions between termite colonies and grasses. As such, the termites are visualized in green to background their behavior in the model.


Can you identify when Fairy Circles emerge in the model? Notice where dead patches emerge in the model versus where grasses stay alive. Where do you see the healthiest grasses with the longest roots? Is this related to how water is distributed across the patches?

Why do some termite colonies appear better at gathering food around them? Which termite or colony related parameters affect this?

Watch the patterns of termite colonies emerge. When are new colonies successful and when do they fail?

Observe the root depth of grasses in the model. Is there a relationship between soil moisture and root depth? Observe what happens When you change the parameters related to moisture (MAX-MOISTURE-IN-SOIL, RAIN-RATE).

Why do you suppose that some variations of the model might be stable while others are not?


Increase and decrease the RAIN-RATE in the model and observe the outcome in the model. How does rain impact the development of Fairy Circles? Vary the MAX-MOISTURE-IN-SOIL, does this change the impact of rain-rate in the world?

How does the MAX-ROOT-DEPTH change the size or pattern of fairy circles? Explore this parameter within the world.

Explore termite aggression in the world. How does termite aggression affect the development of Fairy Circles?

Can you find parameters that cause all termite colonies to die?

This model simplifies the naturally observed phenomenon through assumptions like how termites fight, grasses grow, or how/when it rains in the model. Can you look through the code tab to find and modify one of these assumptions to reflect your understanding of the system?


Can you extend the model to add in soil porosity?

Can you extend the model by making the intraspecies competition a switch that could be turned on and off?

Can you extend the model by adding in seasonality that affects the rain rate?


  • Termites


This model was inspired by the journal article:

Tarnita, C. E., Bonachela, J. A., Sheffer, E., Guyton, J. A., Coverdale, T. C., Long, R. A., & Pringle, R. M. (2017). A theoretical foundation for multi-scale regular vegetation patterns. Nature, 541(7637), 398-401.


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

(back to the NetLogo Models Library)