Inspiration
In California, 81% of residents (26M+) live with wildfire risk, and 2025 alone has seen 7,500+ fires that burned ~500,000 acres. In late-night ride-alongs and debriefs with emergency volunteers, one theme kept coming up: incident commanders are forced to stitch together radios, spreadsheets, texts, and maps while the fire grows by the minute. Orion was born to replace that chaos with a single, AI-powered command center—so responders can act faster, smarter, and safer.
What it does
Orion is an AI wildfire operations dashboard that turns raw data into decisions:
- 🗺️ Live 3D Situational Awareness — Real-time fire incidents, wind-aware spread prediction, weather/AQI overlays, and embedded live video on the map.
- 🤖 Autonomous Agents — Background Python + Fetch.ai uAgents monitor incidents, compute risk, and continuously propose optimal routes for responders and evacuations.
- 🗣️ Voice Operations — VAPI-powered hands-free control: “Status of Pine Ridge? Dispatch two teams. Read me wind for the next hour.”
- 🚒 Dynamic Dispatch & Containment — One-click deploy from nearest station, animated units along routes, on-scene detection (Haversine), and visual containment progression.
- 🚨 Multi-Channel Alerts — Telegram/SMS notifications with formatted incident payloads, delivery confirmation, and retry logic.
Outcome: a unified command center that cuts coordination time, reduces guesswork, and helps protect people and property when every second counts.
How we built it
Frontend & UX
- Next.js 16 + React 18 + TypeScript for fast, type-safe UI
- Tailwind + Radix UI + shadcn for accessible, production-ready components
- Mapbox GL JS + react-map-gl for 3D terrain, custom layers, and route rendering
Realtime & Data
- Supabase (Postgres + Realtime) for incidents, firestations, responders; sub-second sync via WebSockets
- Open-Meteo for weather/AQI (no key), Mapbox Directions for routing
AI, Agents & Voice
- Python uAgents (Fetch.ai): monitoring agent (risk scoring, anomaly detection) + route agent
- VAPI (@vapi-ai/web): domain-tuned prompts, low-latency voice queries & responses
Comms & Integrations
- Composio + Telegram Bot API for one-click alerts, message IDs, retries
Fire Spread Modeling
- Custom multi-octave noise + wind vectors to generate organic, non-circular boundaries and time-based growth.
Deployed with Vercel/AWS Amplify; strict ESLint/TypeScript rules, cleanup on unmount, and debounced updates to keep the UI crisp.
Challenges we ran into
- Realistic fire behavior without jank: Getting organic, wind-influenced edges that don’t “flicker” or become perfect circles required multi-octave noise, normalization, and careful animation timing.
- Keeping everything in sync: Incidents, responders, routes, weather panels, and voice state had to update in lock-step. Memory leaks were a risk—solved with disciplined subscription cleanup and state batching.
- Smooth responder movement + arrival detection: Interpolating along polyline routes while computing precise on-scene thresholds (Haversine) and status transitions.
- Voice in crisis contexts: VAPI needed wildfire terminology, context injection (active incidents, weather), and graceful fallback when mic/connection issues occurred.
- Video performance in map popups: Ensured codecs/fallbacks didn’t tank FPS; isolated rendering paths.
Accomplishments that we're proud of
- ✅ A complete, working workflow: detection → analysis → dispatch → alerts → containment visualization.
- ✅ Sub-second realtime across clients with Supabase Realtime—and zero critical leaks.
- ✅ Agent ecosystem that actually runs unattended (monitoring + routing) with actionable recommendations.
- ✅ Voice-first operations that meaningfully reduce clicks in high-stress moments.
- ✅ Designed for scale: 25+ active incidents, many concurrent users, 60 FPS animations on commodity hardware.
What we learned
- Geospatial math is everything: Haversine distance, bearings, and interpolation underpin user trust.
- Realtime demands discipline: WebSocket lifecycles, debouncing, optimistic updates, and teardown patterns are non-negotiable.
- Voice shines when hands are busy: In command roles, conversational ops beat menus—if latency stays <2s and context is accurate.
- Agents ≠ background tasks: Orchestration, retries, and human-in-the-loop UX are product features, not just infra.
What's next for Orion
- 🛰️ NASA FIRMS satellite ingestion for earlier detection
- 📱 Native iOS/Android apps for field teams with offline sync
- 🗺️ Automatic evacuation zone mapping + geofenced public alerts
- ⚡ Predictive resource staging (AI forecasts for pre-positioning crews/equipment)
- 👥 Multi-agency roles & audit trails (CAL FIRE, local, federal)
- 📊 Historical analytics: response times, allocation efficiency, and after-action insights
Orion’s mission: put actionable intelligence in the hands of first responders—when it matters most.
Built With
- amazon-web-services
- clsx
- composio
- date-fns
- eslint
- fetch-ai
- lightning-css
- lucide-react
- mapbox
- mapbox-directions-api
- mapbox-gl-js
- next.js
- open-meteo
- postcss
- postgresql
- python
- radix-ui
- react
- react-hook-form
- react-map-gl
- recharts
- shadcn-ui
- sonner
- supabase
- tailwind-css
- tailwind-merge
- telegram-bot-api
- typescript
- uagents
- vapi
- vaul
- vercel
- voice-ai
- websockets
- zod




Log in or sign up for Devpost to join the conversation.