kubeez-scroll-world-video: a scroll-scrubbed burger world and the skill that builds one
Scroll-scrubbed 'fly through the world' burger demo, generated with Kubeez. Live: meepcastana.github.io/kubeez-scroll-world-video
At a glance
- What is it?
- KubeezMedia's demo maps scroll position to video currentTime so the camera flies through a generated clay burger world. The engine is open and dependency-free; the world itself only comes out of the Kubeez platform.
- Who is it for?
- Adopt the engine if you already have continuous forward-glide camera clips and want scroll to drive currentTime rather than page position; the repository is a working reference for that pattern. Skip it if you need a general scroll-animation library, since the demo is a single burger world and the skill generates only through the Kubeez platform at a credit cost the README puts near 1,150 for a 720p build.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 66 days ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What the burger world demo actually does
Scrolling this page does not move a document. It drives a camera. Each scene (market, grill, counter, hero burger) is a short pre-rendered video, and the engine maps scroll position to the video's currentTime, so the act of scrolling scrubs the camera forward through a miniature clay world. The README describes the result as "one continuous shot, no cuts."
The audience for the repository is narrower than the demo suggests. There are two distinct things here: a portable vanilla-JS scrub engine, and a Claude Code plugin called scroll-world-video that interviews you about a topic and brand, generates a world, and wires that same engine. If you want to study or reuse the scroll-to-time mapping, the engine is the part that matters. If you want a finished fly-through for your own business, you are really evaluating the skill and the platform behind it.
Scroll to currentTime, and why the seams are frame-exact
The mechanism is deliberately thin. A config object is passed to mountKubeezWorld, containing brand, sections and connectors. The engine handles scroll-to-time mapping, blob loading, lazy prefetch, frame-matched crossfades, pinned per-section copy, a route rail, prefers-reduced-motion and what the README calls phone hardening.
The transition technique is the interesting part. For each pair of consecutive dive clips, the first frame of the transition is the actual last frame of dive N, extracted from the rendered mp4, and the last frame is the actual first frame of dive N+1. Those two real frames are fed to Seedance 2 as keyframes with a gentle forward-glide prompt, and the model fills the in-between. Because the transition starts on dive N's real last frame and ends on dive N+1's real first frame, the seams are frame-exact, and the engine plays dive1, transition1, dive2 in sequence. Scrolling off the end of a dive kicks off its transition with no visible cut.
The README states one rule plainly: keep the transition a low, continuous forward glide. Prompting it to pull up, rise into the sky or fly to a map view produces a camera reversal that reads as a jump when scrubbed, even with perfect seams. If two scenes sit far apart, the guidance is a longer transition, 7 to 10 seconds, so the move stays slow.
Installing the skill and running the demo locally
The README gives the plugin install path for Claude Code. It installs the plugin and, per the README, auto-wires the Kubeez MCP.
/plugin marketplace add KubeezMedia/kubeez-scroll-world-video
/plugin install scroll-world-video@kubeez
/scroll-world-videoFor Codex, Cursor or other agents, the README points at skills/scroll-world-video/SKILL.md and AGENTS.md, with the Kubeez MCP connected at mcp.kubeez.com/mcp. Generation runs only through the Kubeez platform, and the README says you sign in with a Kubeez account to run it.
To view the existing demo, the engine fetches clips as blobs, so the README says to serve over HTTP rather than file://.
python -m http.server 8080
# open http://localhost:8080After that you should see the burger world and be able to scrub it with the scrollbar. The README does not document how to substitute your own clips into the mounted config, or what happens when a connector file is missing; those are the first things to inspect in assets/scrub-engine.js.
The blob loading trade-off and the one-way dependency
Loading each clip as a Blob is what makes smooth seeking work on static hosts such as GitHub Pages, which do not serve HTTP byte ranges. That is a real constraint solved with a real technique, and it is the reason the local run needs an HTTP server at all.
The cost is that the whole clip must arrive before scrubbing is smooth. The README mentions lazy prefetch, but it does not state a size budget, a fallback when a clip is still downloading, or what the viewer sees on a slow connection. For a 20-second showcase on a fast link that is fine. For a longer journey with several 7 to 10 second connectors, the prefetch window is the thing most likely to break first.
The second constraint is the generation path. The README is explicit that the scroll engine and method are open, but the skill generates only through the Kubeez platform. So the repository is not a self-contained pipeline you can point at a local diffusion setup. The README puts the full 720p build at roughly 1,150 Kubeez credits, which is the number to check against your own budget before committing to a concept.
When a scroll-scrubbed video is the wrong choice
The README gives no rollback story, no accessibility statement beyond prefers-reduced-motion being handled by the engine, and no guidance on video weight. Those silences matter more than they look.
If your goal is text-heavy product documentation, a scrubbed camera adds megabytes and delays reading. If your content changes weekly, every edit means regenerating clips and transitions, because the seam-matching depends on extracting real boundary frames from rendered mp4s. A CSS or WebGL scroll animation can be edited in place; this cannot.
The demo is also a single authored journey. There is no evidence in the README of branching paths, multiple worlds, or reuse of one dive clip in two places. Treat it as a linear flight, not a general scroll-video framework. And if your viewer is on a metered mobile connection, the blob-first design works against you.
How this differs from a scroll-driven animation library
A library such as GSAP ScrollTrigger or the CSS scroll-driven animations spec animates properties that already exist in the DOM: transforms, opacity, clip paths. The browser computes those values cheaply, and the timeline is defined in code you can read and edit.
This project animates nothing in the DOM. The camera motion is baked into video files by Seedance 2 and gpt-image-2, and the engine's only job is to seek those files. That difference decides your workflow. With a scroll library, art direction happens in the browser and iteration is instant. Here, art direction happens on the Kubeez platform, iteration costs credits and render time, and the browser is a playback surface. The payoff is imagery a DOM animation cannot produce: a photoreal clay world with consistent lighting across four scenes.
If you need both, the honest split is a scroll library for interface motion and this pattern for one hero sequence.
Licence, maintenance and what the repository leaves open
The repository lists no licence, which is the first thing to resolve before shipping anything derived from it. Without a licence file, the default position is that no rights are granted, and the README's note that the engine and method are open is a description, not a licence grant. The imagery and motion were generated on the Kubeez platform, so the assets carry their own provenance question separate from the code.
Maintenance is visible but modest. The last push was on 2026-07-14, about two months before this writing, so the repository has not gone stale, but there are no releases and the README does not describe a versioning or upgrade path. The engine is described as dependency-free vanilla JS, which keeps upgrade cost low: there are no transitive packages to track. The real upgrade cost sits on the generation side, where model choices such as Seedance 2 Fast at 720p and the credit cost per build are set by the platform, not by this repository.
Editorial conclusion
Adopt the engine if you already have continuous forward-glide camera clips and want scroll to drive currentTime rather than page position; the repository is a working reference for that pattern. Skip it if you need a general scroll-animation library, since the demo is a single burger world and the skill generates only through the Kubeez platform at a credit cost the README puts near 1,150 for a 720p build. Verify first that your clips seek cleanly as blobs on a static host with no HTTP byte ranges, and that your transitions are low forward glides rather than pull-ups.
Frequently asked questions
How do I install kubeez-scroll-world-video?
In Claude Code, the README gives three commands: add the marketplace KubeezMedia/kubeez-scroll-world-video, install scroll-world-video@kubeez, then run /scroll-world-video. For Codex, Cursor or other agents, point the agent at skills/scroll-world-video/SKILL.md and connect the Kubeez MCP.
Can I run kubeez-scroll-world-video locally without the Kubeez platform?
You can serve the existing demo locally with python -m http.server 8080 and open http://localhost:8080, because the engine fetches clips as blobs and needs HTTP rather than file://. Generating a new world, however, runs only through the Kubeez platform, and the README says you sign in with a Kubeez account to run the skill.
Why does kubeez-scroll-world-video use video clips instead of CSS scroll animation?
The README says scroll drives a camera rather than a page: each scene is a pre-rendered video and the engine maps scroll position to currentTime. The imagery was generated with gpt-image-2 and Seedance 2, which is not something a DOM animation can produce, but it also means edits require regenerating clips.
Community notes