Inspiration

Wildfire initial attack is a clock. In the first 0–3 hours, incident commanders are forced to make high-stakes calls with incomplete information: Where will the fire go next? Which community is at risk first? Do we need evacuation warnings? What resources do we request now?

We built Flashpoint around a simple product promise:

“3 decisions in 10 seconds.”
A decision-support prototype that turns messy live signals into clear, explainable next steps for the initial attack window.


What it does

Flashpoint is a specialized Incident Commander decision support system for the 0–3 hour initial attack phase.

It combines:

  • Live incident detection from NASA FIRMS (satellite hotspots) → clustered into fire “incidents”
  • Operational context from weather + NWS alerts (+ optional CAL FIRE / perimeters)
  • Physics-inspired spread envelopes (1h / 2h / 3h) with wind direction + optional wind shift
  • Three ranked Action Cards (Evacuation / Resources / Tactics) with “Why” bullets + confidence
  • A specialized chatbot (centerpiece) that is:
    • Incident-aware (always operates on the selected incident)
    • Tool-grounded (must cite tool outputs like [tool:get_weather])
    • Doctrine-backed (RAG retrieval from IRPG/FOG/ICO/10&18 Watchouts like [KB:irpg#12])
    • Structured for IC workflows: decision, evidence, actions_0_3h, uncertainties
    • Resilient: deterministic fallback still works if AI is unavailable

How we built it

Live fire detection (Live Mode)

  • NASA FIRMS hotspots (VIIRS) → parsed from CSV → clustered with DBSCAN-style clustering into “fire events”
  • For top incidents we enrich with:
    • Open-Meteo weather (wind/humidity/temp)
    • NWS alerts (e.g., Red Flag Warnings)
    • Optional: CAL FIRE incident pages + ArcGIS perimeters

API: /api/fires/live

Spread modeling (0–3h)

We implemented an explainable spread model (not a black box). The spread rate is:

[ \text{rate} = \text{baseRate} \times \text{windFactor} \times \text{humidityFactor} \times \text{fuelFactor} ]

Then we generate cone/ellipse polygons oriented by wind direction for 1h / 2h / 3h envelopes, with support for wind shift scenarios.

API: /api/spread

Action Cards (recommendations)

We generate three action categories:

  • Evacuation
  • Resources
  • Tactics

Cards are ranked using a multi-factor score (risk + time-to-impact + proximity to assets/communities + operational constraints) and always include explainable “Why” bullets.

API: /api/recommendations

Specialized chatbot (tool-use + doctrine grounding)

The chatbot is not a generic wrapper. It uses:

  • Preflight automation: if context is missing, it auto-runs get_weather → compute_spread → get_action_cards
  • Tool grounding: facts must cite tool outputs like [tool:compute_spread]
  • RAG doctrine: retrieves relevant sections from IRPG/FOG/ICO/Watchouts and cites them [KB:...]
  • Safety guardrails: decision support language (recommendations + triggers), not dispatch
  • Deterministic fallback when AI is unavailable

API: /api/chat, /api/kb/search


Challenges we faced

  • Real-time data is messy: FIRMS hotspots are detections, not perimeters — clustering and prioritization mattered a lot.
  • Latency and reliability: we added caching (FIRMS TTL, NWS TTL) and made the system degrade gracefully.
  • Hallucinations: we implemented server-side validation so ungrounded claims are filtered unless supported by tools / KB snippets.
  • Integration complexity: maps, GPU layers, geospatial math, and tool orchestration had to stay fast and explainable.

What we learned

  • A good safety-critical assistant is less about “smart words” and more about grounded computation + evidence + workflow fit.
  • Explainability (risk breakdown + citations) makes recommendations more usable than raw predictions.
  • A robust demo needs graceful failure modes — deterministic cards + briefs still deliver value.

What’s next

  • Time-slider spread timeline (15-min steps to 3 hours) with “likely vs worst-case” envelopes
  • Better operational overlays: roads, communities, critical infrastructure
  • Stronger historical learning using curated incident reviews + structured outcomes
  • Field usability: mobile-friendly briefing export + offline mode

Safety note

Flashpoint is a hackathon decision-support prototype designed for training and situational awareness. Real wildfire response should follow official procedures and command structures.

Built With

Share this project:

Updates