NetLogo banner

NetLogo Publications
Contact Us

Modeling Commons

Beginners Interactive NetLogo Dictionary (BIND)
NetLogo Dictionary

User Manuals:
Farsi / Persian


NetLogo Models Library:
Sample Models/Chemistry & Physics/Chemical Reactions

(back to the library)

B-Z Reaction

[screen shot]

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


The Belousov-Zhabotinsky reaction (or B-Z reaction for short) is an unusual chemical reaction. Instead of steadily moving towards a single equilibrium state, it oscillates back and forth between two such states. Before this "chemical oscillator" was discovered, it was thought that such a reaction could not exist.

If you do the reaction in a beaker, the whole beaker regularly changes color from yellow to clear and back again, over and over. In this case, we say that the reaction is oscillating in time. However, if you do the reaction in a thin layer of fluid trapped between two glass plates, then a beautiful pattern emerges of concentric or spiral waves of color change passing through the fluid. Here, the reaction is oscillating in both time and space.

This model is a cellular automaton (or CA) that produces spiral waves that resemble those produced by the B-Z reaction. Similar spiral waves have also been observed in biological systems, such as slime molds.

The B-Z reaction is a redox reaction that periodically moves between an oxidized and a reduced state, and has been demonstrated for various chemicals. This model does not attempt to replicate the actual mechanism of the chemical reaction, which is quite complex (including 18 reactions and 21 species, according to the Fields-Koros-Noyes model). The abstract features shared by the real reaction and this model include:

  1. Two end states.
  2. A positive feedback mechanism.
  3. A negative feedback mechanism.

The positive feedback mechanism acts to push the system further in the direction that it is already going, reinforcing and amplifying the initial change. (In the chemical reaction, positive feedback comes from auto-catalysis.) The negative feedback mechanism pushes the system back in the opposite direction once a threshold is reached, suppressing or counteracting the effected change.


Each cell has a state which is an integer from 0 to max-state. We choose to show state 0 as black, max-state as white, and intermediate states as shades of red.

Suppose we call state 0 "healthy", max-state "sick", and anything in between "infected". Then the rules for how each cell changes at each step can be described as follows:

  1. A cell that is sick becomes healthy.
  2. A cell that is healthy may become infected, if enough of its eight neighbors are infected or sick. Whether this happens is affected by the k1 and k2 sliders. (Lower k1 means higher tendency to be infected by infected neighbors; lower k2 means higher tendency to be infected by sick neighbors.)
  3. A cell that is infected computes its new state by averaging the states of itself and its eight neighbors, then adding the value of the g slider. (Higher g means infected cells get sicker more rapidly.)

1 is the negative feedback; 2 and 3 are the positive feedback.

These are only qualitative descriptions. To see the actual math used, look at the FIND-NEW-STATE procedure in the Code tab.


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

Press GO to run the model.


Run the model with the default slider settings.

What happens near the beginning of run?

After about 100 ticks, you should start to see spirals emerging.

After about 200 ticks, the spirals should fill the world.

Can you work out why the specific rules used produce patterns like the ones you see?


What if you do a really long run --- what happens?

What is the effect of varying the different sliders? You can think of k1 and k2 as affecting the tendency for healthy cells to become infected, and g as affecting the speed with which the infection gets worse.


This automaton is an example of a "reaction-diffusion" system. By altering the CA rules, you may be able to simulate other reaction-diffusion systems.


find-new-state is a long and rather complicated procedure. It could be clearer if it were split into subprocedures, but then the model wouldn't run quite as fast. Since this particular CA takes so many iterations to settle into its characteristic pattern, we decided that speed was important.


Boiling, in the Physics/Heat section, is another cellular automaton that uses similar, though simpler, rules. The early stages of the Boiling model resemble the early stages of this model.

Fireflies, in the Biology section, is analogous to the B-Z reaction in a stirred beaker (the whole beaker "synchronizes" so it's switching back and forth all at once, like the fireflies).

Many models in the NetLogo models library can be thought as systems composed of positive and/or negative feedback mechanisms.


The B-Z reaction is named after Boris Belousov and Anatol Zhabotinsky, the Russian scientists who discovered it in the 1950's.

A discussion of the chemistry behind the reaction, plus a movie and some pictures, are available at

The cellular automaton was presented by A.K. Dewdney in his "Computer Recreations" column in the August 1988 of Scientific American.

See for a pretty screen shot of the cellular automaton running on a very large grid (using custom software for Windows, not NetLogo).


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)