Lesson goal: Forest Fires & Percolation Thresholds

Previous: The Sierpinski triangle and Rule 90 | Home | Next: Chessboard coordinates and moving pieces

In statistical physics and probability theory, Percolation Theory investigates how fluid, fire, or electricity flows through a random porous medium.

Imagine a grid representing a forest, where every plot has a probability $p$ of containing a tree (the tree density $p$):
  • Green: Living Tree (state 1)
  • Orange: Burning Fire (state 2)
  • Gray: Burned Ash (state 3)
  • Dark: Empty land (state 0)
A spark starts a wildfire on the left border of the forest. The propagation rules are simple:
  1. A tree catches fire if any adjacent neighbor (up, down, left, right) is currently burning.
  2. A burning tree burns out in the next generation and turns to ash.
  3. Empty ground cannot burn.

The Phase Transition: The Critical Percolation Threshold $p_c$

Does the fire burn completely across the forest to the other side?
  • Subcritical ($p < 0.59$): Trees form isolated, fragmented clusters. The fire quickly runs out of fuel and dies out locally!
  • Supercritical ($p > 0.59$): Trees connect into a giant spanning cluster. The wildfire spreads uncontrollably all the way across the forest!
On a 2D square lattice, mathematicians proved that the critical percolation threshold is: $$p_c \approx 0.592746$$ Near $p \approx 0.59$, we observe a critical phase transition — a tiny $2\%$ change in tree density flips the forest from fire-resistant to fully combustible!
ca_forest(0.62)
ca_run()
Move the mouse over a dotted box for more information.

  • Phase Transitions in Nature: Critical thresholds appear throughout nature: water freezing into ice at $0^\circ\text{C}$, iron becoming magnetic at its Curie temperature, and epidemic transmission thresholds ($R_0 > 1$) in epidemiology!
  • Fractal Burning Fronts: Right at the critical threshold $p \approx 0.59$, the leading edge of the burning fire forms an intricate fractal curve!

Now you try. Change density = 0.52 in the editor and click Run to watch the fire die out.

Type your code here:


See your results here: