Simulating Flickering Fire with Noisy Cellular Automaton

Requires a Wolfram Notebook System

Interact on desktop, mobile and cloud with the free Wolfram CDF Player or other Wolfram Language products.

Requires a Wolfram Notebook System

Edit on desktop, mobile and cloud with any Wolfram Language product.

This Demonstration simulates fire using elementary cellular automaton rule 99. The main evaluations are quite time consuming, so the animation may run somewhat slowly; to change a control, first pause and then resume the animation.

Contributed by: Vitaliy Kaurov (March 2011)
Open content licensed under CC BY-NC-SA



Finite elementary cellular automaton (CA) rule 99 is used with looped boundary conditions. An initial condition (IC) of six cells evaluated for five steps produces a 6×6 matrix (including IC) of 0s and 1s. Every possible IC corresponds to a set of eigenvalues of the evaluated matrix. ICs are interpreted as binary numbers and converted to decimal numbers that run along the horizontal axis of the image. Therefore every such number has a corresponding set of six eigenvalues that run along the vertical axis. As a result a 64×6 matrix of all possible eigenvalues is generated. When it is plotted with the built-in Mathematica function ListDensityPlot, one obtains a static image reminiscent of flames. Fluctuating noise is introduced to animate the fire's flickering by randomly flipping values of cells in the evolution of the CA with probability ranging from 0 to 0.5. The probability is set by the "turbulence" control. Actual animation of the flickering effect is achieved by constantly changing the built-in Mathematica function SeedRandom setting.

For more information on the CA used, see Rule 99.

Feedback (field required)
Email (field required) Name
Occupation Organization
Note: Your message & contact information may be shared with the author of any specific Demonstration for which you give feedback.