Predicting How Urban Wildfires Will Spread
Abstract
Urban wildfires can cause devastating loss of life and property. Can we save lives by predicting how and where these fires will spread? What protective measures can we take to save buildings from the fires? In this project you will use a computer model to simulate how wildfires spread in populated areas, and experiment with different protective measures to try and save houses from burning.
Summary
None
Readily available
No issues
Objective
Simulate how vegetation buffers can help protect houses during urban wildfires.
Introduction
How can we predict how a wildfire will spread? Computer simulations, also called models, can help predict real-world wildfire behavior. One basic model of how wildfires behave is called the Drossel-Schwabl model. The model consists of a square grid. Initially, each square in the grid consists of either a tree (which can burn) or a patch of bare ground (which cannot). A random lightning strike will start a fire, which can then spread to any tree directly above, below, to the left, or to the right of the square that is on fire (fires do not spread diagonally).
Figure 1 shows a simulation of a single fire using the Drossel-Schwabl model. Normally, the model is used to simulate continuous forest regrowth and ongoing fires. The model's behavior will depend on both the probability of tree growth and the probability of lightning strikes. See the link in the Bibliography for a simulation where you can adjust both of those parameters.

The basic Drossel-Schwabl model does not account for houses, roads, buildings, or other things that are present during wildland-urban interface (WUI) fires (Figure 2). All of these things can affect how a fire spreads. For example, a road may act as a fire block, preventing fire from spreading from tree to tree by direct flame contact, but high winds or falling trees could still cause the fire to jump across the road. Similarly, houses may be ignited by drifting embers even if they are not directly adjacent to a burning tree.

In large wild forests, firefighters can use small controlled burns to intentionally use up fuel for fires. This forest management approach can help prevent larger, catastrophic wildfires. However, using controlled burns can be difficult in populated areas due to the amount of smoke they generate, among other reasons. Instead, a variety of management and mitigation techniques are used to reduce the risk to structures. This can include creating a buffer zone around a building by clearing highly flammable vegetation, removing ladder fuels that allow fires to climb up into tree canopies, creating larger fuel breaks in certain areas (like along roads), and using fire-resistant building materials that are less likely to ignite from drifting embers.
In this science project, you will use a simulation that allows you to adjust the size of the buffer zone around houses. Figure 2 has no buffer zone at all (note how some of the houses are directly up against the trees). You can adjust the size of the buffer zone, run the simulation, and see how many houses burn across multiple trials (the fire will start in a random location each time). How many houses can increasing the buffer zone save? Try it and find out!
Terms and Concepts
- Simulation
- Model
- Drossel-Schwabl
- Wildland-urban interface (WUI)
- Buffer zone
- Ladder fuel
- Fuel break
- Fire-resistant
Questions
- What are some recent examples of large wildland-urban interface fires?
- What steps are planners and developers taking to help prevent fires like these in the future?
Bibliography
- Wikipedia (n.d.). Forest Fire Model. Retrieved June 4th, 2026
- Veritasium (n.d.). Forest Fire Model (Drossel-Schwabl). Retrieved June 8th, 2026
Materials and Equipment
- Computer with internet access
Experimental Procedure

Setting Up The Code
- Download wildfire-model-with-houses-and-roads.ipynb.
- Upload the file to your Google Drive. If you do not already have a Google account, make one when prompted.
- Double-click the file in Google Drive. It should automatically open in Google Colab. Google Colab is an environment that lets you run Python code online, without needing to install anything on your computer.
- Read the "Parameters" section of the code. The comments explain what each variable does.
- Do not worry if you do not understand the rest of the code, but optionally, you can read through it.
Running the Simulation
- Click "Connect" in the top right corner of the Colab window.
- Click "Run all" in the top menu. Wait for the code to run. You will see a small spinning wheel toward the top left of the code window while the code is still running.
- Scroll to the bottom of the code window. You should see an image like Figure 3. It shows a map of the fire, including burned/remaining trees and houses, a graph of the fire size over time, and statistics about the fire.
- Below the figure is an animation that will show how the fire developed. Click the play button to watch the animation.
- You can keep the default parameters for your experiment, but if you want, you can change them before collecting data (bigger grid, more roads or houses, etc).

Collecting Data
- Make a data table like Table 1.
| Vegetation buffer size | Trial 1 | Trial 2 | Trial 3 | Trial 4 | Trial 5 | Average |
|---|---|---|---|---|---|---|
| 0 | ||||||
| 1 | ||||||
| 2 | ||||||
| 3 | ||||||
| 4 |
- Make sure the
VEG_BUFFERvariable is set to zero. - Run the simulation.
- Record the number of burned houses in the column for your first trial.
- Re-run the simulation (just click "Run all" again) at least four more times with the same vegetation buffer size. You can do more trials if you wish.
- Increase the
VEG_BUFFERvariable to 1 and run at least five more trials. - Keep increasing the
VEG_BUFFERvariable and running more trials. Do you reach a point where no houses burn at all? If so, how does the value of theVEG_BUFFERvariable compare to the value of theEMBER_RADIUSvariable when this happens? - Calculate the average number of houses burned for each value of the
VEG_BUFFERvariable. - Make a graph showing houses burned vs. vegetation buffer size.
- How does the number of houses burned change as the buffer size increases?
- What implications does this have for real-world urban fire management?
- What other tradeoffs could there be for increasing the size of buffer zones? For example, could this cause habitat loss for certain species of plants or animals?
- There are many other things you can change in the code. See the Variations section for some ideas.
Ask an Expert
Global Goals
The United Nations Sustainable Development Goals (UNSDGs) are a blueprint to achieve a better and more sustainable future for all.
Variations
- Change the
EMBER_PROBvariable to adjust the probability that a house will catch fire from a drifting ember. Decreasing this value simulates more fire-resistant building materials that are less likely to catch fire. How does it change the results of your simulation? - Increase the
EMBER_RADIUSvariable to simulate higher winds that can make embers drift farther. How does this change your results? - Change the
RANDOM_SEEDvariable to generate a different map. - There are many other parameters you can adjust in the model, such as the tree density, number of roads, probability that fire will jump a road, etc. Experiment with different parameters and see how they change your simulation results.
- For advanced students, try to edit the code to add more things to the simulation. Here are a few ideas:
- Larger buildings
- Organized subdivisions of houses instead of houses that are placed randomly
- Roads of different widths, like wider highways
- Curved roads
- Rivers or lakes
- Weather events like directional wind or rain
Careers
If you like this project, you might enjoy exploring these related careers:
Related Links
- Science Fair Project Guide
- Other Ideas Like This
- Environmental Science Project Ideas
- Computer Science Project Ideas
- My Favorites
- Not ready for Python? Try this wildfire simulator project in the graphical programming language Scratch.
- Can you predict where the next wildfire will hit using artificial intelligence?









