Wildfires.jl is a Julia package for wildfire modeling and simulation, built around three core modules:
Rothermel — The Rothermel (1972) surface fire spread model with the 13 standard NFFL fuel models from Anderson (1982).
Level Set — A level set method for simulating 2D fire front propagation driven by spatially varying spread rates.
Spread Model — Composable, differentiable components (wind, moisture, terrain) that drive level set simulations via FireSpreadModel.
GPU Acceleration — Backend-agnostic GPU support (CUDA, Metal, ROCm) via KernelAbstractions.jl for large-grid simulations.
Installation
usingPkgPkg.add("Wildfires")
Quick Example
usingWildfiresusingWildfires.RothermelusingWildfires.LevelSetusingWildfires.SpreadModel# Build a fire spread model from componentsmoisture =FuelClasses(d1=0.06, d10=0.07, d100=0.08, herb=0.0, wood=0.0)model =FireSpreadModel(SHORT_GRASS, UniformWind(speed=8.0), UniformMoisture(moisture), FlatTerrain())# Evaluate spread rate at a pointros =model(0.0, 100.0, 100.0)println("Rate of spread: $(round(ros, digits=1)) m/min")