NASA HUNCH · Innovation Center of SVVSD

ASTRA

A fault-tolerant server farm for space, built by high school students.

Three independent clusters. Seven AI models running locally. Zero internet required.

Download presentation →

The Problem

Why Astronauts Need ASTRA

0

Data Centers in Space

The ISS runs on about 100 modified laptops and mission-specific avionics. There is no general-purpose computing infrastructure in orbit. ASTRA shows what a permanent, fault-tolerant one could look like.

24min

Round-Trip to Mars

On a Mars mission, a single message to Earth and back takes up to 48 minutes. Local medical AI gives astronauts immediate answers without waiting for a doctor on the ground.

20Mbps

Shared Across Deep Space

NASA's Deep Space Network is near capacity. Processing data onboard and sending only the results, not the raw feed, cuts required bandwidth dramatically.

3×

Redundant, Because Hardware Fails

Radiation, thermal cycling, and launch vibration guarantee components break. ASTRA runs three independent clusters in parallel. Kill any two and the third still has every byte of data.

The Solution

What is ASTRA?

ASTRA is a compact, fault-tolerant server farm built by two high school students under the NASA HUNCH program. Nine computing devices are organized into three independent Kubernetes clusters with three dedicated AI inference servers, connected through a self-contained local network that requires zero internet. It is designed for deployment aboard future space stations and deep-space missions.

The primary application is an AI medical assistant. Meditron (EPFL/Yale) provides clinical text Q&A trained on medical literature. MedGemma (Google) analyzes medical images. Five additional general-purpose models handle reasoning, coding, and multimodal tasks. Astronauts interact through a familiar chat interface with immediate local responses.

The system is built around one principle: no single point of failure. Three power domains, three clusters, three databases, three AI servers. Kill any two and the third has all the data. Restore power and it rebuilds itself in under two minutes without anyone touching a terminal.

9
Devices
3
Clusters
7
AI Models
~5s
Failover
ASTRA rack, front view
DeskPi RackMate T1 enclosure

What Sets It Apart

Proven in Live Demonstrations

Four capabilities, each tested and verified end-to-end, not just on paper.

Survives Cascade Failure

Kill Cluster 1. Cluster 2 promotes and takes over in 5 seconds. Kill Cluster 2. Cluster 3 promotes with every byte of data from both. Verified across 8 distinct failure scenarios in every kill order.

Self-Heals After Total Power Loss

Unplug all three power strips. Plug them back in. Keepalived elects a primary, pg-autoheal rebuilds the standbys, and full triple redundancy is restored in under 2 minutes with zero human intervention.

Medical AI With Zero Internet

Meditron handles clinical text Q&A. MedGemma analyzes medical images. Both run entirely on local hardware. If an astronaut is mid-consultation when a node fails, the conversation continues on the surviving cluster.

Astronaut-Simple Hot Swap

Dashboard shows which board failed. Unplug the one cable. Swap the board. Plug it back in. The system rebuilds itself in about 60 seconds. No command line, no SSH, no configuration.

See It Work

Live Failover Demonstration

A cluster node is physically disconnected mid-conversation. The system keeps running.

ASTRA live failover: node unplugged, zero data loss, conversation continues.

Capabilities

Full Capability Breakdown

Physical design features, operational functions, and technical innovations.

Click a category to explore

Nine computing devices, three PoE switches, and a network router all mount inside a DeskPi RackMate T1. The enclosure provides physical containment, structured airflow, and vibration-resistant mounting in a form factor that fits within a standard storage locker on Gateway.

Open rear panel and ventilated top/bottom support convective airflow. Front panel closed for debris protection. Individual boards secured against vibration via rack rail mounting.

Each K3s node receives both 48V power and gigabit networking through a single Ethernet cable via a PoE HAT. Disconnecting one cable cleanly removes a node. No separate power management needed.

