Skip to content

ORRERY

Mission control for the curious.

The orbital mechanics tools NASA uses to reach Mars, rebuilt for anyone who is curious. Real physics, real missions from Sputnik to Artemis II, in 14 languages. Beautiful, educational, self-hostable.

Orrery β€” solar system explorer

The repo ​

Source: github.com/chipi/orrery

Live build: chipi.github.io/orrery β€” every screen, fully offline-capable after first load. First-time visitors land on a 30-second orientation page; returning users skip past in one click via the nav.

Documentation layout ​

This is the architecture and design documentation, not the user-facing help. Read order depends on what you are trying to do.

Start here ​

  • User guide β€” read-this-first walk-through of the live app, screen by screen, with screenshots for all 11 primary nav routes plus the read-only provenance pages.
  • Architecture (TA.md) β€” single-page architecture map. Every route, subsystem, 3D scene, asset pipeline, contract, and constraint with the ADR that locked it.
  • Translator guide β€” binding glossary for translators, per ADR-033.

Decision history ​

  • ADRs β€” 58 Architecture Decision Records, the load-bearing decisions of the project. Three of these (ADR-052/053/054) document the Spaceflight Fleet schema retrospectively.
  • RFCs β€” 17 RFCs, the open architectural questions before they became ADRs. RFC-017 (Surface Hotspots) is currently open and gates v0.7.
  • PRDs β€” 14 Product Requirements Documents, the user-value arguments for every shipped feature.

Concept package ​

The founding narrative documents (00–05) β€” the original "what is Orrery and why" essays from prototyping. Worth reading for context on the design philosophy. Start with 02_Project_Concept.md.

The six working HTML prototypes (P01–P06) are preserved as ground truth for the original physics and visual decisions.

Reference ​

  • Provenance manifests (docs/provenance/) β€” image, link, and text-source audit logs.
  • Research (docs/research/) β€” exploratory notes that haven't graduated to decisions yet.
  • Tech BOM β€” license audit of every npm dependency.

The Science Lens ​

The lens (top-nav icon) is what turns the simulator into a textbook.

When off, every 3D scene reads clean β€” Sun, planets, ships, trajectories. When on, the scene gains:

LayerWhat it shows
Sphere of influencetranslucent rings showing where each body's gravity dominates
Gravity / velocity / centripetal arrowslog-scaled so all are visible at once, with values printed at the tip
Apsidesperihelion / aphelion markers + a live Ξ½ = 42Β° true-anomaly callout
Engine-off coastdotted projection of where the ship would drift if engines cut now
Conic-section familynames the current arc (circle / ellipse / parabola / hyperbola) live from specific orbital energy
Microgravity axeszenith / nadir, prograde / retrograde, port / starboard on station scenes
Atmosphere / tidal-lock / ozoneatmospheric shells, tidal-lock hemisphere, ozone-hole zones

The Flight Director banner on /fly narrates 5 physics phases (Departure Β· TLI Β· Cruise Β· Approach Β· Arrival), each phase deep-linking to the corresponding /science chapter. Eight lens layers wire into both /fly scenes β€” heliocentric for interplanetary, cislunar for Moon missions β€” so the same physics overlay reads correctly whether you're watching Curiosity coast to Mars or Apollo 17 swing around the far side of the Moon.

How it's built ​

Stack: SvelteKit + Three.js r128 + TypeScript (strict) + Vite. No backend, no database. Pure static SPA. PWA-installable, offline-capable after first paint. Hosted free on GitHub Pages.

Data: All static JSON under static/data/. 33 ajv schemas validate every file fail-closed at build time. Locale overlays for 14 languages. Pre-computed Lambert porkchop grids for 9 destinations.

Testing: ~1 000 unit tests (94.5 % statement coverage, 79.7 % branch, 89.2 % function, 96.3 % line β€” gated in CI). 57 Playwright e2e specs across desktop + mobile-chromium projects. Nightly e2e + weekly asset rebuild keep external drift in check.

Honesty: Every image, every outbound LEARN link, every paraphrased text fragment carries a provenance row. Agency-first sourcing per ADR-046; no artist's impressions of flown vehicles; per-language native-source priority per ADR-051; symmetric-link validator catches bidirectional fleet-reference drift fail-closed per ADR-052.

For the full architecture map, decisions, and contracts, see TA.md.

Orrery β€” architecture documentation Β· MIT Β· No tracking