Ember

Inspiration

In early 2025, I lost a family member in the Los Angeles wildfires. That January, fires tore through neighborhoods across LA, and it changed how I saw this problem. In the United States, wildfires burn an average of about 7 million acres every year (NIFC), and yet when a fire is closing in, most people still cannot easily see where it is headed or which way is safe to go. So much of that life-or-death information stays locked in numbers and reports instead of being something you can take in at a glance. That frustrated me, so I combined my interest in mathematics and fire science with 3D mapping to turn a wildfire, and the decision of where to run, into something you can actually see.

What it does

Ember is a tool for seeing where a wildfire is headed and figuring out which way to run. It does two things, and it demonstrates them end to end on a real fire.

First, it models how a wildfire spreads from the actual physics. A from-scratch simulation solves Rothermel's 1972 rate-of-spread equation cell by cell, driven by wind, slope, and fuel, and it grows a fire across 3D terrain in real time. You can shift the wind or the fuel moisture and watch the prediction reorganize, and because there is no recorded answer key, the path the fire takes emerges entirely from the equations.

Second, it turns the moment a fire is closing in into a route out. Its one-button Help flow finds your location, asks what you have to travel with, whether that is a car, a bike, on foot, or mobility-limited, and then gives plain-language, turn-by-turn directions along real roads to a safe zone. It re-checks that route against the modeled fire the whole way, and it refuses to send you across the fire or back into its path.

To show the whole experience on something real, Ember reconstructs a recent wildfire, the Kenneth Fire of January 9, 2025 in West Hills, Los Angeles, in interactive 3D on Google's photorealistic terrain, and plays its spread on a scrubbable timeline. From the active front it draws the fastest advancing paths and reports the forces behind them: wind, slope, fuel, and the way canyons channel a fire. All of it is clearly labeled as a reconstruction and a model, not a live forecast or official emergency guidance.

How we built it

Ember is a React, TypeScript, and Vite app built on the Google Maps Platform, using the photorealistic 3D maps3d library for terrain and the Directions service for roads. It has two parts that share the same fire science.

The first is a standalone spread simulation that implements that science directly. It solves Rothermel's 1972 rate-of-spread equation for each cell of a synthetic landscape, working out the heat the fire releases and the heat the next patch of fuel needs before it can ignite, then adding the wind and slope factors that speed a fire up. The fire spreads outward by minimum travel time, a Dijkstra-style sweep in the spirit of FARSITE (Finney, 1998 and 2002), with directional, elliptical growth whose shape comes from the effective wind. A live panel re-solves the equation as the fire moves, so every term is visible as it changes.

The second part is the Kenneth Fire reconstruction. It builds on the same foundations, Rothermel's rate-of-spread model and the FARSITE approach, where wind, slope, and fuel drive the spread. Under the hood it computes a minimum-travel-time arrival field with anisotropic, wind- and slope-driven local spread, and then animates the perimeter between historical stages using a custom technique in this project, the frontier-warp, which advances each point of the front at its own model-derived rate. That lets the fire grow realistic fingers while still landing exactly on the recorded perimeter. The incident facts come from CAL FIRE and LAFD reports and from NASA FIRMS thermal data.

Challenges we ran into

The hardest problem was making the fire grow believably. A naive model produces a smooth, obviously fake oval, but a real fire pushes fingers up slopes and down canyons, so a lot of the work went into the frontier-warp, getting the front to grow irregular, terrain-driven shapes while still matching the historical perimeter at every stage.

Testing the rescue flow surfaced two real bugs. On sparse stretches of road the simulated person would oscillate in place, and in one test the fire literally caught up to them. I fixed that by moving the person along the route by arc length instead of snapping to the nearest vertex. The route scorer had its own problem: at first it preferred a path that fled downwind, straight into the path of the fire's head, until I added a penalty for escaping downwind.

On top of all that, getting photorealistic 3D, the fire overlay, and live route-scoring to coexist behind an API key with billing took real effort to pull together.

Accomplishments that we're proud of

As a high schooler working solo, I am proud that Ember actually models fire from the real equations and runs end to end, from watching a fire spread to handing back a usable, plain-language escape route. I am proud of the frontier-warp, the part of the model that is specific to this project, which makes the front advance realistically while staying true to the recorded perimeter. And I am proud that the rescue flow is honest: it scores routes against the fire and tells you when there is no safe way out instead of inventing one, and the whole thing rests on the real foundations of fire science rather than hand-waved physics.

What we learned

I learned a real amount of fire science, including Rothermel's spread equation, how FARSITE grows a perimeter, and how wind, slope, and fuel actually drive a fire. I learned the computer science underneath it too: graph search and minimum-travel-time methods, pulling contours out of a grid with marching squares, and smoothing those curves. I learned to work with 3D web mapping and real geospatial data. I put real effort into being able to explain every part of how Ember works, not just run it.

What's next for Ember

Next I want to replace the approximated elevation with real digital-elevation data, and connect Ember to live fire feeds like NASA FIRMS so it can reconstruct and model active fires, not just past ones. I want to bring in real evacuation-zone and shelter data and official alerts so the routing reflects ground truth, validate the spread model against more historical fires to calibrate it, and tune the whole experience for mobile so someone could pull it up in the middle of an actual emergency.

Built With

Share this project:

Updates

Submission history