by Dirk Brockmann

This explorable illustrates how fractal growth patterns can be generated by stochastic cellular automata. Cellular automata are spatially and temporally discrete dynamical systems that are conceptually very straightforward but can generate unexpected complex behavior, often fractal-like structures reminiscent of patterns we see in natural systems.

Here we are dealing with a one-dimensional cellular automaton in which a horizontal line in the display represents the state of the system and time evolves vertically from bottom to top. Each pixel \(n\) along a horizontal line can be in one of two states, on (\(n=1\)) of off (\(n=0\)).

Press Play and keep on reading....

This is how it works

Initially (\(t=0\), bottom of the display), some of the pixels are on (black) and others are off (transparent). If you reset the system you will notice a thin layer of random pixels at the bottom.

In a cellular automaton like this one, the state of pixel \(n\) at time \(t+1\), denoted by \(n(t+1)\) is determined by its own state and the state of its neighbors \(n-1\) and \(n+1\) a time step earlier (\(t\)), in a probabilistic way.

For example: Let's say the state of the three pixels at time \(t\) is given by \((n-1,n,n+1)=(1,1,0)\). Now if the corresponding slider (in this case the second slider from the top) is set to say \(0.863\) then with a probability of 86% the state of \(n\) at time \(t+1\) will remain on, otherwise it will turn off.

Another example: Let's say the state of the three pixels at time \(t\) is given by \((n-1,n,n+1)=(0,0,0)\), so all of the pixels are off. If the corresponding slider (in this case bottom slider) is set to say \(0.10\) then with a 10% chance, the central pixel is going to turn on in the next iteration, otherwise it will remain off.

Because every pixel can be in one of two states, and likewise its neighbors, we have to specify \(2^3=8\) rules for what happens to pixel \(n\) in the next iteration. This can be controlled with the 8 sliders on the right.

Also, we have periodic boundary conditions, which means that the pixels at the edges of the display consider the pixel on the other side of the display as a neighbor.


For your convenience, you can choose from five different preset parameter combinations, using the radio buttons.

Initial Conditions

The system is initialized randomly, so that a given density of pixels at \(t=0\) is on. You can vary that density with the density slider on the bottom right.

Instead of a random initial condition you can chose an initial condition in which every pixel is off, except the central pixel that is on using the switch start with a dot.

Deterministic Dynamics

Originally cellular automata with deterministic rules were investigated. In these, a combination of pixel state plus state of neighbors always generates the same outcome. You can also explore deterministic cellular automata here by turning the sliders either all the way to zero or to one, as in the example Sierpinsky.