ForeFire

An open-source code for wildland fire spread models.
https://github.com/forefireAPI/forefire

Category: Biosphere
Sub Category: Wildfire

Keywords

cpp python

Keywords from Contributors

archiving transforms measur generic optimize observation compose conversion projection animals

Last synced: about 14 hours ago
JSON representation

Repository metadata

ForeFire is an open-source code for wildland fire spread models

README.md


linuxCI
macOSCI
License: GPL v3
Language
Language
Documentation Status
DOI

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:

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):
    • forefire Interpreter: The primary way to run simulations using script files (.ff), interactive console commands, or the web interface (via listenHTTP[]).
    • 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, via the forefire command-line interpreter

ForeFire Web UI showing a simulation example

  1. Clone the repository

    # Clone the repository
    git clone https://github.com/forefireAPI/forefire.git
    cd forefire
    
  2. Build the Docker image

    docker build . -t forefire:latest
    
  3. Run the container interactively

    docker run -it --rm -p 8000:8000 --name ff_interactive forefire bash
    
  4. Inside the container navigate to test directory and lauch the forefire console:

    cd tests/runff
    
    # start the forefire console with the command
    forefire
    
  5. Inside the console launch an http server with listenHttp[] command

    forefire> listenHTTP[]
    
    # the output should be
    >> ForeFire HTTP command server listening at http://localhost:8000
    

    This server provides a grafical user interface that you can access on your browser at http://localhost:8000/

  6. Run your first simulation

    • Run the command include[real_case.ff]
    • Then press Refresh 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

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
message: "If you use ForeFire in your work, please cite it using the metadata below."

authors:
  - given-names: Jean-Baptiste
    family-names: Filippi
    # orcid: https://orcid.org/XXXX-XXXX-XXXX-XXXX # TODO: Add J-B's ORCID (use the full URL format)
    affiliation: "SPE, UMR 6134, CNRS, University of Corsica Pascal Paoli, Corte, France" # TODO: Verify exact affiliation name

  # TODO: Add any other major contributors who should be listed as authors of the software

title: "ForeFire: An Open-Source C++ Engine for High-Performance Wildfire Simulation"

# version: Use the version number that is being submitted/reviewed.
version: "2.0.0"

# doi: Uncomment and add the software DOI after archiving the reviewed version on Zenodo/Figshare.
# Do NOT use the DOI of the 2014 paper here.
# doi: 10.5281/zenodo.XXXXXXX

# date-released: Set this to the date of the release corresponding to the 'version'.
date-released: 2025-04-29

url: "https://github.com/forefireAPI/forefire"
license: GPL-3.0-only

keywords:
  - C++
  - Python
  - wildfire simulation
  - fire behavior modeling
  - high-performance computing
  - fire-atmosphere coupling
  - numerical modeling

# Optional: Add preferred-citation once the JOSS paper is accepted/published
# preferred-citation:
#   type: article
#   authors:
#     # List authors of the JOSS paper here, matching paper.md
#     - given-names: Jean-Baptiste
#       family-names: Filippi
#       # orcid: https://orcid.org/XXXX-XXXX-XXXX-XXXX
#       affiliation: "SPE, UMR 6134, CNRS, University of Corsica Pascal Paoli, Corte, France"
#   title: "ForeFire: An Open-Source C++ Engine for High-Performance Wildfire Simulation" # Title of the JOSS paper
#   journal: "Journal of Open Source Software"
#   # volume: X # JOSS will assign
#   # issue: Y # JOSS will assign
#   # year: ZZZZ # Year JOSS paper published
#   doi: "10.21105/joss.XXXXX" # TODO: Add the JOSS paper DOI once assigned

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 9 days ago

Total Commits: 569
Total Committers: 18
Avg Commits per committer: 31.611
Development Distribution Score (DDS): 0.591

Commits in past year: 335
Committers in past year: 7
Avg Commits per committer in past year: 47.857
Development Distribution Score (DDS) in past year: 0.534

Name Email Commits
antonio-leblanc a****c@p****r 233
FILIPPI Jean-Baptiste f****i@u****r 150
CI BOT c****t@e****m 61
Batti Filippi b****i@g****m 42
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
jdurand j****d@u****r 3
baggiocolpir 1****r 3
Damien Grandi d****i@g****m 2
Johanna Strebl j****l@g****m 1
rbaggio r****i@g****m 1
damien d****n@d****) 1
Jean-Baptiste FILIPPI f****j@B****) 1
BAGGIO_R b****r@o****l 1
dependabot[bot] 4****] 1

Committer domains:


Issue and Pull Request metadata

Last synced: about 14 hours ago

Total issues: 47
Total pull requests: 69
Average time to close issues: 3 months
Average time to close pull requests: 15 days
Total issue authors: 12
Total pull request authors: 8
Average comments per issue: 2.6
Average comments per pull request: 0.28
Merged pull request: 54
Bot issues: 0
Bot pull requests: 1

Past year issues: 16
Past year pull requests: 53
Past year average time to close issues: 3 months
Past year average time to close pull requests: 5 days
Past year issue authors: 6
Past year pull request authors: 7
Past year average comments per issue: 1.75
Past year average comments per pull request: 0.3
Past year merged pull request: 43
Past year bot issues: 0
Past year bot pull requests: 1

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/forefireAPI/forefire

Top Issue Authors

  • aalonsop (14)
  • antonio-leblanc (11)
  • julimi26 (3)
  • Xbotgo-Justin1 (3)
  • chemben17 (3)
  • 3dfirelab (3)
  • ConorHackett98 (2)
  • MikeRiz521 (2)
  • Nikolaos96 (2)
  • jimDunn85 (2)
  • jsotomartin (1)
  • agumartina (1)

Top Pull Request Authors

  • antonio-leblanc (52)
  • ludobegins (7)
  • baggiocolpir (3)
  • filippi (2)
  • 3dfirelab (2)
  • YokoHono (1)
  • dependabot[bot] (1)
  • Romain3Ch216 (1)

Top Issue Labels

  • question (4)
  • enhancement (4)

Top Pull Request Labels

  • dependencies (1)
  • python (1)

Dependencies

.github/workflows/main.yml actions
  • actions/checkout v3 composite
Dockerfile docker
  • osgeo/gdal ubuntu-small-3.3.1 build
py3_tools/requirements.txt pypi
  • pyproj ==3.4.0

Score: 6.651571873589727