Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Hodgepodge and forest fire

Two models from the late 1980s and early 1990s that brought cellular automata into chemistry and statistical physics. The hodgepodge machine imitates a catalytic chemical reaction and produces rotating spiral waves. The forest-fire model grows trees and burns them, and became a standard example of self-organised criticality: a system that tunes itself, without outside adjustment, to a state where events of every size happen.

The hodgepodge machine: noise turning into bands of blue and white waves
The hodgepodge machine Hodgepodge 200/3/3/28, 500 generations after a random start, in part of a wrapped 180 × 120 grid. Watch the noise light up and burn out in patches until travelling waves and rotating spirals take over, like those of the Belousov–Zhabotinsky reaction. Scene docs/scenes/automata/hodgepodge-square.json.

What it is

The hodgepodge machine. Each cell holds a number from 0 to n. State 0 is healthy, n is ill, and everything between is infected, more so for larger numbers. Ill cells recover; healthy cells are infected by their neighbours; infected cells get worse, faster when their neighbours are worse. The parameters k1 and k2 set how easily healthy cells catch the infection, and g how fast infection grows. With suitable values the grid fills with spiral waves.

JETCARP’s version of the rule, per generation, is:

  • An ill cell (state n) becomes healthy (0).
  • A healthy cell becomes ⌊a / k1⌋ + ⌊b / k2⌋, where a is the number of infected neighbours and b the number of ill neighbours.
  • An infected cell becomes ⌊S / (a + b + 1)⌋ + g, where S is the sum of the states of the cell and its neighbours.
  • Results above n are capped at n.

This follows the commonly published form of the rule; we have not yet checked it line by line against Gerhardt and Schuster’s paper.

The forest fire. Each cell is empty, a tree or burning. Each generation a burning tree burns out and leaves empty ground; a tree catches fire if a neighbour is burning, or is struck by lightning with a small probability f; and empty ground grows a tree with probability p. When lightning is much rarer than growth, trees build up into large forests, and a single strike can burn a forest of any size. The sizes of the fires then follow a power law, with no typical scale.

Hodgepodge waves sweeping across Penrose kites and darts
A green forest in which fires burn dark patches that slowly grow back
Left: the same hodgepodge rule on Penrose kites and darts, 500 generations; watch broad waves sweep across the kites and darts, whose outlines stay visible underneath. Scene docs/scenes/automata/hodgepodge-penrose.json. Right: the forest fire ForestFire 0.002/0.00001 from generation 2,000 to 2,120, coloured by age, two generations a frame: watch a fire front eat into the forest and leave a dark burned patch, while bright new trees sprout everywhere. Scene docs/scenes/automata/forestfire-square.json.

Where it came from

Hodgepodge. The hodgepodge machine was designed by Martin Gerhardt and Heike Schuster of the University of Bielefeld, inspired by catalytic chemical reactions. A. K. Dewdney’s Scientific American column “The hodgepodge machine makes waves” introduced it to the public in August 1988 (Dewdney 1988), and the CelLab manual credits it as invented by Gerhardt and Schuster (Rucker and Walker 1989). Their own paper appeared in Physica D in 1989 (Gerhardt and Schuster 1989). With John J. Tyson they went on to a more quantitative automaton model of excitable media, published in Science in 1990 (Gerhardt, Schuster and Tyson 1990).

Forest fire. Per Bak, Kan Chen and Chao Tang introduced a forest-fire automaton in 1990: trees grow, fire spreads from burning trees to their neighbours, and fires never start on their own (Bak, Chen and Tang 1990); Chen, Bak and Jensen published a deterministic variant the same year (Chen, Bak and Jensen 1990). Barbara Drossel and Franz Schwabl added lightning in 1992, and showed that with lightning much rarer than growth the model organises itself into a critical state with fires of all sizes (Drossel and Schwabl 1992). Theirs became the standard forest-fire model; the review by Clar, Drossel and Schwabl tells the story and notes that C. L. Henley independently invented the limit in which clusters burn instantly (Clar, Drossel and Schwabl 1996; Henley 1993). The model descends from Bak, Tang and Wiesenfeld’s idea of self-organised criticality, introduced with the sandpile (Bak, Tang and Wiesenfeld 1987). Later work showed that its scaling is not simple at very large sizes (Grassberger 2002).

How JETCARP runs it

Notation

NotationRule
Hodgepodge 200/3/3/28n = 200, k1 = 3, k2 = 3, g = 28
ForestFire 0.01/0.0001growth probability p = 0.01, lightning probability f = 0.0001

States are 0 to n for the hodgepodge machine (so n + 1 states) and 0 (empty), 1 (tree) and 2 (burning) for the forest fire.

Randomness that replays

The forest fire is random, but JETCARP’s random numbers are a fixed function of the scene’s seed, the generation and the cell, so a scene replays to exactly the same state every time, on any number of threads. The hodgepodge machine is deterministic.

On any tiling

Both rules count neighbours in particular states, so they run on any neighbour graph with touch or edge neighbours (see How JETCARP generalises automata). The hodgepodge machine can also be stepped on the GPU on lattice tilings. On tilings where tiles have different numbers of neighbours, the hodgepodge machine’s averages and the forest’s spreading vary from tile to tile, but the spirals and fires still appear.

What is new here

Our prior-art search found no earlier version of either model on aperiodic tilings such as Penrose, hat or spectre, and no hodgepodge machine off the square grid at all, though forest fires on triangular and hexagonal lattices probably exist in the physics literature. Either way this is a direct application of known rules to known graphs, so we do not count it as a discovery.

Try it

  • Quick Start: Hodgepodge machine and Forest fire.
  • jetcarp run docs/scenes/automata/hodgepodge-penrose.json --gens 1000 --png hodge.png
  • Lower the forest fire’s lightning probability while keeping growth the same: fires become rarer and larger.

References