802.3at delivers up to 25.5W per port. Pi 4 draws ~7W under load. Single-cable design directly enables hot-swap: one cable out, swap board, one cable in.

Three PoE switches on three separate power strips. Each domain powers one cluster and one AI server. Unplugging one strip takes out exactly one domain. The other two continue with zero impact.

Domain A: Cluster 1 + ai-server1. Domain B: Cluster 2 + ai-server2. Domain C: Cluster 3 + ai-server3. AI servers connect to PoE switches for networking only (powered via their own supplies).

PoE HAT fans cool each Pi 4. The Jetson has a PWM fan that adjusts to GPU load. All 9 devices report temperature, voltage, and throttle status to the dashboard with color-coded thresholds. The acoustic profile is comparable to a desktop at idle.

Jetson exposes 9 thermal zones + INA3221 power rail monitoring. Pis expose CPU temp, core voltage, and throttle register. Thresholds: green <60°C, yellow 60–75°C, red >75°C.

Keepalived manages a VIP that always points to the active primary. When a node fails, VRRP detects it in 1–2 seconds. The highest-priority surviving node takes the VIP, promotes its PostgreSQL, and restarts the application. Users see at most a brief page reload.

VRRP on physical eth0 with unicast peers. Notify script handles PostgreSQL promotion (removes standby.signal, runs pg_ctl promote) and triggers K3s deployment restart. Priorities: C1=100, C2=90, C3=80.

The network router creates a self-contained LAN and WiFi access point. All AI models, container images, and embedding caches are pre-loaded. The system operates identically whether or not the internet is connected. WPA3 encryption, user authentication, no open ports.

10.0.0.0/24 LAN, WiFi SSID infra-net, WPA3-PSK. OpenWebUI enforces bcrypt auth. PostgreSQL requires password auth. Router is smaller than a smartphone; the entire system is portable.

Every device gets a card showing temperature, memory, disk, and service health. Cards are clickable for full detail. The Failover Readiness panel shows READY / HEALING / NO REDUNDANCY / NOT READY at a glance. Accessible via the VIP so it follows the active primary.

Custom Python, zero dependencies. 15-second polling, 5-second browser auto-refresh. Runs on all 3 node1s on port 9090. Jetson detail view shows per-thermal-zone temps and power rail readings.

PostgreSQL 16 runs on each node1. One is the writable primary; two are streaming standbys. All user data (accounts, conversations, settings, AI configuration) is replicated in real time. Every cluster has a complete copy of everything.

Async streaming replication. primary_conninfo points to VIP for automatic reconnection after promotion. pgvector extension installed. Replication lag measured at sub-millisecond on the LAN.

A single large Kubernetes cluster has a single control plane, which is a single point of failure. Three independent clusters on separate power domains guarantee that losing one domain only affects one cluster. No shared state between clusters means no correlated failure.

Alternatives evaluated: single 6-node cluster with pod anti-affinity, single 3-node cluster with external DB, active/passive pair. Three independent clusters provide the strongest fault isolation achievable. Trade-off: more management complexity, accepted because fault tolerance is the primary design goal.

PoE delivers power and data on one cable. Unplug it, swap the board, plug the new one in. pg-autoheal detects the node isn't the primary, pulls a full database copy from the current primary via the VIP, and rebuilds itself as a standby. Full redundancy restored in about 60 seconds.

No CLI, no SSH, no configuration files. Dashboard shows OFFLINE → BOOTING → HEALING → READY. Designed for crew members with basic technical training in an environment where cable space is limited and IT expertise cannot be assumed.

Standbys replicate from the Virtual IP, not from a fixed node. When a new primary gets the VIP, remaining standbys automatically reconnect to it. No configuration change needed. This is what makes surviving sequential failures possible without human intervention.

Alternative: fixed-IP replication would require reconfiguring every standby after each failover. VIP-based approach means the last surviving node always has complete data, regardless of which nodes failed or in what order. Tested: kill C1 then C2 → C3 has everything. Reverse order works too.

