Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 2.0.1 instead.
Reason given by maintainers: The fire spread calculation for all versions of simfire <2.0.0 is incorrect.

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.

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-1.5.6.tar.gz (433.6 kB view details)

Uploaded Source

Built Distribution

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

simfire-1.5.6-py3-none-any.whl (448.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: simfire-1.5.6.tar.gz
  • Upload date:
  • Size: 433.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.18 Linux/6.2.0-1018-azure

File hashes

Hashes for simfire-1.5.6.tar.gz
Algorithm Hash digest
SHA256 369b58bf28e8b44d3603669cb85760e9104b03a75578eea15d21c849153b9089
MD5 ff20c4abf0da7c526900e588b547b44f
BLAKE2b-256 ef4c3d76f8c12b391270efd9ecb3160144fc3e485ad26fd29c3b847ea108a3fd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: simfire-1.5.6-py3-none-any.whl
  • Upload date:
  • Size: 448.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.18 Linux/6.2.0-1018-azure

File hashes

Hashes for simfire-1.5.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a0c39e210c1837ddf3eb41edac97f9f9dbb976eb2e18ef09b6b49d7655c33c14
MD5 257ba00901ee5f5541ffa5f703556b18
BLAKE2b-256 42820f96664d946598a0c981a8ac72f61f005ad975d3b04c40ec962eb46893de

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

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