Solar System Orrery
StackThree.js r0.170.0 (WebGL, ACES filmic tone mapping) · Vanilla JS — all orbital math, interaction & UI state · single ~1,400-line HTML file · no build step, no backend
MechanicsFull Keplerian model from JPL low-precision elements per planet (a, e, i, mean longitude, ϖ, Ω + secular rates) · T = days/36525 Julian centuries from J2000.0 · Kepler's eqn E − e·sin E = M solved Newton-Raphson (tol 1×10⁻¹⁰) · full ecliptic → equatorial transform
Bodies8 planets + 19 moons — Mercury, Venus, Earth+Moon, Mars+Phobos/Deimos, Jupiter+Galileans, Saturn+6 moons+rings, Uranus+5 moons, Neptune+Triton · time speed real-time → 1 yr/s, forward/reverse · grab-and-fling planets follow inverse-square gravity, cubic ease back to orbit
MissionPre-configured Mars Hohmann transfer (launch Nov 15 2026 → arrive Aug 1 2027, 259-day) computed semi-analytically from actual planet positions · cyan trajectory + spacecraft + breadcrumb trail · "In Transit" → "Arrived"
Render2K Sun/Earth/Jupiter textures (Solar System Scope, CC BY 4.0) · procedural Saturn RingGeometry · 5,000-star solid-angle-sampled starfield · 6× canvas label sprites · procedural NASA meatball + JPL wordmark · touch state machine (orbit/pan/pinch/fling)
Interactive 3D orrery showing planets at their real current positions, computed from JPL low-precision orbital elements (J2000)