ForeFire
An open-source code for wildland fire spread models.
https://github.com/forefireAPI/forefire
Keywords
cpp python
Keywords from Contributors
optimize archiving measur transforms generic compose observation conversion projection animals
Last synced: 2 days ago
JSON representation
Acceptance Criteria
- Revelant topics? false
- External users? true
- Open source license? true
- Active? true
- Fork? false
Repository metadata
ForeFire is an open-source code for wildland fire spread models
- Host: GitHub
- URL: https://github.com/forefireAPI/forefire
- Owner: forefireAPI
- License: gpl-3.0
- Created: 2014-02-27T13:34:40.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2025-12-12T16:35:07.000Z (about 1 month ago)
- Last Synced: 2026-01-14T20:12:37.012Z (11 days ago)
- Topics: cpp, python
- Language: C++
- Homepage:
- Size: 12.4 MB
- Stars: 74
- Watchers: 6
- Forks: 33
- Open Issues: 0
- Releases: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Citation: CITATION.cff
README.md
ForeFire is an open-source wildfire simulation engine written in C++. Developed by CNRS at the Université de Corse Pascal Paoli, it is used for research and operational forecasting. The engine implements various fire behavior models and enables high-fidelity coupled fire-atmosphere simulations, aiming to improve wildfire prediction and understanding for complex environments.
Key Links:
- 📚 Full Documentation: forefire.readthedocs.io
- 🚀 Live Demo: forefire.univ-corse.fr/sim
- 🌍 Website: forefire.univ-corse.fr
Features
- Advanced Simulation Engine: Core C++ logic for fire propagation using various Rate of Spread (ROS) models and handling complex geospatial data (NetCDF).
- Fire-Atmosphere Coupling: Designed for two-way coupling by linking the core library with atmospheric models like MesoNH (developed by CNRS & Météo-France).
- High Performance: Optimized C++ core with MPI support for parallel computing.
- Flexible Interfaces: Built upon a core C++ Simulation Engine (Library):
forefireInterpreter: The primary way to run simulations using script files (.ff), interactive console commands, or the web interface (vialistenHTTP[]).- C++ Library (
libforefireL): Allows direct integration into other software. - Python Bindings: Enable scripting and control from Python (see ./bindings/python/README.md).
- Flexible Output: Can generate outputs in various formats, including KML for visualization in Google Earth, Geojson, NetCDF, and custom binary/text formats.
- Extensible: Add custom ROS models in C++; customize web interfaces.
- Applications: Research, case reanalysis, ensemble forecasting.
Quick Start with Docker
The easiest way to get started is often using Docker and the interactive console with instruction noted below via the forefire command-line interpreter see in video :
-
Clone the repository
# Clone the repository git clone https://github.com/forefireAPI/forefire.git cd forefire -
Build the Docker image
docker build . -t forefire:latest -
Run the container interactively
docker run -it --rm -p 8000:8000 --name ff_interactive forefire -
Inside the container navigate to test directory and launch the forefire console:
cd tests/runff # start the forefire console with the command forefire
67 ```bash
listenHTTP[]
````
the output should be :
```bash
>> ForeFire HTTP command server listening at http://localhost:8000
```
This server provides a graphical user interface that you can access on your browser at http://localhost:8000/
-
Run your first simulation
In ForeFire (web or on console are equivalent), running a simulation and viewing the result are separate commands. The UI guides you through this process.
-
Step 1: Run the simulation script. In HTTP Interface click the
includebutton or typeinclude[real_case.ff]in command input box, and click theSendbutton.
ou can also run the same command directly in the interactive console if you prefer py typinginclude[real_case.ff]and press enter.
The scripts executes a simulation by loading data, starting fires, applying wind triggers, and running the simulation for a specified duration. -
Step 2: View the result. After the command finishes, click the
Refresh Mapbutton to display the simulation results onto the web map. -
Step 3 (optional): iterate more. you can continue the simulation, command
include[real_case.ff]theRefresh Mapbutton to display the simulation results onto the web map.

You should see a simulation running in the Aullène region of Corsica. This confirms your Docker setup is working! Check the full documentation for more details on this example
-
Sample data and Git LFS
The demo datasets bundled under tests/runff/ are stored with Git LFS because they include several megabytes of raster data that we only use in the quick-start examples and regression tests. Make sure Git LFS is installed before cloning; otherwise Git will pull pointer files only. If that happens, download the dataset directly from the GitHub web interface and drop it back into the expected folder before running the examples. This data is only provided for the bundled test scenarios.
Build from source
See the Full Documentation for more details on building from source with the install-forefire.sh file
Python Bindings
ForeFire provides Python bindings for easier scripting and integration. See the Python Bindings ./bindings/python/README.md for details.
Contributing
We welcome contributions to ForeFire! We especially appreciate help with:
- Improving documentation and tutorials.
- Python bindings
- Enhancing packaging (Docker, Pip, etc.) and cross-platform compatibility.
Please read our Contributing Guidelines to learn how you can help, including how to report bugs, suggest features, and submit code changes.
All contributors are expected to adhere to our Code of Conduct.
License
ForeFire is licensed under the GNU General Public License v3.0. See LICENSE for full details.
Citation
If you use ForeFire in your work, please cite:
BibTex
@article{article,
author = {Filippi, Jean-Baptiste and Bosseur, Frédéric and Grandi, Damien},
year = {2014},
month = {11},
pages = {},
title = {ForeFire: open-source code for wildland fire spread models},
isbn = {9789892608846},
doi = {10.14195/978-989-26-0884-6_29}
}
Plain Text
Filippi, Jean-Baptiste & Bosseur, Frédéric & Grandi, Damien. (2014). ForeFire: open-source code for wildland fire spread models. 10.14195/978-989-26-0884-6_29.
Citation (CITATION.cff)
cff-version: "1.2.0"
authors:
- family-names: Filippi
given-names: Jean-Baptiste
orcid: "https://orcid.org/0000-0002-6244-0648"
- family-names: Baggio
given-names: Roberta
orcid: "https://orcid.org/0000-0003-1531-0530"
- family-names: Paugam
given-names: Ronan
orcid: "https://orcid.org/0000-0001-6429-6910"
- family-names: Bosseur
given-names: Frédéric
orcid: "https://orcid.org/0000-0002-8108-0887"
- family-names: Leblanc
given-names: Antonio
orcid: "https://orcid.org/0009-0001-9043-2039"
- family-names: Alonso-Pinar
given-names: Alberto
orcid: "https://orcid.org/0009-0009-2051-9700"
contact:
- family-names: Filippi
given-names: Jean-Baptiste
orcid: "https://orcid.org/0000-0002-6244-0648"
doi: 10.5281/zenodo.17742375
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Filippi
given-names: Jean-Baptiste
orcid: "https://orcid.org/0000-0002-6244-0648"
- family-names: Baggio
given-names: Roberta
orcid: "https://orcid.org/0000-0003-1531-0530"
- family-names: Paugam
given-names: Ronan
orcid: "https://orcid.org/0000-0001-6429-6910"
- family-names: Bosseur
given-names: Frédéric
orcid: "https://orcid.org/0000-0002-8108-0887"
- family-names: Leblanc
given-names: Antonio
orcid: "https://orcid.org/0009-0001-9043-2039"
- family-names: Alonso-Pinar
given-names: Alberto
orcid: "https://orcid.org/0009-0009-2051-9700"
date-published: 2025-12-05
doi: 10.21105/joss.08680
issn: 2475-9066
issue: 116
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 8680
title: "ForeFire: A Modular, Scriptable C++ Simulation Engine and
Library for Wildland-Fire Spread"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.08680"
volume: 10
title: "ForeFire: A Modular, Scriptable C++ Simulation Engine and
Library for Wildland-Fire Spread"
Owner metadata
- Name: forefireAPI
- Login: forefireAPI
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/6805132?v=4
- Repositories: 1
- Last ynced at: 2023-08-16T07:20:30.677Z
- Profile URL: https://github.com/forefireAPI
GitHub Events
Total
- Create event: 12
- Release event: 1
- Issues event: 34
- Watch event: 12
- Delete event: 17
- Member event: 3
- Issue comment event: 75
- Push event: 196
- Gollum event: 1
- Pull request review event: 11
- Pull request event: 50
- Fork event: 2
Last Year
- Create event: 12
- Release event: 1
- Issues event: 34
- Watch event: 12
- Delete event: 17
- Member event: 3
- Issue comment event: 75
- Push event: 196
- Gollum event: 1
- Pull request review event: 11
- Pull request event: 50
- Fork event: 2
Committers metadata
Last synced: 10 days ago
Total Commits: 753
Total Committers: 23
Avg Commits per committer: 32.739
Development Distribution Score (DDS): 0.584
Commits in past year: 463
Committers in past year: 10
Avg Commits per committer in past year: 46.3
Development Distribution Score (DDS) in past year: 0.49
| Name | Commits | |
|---|---|---|
| antonio-leblanc | a****c@p****r | 313 |
| FILIPPI Jean-Baptiste | f****i@u****r | 179 |
| CI BOT | c****t@e****m | 98 |
| Jean-Baptiste Filippi | b****i@g****m | 69 |
| ludobegins | l****n@g****m | 34 |
| filippi_j | f****j@U****l | 12 |
| ronan | r****m@g****m | 11 |
| Frederic Allaire | f****e@i****r | 6 |
| Thoreau Romain | r****u@c****r | 6 |
| th96r4ss | a****a@u****r | 6 |
| jdurand | j****d@u****r | 3 |
| baggiocolpir | 1****r | 3 |
| Dominik Laux | d****x@o****m | 2 |
| Damien Grandi | d****i@g****m | 2 |
| serbal193 | j****s@g****m | 1 |
| BAGGIO_R | b****r@o****l | 1 |
| Jean-Baptiste FILIPPI | f****j@B****) | 1 |
| damien | d****n@d****) | 1 |
| rbaggio | r****i@g****m | 1 |
| dependabot[bot] | 4****] | 1 |
| Philip Cardiff | p****f@g****m | 1 |
| Johanna Strebl | j****l@g****m | 1 |
| Fernando Veiga Lopez | f****a@u****l | 1 |
Committer domains:
- univ-corse.fr: 2
- uvigo.gal: 1
- damien-vm.(none): 1
- brando-front.(none): 1
- ororatech.com: 1
- univ-reunion.fr: 1
- cnes.fr: 1
- inria.fr: 1
- poli.ufrj.br: 1
Issue and Pull Request metadata
Last synced: about 2 months ago
Total issues: 35
Total pull requests: 63
Average time to close issues: about 1 month
Average time to close pull requests: 5 days
Total issue authors: 12
Total pull request authors: 11
Average comments per issue: 3.43
Average comments per pull request: 0.22
Merged pull request: 48
Bot issues: 0
Bot pull requests: 4
Past year issues: 23
Past year pull requests: 49
Past year average time to close issues: 11 days
Past year average time to close pull requests: 1 day
Past year issue authors: 7
Past year pull request authors: 7
Past year average comments per issue: 4.09
Past year average comments per pull request: 0.24
Past year merged pull request: 37
Past year bot issues: 0
Past year bot pull requests: 4
Top Issue Authors
- xiazeyu (11)
- antonio-leblanc (9)
- gmarujo (3)
- julimi26 (2)
- jimDunn85 (2)
- iperezx (2)
- ConorHackett98 (1)
- Xbotgo-Justin1 (1)
- fveigauvigo (1)
- chemben17 (1)
- akasom89 (1)
- 3dfirelab (1)
Top Pull Request Authors
- antonio-leblanc (41)
- filippi (5)
- dependabot[bot] (4)
- dominiklaux (3)
- ludobegins (3)
- serbal193 (2)
- philipcardiff (1)
- baggiocolpir (1)
- Romain3Ch216 (1)
- 3dfirelab (1)
- fveigauvigo (1)
Top Issue Labels
- question (3)
- enhancement (2)
- packaging (2)
- python (1)
- testing (1)
Top Pull Request Labels
- documentation (5)
- dependencies (4)
- python (4)
- enhancement (2)
- packaging (2)
Dependencies
- actions/checkout v3 composite
- osgeo/gdal ubuntu-small-3.3.1 build
- pyproj ==3.4.0
Score: 7.43955930913332