Orbit-lock: traveling to a planet re-anchors drag/scroll to orbit THAT body
(lookAtTransform), not the whole system. Cleared on the next flight / exit.
Animated orrery: planets sweep their orbits at correct relative speeds in the
overview (simDay advances in real time). Since a moving textured ellipsoid loses
its image material, each planet is split into an animated dot + a frozen textured
sphere (revealed + snapshotted forward on travel). New 'System overview' button.
Camera flights: enter/travel/overview run a manual eased setView tween (Cesium's
flyTo is dead in this mode).
Infographic cards: ssdata.js FACTS — a stat card + fun fact per body (not Earth),
auto-shown on travel and mission-select.
Space missions: ssdata.js MISSIONS — 11 real probes with date-accurate launch/
flyby/arrival waypoints, drawn as schematic heliocentric transfer arcs (multi-leg
grand tours included). Toggle + list; select highlights the path + shows a card.
Chrome: hides the OSINT clock/timeline/live-chip in SS mode; Travel-to panel is
now collapsible.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replace the flat billboard-disc planets with real 3D EllipsoidGraphics
spheres textured with self-hosted high-res NASA/JPL + Solar System Scope
maps (hd_*.jpg, 2048x1024), plus a PlaneGraphics Saturn ring (top-down
annulus, transparent centre, depth-tested occlusion). Constant axial tilts
(Venus upside-down, Uranus on its side).
Cesium gotchas handled: constant orientation (time-varying orientation
drops image materials -> blank white); DirectionalLight intensity 0.42
(no HDR -> higher clamps bright maps to white); camera.flyTo is dead in
this mode so enter/travel run a manual eased setView tween (flyCamera);
ellipsoid+ring gated by distanceDisplayCondition(r*30) so the orrery
overview stays clean colored dots and the textured sphere takes over
up close.
Drop 9 now-unused 2k_ maps; textures/ is 3.3MB.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Root cause (found after deep debugging): enter() blanket-hid scene.primitives by
duck-typing (.length + .show), which also hid Cesium's shared DataSourceDisplay
collections — the very primitives the planets render into. Removed that loop
(the bespoke aircraft/mil billboards sit at Earth's tiny position near the Sun,
harmless to leave). Also fixed the wildly-wrong billboard scaleByDistance
(pixels-as-scale → sane 2.4/0.12 multipliers) and near-plane depth collapse.
VERIFIED RENDERING: the full orrery — textured Sun + 8 planets at true live
positions with orbits — zero console errors. Ready to deploy.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Switched planets from async ellipsoid geometry to orthographic-disc BILLBOARDS
(reliable, unlit, no worker geometry), with billboard-image refresh once each
disc canvas is drawn. Fixed the near-plane depth collapse (near 0.1 + far 6e9
killed the starfield). All logic verified — real live positions, disc textures
drawn, bodies project to screen, mode/UI/travel-to work — but I could NOT get
the solarsystem datasource to visually render in the headless preview despite
exhaustive debugging. NOT deployed; needs a real-browser render check / a fresh
debugging pass. Live site is unaffected (never deployed this).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
New '◉ Solar System' mode: leaves the Earth OSINT globe and renders a
heliocentric orrery — Sun + 8 planets as spheres textured with real (CC BY 4.0,
self-hosted) imagery, at their TRUE current positions (Schlyter series, incl.
Uranus/Neptune), with orbits. A 'Travel to…' panel flies the camera to any body;
'Return to Earth' restores the full OSINT view (globe, all layers, clock, camera,
frustum, lighting — all saved/restored). Planets exaggerated + distances
compressed for a readable orrery; Saturn ring; camera headlight for even lighting;
far plane widened to 8e9 (default 5e8 would clip the whole system).
Textures harvested from Solar System Scope (CC BY 4.0), self-hosted in textures/
(WebGL taints cross-origin), credited in-app + README + textures/TEXTURES_CREDIT.md.
Components verified in-browser (ellipsoids render, positions correct, mode
enter/exit, UI, textures). Full-orrery screenshot pending a real GPU frame — the
headless preview can't complete async worker geometry (backgrounded tab clamps).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>