Space Domain Awareness

Sentry

A real-time space domain awareness platform tracking thousands of satellites, near-Earth objects, and orbital debris across LEO, MEO, and GEO — rendered on an interactive 3D globe with custom shaders and a Rust/WASM orbital engine.

Status

Live

Stack

Next.js · Three.js · Rust/WASM · Supabase

Started

2026

sentry.space
16K+
Satellites Tracked
29
Constellation Groups
4
Debris Fields
78
Ground Stations
Capabilities

Features

01

3D Globe Visualization

WebGL-powered interactive globe with real-time satellite rendering, altitude-band coloring (LEO/MEO/GEO), cloud layers, and country borders — all running at 60fps.

02

TLE/SGP4 Orbital Propagation

Ingests Two-Line Element sets from CelesTrak and propagates satellite positions using the SGP4 algorithm via satellite.js for accurate orbital prediction.

03

NEO Monitoring

Near-Earth Object tracking with NASA CNEOS integration, close approach data, fireball event mapping, and ephemeris visualization on the globe.

04

Debris Field Tracking

Catalogs major debris events — Cosmos 1408, Fengyun-1C, Iridium 33/Cosmos 2251 — with 5,000+ tracked fragments rendered in real time.

05

Launch & Reentry Alerts

Live launch tracking with countdown timers, orbital insertion visualization, and automated alerts for decaying objects and imminent reentries.

06

Rust/WASM Orbital Core

Performance-critical orbital mechanics computed in a custom Rust crate compiled to WebAssembly — arc generation, pass prediction, and conjunction analysis at native speed.

System Design

Architecture

Frontend
Next.js 16TypeScriptTailwind CSSZustand
3D Rendering
Three.jsCustom GLSL ShadersGPU Points + Custom ShadersCamera Controller
Orbital Engine
satellite.js (SGP4)Rust/WASM CoreTLE ParsingPropagation
Data Sources
CelesTrakNASA NeoWsNASA SSCWeb
Infrastructure
VercelFluid ComputeSupabaseEdge Caching
Decisions

Stack Rationale

Why Three.js + Custom Shaders

Rendering 16,000+ satellites at 60fps requires GPU-accelerated point clouds and custom GLSL shaders for atmosphere effects, satellite glow, and orbital arcs. Three.js provides the WebGL abstraction while custom shaders handle the visual fidelity.

Why Rust/WASM for Orbital Math

Conjunction analysis and arc generation are compute-intensive operations that would block the main thread in JavaScript. A custom Rust crate compiled to WASM handles these calculations at near-native speed without sacrificing the web deployment model.

SGP4 Propagation Pipeline

Satellite positions are computed using the SGP4/SDP4 algorithm from Two-Line Element sets. CelesTrak provides OMM-format catalog data that gets parsed, propagated forward in time, and projected onto the 3D globe with altitude compression for visual clarity.

Real-Time Data Architecture

Supabase stores satellite catalogs and NEO data. API routes sync with CelesTrak and NASA CNEOS on schedule. Zustand manages client-side state for filters, time controls, and panel coordination — enabling smooth scrubbing through orbital time.