Records that an exact-Kerr attempt exists on the phase4-exact-kerr-
experimental branch (CPU sub-percent accurate, shader visual broken)
and names the resume strategy: per-pixel debug-color output to localize
the CPU/WGSL divergence. Saves the next session from re-discovering the
state of the work.
The Status section was stale: Phase 2 was still marked 'pending
visual/performance validation' and Phase 3's sub-phases (3.1–3.4)
were entirely absent despite each having landed with its own spec,
plan, and commits.
Updates after human-in-the-loop validation confirmed spin=0
degeneracy, frame-dragging asymmetry at spin>0, and desktop/web FPS
at the new defaults:
- Phase 2: 'implemented, pending validation' -> 'shipped & validated'.
- Phase 3 (cinematic): new section listing the HDR/bloom pipeline,
volumetric disk (3.1), blackbody disk + relativistic jets (3.2),
anti-aliased lensed-image rings (3.3), and Kerr orbiting planets
(3.4) — each with the physics/aesthetic it ships.
- Performance defaults: record the concrete per-target defaults
(steps/render_scale/bloom/disk/aa for desktop vs web) and the
release-profile LTO/codegen choices so the README reflects what
the code actually ships.
- Future work renamed Phase 3 -> Phase 4, since Phase 3 is now
filled by the cinematic work.
The docs described Phase 2 as 'future work' while the code had already
shipped it: spin is wired through the uniform into the shader's Kerr deriv(),
the integrator is adaptive RK45, disk_inner is ISCO-derived, render_scale
runs a real offscreen render-to-texture + upscale pass, and the UI exposes a
Spin slider with live ISCO/Horizon readouts. Anyone reading the docs got a
wrong picture of completeness.
README:
- Intro: 'Schwarzschild' -> 'black-hole (Kerr at spin>0, Schwarzschild at 0)'.
- How it works: RK4 -> adaptive Dormand-Prince RK45; add the frame-dragging
term to the bending accel; capture radius r+(chi); ISCO-tracked inner edge.
- Controls: add Black Hole section (Spin, ISCO/Horizon); render_scale slider.
- Performance: render_scale now wired (0.75 desktop / 0.5 web), not reserved.
- Status: Phase 1 shipped; Phase 2 implemented-pending-human-validation;
Phase 3 (exact pseudo-Hamiltonian) is the actual future work.
AGENTS.md:
- Intro + mirror contract: name the Kerr/RK45 functions the mirror must track
(kerr_bending_accel, rk45_step, is_captured_rk45) and the exact shader lines.
- Conventions: 'render_scale and spin are reserved' is false now — both wired;
update the perf-lever and web-defaults notes accordingly.
- Reference docs: list both Phase 2 docs, not just Phase 1.
Phase 2 plan (docs/superpowers/plans/2026-07-13-...-kerr.md):
- Status banner: Tasks 1-7 implemented+committed, Task 8 (human visual/perf
checklist) is what remains.
- Check the Task 1-7 step/commit boxes; leave all Task 8 manual steps and the
visual/fps acceptance items unchecked. Check only the code-verifiable
acceptance items (cargo test green, RK45+render_scale running, Spin slider
shipped).
README documents the renderer, run instructions (desktop + web), controls,
how the geodesic pipeline works, performance notes, and Phase 2 (Kerr) as
future work. Allow dead_code on BlackHoleParams since render_scale + spin
are intentionally reserved for Phase 2.