AI-assisted disaster response coordination. Ingests drone damage assessments and rescue team voice reports, maintains a live situational model via multi-agent LLM orchestration (Nemotron-550B), and assigns optimal tasks to field teams.
- CV Layer (jacob_dev) processes drone imagery → structured damage assessments
- Agentic Layer (this repo) ingests assessments + voice reports via Gradium STT, runs multi-agent orchestration through Crusoe Managed Inference (Nemotron), computes optimal routes, and dispatches per-team instructions to the dashboard
- Frontend displays live map, sector status, and team chat interfaces
From the repo root:
# Backend
uv sync
uv run uvicorn backend.app.main:app --host 127.0.0.1 --port 8000
# Frontend (separate terminal)
cd frontend
npm run dev -- --host 127.0.0.1 --port 5173Open http://127.0.0.1:5173. Add ?scenario=boca_grande for alternate
scenario.
The dashboard uses the configured default scenario, fort_myers_beach.
Optional Boca Grande APIs are available with ?scenario=boca_grande.
Copy .env.example to .env and fill in your API keys:
CRUSOE_API_KEY— Crusoe Managed InferenceGRADIUM_API_KEY— Gradium Speech-to-TextSUPABASE_*— Supabase
Use .env.example for backend/server environment names and
frontend/.env.example for the browser-exposed frontend environment.
Do not put server secrets in frontend env files; frontend builds should
only receive VITE_* variables.
For local frontend development, set:
VITE_API_BASE_URL=http://localhost:8000With the backend running, run the API-only smoke check:
.\.venv\Scripts\python.exe scripts\smoke_demo.py --api-base-url http://localhost:8000Default smoke mode posts a temporary visible smoke unit through the backend event API. For a non-mutating reachability check, run:
.\.venv\Scripts\python.exe scripts\smoke_demo.py --read-only --api-base-url http://localhost:8000See PLAN.md for the full implementation roadmap.