diff --git a/RESONANCE_BRIEF.md b/RESONANCE_BRIEF.md new file mode 100644 index 0000000..83b9e64 --- /dev/null +++ b/RESONANCE_BRIEF.md @@ -0,0 +1,105 @@ +# RESONANCE — build brief · 🪐 music of the spheres + +> **You are an execution agent (Opus).** Single lane. Read Part 0 of +> `GODRUM_BRIEF.md` (process root: worktrees, commit style, §0.7 regression, +> §0.8 report, never-deploy) and the REVELATION amendments — then this file. +> Fable reviews before merge. + +## ⚠ HARD GATE + +**Do not branch until the full REVELATION wave (lanes T, W, P, C AND the ω +closer) has merged to `main`.** This lane edits app-scope `viz/index.html` +(mod sources, a panel, godspeak grammar) and WOULD COLLIDE with all of them. +Confirm: `git log --oneline` shows the ω/closer merge; `grep -c wlen +viz/index.html` ≥ 1 (WHEELS landed); `grep -c testament viz/index.html` ≥ 1. +If not, STOP and report. All anchors below are names, never line numbers. + +Branch: `resonance/spheres` in a worktree (`../godstrument-resonance`). + +## R.0 The idea + +The Godstrument gains the solar system as a modulation source. SOLARGOD +(`/Users/m3ultra/Documents/SOLARGOD`, read-only sibling) proved a ~250-line +dependency-free ephemeris (JPL Standish elements → heliocentric positions, +verified against Horizons to ~3e-4 AU). Planets become LFOs with periods of +months to centuries, compressed into musical time. No network, no server +bridge, no sockets — **the design is vendoring, not streaming**: godstrument +computes the sky itself, deterministically, at its own clock. + +## R.1 The vendored engine — `viz/spheres.js` + +Create ONE new file by merging, from SOLARGOD **pinned @ `6391273`**: +`js/ephem.js` (whole: tables, solver, `helioEcl`) + the minimal `lib.js` +subset it imports (`centuriesSinceJ2000`, `normDegPM180`, `DEG`, `J2000_JD`, +`jdFromUnixMs`). Header comment: `// vendored from SOLARGOD@6391273 — do not +edit; re-vendor to update`. Keep it an ES module; load it from index.html the +same way the app loads (if the app is one inline IIFE with no module imports — +it is — add a `