Inspiration
ESA’s Space Rider will autonomously re-enter and land under parafoil - an edge case where local, reliable AI can help flight controllers reason over fast-changing telemetry. We wanted to show that open models (GPT-OSS-20B) plus careful context engineering can deliver mission-grade decision support: private, auditable, and resilient during comms gaps.
What it does
ARIA Space Rider Mission Control is a real-time copilot that:
- Streams telemetry (20 Hz), detects simple anomalies, and plans at 1 Hz.
- Uses RAG over Space Rider procedures and cross-mission “lessons” distilled from prior runs.
- Produces a schema-checked JSON plan (action, rationale, risk, confidence, checks).
- Passes plans through a Safety Gate (redlines + confidence fusion) before showing them.
- Keeps a human in the loop (Approve / Modify / Reject), with live gauges, timeline, and a chat panel.
- Runs fully local with GPT-OSS-20B (Groq or CPU/GPU), logging everything to SQLite for audit.
How we built it
Backend (FastAPI + SSE)
- services/playback.py: CSV -> 20 Hz ticks, 1 Hz planner, SSE events.
- services/planner.py: token-budgeted working memory (state + episodic + docs + lessons) -> GPT-OSS-20B -> Plan schema -> Safety Gate -> episodic log.
- Memory fabric (aria/memory): SQLite + FTS5 for docs, rephrased cards (facts/QA/lessons), episodic log, and semantic lessons; retrieval reranks with embeddings.
- Governor trims and prioritizes context within a strict token budget.
- Distiller converts episodic logs into durable lessons after each run.
Frontend (Next.js + Tailwind v3 + AI SDK 5)
- Live SSE client for ticks/plans/anomalies/metrics.
- Components: Gauges, PlanPanel, Timeline, and Chat (Vercel AI SDK 5, Groq backend).
- Dark/light theming, compact layout to fit without scroll during demos.
Challenges we ran into
- SSE robustness: one-consumer queue dropped events; replaced with a fan-out bus (per-client queue + pump task).
- Retriever edge cases: blobs missing embeddings (None) and FTS joins; fixed with safe decoding + hybrid lexical/semantic rerank.
- Governor mismatches: section key drift (“docs” missing) causing KeyErrors - normalized with canonical section set.
Accomplishments that we're proud of
- End-to-end local agent: GPT-OSS-20B + retrieval + safety gate + UI, all offline-capable.
- Schema-aligned planning with plan/risk normalization and post-gate re-validation.
- Learning across missions: episodic to semantic lesson distillation, automatically reused in later runs.
- Clean, auditable SSE timeline of ticks, anomalies, plans, and human decisions.
What we learned
- Context > parameters: a well-governed prompt with the right slices of memory beats raw model size.
- Safety needs structure: JSON plans + rule checks + confidence fusion make human review faster.
- SSE in production: fan-out queues and heartbeats are mandatory for stable realtime UX.
What's next for ARIA Space Rider Mission Control
- Richer detectors: phase/anomaly models (bank limits, flare window) feeding the planner.
- Tool-augmented ReAct: let the model request doc_search()/recall_lesson() mid-turn when uncertain.
- Evaluation harness: replay suites with success metrics (touchdown Vz, lateral error) and ablation dashboards.
- Observability: Langfuse/OpenTelemetry traces for retrieval, tokens, and safety interventions.
- Edge deployments: packaged images for on-prem GPU and Groq LPU; smaller OSS variants for CPU.
- Human factors: rationale summaries for controllers, plus optional voice narration for debriefs.
Log in or sign up for Devpost to join the conversation.