Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Turn an article, case study, brand narrative, product journey, or long-form story into a cinematic scroll-driven landing page using one of three renderers: scrubbed video, a real-time Three.js world, or semantic HTML/SVG data and typography. Use when the user asks for a scroll world, fly-through landing page, article-to-website transformation, animated planet, data scrollytelling, video-scrubbed page, connected visual journey, or story-led alternative to ordinary stacked sections.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 43% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 43% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 141% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 41% | 0% |
Turn source material into one connected journey. Scroll advances a visual world and the copy reveals the story in deliberate beats.
The skill has exactly three production modes. Choose one primary mode before building:
Do not mix modes by default. A focused renderer produces a clearer concept, smaller test surface, and more reliable fallback.
Write these blocks before implementation.
> Turn the supplied story into a one-page journey with 5–7 memorable beats and one final action. A first-time visitor should understand the thesis, tension, mechanism, proof, and payoff without reading the source.
If a local daily-inspiration archive exists, inspect the latest one or two capture articles, their stills, and representative local motion files before choosing the art direction. Extract principles such as palette, hierarchy, material, composition, and motion; do not copy layouts literally or upload local reference files to an external generator without explicit approval.
When reuse rights are unclear, paraphrase the source and keep quotations short. Never fabricate testimonials, metrics, or customer claims.
Reduce the source to 5–7 beats:
Create a beat ledger before code:
| Field | Constraint | | --- | --- | | id | short stable slug | | scene | what exists in the visual world | | eyebrow | 2–4 words | | headline | 3–8 words | | body | one sentence, ideally under 24 words | | evidence | exact source fact or asset | | motion | one clear verb phrase | | scroll weight | 0.7–1.8 viewport heights | | CTA | final beat only unless required earlier |
Combine repeated arguments. Do not turn every paragraph into a scene.
Define:
For generated media, reuse the style preamble byte-for-byte in every asset prompt.
| Choose | Best for | Strength | Main cost | | --- | --- | --- | --- | | Video scrub | cinematic realism, places, products, pre-rendered camera moves | exact art direction and photographic finish | heavier assets and seek tuning | | Three.js world | planets, objects, maps, systems, spatial interaction | real-time depth and responsive camera control | WebGL performance and fallback work | | HTML / data / type | reports, launches, metrics, editorial stories | accessible, crisp, lightweight, content-first | less photographic spectacle |
If the story is primarily proof and numbers, prefer HTML/data. If the central metaphor is spatial and interactive, prefer Three.js. If cinematic imagery is the idea, prefer video.
Use demo/video/index.html and demo/video/PROMPT.md.
When the user requests Grok Imagine, use its current video interface or API, choose Video, set the requested aspect ratio, duration, and resolution, and generate the approved style studies. Prefer 16:9, 6–10 seconds, and 720p for a first landing-page pass unless the brief requires otherwise. Never substitute a procedural placeholder and call it generated footage.
Preferred prompt shape:
> Single continuous camera move], no cuts. Travel through world metaphor] from opening] to payoff]. Exact scene sequence]. Byte-identical style preamble]. Center-safe composition, quiet negative space for editorial copy, no text, no logos, no captions.
Do not promise seamless connectors unless the model accepts the required start frame, or both endpoints for a connector.
~~~bash ffmpeg -i source.mp4 -an \ -c:v libx264 -preset slow -crf 20 -pix_fmt yuv420p \ -g 8 -keyint_min 8 -sc_threshold 0 \ -movflags +faststart output.mp4 ~~~
currentTime; coalesce seeks in requestAnimationFrame.Use demo/threejs/index.html and demo/threejs/PROMPT.md.
Use local, pinned Three.js files in portable demos. Do not depend on a remote CDN for the core renderer.
Use demo/html-data/index.html and demo/html-data/PROMPT.md.
This mode should not secretly become Canvas or WebGL. Its advantage is native layout, accessibility, and sharp responsive typography.
Keep content separate from renderer code:
~~~js const story = { title: "The journey", cta: { label: "Begin", href: "#begin" }, sections: { id: "hook", eyebrow: "01 / Premise", title: "A destination, not a route.", body: "Define arrival clearly and let the system find the path.", evidence: null, scroll: 1.4 } ] }; ~~~
Every runtime needs:
Check:
Repeat: build, verify, close the largest gap. Stop when no material gap remains against the bar.
Return:
Start at demo/index.html for the three-mode launcher. Keep REFERENCES.md as the external reading list.
Other measured skills in the registry, with their headline benchmark lift.