A Python + Pygame simulation of the Drossel–Schwabl Forest Fire Model, a classic example of self-organized criticality in complex systems. This project visualizes how forests grow, ignite, and burn following the principles introduced by B. Drossel and F. Schwabl (1992).
Note: The demo does not visually demonstrate emergent critical behavior — adjust variables for realistic behaviour. Grid lines are also darker due to GIFs compression.
The simulation models probabilistic forest growth and rare lightning-induced fires, featuring an interactive interface with adjustable parameters. It displays real-time forest and fire density and is built with a modular design for easy modification and experimentation.
| Layer | Technology |
|---|---|
| Backend / Logic | Python |
| Frontend / Visualization | Pygame |
| Core Concepts | Cellular Automata, Probabilistic Modeling, Self-Organized Criticality |
Follow these steps to get the simulation running on your local machine.
git clone https://github.com/<your-username>/Drossel-Schwabl-forest-fire-model.git
cd Drossel-Schwabl-forest-fire-modelpython -m venv venv
source venv/bin/activate # On macOS / Linux
venv\Scripts\activate # On Windowspip install pygamepython main.py| Key | Action |
|---|---|
| Enter | Start the simulation |
| Spacebar | Pause or resume the simulation |
| R | Restart Simulation (saves parameters) |
- Implementing cellular automata for spatial simulations
- Modeling probabilistic processes and emergent behavior
- Keep
f(ignition probability) very small (e.g.,0.0001) to see realistic long-term dynamics. - Increase
g(growth rate) to accelerate forest recovery between fires. - Try running the simulation longer — large, spontaneous fires will emerge over time without any manual tuning.
-
Drossel, B. & Schwabl, F. (1992). Self-Organized Critical Forest-Fire Model.
Physical Review Letters, 69(11), 1629–1632.
https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.69.1629 -
Bak, P., Tang, C., & Wiesenfeld, K. (1988). Self-Organized Criticality: A Model for 1/f Noise.
Physical Review A, 38(1), 364–374.
https://journals.aps.org/pra/abstract/10.1103/PhysRevA.38.364
