mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-11-15 13:58:20 +00:00
The GSAP original assigned window.__timelines['devices-canvas'] inside onReady() -- only after both DRACO/GLTF device models finished loading and the screens were captured -- so the render pipeline's readiness poll waited for the models before capturing frame 0. The anime.js port moved registration to script-parse time, letting the pipeline start capturing while the models were still loading: frame 0 rendered an empty pedestal, and early-window frames drifted against the baseline. Move hyperframesAnime.register() into onReady() (after captureScreens), which also makes the registration-time priming pass paint from a fully-loaded scene, and drop the duplicate parse-time registration. Verified by snapshot at t=0/9.13/11.08 vs the pinned GSAP baseline: 9.13 and 11.08 now match exactly (device positions and captured screen content); t=0 shows the authored hero state while the baseline's own opening 0.6s is black (GSAP-side model-load race at the pinned fork).