Motion Showcase
Film Scrub
One demo, done properly. The film below is 241 real frames drawn to a canvas — scroll and it plays, stop and it holds, scroll up and it reverses. Frames decode in a sliding window around your position, never all at once.
target = st.progress * 240; current += (target - current) * 0.12 // in gsap.ticker
The landing zone
This is what your walkthrough footage becomes.
A slow walkthrough of your space — lobby, hallway, workshop, showroom — becomes a film your visitors play at their own pace. The frames can come from your own phone video: we split it into stills, grade them, and wire them to scroll. No video player, no autoplay policies, no buffering wheel.
createImageBitmap(frame) → drawImage(cover-fit) — decode ~24 ahead, evict behind

