The Inspiration
The spark for Fire Alarm came from a grim reality. During the 2020 California fire season, over 4.2 million acres burned—the largest in recorded state history. While researching the technology used by emergency responders, we discovered a critical bottleneck: traditional physics simulators like FARSITE are incredibly accurate but painfully slow. They often take 2 to 6 hours to produce a single forecast.
In a wildfire, a 6-hour delay in an evacuation order isn't just a technical limitation; it's a tragedy. We wanted to see if we could bridge the gap between high-fidelity physics and real-time decision-making using Graph Neural Networks (GNNs).
How We Built It
The core philosophy of Fire Alarm is the Surrogate Model Paradigm: using deep learning to approximate expensive physics simulations.
1. Data Ingestion & Graph Construction
We pulled real-time satellite data from the NASA FIRMS API (VIIRS and MODIS sensors). Because wildfires spread across terrain, a standard grid (like a JPEG) doesn't work well. We modeled the landscape as a graph where each node is a $1\text{ km}^2$ parcel of land and edges represent the physical connectivity between them.
2. The Physics-Informed Engine
To prevent the model from just "guessing" based on historical patterns, we baked the Rothermel Surface Fire Spread Model (1972) into the loss function. This ensures our GNN respects the fundamental laws of thermodynamics and fluid dynamics.
The Tech Stack:
Backend: PyTorch and PyTorch Geometric for the GNN architecture (3-layer GraphSAGE).
Data: Pandas and GeoPandas for coordinate transformations.
Frontend: A Streamlit dashboard with Folium integration to allow "What-If" analysis, letting users change wind speed and direction on the fly.
Challenges We Faced
The biggest hurdle we faced was Geospatial Alignment. Satellite detections use latitude/longitude ($WGS84$), while elevation data often uses different projections. Aligning these to a consistent $1\text{ km}$ graph was a nightmare of coordinate reference system ($CRS$) bugs that ate up nearly 10 hours of the hackathon.
Another challenge was Data Imbalance. Most of the world is not on fire. We had to implement strategic oversampling of active fire nodes to ensure the GNN actually learned the mechanics of spreading rather than just predicting "no fire" for every node.
What We Learned
Beyond the technical gains in GNNs and physics-informed ML, we learned the importance of Domain-Specific Metrics. In most ML projects, you want high accuracy. In wildfire prediction, accuracy matters less than Recall.
During testing, we realized that a $99\%$ accurate model that misses one fire is a failure. We learned to tune the model until we achieved a Recall of $1.0$. This taught us that engineering is not just about the best math; it’s about the context in which that math is applied. Fire Alarm proved that while we can't stop the wind, we can use graph theory to outrun the flames.
Built With
- earthdata
- nasa-firms
- python

Log in or sign up for Devpost to join the conversation.