feat(hero): lifecycle, perf gating, camera drift, poster capture #31

Open
patman wants to merge 1 commit from patman/hero-lifecycle into patman/hero-renderer AGit
Owner

PR 6/7 in the hero-toolpaths stack (prev: hero-renderer, next: hero-readme). mountHero wires sim to renderer: 30fps RAF time gate over a fixed-timestep sim (a fixed seed replays a run frame-for-frame — the poster workflow foundation), IntersectionObserver pauses off-screen, reduced-motion and GL-less browsers degrade to the poster without throwing, DPR capped at 2 with per-frame DPR-change detection, context loss fades back to the poster and recovers, slow exponential zoom-out (capped at 16 doublings for float32 headroom) with scale-invariant feed/field/ribbon, glacial hue drift from KGROO blue. Hot loop performs no allocations. Review focus: lifecycle edge cases — destroy before first IntersectionObserver callback, context loss/restore orderings, the zoom cap rationale.

PR 6/7 in the hero-toolpaths stack (prev: hero-renderer, next: hero-readme). mountHero wires sim to renderer: 30fps RAF time gate over a fixed-timestep sim (a fixed seed replays a run frame-for-frame — the poster workflow foundation), IntersectionObserver pauses off-screen, reduced-motion and GL-less browsers degrade to the poster without throwing, DPR capped at 2 with per-frame DPR-change detection, context loss fades back to the poster and recovers, slow exponential zoom-out (capped at 16 doublings for float32 headroom) with scale-invariant feed/field/ribbon, glacial hue drift from KGROO blue. Hot loop performs no allocations. Review focus: lifecycle edge cases — destroy before first IntersectionObserver callback, context loss/restore orderings, the zoom cap rationale.
feat(hero): lifecycle, perf gating, camera drift, poster capture
All checks were successful
CI / build-test (pull_request) Successful in 1m14s
40a89d8f3a
mountHero wires sim to renderer under a 30fps RAF time gate with a
fixed-timestep sim — a fixed seed replays a run frame-for-frame, which
is what the documented poster-capture workflow relies on. Reduced motion
returns an inert handle without touching WebGL; IntersectionObserver
stops the loop off-screen; DPR is capped at 2; context loss falls back
to the poster and recovers. Slow exponential zoom-out with scale-
invariant feed/field/ribbon, glacial hue drift from KGROO blue. Full
README: integration snippet, capture steps, tuning knobs.
patman force-pushed patman/hero-lifecycle from 40a89d8f3a
All checks were successful
CI / build-test (pull_request) Successful in 1m14s
to 706cef31a7
All checks were successful
CI / build-test (pull_request) Successful in 1m21s
2026-06-12 21:12:33 +00:00
Compare
patman force-pushed patman/hero-lifecycle from 706cef31a7
All checks were successful
CI / build-test (pull_request) Successful in 1m21s
to 9e014b22f0
Some checks failed
CI / build-test (pull_request) Has been cancelled
2026-07-02 03:06:49 +00:00
Compare
Some checks failed
CI / build-test (pull_request) Has been cancelled
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin +refs/pull/31/head:patman/hero-lifecycle
git switch patman/hero-lifecycle

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch patman/hero-renderer
git merge --no-ff patman/hero-lifecycle
git switch patman/hero-lifecycle
git rebase patman/hero-renderer
git switch patman/hero-renderer
git merge --ff-only patman/hero-lifecycle
git switch patman/hero-lifecycle
git rebase patman/hero-renderer
git switch patman/hero-renderer
git merge --no-ff patman/hero-lifecycle
git switch patman/hero-renderer
git merge --squash patman/hero-lifecycle
git switch patman/hero-renderer
git merge --ff-only patman/hero-lifecycle
git switch patman/hero-renderer
git merge patman/hero-lifecycle
git push origin patman/hero-renderer
Sign in to join this conversation.
No description provided.