# scroll-world: an agent skill that renders a scroll-scrubbed 3D flight landing page

> scroll-world is a Claude Code and Codex skill that generates isometric diorama scenes and frame-locked camera clips, then wires them into a scroll-driven flight through a brand's world. It is framework-agnostic, paid per render, and depends on external CLIs.

**oso95/scroll-world** — A skill that turn any brand into a scrollable 3D world landing page

- Repository: https://github.com/oso95/scroll-world
- Stars: 9,596 · Forks: 1,073
- Language: JavaScript
- License: MIT
- Published: 2026-09-17 · Updated: 2026-09-17 · Language: en
- Canonical page: https://hysenlabs.com/projects/oso95-scroll-world

## The problem scroll-world solves, and who it is actually for

A scroll-scrubbed landing page, the kind Apple uses on product pages, is not a video with a playhead tied to scroll. The camera has to move from outside a scene into its interior, then continue into the next scene with no cut, so the viewer perceives one continuous flight. Building that by hand means generating stills, generating per-scene camera clips, and then generating connector clips whose first and last frames match the neighbours exactly. That seam work is the hard part, and it is what scroll-world automates.

The skill targets teams that already have a brand and a pitch and want a generated world around it, not a generic template. It is built for agents: Claude Code, Codex, and any agent that reads a SKILL.md file. The README frames the output as an isometric diorama world, with the camera diving into each scene in turn. If your page is mostly text and one hero image, this is a large amount of machinery for the result.

## How the flight stays seamless: stills, dive-in clips, and connectors

The pipeline has three asset layers. First, one still per scene, generated with GPT Image 2 through Higgsfield or through the Codex CLI's built-in image_gen if that CLI is present. Second, one dive-in camera clip per scene, generated as image-to-video from that still. Third, connector clips that join consecutive scenes. The README states the connectors are generated from the actual rendered frames of their neighbours, which is what makes every seam frame-identical rather than merely similar.

On the client side, references/scrub-engine.js is a portable, config-driven engine that plays the whole chain as one flight. The README lists blob-seek, lazy loading, and seam crossfade as its behaviours, and says it drops into plain HTML, Next.js, Vue, or a Python-served page. Scroll position drives time; the camera motion is baked into the clips. The engine also serves portrait clips and posters automatically on phones when the mobile chain was rendered.

The skill itself lives in skills/scroll-world/, with SKILL.md holding the procedure, the seam rule, and gotchas, and references/ holding the prompt templates, batch scripts, scrub engine, a minimal standalone page, and knockout.py for background removal on floating scenes.

## Installing scroll-world as a Claude Code plugin or a Codex skill

For Claude Code, the README recommends the plugin route. Both commands run inside the agent, not a shell, and after them you can invoke the skill by name or just describe the page you want.

```bash
/plugin marketplace add oso95/scroll-world
/plugin install scroll-world@scroll-world
```

For Codex and other agents, install through Vercel's skills CLI. The first form prompts you to pick agents; the second targets Codex directly.

```bash
npx skills add oso95/scroll-world            # pick your agent(s) when prompted
npx skills add oso95/scroll-world -a codex   # or target Codex directly
```

If you prefer a drop-in copy, clone the repository and copy the skill folder into your agent's skills directory. The paths below are the ones the README gives for Claude Code and Codex.

```bash
git clone https://github.com/oso95/scroll-world
cp -R scroll-world/skills/scroll-world ~/.claude/skills/   # Claude Code
cp -R scroll-world/skills/scroll-world ~/.codex/skills/    # Codex
```

Before a first real build, check the external requirements: the Monid CLI with an API key and balance, the Higgsfield CLI authenticated via `higgsfield auth login` with credits, ffmpeg and ffprobe, and Python 3 with Pillow. The Codex CLI is optional and only changes where the stills are billed. A first run then starts with the intake interview: subject and pitch, brand kit, art direction, the ordered scene list, whether you want the mobile portrait chain, and the budget. Nothing generates until you approve the estimated cost.

## The seam rule is the design bet, and it is also the cost driver

scroll-world only uses video models that can frame-lock a seam, per the README. That constraint is why the default backend is Monid with Seedance 2.0, with Seedance or Kling on Higgsfield credits as the fallback. A model that cannot accept first and last frame conditioning cannot produce a connector that matches its neighbours, so the continuous flight would break. The README states the Monid default was verified on 2026-07-25 for first and last frame conditioning, that frames travel through Monid's free workspace file system, and that the skill re-checks the endpoint schema on each build and keeps qualification probes in the pipeline for when the catalog changes.

That last detail is a real maintenance surface, not a footnote. A skill that probes a third-party endpoint schema at build time is telling you the API contract is not guaranteed stable. If Monid changes its catalog or conditioning behaviour, the skill's probes are what stand between you and a broken chain, and the Higgsfield fallback is the escape hatch.

Cost scales with scene count in a way that is easy to underestimate. The README gives roughly N image generations plus about 2N-1 video generations, and notes that the mobile chain doubles the video generations. Monid is billed per token and printed per run; Higgsfield pricing is not exposed by its CLI, so the skill calibrates against your live balance instead. The README's own figure is a 6-scene 1080p chain at about $27 on Monid.

