FirstStrike
A small step toward helping first responders act with clarity when it matters most.
Inspiration
While exploring Google's FireSat system and its incredible wildfire boundary detection capabilities, I kept coming back to one question:
“Once a fire is detected, what happens next?”
Wildfires move fast. And for incident commanders, the hardest part isn’t always knowing where the fire is. It’s knowing what to do. Limited resources, conflicting priorities, and constantly shifting conditions make every decision high-stakes.
I built FirstStrike as a humble attempt to fill that gap: a decision-support layer that sits on top of existing detection systems like FireSat, helping first responders act quickly, clearly, and confidently. Not to replace human judgment, but to offer helpful context when it matters most.
What it does
FirstStrike is a multi-agent AI command center designed for wildfire scenarios. It helps emergency teams:
- Analyze active incidents
- Understand risks (like wind, terrain, and accessibility)
- Allocate resources (fire engines, drones, helicopters)
- Receive actionable, grounded recommendations
- Visualize fire zones and units on a live map
- Listen to spoken tactical briefings for hands-free operation
It combines visual, textual, and audio outputs to create shared situational awareness across teams.
How I built it
I built FirstStrike with:
- Frontend: React, TypeScript, Vite
- Mapping: Leaflet (for simplicity and cost-free mapping)
- AI Backend: Gemini 2.5 Flash for multi-agent orchestration
- Multimodal Features:
- Google Maps & Search grounding for real-world context
- Imagen 3 for satellite-style visuals
- Gemini TTS for spoken briefings
- Google Maps & Search grounding for real-world context
- Mock data for incidents and resources, with future plans to integrate live CAL FIRE and NOAA APIs
One of my favorite pieces was building prompt-based orchestration. Gemini acts as a planner, risk evaluator, and logistics lead all within a single API call.
Challenges I ran into
- Quota limits: I hit Gemini API caps often. This forced me to design for graceful degradation, showing fallback messages and alternatives.
- Audio mismatches: TTS output at 24kHz led to “chipmunk voice” bugs until I fixed the sample rate.
- Partial or inconsistent JSON: LLM responses weren’t always structured. I had to build regex-based extractors and fallbacks to parse responses safely.
Each challenge reminded me that building for crisis scenarios requires not just good UX, but resilient systems.
Accomplishments that I'm proud of
- Simulating multi-agent decision-making through a single LLM prompt
- Generating contextual recommendations grounded in real-time maps and search data
- Delivering audio briefings for eyes-free coordination
- Creating a live map interface with real incidents, resource overlays, and routing
- Designing a calm, honest UI that never hides failures and just shows the next step
I'm proud that even as a prototype, FirstStrike feels like something someone could use. That means a lot to me.
What I learned
- Prompt engineering can simulate complex systems without the need for separate microservices
- Grounding is key - without it, AI feels vague. With it, AI becomes trustworthy.
- Human-centered design means designing for failure too, especially in high-stress environments.
- LLMs are more than text generators - they can reason, adapt, and explain trade-offs in ways that support human judgment.
- And finally, I learned that even small tools can make a difference, especially if they’re built with care.
What’s next for FirstStrike
I see FirstStrike as just the beginning.
Short-term goals:
- Replace mock data with live incident and weather APIs (CAL FIRE, NOAA)
- Add GPS-based unit tracking and movement visualization
- Let Gemini analyze patterns from past wildfires to inform future decisions
Long-term vision:
- Predict fire spread using wind, terrain, and vegetation models (e.g., PINNs)
- Integrate with first responder dashboards and radios
- Offer a self-hosted open-source version for fire departments with limited tech infrastructure
I built this with humility but also with hope.
Because the sooner we can turn detection into action, the more lives we can help protect.
Built With
- 3
- api
- audio
- css3
- flash
- gemini
- gemini-tts-|-leaflet.js
- google-code-search
- google-maps
- google-maps-grounding
- google-search-grounding
- gps
- html5
- imagen
- imagen-3
- leaflet.js
- lucide-react
- react-19
- tailwind-css
- typescript
- vite-|-gemini-2.5-flash-api
- web
Log in or sign up for Devpost to join the conversation.