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:
| Layer | What it shows |
|---|
| Sphere of influence | translucent rings showing where each body's gravity dominates |
| Gravity / velocity / centripetal arrows | log-scaled so all are visible at once, with values printed at the tip |
| Apsides | perihelion / aphelion markers + a live Ξ½ = 42Β° true-anomaly callout |
| Engine-off coast | dotted projection of where the ship would drift if engines cut now |
| Conic-section family | names the current arc (circle / ellipse / parabola / hyperbola) live from specific orbital energy |
| Microgravity axes | zenith / nadir, prograde / retrograde, port / starboard on station scenes |
| Atmosphere / tidal-lock / ozone | atmospheric 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.