You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Multi-worker render still differs from -w 1 on 0.9.15 with a set and a tween inside a running tween (#6707 pattern) #7223
A multi-worker local render still differs from a -w 1 render on 0.9.15 when a set and a second tween land while a tween on the same property is running. This is the pattern #6707 describes. The output is identical to 0.8.214's, so the replay from #6707 doesn't seem to apply here. The render does pass fps: with HYPERFRAMES_DEBUG=1 each worker logs render runtime fps {"canonicalFps":30,"source":"render-options",...}.
Minimal reproduction
index.html, with gsap.min.js 3.15.0 beside it:
<!doctype html><html><head><metacharset="utf-8"><style>html,body{margin:0;background:#010101}#root{position:relative;width:1080px;height:1920px;overflow:hidden}#box{position:absolute;left:340px;top:760px;width:400px;height:400px;background:#AFE607;transform-origin:50%50%}</style></head><body><divid="root" data-composition-id="root" data-start="0" data-duration="3" data-width="1080" data-height="1920"><divid="box"></div></div><scriptsrc="gsap.min.js"></script><script>consttl=gsap.timeline({paused: true});tl.to('#box',{scale: 1.6,duration: 1,ease: 'none'},0);// zoom punch, 0–1 stl.set('#box',{scale: 1.0},0.5);// a cut sets the zoom while it runstl.to('#box',{scale: 2,duration: 2,ease: 'none'},0.55);// a slow move from wherever the zoom iswindow.__timelines={root: tl};</script></body></html>
Steps to reproduce
hyperframes render . -q delivery -w 1 -o w1.mp4
hyperframes render . -q delivery -w 8 -o w8.mp4
Measure the box width on row y = 960 in each frame (lime pixels ÷ 400 = scale).
Expected behavior
w8.mp4 matches w1.mp4 on every frame.
Actual behavior
59 of 90 frames differ (frames 18–77). With 8 workers the box jumps back and forth with period 8:
t (s)
-w 1
-w 8
0.6
1.355
1.025
0.7
1.390
1.075
0.8
1.420
1.545
0.9
1.455
1.175
1.3
1.590
1.660
1.6
1.685
1.755
2.1
1.850
1.880
0.8.214 gives the same numbers in both columns. The -w 1 renders from 0.8.214 and 0.9.15 match each other (≥ 63 dB PSNR).
Environment
hyperframes 0.9.15 (CLI, local render), also 0.8.214 for comparison
Linux x64, Node v24.20.0, 8 cores
GSAP 3.15.0, 30 fps
Additional context
hyperframes lint 0.9.15 flags this composition with two overlapping_gsap_tweens warnings: the set at 0.50 s fires inside the 0–1 s tween, and the tweens overlap on scale between 0.55 s and 1.00 s. So the lint sees the overlap, but the multi-worker render doesn't replay it.
Activity
feat: port upstream 3e3ba8d..18fc75d (2 commits); advance upstream re…