YOU CAN VISIT THE REAL-TIME TRACKER HERE: https://stormpulse-frontend.onrender.com

Open-source tornado damage mapping platform. Ingests NOAA/NWS public data and generates probable damage corridors for emergency responders.
If you find StormPulse useful or even interesting, consider supporting development on Ko-fi.
StormPulse is built independeltly using publicly available NOAA/NWS data with the goal of making severe weather information even more accessible and transparent.
☕ Support the project on Ko-fi: https://ko-fi.com/majorstem
docker compose up --buildMap at http://localhost:3000 · API docs at http://localhost:8000/docs (see docs/DEPLOYMENT.md).
cd backend
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
cp .env.example .env
python run.pyBackend runs at http://localhost:8000 — API docs at http://localhost:8000/docs
cd frontend
npm install
npm run devFrontend runs at http://localhost:3000
All data routes live under /api/v1 and require a client API key:
curl -H "Authorization: Bearer stormpulse-demo-key" \
"http://localhost:8000/api/v1/corridors?hours=48"- Protected routes return 401 without a valid key;
/api/v1/healthis intentionally public. - Per-client rate limiting returns 429 on abuse.
- Every payload carries
stale/data_as_offreshness meta; inferred (T3) corridors carry an explicitdisclaimerfield. - Issue real client keys via the
API_KEYSenvironment variable (docs/DEPLOYMENT.md).
- NWS Alerts API — api.weather.gov (free, no key required)
- NWS LSR ArcGIS — services9.arcgis.com/RHVPKKiFTONKtxq3 (free, no key required)
No API keys needed for the MVP.
- Backend: Python FastAPI + PostgreSQL (SQLite for dev) + APScheduler + Shapely
- Frontend: Next.js 14 + TypeScript + MapLibre GL + Tailwind
- Ingestion: Polls NWS every 5 minutes (configurable)
- Corridor Engine v2: Motion-aware track reconstruction + weighted confidence scoring
Full documentation:
- docs/ARCHITECTURE.md — system architecture and data flow
- docs/CONFIDENCE_SCORING.md — weighted T1/T2/T3 methodology (validated 20/20 on historical events)
- docs/OWASP_API_CHECKLIST.md — API security review
- docs/NIST-800-53-MAPPING.md — security control mapping
- docs/DEPLOYMENT.md — Docker + Render deployment
- docs/ACCEPTANCE_CHECKLIST.md — requirements → evidence
| Tier | Label | Source |
|---|---|---|
| T1 | Official Confirmed | NWS damage survey or confirmed tornado LSR |
| T2 | Official Near-Real-Time | Active NWS alert or unconfirmed LSR |
| T3 | Inferred | System-generated corridor estimate (always carries a disclaimer) |
Tier assignment is a deterministic weighted model — see docs/CONFIDENCE_SCORING.md.
Inferred corridors are system-generated probable damage estimates. They are NOT official NWS damage surveys. Always follow official emergency guidance.
AGPLv3