Skip to main content

SimFire Fire Simulator

Introduction

SimFire uses PyGame to display and simulate different fire spread models, including the Rothermel Surface fire spread model described in this paper.

For more comprehensive documentation, go to our docs page.

This repository is part of the MITRE Fireline project and is associated with both BurnMD and SimHarness. BurnMD is used in the HistoricalDataLayer to provide historical fire data for the simulation. SimHarness is a reinforcement learning training harness that uses this simulator to train agents to fight fires.

Running the Simulation


Left: Fire simulated near Julian, CA. Right: Fire simulated near Reno, NV.
Both fires have winds from the east at 20mph

Install simfire by following the installation instructions. Then run the run_game.py script:

python run_game.py

Running as a Python Module

from simfire.sim.simulation import FireSimulation
from simfire.utils.config import Config

config = Config("configs/operational_config.yml")
sim = FireSimulation(config)

# Run a 1 hour simulation
sim.run("1h")

# Run the same simulation for 30 more minutes
sim.run("30m")

# Render the next 2 hours of simulation
sim.rendering = True
sim.run("2h")

# Now save a GIF and fire spread graph from the last 2 hours of simulation
sim.save_gif()
sim.save_spread_graph()
# Saved to the location specified in the config: simulation.sf_home

# Update agents for display
# (x, y, agent_id)
agent_0 = (5, 5, 0)
agent_1 = (5, 5, 1)

agents = [agent_0, agent_1]

# Create the agents on the display
sim.update_agent_positions(agents)

# Loop through to move agents
for i in range(5):
    agent_0 = (5 + i, 5 + i, 0)
    agent_1 = (5 + i, 5 + i, 1)
    # Update the agent positions on the simulation
    sim.update_agent_positions([agent_0, agent_1])
    # Run for 1 update step
    sim.run(1)

# Turn off rendering so the display disappears and the simulation continues to run in the
# background
sim.rendering = False

Installing the Package

pip install simfire

Contributing

For contributing, see the Contribution Page in our docs.

Citation

To cite this software, use the “Cite this repository” link built into GitHub on the right.

Copyright

Copyright ©2023 The MITRE Corporation. ALL RIGHTS RESERVED. Approved for Public Release; Distribution Unlimited. Public Release Case Number 22-3261.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simfire-2.0.0.tar.gz (439.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simfire-2.0.0-py3-none-any.whl (454.5 kB view details)

Uploaded Python 3

File details

Details for the file simfire-2.0.0.tar.gz.

File metadata

  • Download URL: simfire-2.0.0.tar.gz
  • Upload date:
  • Size: 439.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.9.19 Linux/6.5.0-1022-azure

File hashes

Hashes for simfire-2.0.0.tar.gz
Algorithm Hash digest
SHA256 849873ea766339a7499e3a1e9d137aeaaf850a11c5387eeea8f9e67a6fa76447
MD5 79e5f02673a51ed748cc9b539c25f201
BLAKE2b-256 2c4c121f0e8116046123fb52e313dc675ec2aa116b8713d57342e5889eac636b

See more details on using hashes here.

File details

Details for the file simfire-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: simfire-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 454.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.9.19 Linux/6.5.0-1022-azure

File hashes

Hashes for simfire-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2fbe293dbe3c13b683184a333f34507eab3a5b775d9e7ee7e6422d5a99624214
MD5 d4b0892cbda7f48aad797da27a5cf471
BLAKE2b-256 0b01934d7f17a999196c27b9da7f7f0ca5d961771ef97bd1c5435ed9b1f5d476

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.0.0

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page