Meditron (EPFL/Yale, 7B) provides medical text Q&A trained on clinical guidelines and PubMed. MedGemma 1.5 (Google, 4B) provides medical imaging analysis. Both run locally via Ollama on dedicated hardware. Medical conversation history replicates across all clusters.

If an astronaut is mid-consultation during a hardware failure, failover preserves the entire conversation. The crew member continues on the surviving cluster without repeating any information. AI is a decision-support tool, not a replacement for medical professionals.

The Jetson isn't just plugged in. JetPack 6.2.1 was manually applied with CUDA acceleration. Memory management tuned for the 8 GB unified architecture. The result: 5–10x faster inference than the Pi 5 CPUs at under 20W.

1024 Ampere CUDA cores, 32 Tensor Cores. OLLAMA_GPU_OVERHEAD=1GB reserved for OS/CUDA. Context length reduced to 3072 to prevent OOM. OLLAMA_LLM_LIBRARY=cuda_jetpack6. Safe model limit: 5 GB (larger models freeze the device due to unified memory).

AI Layer

Models Running On-Device

Seven models across three dedicated servers. Users choose the server and model explicitly; there is no random routing.

General Purpose & Specialized
Hybrid Thinking · 4B · 2.5 GB
Qwen 3 4B
Fast general-purpose reasoning. 25–40 tok/s on Jetson GPU.
General · 8B · 5.2 GB
Qwen 3 8B
Higher-quality output. Pi 5 only (exceeds Jetson's 5 GB safe limit).
Math & Reasoning · ~3.8B · 2.5 GB
Phi-4 Mini
Microsoft. Mathematical reasoning, logic, and code generation.
Ultra-Fast · 1B · 815 MB
Gemma 3 1B
Fastest model in the system. Near-instant responses on any hardware.
Multimodal · ~2B · 7.2 GB
Gemma 4 E2B
Vision and audio input. Pi 5 only (too large for Jetson unified memory).
Medical
Clinical Text Q&A · 7B · 3.8 GB
Meditron
EPFL & Yale. Trained on medical literature, clinical guidelines, PubMed abstracts, and licensing exam materials.
Medical Imaging + Text · 4B · 3.3 GB
MedGemma 1.5
Google. Analyzes medical images alongside text prompts. Quantized to Q4_K_M for edge inference. Best on Jetson GPU.

Hardware

What's Inside the Rack

Nine computing devices, three PoE switches, one network router.

6× Raspberry Pi 4 · K3s Nodes

Cortex-A72, 4 GB+ RAM. PoE+ powered. Two per cluster across three independent K3s clusters. Ubuntu Server ARM64.

2× Raspberry Pi 5 (16 GB) · AI Servers

Cortex-A76 @ 2.4 GHz. Dedicated Ollama inference. CPU-only at 3–8 tok/s, but 16 GB RAM supports models up to 8 GB.

NVIDIA Jetson Orin Nano · GPU AI Server

1024 CUDA cores, 32 Tensor Cores, 8 GB unified memory. JetPack 6.2.1. 25–40 tok/s. 128 GB eMMC.

3× PoE+ Switches + GL.iNet Network Router

One switch per power domain. Router creates the self-contained LAN and WiFi AP. No internet uplink required.

ASTRA rack, angled side view

Team

Who Built This

Built under NASA HUNCH at the Innovation Center of St. Vrain Valley Schools.

Mischa Nelson
Mischa Nelson
Lead Engineer & System Architect
Apex Homeschool Program · 12th Grade
Urvi Dhenge
Urvi Dhenge
AI Specialist
Niwot High School · 9th Grade

Built at the Innovation Center of St. Vrain Valley Schools under the mentorship of Mai Vu.

Documentation

Full Technical Wiki

Architecture decisions, configuration references, tested failover scenarios, replication guides, and build instructions for future teams.

Read the wiki