It decided what libraries to use and how to use them:
Core experience: a GPU-displaced spacetime fabric (64 mass wells + 8 concurrent GW ripples in a custom vertex shader) where you drag any of 25 objects from the palette onto the grid and immediately see curvature, a live geodesic preview of the orbit you're about to create, and auto-circular-orbit assist with real-time a/e/period readouts.
Physics (pure-JS engine, node-testable):
• Symplectic leapfrog N-body; Paczyński–Wiita black holes (ISCO-like); 2.5PN-inspired GW inspiral for compact binaries; momentum-conserving mergers; BH captures; Roche-limit tidal disruption into rings; wormhole teleportation (labeled SPECULATIVE everywhere)
• A hybrid integrator that Kepler-drifts dominated orbits when a frame spans too many orbits — this is what makes the timeline work from real-time to ~100 Myr/s without exploding, and the seamless AU → galactic-core scale transitions
• Stellar evolution (main sequence → red giant → planetary nebula/supernova → WD/NS/BH) and planet formation (embryos sweeping dust inside their Hill radius)
Game layer: 13 progressively-unlocked challenges (orbits, stable systems, gravity assist, Lagrange, binaries, Mars impact, Roche, TDE, inspiral, planet building, S-stars, galaxy merger) with localStorage persistence and per-object education panels that explicitly flag accepted vs speculative science. Replay mode with timeline scrub and event re-fire. Cinematic slow-mo, camera shake, and fly-to on catastrophes.