Real-time space situational awareness powered by free public APIs, compound risk scoring, and LLM-generated mission briefs.
Orbit Sentinel fuses data from NOAA SWPC, NASA DONKI, CelesTrak, and NASA NeoWs into a 0-100 risk score using a multi-signal fusion engine with compound synergy rules. An LLM reasoning layer (Claude Sonnet) generates structured GO / CAUTION / NO-GO mission briefs when risk levels change. A 3D globe dashboard renders satellite positions in real-time with risk overlays.
- Multi-source data fusion with compound synergy scoring (not just additive signal stacking)
- Real-time 3D globe visualization of satellite positions via react-globe.gl
- WebSocket-driven alerts when risk levels change
- LLM-generated mission briefs with threat analysis and maneuver recommendations
- Graceful degradation when external APIs or the Claude API key are unavailable
Agent (:3002) ──POST──► Gateway (:3001) ──Socket.io──► React Frontend
│ │
├── Cron pollers ├── REST API (/api/*)
│ (SWPC, DONKI, ├── SGP4 satellite propagation
│ NeoWs, EONET) └── WebSocket hub
├── Risk fusion engine
├── Claude LLM briefs
└── Push to gateway
# Install dependencies
npm install
# Configure environment
cp .env.example .env
# Edit .env: add NASA_API_KEY (free at api.nasa.gov)
# add ANTHROPIC_API_KEY (optional, for LLM briefs)
# Start services (three terminals)
cd packages/agent && npm run dev # Agent on :3002
cd packages/gateway && npm run dev # Gateway on :3001
cd packages/frontend && npm run dev # Frontend on :5173No database, no Docker, no Redis — all data is cached in-memory from live free APIs.
The risk engine uses NOAA's established thresholds with compound synergy bonuses:
| Level | Score | Example Triggers |
|---|---|---|
| LOW | 0-19 | Nominal conditions |
| MODERATE | 20-39 | C-class flare + elevated solar wind |
| HIGH | 40-69 | M5+ flare + Kp >= 5 (compound synergy bonus) |
| CRITICAL | 70-100 | X-class flare + G3+ storm + radiation storm |
Compound synergy rules recognize that coincident events are more dangerous than their sum — e.g., M5+ flare AND Kp >= 5 triggers a +15 bonus for CME-driven storm confirmation.
| Layer | Technologies |
|---|---|
| Runtime | Node.js 20+, TypeScript (strict mode) |
| Backend | Express, node-cron, node-cache, satellite.js, Socket.io |
| Frontend | React 18, react-globe.gl, Three.js, Socket.io-client |
| LLM | Claude Sonnet via Anthropic SDK (optional — deterministic fallback) |
| Data sources | NOAA SWPC, NASA DONKI, NASA NeoWs, NASA EONET, CelesTrak |
| Document | Purpose |
|---|---|
| PROJECT_OVERVIEW | Mission, vision, personas, competitive positioning, roadmap |
| PROJECT_EVALUATION | 12-dimension self-assessment with scores and evidence |
| ARCHITECTURE | System design, data flow, design decisions, scaling |
| Document | Purpose |
|---|---|
| API_REFERENCE | Endpoint schemas, data models, Socket.io events |
| TECH_STACK | Dependencies, versions, infrastructure decisions |
| CONVENTIONS | Code patterns, naming, TypeScript rules |
| GOTCHAS | Non-obvious API behaviors and pitfalls |
| Document | Purpose |
|---|---|
| DEVELOPMENT | Setup, commands, debugging |
| DEPLOYMENT | Sprint plan, CI/CD, demo preparation |
| TESTING | Test strategy and structure |
| SECURITY | Auth boundaries, OWASP mitigations |
| Document | Purpose |
|---|---|
| VOICE_ALERT_SYSTEM | ElevenLabs + Twilio phone call alerts |
| PER_SATELLITE_RISK | Orbital context-aware per-satellite risk scoring |
Built as a 6-hour sprint MVP demonstrating that a credible SSA tool can be constructed from free public APIs. The compound synergy rules and LLM-generated structured mission briefs are the primary differentiators from tools that either display raw data without synthesis (NOAA SWPC, NASA DONKI) or require expensive enterprise subscriptions (LeoLabs, AGI/Ansys STK).