Inspiration

Wildfires move faster than most warning systems can react. Satellite fire-detection data and weather data both exist publicly, but they live in separate places, in raw formats non-experts can't easily interpret. We wanted to fuse them into something a firefighter, land manager, or curious resident could actually use in the moment — not a research paper, a live dashboard.

What it does

PyroWatch pulls near-real-time active fire detections from NASA FIRMS (VIIRS, MODIS, and Landsat satellites), enriches each detection with live Open-Meteo weather data, and runs it through the Fosberg Fire Weather Index to score fire-spread risk from Low to Extreme. Users can browse hotspots on an interactive map, drill into the physics behind any single detection, view an hourly fire-weather forecast, and even click anywhere on the map to run a "What-If" ignition simulation using live local conditions.

How we built it

The frontend is React + TypeScript on Vite, styled with Tailwind and mapped with Leaflet. A Netlify serverless function proxies calls to the NASA FIRMS API so API keys never touch the browser, with a CORS-relay fallback so the app still works on plain static hosting with no backend at all. The risk engine implements the Fosberg (1978) equilibrium moisture content and fuel-damping equations from scratch in TypeScript, converting temperature, humidity, and wind into a single actionable score.

Challenges we ran into

NASA's FIRMS API doesn't send CORS headers, which breaks direct browser calls the moment there's no backend to proxy through — we had to build a dual-path architecture that automatically detects whether a serverless proxy is available and falls back gracefully. Getting the Fosberg index numerically correct (and matching published reference tables) also took careful tuning of the moisture-content piecewise formula.

Accomplishments that we're proud of

Getting a real, published fire-weather model running client-side with live satellite and weather data — not mocked, not simulated — and having it degrade gracefully to pure static hosting with zero configuration.

What we learned

How much of "real-time" public data infrastructure (NASA, NOAA feeds) still assumes a server-side consumer, and how much design work goes into making that same data safely and reliably reachable straight from a browser.

What's next for PyroWatch

Historical trend overlays, push/SMS alerting for user-defined regions, and expanding the risk model beyond FFWI toward a fused index that also factors in fuel type and terrain slope.

Built With

Share this project:

Updates

Submission history