Skip to content

vidigoat/skyshield-ai

Repository files navigation

SkyShield AI

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.

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.


Headline numbers (real-data benchmark, May 2026)

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.


What's genuinely new about SkyShield

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:

  1. AI agent layer — anyone asks satellite questions in plain English. The agent plans, calls physics tools, returns verified answers. (skyshield/agent/)
  2. TraCSS-validated correctness — 100% pair recall against the official US government answer key. (skyshield/eval/)
  3. Vectorized swept-volume screener — catches the fast-flyby conjunctions that discrete sampling misses. (skyshield/screen/vector_screen.py)
  4. Live conjunction stream — public WebSocket alert feed, free, no login. Open analog of SpaceX Stargaze. (skyshield/server/live_stream.py, /ws/live)
  5. 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)
  6. 3D globe + chat UI — two-tab Next.js app with live tool-call streaming. (frontend/)

Architecture

┌────────────────────────────────────────────────────────────────────┐
│  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.


Install

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 install

Quick start

Backend:

# 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.csv

Frontend:

cd frontend
npm run dev   # http://localhost:3000

Cloud:

# Backend on Modal (handles cold-start, persistent secrets, optional GPU)
uv run modal deploy modal_app.py

# Frontend on Vercel
cd frontend && vercel

Datasets

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

References


License

MIT — see LICENSE.

About

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.

About

Open AI agent for satellite safety. Verified physics, plain English. Built solo at 14.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors