#140 by GitHub stars
oso95/scroll-world
Build an immersive scroll-scrubbed "fly through the world" landing page for any industry or brand using Higgsfield. As the visitor scrolls, a pre-rendered camera flies from outside each scene into its interior, then flows on to the next scene with NO cuts — one continuous connected flight (Emons-sty
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/scroll-world/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
71cc36d3bb15 → 71cc36d3bb15
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 71cc36d3bb15
No earlier version was observed for comparison.
Verified commit 71cc36d3bb150248ae36a2c552f9cbf88802a79c
git clone --filter=blob:none --no-checkout https://github.com/oso95/scroll-world.git .hotskills/oso95-scroll-world && git -C .hotskills/oso95-scroll-world checkout --detach 71cc36d3bb150248ae36a2c552f9cbf88802a79c
# Copy each selected skill directory from .hotskills/oso95-scroll-world into .claude/skills/<skill-name>/Heat
6.2- Star growth, last 7 daysAhead of 88% of tracked repositories
- Star growth, last 24 hoursAhead of 84% of tracked repositories
- Rank movement, last 7 daysAhead of 74% of tracked repositories
- Commits, last 30 daysAhead of 0% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- scroll-world
skills/scroll-world
How it works
scroll-world
When your agent uses it
Build an immersive scroll-scrubbed "fly through the world" landing page for any industry or brand using Higgsfield. As the visitor scrolls, a pre-rendered camera flies from outside each scene into its interior, then flows on to the next scene with NO cuts — one continuous connected flight (Emons-style isometric diorama world, or any art direction you pick). The skill interviews the user for the topic, the story beats/sections, and brand kit, then generates cohesive scenes + seamless camera clips with Higgsfield and wires a portable, framework-agnostic scroll-scrub engine. The video chain renders through Monid by default (Seedance 2.0, pay-per-clip USD — capability re-checked each build, see Step 4) with Higgsfield credits as the fallback biller. Use when the user wants a "3D world" / "browse-through-the-industry" hero, a scroll cinematic, a diorama landing, or to turn a business into a scrollable world.
What it loads into context
Frontmatter
255 tokensAlways available to the agent
SKILL.md
12,848 tokensWhen the skill is activated
Reference documents
7,710 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 0 — Bootstrap
- Step 1 — Interview the user
- Step 2 — Generate the scene stills
- Step 3 — (Optional) Float the scenes
- Step 4 — Camera architecture (implements the Step 1.4 choice)
- Step 5 — Connectors (architecture B only)
- Step 6 — Encode for smooth scrubbing
- Step 7 — Assemble the page
- Step 8 — QA the seams (don't skip)
- Gotchas (hard-won)
- References
Scripts executed separately
references/knockout.pyreferences/scrub-engine.js
Files
../../.claude-plugin/marketplace.jsonasset801 bytes../../.claude-plugin/plugin.jsonasset958 bytesSKILL.mdcore49,544 bytesSKILL.mdcore49,544 bytesSKILL.mdcore49,544 bytesSKILL.mdcore49,544 bytesSKILL.mdcore49,544 bytesSKILL.mdcore49,544 bytesSKILL.mdcore49,544 bytesSKILL.mdcore49,544 bytesSKILL.mdcore49,544 bytesreferences/index-template.htmlasset2,713 bytesreferences/knockout.pyruns2,855 bytesreferences/pipeline.mddoc16,220 bytesreferences/prompts.mddoc9,986 bytesreferences/scrub-engine.jsruns28,697 bytes
Read SKILL.md
# scroll-world
Produces a landing page where **scroll drives a camera**: it dives from outside a scene
into its interior, then flies out and into the next scene, continuously, with no visible
cuts. The visuals are AI-generated — stills via Higgsfield (or Codex), the video chain
via **Monid by default** (pay-per-clip Seedance 2.0; Higgsfield credits as fallback) —
and the page just scrubs pre-rendered video by scroll position. This is the same technique behind Apple's scroll-through product
pages — the camera genuinely moves, scroll only drives time.
**What you generate:** N scene stills → N "dive-in" camera clips → N-1 "connector" clips
that join consecutive scenes seamlessly → a portable scrub engine that plays the whole
chain as one flight.
**The one rule that makes or breaks it:** seams must be *frame-identical*. ReadView the complete source on GitHubSkills included
- scroll-world
Repository facts
- License
- MIT
- Created
- Jul 6, 2026
- Last pushed
- Jul 29, 2026
- Forks
- 1,184
- Open issues
- 4
- Project activity
- Slowing
Rank over the last 12 weeks
Now #140 · best #134 · same as 30 days ago
- #139 on Nov 1
- #140 on Nov 2
- #142 on Nov 3
- #140 on Nov 4
- #141 on Nov 5
- #140 since Nov 6
51 earlier periods
- #147 on Aug 2
- #141 on Aug 7
- #140 on Aug 8
- #139 on Aug 9
- #142 on Aug 10
- #140 on Aug 11
- #141 from Aug 12 to Aug 15
- #140 on Aug 16
- #141 from Aug 17 to Aug 19
- #140 from Aug 20 to Aug 21
- #136 on Aug 22
- #138 from Aug 23 to Aug 26
- #136 from Aug 27 to Aug 29
- #135 on Aug 30
- #136 from Aug 31 to Sep 1
- #135 on Sep 2
- #136 on Sep 3
- #135 on Sep 4
- #136 on Sep 5
- #135 on Sep 6
- #134 from Sep 7 to Sep 8
- #135 from Sep 9 to Sep 11
- #136 on Sep 12
- #137 from Sep 13 to Sep 14
- #138 from Sep 15 to Sep 16
- #139 from Sep 17 to Sep 18
- #138 on Sep 19
- #139 from Sep 20 to Sep 22
- #138 on Sep 23
- #137 on Sep 24
- #139 from Sep 25 to Sep 26
- #138 on Sep 27
- #139 from Sep 28 to Sep 29
- #138 on Sep 30
- #139 from Oct 1 to Oct 2
- #138 from Oct 3 to Oct 4
- #139 on Oct 5
- #138 on Oct 6
- #140 from Oct 7 to Oct 8
- #139 on Oct 9
- #138 from Oct 10 to Oct 14
- #137 on Oct 15
- #136 on Oct 16
- #137 on Oct 17
- #138 from Oct 18 to Oct 20
- #139 on Oct 21
- #140 from Oct 22 to Oct 24
- #141 on Oct 25
- #140 on Oct 28
- #139 on Oct 29
- #140 from Oct 30 to Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 2, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 8 notes
skills/scroll-world/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/scroll-world/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/scroll-world/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/scroll-world/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/scroll-world/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/scroll-world/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/scroll-world/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/scroll-world/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- 1 broad permissionin 1 file: scroll-world/SKILL.md:1
- No dangerous shell commands
- 28 network referencesin 5 files: scroll-world/references/pipeline.md:39 scroll-world/SKILL.md:345 .claude-plugin/plugin.json:7 and 2 more
- No hidden or obfuscated text
- No instruction overrides
- 2 executable scriptsin 2 files: scroll-world/references/knockout.py:1 scroll-world/references/scrub-engine.js:1
- 1 reference to secretsin 1 file: scroll-world/references/knockout.py:25
- No requests to vote in Hot
Show all 32 signals by file
.claude-plugin/marketplace.json
.claude-plugin/plugin.json
skills/scroll-world/SKILL.md
- Broad permissionsline 1
Bash, Read, Write, Edit, AskUserQuestion, Skill - Network accessline 345
base64 data URLs are **rejected** ("Must be a public https:// URL or an asset://<id> reference"). Local frames travel through Monid's free workspace file system: `sfs /put` → `curl -T` the bytes → `sfs /cat` returns a signed - Network accessline 346
asset://<id> reference"). Local frames travel through Monid's free workspace file system: `sfs /put` → `curl -T` the bytes → `sfs /cat` returns a signed public URL to paste into the body ($0, explicitly built for this). - Network accessline 347
file system: `sfs /put` → `curl -T` the bytes → `sfs /cat` returns a signed - Network accessline 713
- **Monid seedance rejects inline images** → "Must be a public https:// URL or an asset://<id> reference": frames go through the free `sfs` file system (put → `curl -T` → cat → signed URL; pipeline.md → Monid backend), never base64. - Network accessline 714
asset://<id> reference": frames go through the free `sfs` file system (put → `curl -T` → cat → signed URL; pipeline.md → Monid backend), never base64. Quirk: `/put` echoes back `home/<path>`, but `/cat` and `/ls` want the **original - Network accessline 715
(put → `curl -T` → cat → signed URL; pipeline.md → Monid backend), never base64.
skills/scroll-world/references/knockout.py
skills/scroll-world/references/pipeline.md
- Network accessline 39
url=$(jq -r '.[0].result_url // empty' "$WORK/still_$1.json") [ -n "$url" ] && curl -fsSL "$url" -o "$WORK/still_$1.png" && echo "still $1 ok" || echo "still $1 FAIL" - Network accessline 40
[ -n "$url" ] && curl -fsSL "$url" -o "$WORK/still_$1.png" && echo "still $1 ok" || echo "still $1 FAIL" - Network accessline 75
--wait --wait-timeout 20m --json > "$WORK/dive_$1.json" 2> "$WORK/dive_$1.err" url=$(jq -r '.[0].result_url // empty' "$WORK/dive_$1.json") [ -n "$url" ] && curl -fsSL "$url" -o "$WORK/dive_$1.mp4" && echo "dive $1 ok" || echo "dive $1 - Network accessline 76
url=$(jq -r '.[0].result_url // empty' "$WORK/dive_$1.json") [ -n "$url" ] && curl -fsSL "$url" -o "$WORK/dive_$1.mp4" && echo "dive $1 ok" || echo "dive $1 FAIL" } - Network accessline 77
[ -n "$url" ] && curl -fsSL "$url" -o "$WORK/dive_$1.mp4" && echo "dive $1 ok" || echo "dive $1 FAIL" - Network accessline 108
--wait --wait-timeout 20m --json > "$WORK/conn_$1.json" 2> "$WORK/conn_$1.err" url=$(jq -r '.[0].result_url // empty' "$WORK/conn_$1.json") [ -n "$url" ] && curl -fsSL "$url" -o "$WORK/conn_$1.mp4" && echo "conn $1 ok" || echo "conn $1 - Network accessline 109
url=$(jq -r '.[0].result_url // empty' "$WORK/conn_$1.json") [ -n "$url" ] && curl -fsSL "$url" -o "$WORK/conn_$1.mp4" && echo "conn $1 ok" || echo "conn $1 FAIL" } - Network accessline 110
[ -n "$url" ] && curl -fsSL "$url" -o "$WORK/conn_$1.mp4" && echo "conn $1 ok" || echo "conn $1 FAIL" - Network accessline 223
curl -fsS -T "$jpg" "$up" > /dev/null - Network accessline 248
monid_wait "$rid" "$WORK/dive_$1.json" url=$(jq -r '.output.content.video_url // empty' "$WORK/dive_$1.json") [ -n "$url" ] && curl -fsSL "$url" -o "$WORK/dive_$1.mp4" \ - Network accessline 249
url=$(jq -r '.output.content.video_url // empty' "$WORK/dive_$1.json") [ -n "$url" ] && curl -fsSL "$url" -o "$WORK/dive_$1.mp4" \ && echo "dive $1 ok (\$$(jq -r '.cost.value' "$WORK/dive_$1.json"))" \ - Network accessline 250
[ -n "$url" ] && curl -fsSL "$url" -o "$WORK/dive_$1.mp4" \ - Network accessline 265
monid_wait "$rid" "$WORK/conn_$1.json" url=$(jq -r '.output.content.video_url // empty' "$WORK/conn_$1.json") [ -n "$url" ] && curl -fsSL "$url" -o "$WORK/conn_$1.mp4" \ - Network accessline 266
url=$(jq -r '.output.content.video_url // empty' "$WORK/conn_$1.json") [ -n "$url" ] && curl -fsSL "$url" -o "$WORK/conn_$1.mp4" \ && echo "conn $1 ok (\$$(jq -r '.cost.value' "$WORK/conn_$1.json"))" \ - Network accessline 267
[ -n "$url" ] && curl -fsSL "$url" -o "$WORK/conn_$1.mp4" \
skills/scroll-world/references/scrub-engine.js
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 32 facts
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:1High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:2High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:7High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:8High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:9High confidence
- Broad permissions in the frontmatter of the SKILL.mdscroll-world/SKILL.md:1High confidence
- Network access in prose of the SKILL.mdscroll-world/SKILL.md:345Low confidence
- Network access in prose of the SKILL.mdscroll-world/SKILL.md:346Low confidence
- Network access in prose of the SKILL.mdscroll-world/SKILL.md:347Low confidence
- Network access in prose of the SKILL.mdscroll-world/SKILL.md:713Low confidence
- Network access in prose of the SKILL.mdscroll-world/SKILL.md:714Low confidence
- Network access in prose of the SKILL.mdscroll-world/SKILL.md:715Low confidence
- Executable script in code of a file that runsscroll-world/references/knockout.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuescroll-world/references/knockout.py:25Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:39Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:40Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:75Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:76Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:77Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:108Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:109Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:110Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:223Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:248Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:249Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:250Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:265Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:266Low confidence
- Network access in code of documentationscroll-world/references/pipeline.md:267Low confidence
- Executable script in a comment of a file that runsscroll-world/references/scrub-engine.js:1Low confidence
- Network access in code of a file that runsscroll-world/references/scrub-engine.js:204High confidence
- Network access in code of a file that runsscroll-world/references/scrub-engine.js:205High confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/scroll-world/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/scroll-world/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/scroll-world/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/scroll-world/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/scroll-world/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/oso95-scroll-world/)