-
Landing / product framing
-
Scenario map — risk bands, route, wind, legend
-
Assistant answering a real household prompt (live Claude + live router)
-
Same map, LANDFIRE fuel overlay on
-
National Live Fire
-
Dome fire selected: detections, containment, +1/+3/+6h areas
-
12-fire table with the exclusion note
-
Palisades pass 1 (calibration window)
-
Palisades pass 4 (held out)
-
Ignis vs FARSITE-class, growth IoU by pass
-
Camp Fire growth + burn intensity (TigerData)
Inspiration
One of our team members is from California. If you grew up there, you have had the conversation where a phone buzzes with an evacuation order and the first question is not "is there a fire" — it is "which way is it going, and is the road out still the road out."
Public fire maps answer the first question well. CAL FIRE, NIFC and NASA's FIRMS satellite feeds all show where a fire is. None of them tell a resident where it will be in three hours, and none of them route around it. That projection is the part agencies model internally and do not publish. Ignis builds it, using:
- NASA FIRMS (VIIRS/MODIS) for satellite hotspot detections, live and archival
- GOES-ABI geostationary fire pixels for a ~5-minute-old freshness seed
- LANDFIRE fuel, slope and aspect rasters for terrain and fuel behavior
- NOAA HRRR + NWS for live wind, ERA5 reanalysis for historical replay
- NIFC WFIGS for official incident names, acreage, containment and perimeters
- Dijkstra shortest-path over a spread-rate grid for the projection itself
- React + Leaflet for the map front-end
- FastAPI + Python for the back-end, with Claude for the chat agent
Our nested "risk bands" were inspired by hurricane cone-of-uncertainty forecasts — the value is in showing where the threat could reach, not a single false-precision line.
What it Does
Ignis is an AI-assisted wildfire projection and evacuation routing system that:
- Tracks every active fire in the contiguous US in real time from satellite data.
- Projects where each fire will spread in the next 1, 3 and 6 hours.
- Plans evacuation routes that treat the fire and its 1-hour projection as hard exclusions.
- Replays real historical fires — the 2018 Camp Fire and 2025 Palisades Fire — against what actually burned.
How We Built It
- Detection Ingest: Pulled satellite hotspots from NASA FIRMS, clustered a single nationwide query into individual incidents, and joined them to NIFC's official record so a cluster becomes "the Dome fire, 2,384 acres, 15% contained."
- Spread Modeling: Treated fire spread as a shortest-path problem rather than a stepped simulation — Dijkstra over a grid where each cell's cost is its spread rate under local wind, fuel and slope. One pass yields all four time bands, and they nest by construction.
- Freshness Layer: Seeded the model with GOES geostationary imagery alongside polar-orbiting satellites, cutting observation age from nine hours to five minutes.
- Ensemble Consensus: Ran three models with different doctrines (calibrated, protective, skeptical) over the same observations and took the per-cell median as the shipped projection, exposing advisory/majority/confirmed confidence levels.
- Routing: Built road-network routing that excludes burning and soon-to-burn ground, with segment-level exposure scoring so a route is evaluated, not just drawn.
- Validation: Scored the model against real fire footprints and against the FARSITE-class ellipse used by commercial fire tools, on held-out time windows.
Challenges We Ran Into
- Observation Latency: On a live fire, the newest satellite pass was nine hours old and our wind reading was seven hours stale — in that window the wind direction flipped 180°. Staleness, not the physics, was our largest source of error.
- A Validation Harness That Lied: Our scoring code truncated ground truth, silently grading the model against the fire's past. It made us look good for days; the corrected numbers were less flattering, and we published those.
- Fires vs. Farmland: Satellites cannot distinguish a wildfire from a burning field — ranked by heat, the "top twelve fires in the country" came back as eleven crop burns and one actual wildfire.
- Three-Way Parallel Build: Three people building engine, API and front-end simultaneously against a payload shape that had to be frozen before any of it existed.
Accomplishments That We're Proud Of
- Competitive Accuracy: Our model edged the FARSITE-class ellipse that commercial fire tools are built on, on every held-out window of the 2025 Palisades Fire — a hackathon engine landing in the same accuracy band as the standard model.
- The Whole Country in One Query: Modeled every active fire in the contiguous US from a single satellite API call by clustering first and parallelizing the per-fire work.
- Correctness by Construction: Made the nested-polygon guarantee a property of the algorithm rather than a rule teammates had to remember, backed by 200+ offline tests.
- Honest Reporting: Every negative result — including where our added terms did not improve accuracy — is stated in the docs, on the comparison figure, and in the demo.
What We Learned
- Freshness Beats Sophistication: We spent our best modeling hours on refinements worth fractions of a percent while stale data cost us nine hours of fire growth. Measure your error budget before optimizing inside it.
- Calibration Does Not Transfer: A spread rate fitted to one night's wind over-predicts badly when the weather regime shifts — the model must be re-fit per incident, not tuned once.
- Honesty Is a Feature: For a tool people might evacuate by, stating what it cannot do is not a weakness in the pitch. An evacuation tool that oversells its accuracy is worse than one that does not exist.
What's Next for Ignis
- Live Data Integration: Incorporate real road closures, traffic and official evacuation orders — modeled route eligibility is not a certification that a road is safe.
- Per-Incident Calibration: Automatically re-fit spread rates per fire rather than relying on a single global constant.
- Shelter Capacity: Connect to real shelter occupancy and accessibility data instead of a static catalogue.
- Resident Alerts: Push notifications when a projection band reaches a saved address, so the map comes to the user rather than waiting to be opened.
Built With
- anthropic
- claude
- fastapi
- goes
- hrrr
- httpx
- javascript
- landfire
- leaflet.js
- nasa-firms
- networkx
- postgis
- postgresql
- pydantic
- pyproj
- pytest
- python
- rasterio
- react
- react-leaflet
- shapely
- uvicorn
- vite
Log in or sign up for Devpost to join the conversation.