| title | SpaceATC |
|---|---|
| emoji | 🛰️ |
| colorFrom | blue |
| colorTo | indigo |
| sdk | docker |
| app_port | 7860 |
| pinned | false |
Multi-agent autonomous satellite collision avoidance negotiation system.
🔴 Live demo: https://huggingface.co/spaces/Rishet11/spaceatc
SpaceX launched the Stargaze tracking system on January 29, 2026. It collects 30 million object observations per day across the Starlink fleet, generating Conjunction Data Messages (CDMs) and sending them to operators in minutes instead of hours.
What Stargaze does: Tells two operators "you are going to collide."
What Stargaze does NOT do: Tell them who maneuvers, by how much, or by when.
Two operators receive a CDM simultaneously and independently decide what to do. The uncoordinated handoff is the critical gap in modern spaceflight safety. With a projected 1 million collision avoidance maneuvers per year by 2027, an uncoordinated system invites disaster.
SpaceATC fills the uncoordinated handoff gap with two layers of autonomy:
Layer 1 — Ground Negotiation (multi-agent + HITL). A LangGraph agent system that automatically coordinates maneuver decisions between competing satellite operators. Using true orbital physics (SGP4 and Clohessy-Wiltshire relative-motion equations), independent per-operator agents each propose and score an avoidance burn (delta-V); a coordinator selects the winner on a real cost signal (fuel + maneuver history), not an arbitrary tiebreak. The graph interrupts for Human-In-The-Loop approval and checkpoints its state to SQLite so it survives the pause — genuine agentic orchestration, not a single prompt. A real-time, WebGL 3D globe renders the live constellation and the SGP4-propagated conjunction tracks.
Layer 2 — OrbitMind Onboard Reflex (vision-based proximity operations). A satellite-side perception to decision loop for close-proximity encounters: YOLO26 detects the target and MobileNetV3 regresses its 6-DOF metric pose (via the ESA SPEED+ camera model), feeding an onboard decision engine that classifies the range band deterministically, reasons over a retrieval-grounded evasion playbook (LLM+RAG), and emits a thruster command validated against a deterministic safety envelope so the model never commands thrusters directly. Demonstrated on the ESA SPEED+ Tango spacecraft-proximity benchmark.
┌─────────────────────────────────────────────────────────────┐
│ FRONTEND (React) │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────────────┐ │
│ │ Globe View │ │ Event Feed │ │ HITL Panel │ │
│ │ (Three.js) │ │ (agent log) │ │ (approve/veto) │ │
│ └──────┬───────┘ └──────┬───────┘ └────────┬──────────┘ │
│ └─────────────────┴───────────────────┘ │
│ WebSocket │
└──────────────────────────────┬──────────────────────────────┘
│ ws://localhost:7860/ws
┌──────────────────────────────┴──────────────────────────────┐
│ BACKEND (FastAPI) │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ LangGraph Agent System │ │
│ │ │ │
│ │ ┌──────────────┐ triggers ┌─────────────────┐ │ │
│ │ │ TLE Ingestion│ ──────────► │ Conjunction │ │ │
│ │ │ Agent │ │ Detector Agent │ │ │
│ │ └──────────────┘ └────────┬────────┘ │ │
│ │ │ CDM │ │
│ │ ┌───────────▼───────┐ │ │
│ │ │ Negotiation │ │ │
│ │ │ Coordinator Agent │ │ │
│ │ └───────────┬───────┘ │ │
│ │ ┌──────────────────────┼────────┐ │ │
│ │ │ │ │ │ │
│ │ ┌──────▼──────┐ ┌────────▼──────┐ │ │ │
│ │ │ Operator A │ │ Operator B │ │ │ │
│ │ │ Agent │ │ Agent │ │ │ │
│ │ │ (bid: dV_A) │ │ (bid: dV_B) │ │ │ │
│ │ └──────┬──────┘ └───────────────┘ │ │ │
│ │ │ winner determined │ │ │
│ │ ┌──────▼──────┐ │ │ │
│ │ │ HITL Node │ ◄─── human approval │ │ │
│ │ │ (approve/ │ │ │ │
│ │ │ veto) │ │ │ │
│ │ └──────┬──────┘ │ │ │
│ │ │ │ │ │
│ │ ┌──────▼──────┐ │ │ │
│ │ │ Maneuver │ │ │ │
│ │ │ Executor │ │ │ │
│ │ └─────────────┘ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ CelesTrak │ │ Orbital │ │ SQLite State │ │
│ │ Data Client │ │ Engine │ │ Store │ │
│ │ (httpx) │ │ (sgp4) │ │ (aiosqlite) │ │
│ └───────────────┘ └──────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────┘
- Python 3.11+
- FastAPI 0.111+ (REST API + WebSocket server)
- LangGraph 1.x (Multi-agent orchestration + interrupt/checkpoint)
- sgp4 2.23+ (Orbital propagation - Brandon Rhodes)
- numpy & scipy (Vector math & bounded optimization)
- Groq (
openai/gpt-oss-120b, agent reasoning, behind a deterministic guardrail) - SQLite / aiosqlite (State persistence + LangGraph checkpoints)
- PyTorch + Ultralytics YOLO26 (target detection, ESA SPEED+ Tango)
- MobileNetV3 (6-DOF pose estimation head)
- OpenCV (PnP pose solve + frame pipeline)
- React 18+ (via Vite for fast HMR)
- Three.js & @react-three/fiber (3D globe rendering)
- satellite.js (SGP4 propagation in browser)
- TailwindCSS & Zustand (Styling & optimized state management)
git clone <repo>
cd spaceatc/backend
pip install -r requirements.txt
cp ../.env.example ../.env
# IMPORTANT: Add your GROQ_API_KEY to .env before starting
uvicorn main:app --reload --port 7860cd spaceatc/frontend
npm install
npm run dev
# Open http://localhost:5173# With both servers running, trigger the demo injection:
curl -X POST http://localhost:7860/api/demo/inject
# The globe will auto-zoom to the conjunction.
# Click APPROVE in the browser when the HITL panel appears to execute the maneuver.- RL-based bid optimization: Move beyond deterministic equations to train Reinforcement Learning models for multi-objective optimization (fuel vs risk).
- OrbitMind on real hardware: Port the onboard reflex (currently demonstrated on SPEED+ benchmark imagery) to an ARM64 flight-compute target (<6 GB), with the deterministic guardrail as the flight-safety boundary.
- Multi-operator trust framework: Cryptographic signing of negotiation bids and maneuver commitments.
- Integration with LeoLabs: Plugging directly into commercial tracking radar feeds.
ClauseZero | FAR AWAY 2026
Track: Space & Aerospace + Agentic & Autonomous Systems