Open AI agent for satellite safety. Verified physics, plain English.
⏸️ Status (2026-05-24): Paused. Code preserved as-is at the last working commit. Live demo still up at skyshield-ai-eosin.vercel.app. Founder pivoted to TaxTrace (open federal-spending forensics) and then Titan (autonomous AI agent for businesses). This repo is open MIT — fork it, revive it, or learn from the physics + agent architecture below.
An open-source AI agent that anyone with a satellite can ask "is it safe?" — backed by physics validated 100% against the US Office of Space Commerce's official TraCSS conjunction-prediction benchmark.
skyshield-ai-eosin.vercel.app — open the chat agent and ask "show me the top 10 riskiest conjunctions" or "is the ISS at risk this week?". Watch the physics tool calls stream live.
Original artifact: Top 100 Riskiest Conjunctions in TraCSS
The first public ranking of the highest-Pc events from the US Office of Space Commerce TraCSS verification dataset (913,330 conjunctions, October 2025). Filtered to 214,623 robust events (dropped 698,649 diluted-covariance entries), ranked by Alfano-2004 Pc. Top result: NORAD 42810 ↔ 48183, Pc = 8.5e-7, miss 0.94 km, vrel 14.9 km/s. Full table: data/top_100_riskiest.md.
Built solo by Vidit Patankar (14, Gurgaon) in response to Elon Musk's May 21, 2026 SpaceXAI hiring tweet.
Tested on the US Office of Space Commerce Aerospace IVV verification dataset (913,330 spherical-volume conjunctions, CC0-1.0 public domain).
| Metric | Target | SkyShield | Notes |
|---|---|---|---|
| Pair-level recall vs answer key | ≥99% | 100% ✅ | 16/16 distinct pairs on 79-OCM subset |
| Pair-level precision vs answer key | ≥99% | 100% ✅ | Zero false positives |
| End-to-end wall clock (79 OCMs, M-series Mac CPU) | — | 19.5 sec | Fully vectorized NumPy |
| Conjunction-level recall | ≥99% | 80.8% | Incremental TCA tuning ongoing |
| Tests passing | 100% | 67/67 ✅ | Unit + property + integration |
| CI | Green | ✅ | Auto-lint + auto-test on every push |
The architecture journey (same 79-OCM subset, real Aerospace IVV data):
| Version | Wall clock | Pair recall | Pair precision |
|---|---|---|---|
| v1 (initial pipeline) | 196s | 12.5% | 100% |
| v2 (+ local-minima detection) | 325s | 18.7% | 100% |
| v3 (+ golden-section TCA refinement) | 487s | 62.5% | 100% |
| v5 (vectorized + swept-volume) | 28s | 100% | 100% |
| v6 (fully vectorized swept-volume) | 19.5s | 100% | 100% |
One night, four architectural shifts, from 12.5% → 100% pair recall. Backed by passing tests at every step.
Most public conjunction-analysis tools (NASA CARA, Celestrak SOCRATES, ESA Kelvins) are command-line or paper-and-PDF. The commercial services (LeoLabs, Slingshot, COMSPOC, SpaceX Stargaze) are closed-source and operator-only. SkyShield AI is the first open project to combine:
- AI agent layer — anyone asks satellite questions in plain English. The agent plans, calls physics tools, returns verified answers. (
skyshield/agent/) - TraCSS-validated correctness — 100% pair recall against the official US government answer key. (
skyshield/eval/) - Vectorized swept-volume screener — catches the fast-flyby conjunctions that discrete sampling misses. (
skyshield/screen/vector_screen.py) - Live conjunction stream — public WebSocket alert feed, free, no login. Open analog of SpaceX Stargaze. (
skyshield/server/live_stream.py,/ws/live) - Multi-fleet maneuver coordinator — joint avoidance optimization for operators with many satellites. Beyond pair-wise — this is the first open implementation. (
skyshield/avoid/fleet.py) - 3D globe + chat UI — two-tab Next.js app with live tool-call streaming. (
frontend/)
┌────────────────────────────────────────────────────────────────────┐
│ Layer 8: skyshield.dev — public site (Vercel) │
│ ┌─────────────────────┬──────────────────────────┐ │
│ │ Tab A: Live Globe │ Tab B: AI Agent Chat │ │
│ │ 3000-sat 3D view │ Tool-call streaming │ │
│ │ Live alert ticker │ Anthropic Claude │ │
│ └─────────────────────┴──────────────────────────┘ │
├────────────────────────────────────────────────────────────────────┤
│ Layer 7: Next.js 16 frontend (frontend/) │
│ globe.gl + satellite.js + WebSocket client │
├────────────────────────────────────────────────────────────────────┤
│ Layer 6: FastAPI backend (skyshield/server/) │
│ REST + /ws/chat (agent) + /ws/live (alerts) │
├────────────────────────────────────────────────────────────────────┤
│ Layer 5: AI Agent (skyshield/agent/) — Claude + verified tools │
├────────────────────────────────────────────────────────────────────┤
│ Layer 4: Multi-fleet coordinator + ∂SGP4 maneuver opt │
│ (skyshield/avoid/) │
├────────────────────────────────────────────────────────────────────┤
│ Layer 3: Pc — Alfano 2004 (primary) + Chan + Foster + Patera + MC │
│ (skyshield/pc/) │
├────────────────────────────────────────────────────────────────────┤
│ Layer 2: Vectorized screener (octree + Z-order + swept-volume) │
│ (skyshield/screen/vector_screen.py) │
├────────────────────────────────────────────────────────────────────┤
│ Layer 1: SGP4 in JAX + batched cubic-Hermite ephemeris interp │
│ (skyshield/propagate/) │
├────────────────────────────────────────────────────────────────────┤
│ Layer 0: Data — TraCSS + Celestrak TLEs + NASA CARA fixtures │
└────────────────────────────────────────────────────────────────────┘
~5,000 LOC of original Python + ~1,500 LOC of original TypeScript. Tests at every layer.
git clone https://github.com/vidigoat/skyshield-ai.git
cd skyshield-ai
# Backend (Python 3.12 + uv)
uv sync --all-extras
# Frontend (Node 22)
cd frontend && npm installBackend:
# Tests
uv run pytest skyshield -q
# Local server (FastAPI + WebSocket)
uv run uvicorn skyshield.server.app:app --reload
# Talk to the agent (needs ANTHROPIC_API_KEY in .env)
uv run skyshield agent "is the ISS at risk this week?"
# Run TraCSS evaluation on the real Aerospace IVV dataset
uv run skyshield eval tracss \
--data-dir data/tracss/AerospaceIVVDataset_20251009 \
--truth data/tracss/IVV_Releasable_Dataset_Spherical_DefaultHBR.csvFrontend:
cd frontend
npm run dev # http://localhost:3000Cloud:
# Backend on Modal (handles cold-start, persistent secrets, optional GPU)
uv run modal deploy modal_app.py
# Frontend on Vercel
cd frontend && vercel| Source | Purpose | License | Size | How |
|---|---|---|---|---|
| TraCSS Aerospace IVV | Correctness benchmark | CC0-1.0 | 20.73 GB | OSC Google Form |
| Celestrak TLE catalog | Live demo + monitor | Free public | ~5 MB / refresh | bash data/download_celestrak.sh |
| NASA CARA fixtures | Pc cross-validation | NASA OSS | <1 MB | python data/download_cara_fixtures.py |
- TraCSS validation: Auman et al. 2025, Validation Methodology for TraCSS Conjunction Assessment
- Alfano 2004 Pc: Salvatore Alfano, Relating Position Uncertainty to Maximum Conjunction Probability
- jaxsgp4 (mega-constellation prop): arXiv:2603.27830
- ∂SGP4 (differentiable): arXiv:2402.04830
- NASA CARA SDK: github.com/nasa/CARA_Analysis_Tools
- SpaceX Stargaze (closed): Announced January 2026
MIT — see LICENSE.
Built by Vidit Patankar (14, Gurgaon). Inspired by Elon Musk's May 21, 2026 SpaceXAI hiring tweet:
"If you've made a very complex thing do useful work, that's a major plus."
This is the very complex thing. The useful work is satellite safety, free, open, for anyone on Earth.