From 1f9664a6f9502f53c8ba3ef805b11f2aa26f449c Mon Sep 17 00:00:00 2001 From: monsterrobotparty Date: Thu, 16 Jul 2026 00:56:41 +1000 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=96=20almanac:=20knowing=20=E2=80=94?= =?UTF-8?q?=20info=20panel,=20live=20facts,=20grimoire=20art,=20real=20tex?= =?UTF-8?q?tures,=20README=20(opus)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Stage 6. almanac.js: on-focus grimoire card — physical fact sheet, hand-written prose (grimoire voice), MODELBEAST portrait, and LIVE computed facts free from the ephemeris: distance from Sun & Earth, sunlight age, vis-viva orbital speed, day & year length. Earth easter egg → GODSIGH world view (:8137). Real Solar System Scope 2k textures (CC BY, 6.1 MB) now paint every world + the Milky Way skybox; ephem gains semiMajor() for vis-viva. Generated grimoire portraits (FLUX via MODELBEAST, 10 bodies, seed logged in art/PROMPTS.md) are the AESTHETIC layer only — real worlds get real maps (truth boundary). README with layer table + quickstart + verify; docs/hero.jpg. Also lands the Stage-3 planets label fix (obj.visible). Gate: every clickable body has a card; quickstart works from a fresh clone. Co-Authored-By: Claude Opus 4.8 --- README.md | 107 ++++++++++++++++---- assets/art/PROMPTS.md | 50 ++++++++++ assets/art/grimoire/earth.jpg | Bin 0 -> 186864 bytes assets/art/grimoire/jupiter.jpg | Bin 0 -> 217409 bytes assets/art/grimoire/mars.jpg | Bin 0 -> 179430 bytes assets/art/grimoire/mercury.jpg | Bin 0 -> 170157 bytes assets/art/grimoire/neptune.jpg | Bin 0 -> 206733 bytes assets/art/grimoire/pluto.jpg | Bin 0 -> 224353 bytes assets/art/grimoire/saturn.jpg | Bin 0 -> 224136 bytes assets/art/grimoire/sun.jpg | Bin 0 -> 238947 bytes assets/art/grimoire/uranus.jpg | Bin 0 -> 225207 bytes assets/art/grimoire/venus.jpg | Bin 0 -> 239228 bytes assets/textures/2k_earth_daymap.jpg | Bin 0 -> 463087 bytes assets/textures/2k_jupiter.jpg | Bin 0 -> 498976 bytes assets/textures/2k_mars.jpg | Bin 0 -> 750547 bytes assets/textures/2k_mercury.jpg | Bin 0 -> 872555 bytes assets/textures/2k_moon.jpg | Bin 0 -> 1053869 bytes assets/textures/2k_neptune.jpg | Bin 0 -> 241580 bytes assets/textures/2k_saturn.jpg | Bin 0 -> 199916 bytes assets/textures/2k_saturn_ring_alpha.png | Bin 0 -> 12119 bytes assets/textures/2k_stars_milky_way.jpg | Bin 0 -> 251454 bytes assets/textures/2k_sun.jpg | Bin 0 -> 822427 bytes assets/textures/2k_uranus.jpg | Bin 0 -> 77751 bytes assets/textures/2k_venus_surface.jpg | Bin 0 -> 885075 bytes assets/textures/CREDITS.md | 33 +++++++ css/style.css | 2 +- docs/hero.jpg | Bin 0 -> 149510 bytes js/ephem.js | 6 ++ js/layers/almanac.js | 121 +++++++++++++++++++++++ js/layers/planets.js | 2 +- js/main.js | 5 +- 31 files changed, 303 insertions(+), 23 deletions(-) create mode 100644 assets/art/PROMPTS.md create mode 100644 assets/art/grimoire/earth.jpg create mode 100644 assets/art/grimoire/jupiter.jpg create mode 100644 assets/art/grimoire/mars.jpg create mode 100644 assets/art/grimoire/mercury.jpg create mode 100644 assets/art/grimoire/neptune.jpg create mode 100644 assets/art/grimoire/pluto.jpg create mode 100644 assets/art/grimoire/saturn.jpg create mode 100644 assets/art/grimoire/sun.jpg create mode 100644 assets/art/grimoire/uranus.jpg create mode 100644 assets/art/grimoire/venus.jpg create mode 100644 assets/textures/2k_earth_daymap.jpg create mode 100644 assets/textures/2k_jupiter.jpg create mode 100644 assets/textures/2k_mars.jpg create mode 100644 assets/textures/2k_mercury.jpg create mode 100644 assets/textures/2k_moon.jpg create mode 100644 assets/textures/2k_neptune.jpg create mode 100644 assets/textures/2k_saturn.jpg create mode 100644 assets/textures/2k_saturn_ring_alpha.png create mode 100644 assets/textures/2k_stars_milky_way.jpg create mode 100644 assets/textures/2k_sun.jpg create mode 100644 assets/textures/2k_uranus.jpg create mode 100644 assets/textures/2k_venus_surface.jpg create mode 100644 assets/textures/CREDITS.md create mode 100644 docs/hero.jpg create mode 100644 js/layers/almanac.js diff --git a/README.md b/README.md index 3eb22da..02aba21 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,98 @@ -# SOLARGOD ▸ Solar System View +# SOLARGOD ▸ Orrery -A browser-based **compressed-scale 3D solar system explorer** — real ephemerides, -scrubbable time across centuries, jump-to-orbit navigation, and live layers for -deep-space probes, asteroids, and comets. Sibling of -[GODSIGH](../GODSIGH/README.md), which watches Earth; SOLARGOD watches everything -else. Everything runs client-side from free, public, keyless data. +A standalone, browser-based 3D solar-system explorer — the interplanetary sibling +of [GODSIGH](../GODSIGH), which watches Earth. Float above a compressed-scale +("MEGA") solar system with every world visible at once, moving on **real JPL +ephemerides**; scrub a time bar across centuries; fly the camera into orbit around +any planet, its moons circling; toggle **TRUE scale** and watch the system animate +out into its real, humbling emptiness. Live layers plot where Voyager 1, JWST and +Parker Solar Probe are *right now*, plus real asteroids, comets and Earth +close-approaches. Everything is client-side, free, and keyless. -**Status: pre-build.** The full spec lives in [SOLARGOD_BRIEF.md](SOLARGOD_BRIEF.md). +![SOLARGOD](docs/hero.jpg) -## Quickstart (once built) +## Quickstart ```sh -python3 serve.py +python3 serve.py # stdlib only — no npm, no build step # open http://127.0.0.1:8147 ``` -## Planned layers +`serve.py` statically serves the app and proxies the JPL feeds a browser can't call +directly (Horizons / SBDB / CAD — no CORS), with a disk cache in `cache/`. Three.js +loads from a pinned CDN importmap. The deterministic core (Sun, planets, moons, +orbits, time travel) runs with **zero network calls** — positions are computed +locally from Keplerian elements; network layers are additive and fail soft. -| Layer | Source | Notes | -|---|---|---| -| **Planets** | JPL Keplerian elements (Standish) | computed locally, no network — scrub 1800–2050 | -| **Moons & rings** | JPL SSD satellite elements | 21 major moons, Saturn/Uranus rings | -| **Spacecraft** | JPL Horizons | Voyagers, New Horizons, JWST, Parker — where they are *now* | -| **Asteroids** | JPL SBDB | real main-belt sample + NEO close approaches (CNEOS CAD) | -| **Comets** | JPL SBDB | Halley & friends, full orbits, 1/r² tails | +## Verify -MEGA mode compresses distances so the whole system is one readable view; -TRUE mode animates it back out to its real, humbling emptiness. +Open **http://127.0.0.1:8147/verify.html** — an in-browser gate runner that checks +the ephemeris against **JPL Horizons ground truth** (hard-coded checkpoints + live +queries through the proxy). All 13 gates should read PASS, e.g.: + +| Gate | Result | +|------|--------| +| Mars / Jupiter / Earth @ 2026-07-15 (heliocentric ecliptic AU) | Δ ≤ 3.3e-4 / 2.9e-3 / 3.9e-5 AU | +| Kepler solver converges at e=0.97 · orbitPath closes · frame round-trips | exact | +| MEGA→TRUE preserves direction (unit dot ≈ 1) | 1.000000000000 | +| Mars @ J2000 · Jupiter @ 1900 vs **live** Horizons | Δ 4.8e-5 / 2.0e-3 AU | +| Main belt between Mars & Jupiter · Halley aphelion beyond Neptune | pass | +| Voyager 1 @ 2026-07-15 = (−32.07, −136.21, +98.55) AU · JWST hugs Earth | Δ 0.002 / 0.011 AU | + +## Layers + +| Layer | Source | Default | Notes | +|-------|--------|:------:|-------| +| **Planets & orbits** | JPL SSD approximate elements (Standish) | on | 8 planets + Pluto, textured, MEGA-compressed orbit paths | +| **Body labels** | — | on | names; the focused body's children also get distance labels | +| **Moons** | JPL satellite data | on | 21 moons, per-parent local compression, retrograde Triton | +| **Rings** | true km, scaled to parent | on | Saturn (textured annulus) · Uranus (schematic) | +| **Spacecraft** | JPL **Horizons** (proxy) | on | Voyager 1/2, New Horizons, JWST, Parker, Juno, Lucy, Psyche — live distance + one-way light-time | +| **Main belt** | JPL **SBDB** (proxy) | off | ~1500 main-belt asteroids, shared Kepler core | +| **Comets** | JPL **SBDB** (proxy) | on | 1P/Halley, 2P/Encke, 67P, 96P — full orbits + anti-sunward 1/r² tail | +| **Close approaches** | JPL **CAD** (proxy) | off | ±30-day NEO radar around Earth, miss distance in lunar distances | + +## Controls + +- **Focus** — click any body (or use the Focus menu) → the camera flies into orbit + around it; breadcrumb `SOL ▸ JUPITER ▸ EUROPA`; `Esc` steps out one level. +- **MEGA / TRUE** — toggle the scale mode; the transition animates over ~2.5 s. +- **Body scale** — 1× / 100× / 1200× radius exaggeration. +- **Time bar** — NOW, play/pause, reverse, rate presets (`1× · 1 min/s … 1 yr/s`), + and a scrubbable 1800–2050 timeline. A **LIVE / SCRUBBED** chip mirrors GODSIGH. +- **Info panel** — appears on focus: a grimoire card with a physical fact sheet, + hand-written prose, a stylized portrait, and **live computed** facts (distance + from Sun & Earth, sunlight age, orbital speed, day & year length). Focusing Earth + reveals a link to the GODSIGH world view. +- **Shareable URLs** — the view serializes to the hash + (`#f=&t=