## Where scroll-world is the wrong tool

The generated .mp4 and .webp assets are produced per project and are not shipped in the repository. That means there is no demo asset set to inspect before you spend, and no offline path: without Monid or Higgsfield credits, the skill cannot produce anything. If you need a landing page that renders the same for every visitor with zero per-project generation cost, this is the wrong layer.

The pipeline also assumes you can wait. The README says generation is slow and that the skill runs generations in the background and polls. A team expecting an asset set in a few minutes will be disappointed. Nor is the skill a general animation library: it produces one specific format, a continuous dive-through chain, and the scrub engine expects that chain. Using it for a conventional hero video with scroll-linked playback would mean fighting the connector model for no benefit.

Finally, the mobile version is a second render, not a crop. If you skip it, phones get the landscape chain. The README is explicit that the portrait chain is composed natively in 9:16, so the option is a budget decision with a visible quality consequence, not a cosmetic toggle.

## Alternatives: hand-rolled scroll video versus a 3D scene graph

The closest alternative is doing it manually with an AI video tool and a scroll library. You would generate stills yourself, prompt each camera move, and then try to match the last frame of one clip to the first frame of the next. The difference is that the connector generation and the seam rule are your problem, and frame-identical seams are the exact thing that is tedious to get right by hand. scroll-world's contribution is that step plus the config-driven engine.

A different alternative is a real 3D scene built in Three.js or a similar renderer, where scroll drives a camera through modelled geometry. That approach gives you true parallax and a scene graph you can edit, and the camera path is deterministic. It also means modelling and lighting every scene, and the visual style will be whatever your geometry and shaders produce rather than a generated isometric diorama. scroll-world trades control of the world for generated art and baked camera flights. If art direction flexibility matters more than production speed, the 3D route is the honest comparison, and it shares no code with this skill.

## Maintenance, upgrade cost, and what MIT covers here

The repository is not archived and the last push was on 2026-07-29. There are no releases listed, so installation is from the main branch or through the plugin and skills CLIs, and there is no versioned artifact to pin. Upgrades therefore arrive as changes to SKILL.md, the prompt templates, the batch scripts, or scrub-engine.js. If you have already generated assets, a change to the scrub engine's config shape is the one most likely to require edits on your side, since the engine is the piece your page mounts.

The licence is MIT, which covers the skill code, the prompt templates, and the scrub engine in this repository. It does not cover the generated assets, and it does not govern the Monid or Higgsfield services you call, which have their own terms and billing. The README does not state any licence position on the output assets beyond noting they are produced per project and not shipped here, so treat asset rights as something to confirm with the model providers rather than something MIT settles. This is a description of the licence file, not legal advice.

## Conclusion

Adopt scroll-world if you already pay for Higgsfield or Monid and want a continuous fly-through landing page without hand-building the seam logic; the skill's value is the frame-locked connector step and the portable scrub engine, not the stills themselves. Do not adopt it if you need a free or offline pipeline, or if you cannot approve a per-clip budget before generation, because the README states a 6-scene 1080p chain on Monid runs about $27 and the mobile portrait chain doubles the video generations. Before you commit, verify that your Monid or Higgsfield account has balance, that ffmpeg, ffprobe and Python 3 with Pillow are on PATH, and that the current Monid endpoint schema still matches what the skill probes for, since the README notes the skill re-checks that schema on every build.

## FAQ

### What is scroll-world used for?

It is an agent skill for Claude Code, Codex, and other SKILL.md-compatible agents that builds a scroll-scrubbed landing page where the camera flies from outside each scene into its interior and on to the next with no cuts. The README describes it as a continuous connected flight through a generated world, applied to any industry or brand.

### What is the best website for scroll animation?

scroll-world is not a website but a skill that generates one, and the README points to Apple's scroll-through product pages and the Emons logistics site as the reference for the effect. Whether the result is good depends on the generated scenes and camera clips, which are produced per project and are not shipped in the repository.

### Is scroll-world a GitHub repository I can install from?

Yes. The README gives three install routes: a Claude Code plugin via `/plugin marketplace add oso95/scroll-world`, Vercel's skills CLI via `npx skills add oso95/scroll-world`, or a manual clone and copy of `skills/scroll-world` into your agent's skills directory.

### What does scroll-world require before it can generate anything?

The README lists the Monid CLI with an API key and balance as the default video backend, the Higgsfield CLI authenticated with credits as the fallback, ffmpeg and ffprobe, and Python 3 with Pillow. The Codex CLI is optional and routes scene stills through its built-in image_gen.

### How much does a scroll-world build cost?

The README estimates roughly N image generations plus about 2N-1 video generations, with the mobile portrait chain doubling the video generations. It gives a 6-scene 1080p chain at about $27 on Monid, and states the estimated total is shown for approval before anything generates.

## Sources

- [Issues](https://github.com/oso95/scroll-world/issues)
- [License: MIT](https://github.com/oso95/scroll-world/blob/main/LICENSE)
- [oso95/scroll-world on GitHub](https://github.com/oso95/scroll-world)
- [README](https://github.com/oso95/scroll-world/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/oso95-scroll-world
