Back to Projects
FIRE//WATCH hero image 1

The Challenge

Wildfire data in Canada is spread across satellite hotspots, agency fire reports, weather stations, and forecasts. Duty officers and residents have to piece it together themselves to answer simple questions like "how risky is my town this week?" or "where should the next crew go?"

The Solution

Built during the IEEE YP Industry Hackathon 2026 by a team of four, FIRE//WATCH turns open data into one interactive 3D map. Fire danger follows the Canadian Fire Weather Index System, spread uses the Fire Behaviour Prediction System, and a 7-day forecast bar lets users step through each day. Firefly, our AI mascot, answers typed or spoken questions straight from the same data the map shows.

What I Built

1. Firefly: A Voice & Text AI Agent

I built Firefly end to end: an ElevenLabs voice agent and a Databricks-hosted LLM for typed questions, both wired to client-side tools that read and drive the live map. Firefly can brief the situation, check a community's risk over the next 7 days, explain why an area is rated the way it is, fly the camera to a place, and raise proactive alerts when a town enters a projected fire path. Answers are grounded in app state, so the model never guesses at numbers.

2. Projected Fire Spread

I implemented the projected spread layer: an ellipse-based scenario model that grows each active fire with wind and fuel, highlights the reachable hexes for the selected forecast day, and lists the communities in its path.

3. Wind Streamlines & Risk Ranking

I replaced static wind arrows with animated, Windfinder-style streamlines that follow the forecast day and glide smoothly over terraced terrain. I also ranked at-risk communities by the map's risk score and scored each day by its peak so the forecast slider compares like with like.

The Hardest Part: Making the Agent Feel Natural

The Problem

A talking mascot on a live map has many moving parts: voice, speech bubbles, camera flights, loading screens, and side panels all compete for the screen. Early versions greeted users over their first question, flew to a spot without actually answering, and lost the mascot behind other panels.

The Solution

I reworked the conversation flow so every question gets a spoken answer, the speech bubble follows the voice, flights loop once and return home after explaining, and follow-up questions in a conversation route to the agent instead of the rule-based fallback. When neither AI is reachable, the same tools answer directly from app data, so a question never goes unanswered.

Interface Gallery

FIRE//WATCH screenshot 1
FIRE//WATCH screenshot 2

Keep Exploring

FIELD SURVEY v26.10 — MINH TAM NGUYEN

>LOCATING OBSERVER ........................................51.0447°N 114.0719°W

>READING ELEVATION ........................................1,045 M

>RAISING THE ROCKIES ........................................OK

>CALIBRATING INSTRUMENTS ........................................OK

CLICK TO SKIP