HomeArticlesPhysics

Fire and Smoke: Cellular Automaton Combustion

No differential equations required — a handful of cell states and neighbour-lookup probabilities are enough to make fire spread, smoke drift and wind bend the flame front.

mysimulator teamUpdated June 2026≈ 7 min read▶ Open the simulation

Seven states, no combustion chemistry

Real combustion is a coupled system of heat transfer, chemical reaction rates and fluid dynamics — genuinely difficult to solve in real time. A cellular automaton sidesteps all of that by never solving the underlying physics directly. Instead, every cell on a grid holds one of a small number of discrete states — wood, fire, ember, ash, smoke, water, wall — and a short set of local rules decides, cell by cell, how those states change from one step to the next, based only on each cell's own state and its immediate neighbours. The visual result looks like fire because the rules were designed to reproduce fire's qualitative behaviour, not because any temperature or reaction rate was ever computed.

live demo · wind-driven fire spreading through fuel● LIVE

The core spread rule

Each simulation step, every wood cell adjacent to at least one fire cell has a chance to ignite; a burning cell has a chance to burn out into an ember and eventually ash; and ember cells radiate heat, so they can still ignite neighbours briefly before cooling. The whole thing is a probabilistic version of a simple neighbour-counting rule, similar in spirit to Conway's Game of Life:

for each cell c:
  if c is WOOD and has a burning neighbour:
      p_ignite = base_rate * fuel_dryness(c) * wind_factor(c, wind_dir)
      if random() < p_ignite:  c → FIRE
  if c is FIRE:
      if random() < burnout_rate:  c → EMBER
  if c is EMBER:
      if random() < cool_rate:     c → ASH
  if c is WATER:
      c stays WATER forever  // ignition probability is always 0

Smoke is produced separately: fire and ember cells emit smoke particles that drift, following a simplified advection rule biased by the wind direction and fading out over time — visually convincing without running an actual fluid solver.

Why wind matters so much

In real fires, wind does two things: it tilts the flame toward unburned fuel, preheating it by radiation and direct contact well before the flame front physically arrives, and it feeds fresh oxygen into the combustion zone, sustaining a higher burn rate. The cellular model captures the net effect with a directional multiplier on the ignition probability — a wood cell downwind of a fire ignites far more readily than an identical cell crosswind or upwind, which reproduces the elongated, wind-stretched fire fronts seen in real wildfires without simulating airflow explicitly.

Firebreaks and where the model bends realism

Water and wall cells have zero ignition probability no matter how many burning neighbours surround them, giving a clean way to test how a river, road or cleared fire line stops a spreading blaze — the same logic real firefighters use when cutting containment lines. The model's honest limitation is that it has no true temperature field or radiative heat transport at a distance; every interaction is nearest-neighbour, so effects like long-range spotting (embers carried by wind to ignite fuel well ahead of the main fire) have to be added as an explicit extra rule rather than emerging naturally from the physics, the way it does in full computational fluid dynamics fire models.

Frequently asked questions

Is this how real wildfire spread is actually modelled?

Cellular automata are a genuine, actively used family of wildfire models, valued for being fast enough to run many scenarios quickly, though operational fire services often pair them with physics-based rate-of-spread formulas such as Rothermel's model to convert fuel and wind conditions into more realistic per-cell probabilities.

Why does wind make fire spread so much faster in one direction?

Wind tilts the flame toward unburned fuel downwind, pre-heating it by direct contact and radiation before the fire physically reaches it, and it also supplies fresh oxygen to the reaction zone. In the cellular model this is captured by boosting the ignition probability for cells in the downwind direction relative to cells upwind or crosswind.

Why does water stop fire in the simulation but not just sit there passively?

A water cell has zero ignition probability regardless of how many burning neighbours surround it, so it acts as a hard firebreak — mirroring how real firefighting either removes fuel (a fire line) or uses water to cool material below its ignition temperature.

Try it live

Everything above runs in your browser — open Fire and Smoke and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.

▶ Open Fire and Smoke simulation

What did you find?

Add reproduction steps (optional)