A Fire Spread Model: The Contagion Effect

Initializing live version
Download to Desktop

Requires a Wolfram Notebook System

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

This Demonstration shows the contagion effect inherent in a spreading fire. The focus is not so much on the complex movement of the fire as on its spread, given an individual tree's wetness percentage. The power of rule-based recursion and injected randomness are used to achieve the contagion effect. Red cells are burning and tan cells are completely burned (with the rainbow color scheme); the total burn area is the sum of the red and tan cells. The network view, accessed by checking "quantify spread", shows a causal relationship in time and 2D space of the burning trees; it is further utilized to quantify the matrix plot simulation of the fire's spread.

Contributed by: Michael Dewus (December 2011)
Open content licensed under CC BY-NC-SA



The computation is performed by a search-update-feedback cellular automaton (SCA). The rule implemented simply requires that a tree be set ablaze if a single neighboring tree is burning; the burn neighborhood consists of nine trees, including the current tree location.

The control "trigger | pause" triggers the SCA and maintains an expanding fire. Toggle the "reset" control to restart at a new initial burn location (pause and toggle to "walk" to a new initial burn location) or check this control to change the tree grid size; uncheck to restart the burn with the new grid size setting. Slide the "wet %" control at any time to simulate tree wetness.

Pause and check the "quantify spread" control to switch between the matrix plot simulation of the fire spread and a network quantification of this simulation. Color information is synchronized between these two views; pause to change the color setting.

With "quantify spread" checked, check the "directed edges" control to follow the information flow throughout the tree grid as the fire spreads (use "directed edges" with any of the network embedding methods; with both "quantify spread" and "directed edges" checked, choose a convenient arrowhead size via the "arrowhead" control (notice that the linear embedding of snapshot three has "directed edges" unchecked; linear embedding is revealing with both settings of the "directed edges" control). Edge colors are determined by the burn datum of the vertex a given arrow points to; vertex formats are shown below.

Use the control "edges and vertices" or "vertices only" to get vertex information (please note that "vertices only" has precedence)—pause and mouseover a vertex of interest to locate it in the tree grid. Vertices have this format: {{vertex address}, burn data}, where a given burn datum relates the state of an associated tree as follows:

0—entirely unburned tree (rainbow "color" green), 2—completely burned tree (rainbow "color" tan), 3–burning tree ((rb "color" red).

Please see section 3 of the code for more details concerning the controls.

In abbreviated fashion the comment associated with the function "causalnet" in section 1B of the code endeavors to explain some of the network coding.


[1] Wikipedia, "Negative Feedback." (Mar 8, 2013)en.wikipedia.org/wiki/Negative_feedback.

[2] Wikipedia, "Positive Feedback." (Mar 8, 2013)en.wikipedia.org/wiki/Positive_feedback.

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.