#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

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
10.8kGitHub stars
150stars in 7 days
1skill in this repository
0commits in 30 days

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

Aug 2, 2026Nov 6, 202610,833

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

12,848 tokens

When the skill is activated

Reference documents

7,710 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Step 0 — Bootstrap
  2. Step 1 — Interview the user
  3. Step 2 — Generate the scene stills
  4. Step 3 — (Optional) Float the scenes
  5. Step 4 — Camera architecture (implements the Step 1.4 choice)
  6. Step 5 — Connectors (architecture B only)
  7. Step 6 — Encode for smooth scrubbing
  8. Step 7 — Assemble the page
  9. Step 8 — QA the seams (don't skip)
  10. Gotchas (hard-won)
  11. References

Scripts executed separately

  • references/knockout.py
  • references/scrub-engine.js

Files

  • ../../.claude-plugin/marketplace.jsonasset801 bytes
  • ../../.claude-plugin/plugin.jsonasset958 bytes
  • SKILL.mdcore49,544 bytes
  • SKILL.mdcore49,544 bytes
  • SKILL.mdcore49,544 bytes
  • SKILL.mdcore49,544 bytes
  • SKILL.mdcore49,544 bytes
  • SKILL.mdcore49,544 bytes
  • SKILL.mdcore49,544 bytes
  • SKILL.mdcore49,544 bytes
  • SKILL.mdcore49,544 bytes
  • references/index-template.htmlasset2,713 bytes
  • references/knockout.pyruns2,855 bytes
  • references/pipeline.mddoc16,220 bytes
  • references/prompts.mddoc9,986 bytes
  • references/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*. Read
View the complete source on GitHub

Skills 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

  1. #139 on Nov 1
  2. #140 on Nov 2
  3. #142 on Nov 3
  4. #140 on Nov 4
  5. #141 on Nov 5
  6. #140 since Nov 6
51 earlier periods
  1. #147 on Aug 2
  2. #141 on Aug 7
  3. #140 on Aug 8
  4. #139 on Aug 9
  5. #142 on Aug 10
  6. #140 on Aug 11
  7. #141 from Aug 12 to Aug 15
  8. #140 on Aug 16
  9. #141 from Aug 17 to Aug 19
  10. #140 from Aug 20 to Aug 21
  11. #136 on Aug 22
  12. #138 from Aug 23 to Aug 26
  13. #136 from Aug 27 to Aug 29
  14. #135 on Aug 30
  15. #136 from Aug 31 to Sep 1
  16. #135 on Sep 2
  17. #136 on Sep 3
  18. #135 on Sep 4
  19. #136 on Sep 5
  20. #135 on Sep 6
  21. #134 from Sep 7 to Sep 8
  22. #135 from Sep 9 to Sep 11
  23. #136 on Sep 12
  24. #137 from Sep 13 to Sep 14
  25. #138 from Sep 15 to Sep 16
  26. #139 from Sep 17 to Sep 18
  27. #138 on Sep 19
  28. #139 from Sep 20 to Sep 22
  29. #138 on Sep 23
  30. #137 on Sep 24
  31. #139 from Sep 25 to Sep 26
  32. #138 on Sep 27
  33. #139 from Sep 28 to Sep 29
  34. #138 on Sep 30
  35. #139 from Oct 1 to Oct 2
  36. #138 from Oct 3 to Oct 4
  37. #139 on Oct 5
  38. #138 on Oct 6
  39. #140 from Oct 7 to Oct 8
  40. #139 on Oct 9
  41. #138 from Oct 10 to Oct 14
  42. #137 on Oct 15
  43. #136 on Oct 16
  44. #137 on Oct 17
  45. #138 from Oct 18 to Oct 20
  46. #139 on Oct 21
  47. #140 from Oct 22 to Oct 24
  48. #141 on Oct 25
  49. #140 on Oct 28
  50. #139 on Oct 29
  51. #140 from Oct 30 to Oct 31

Before you install

Network or broad shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/scroll-world/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/scroll-world/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/scroll-world/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/scroll-world/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/scroll-world/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/scroll-world/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/scroll-world/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 32 signals by file

.claude-plugin/marketplace.json

  • Network accessline 1
    {   "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
  • Network accessline 2
    "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",

.claude-plugin/plugin.json

  • Network accessline 7
    "email": "cyw@cywang.me"   },   "homepage": "https://github.com/oso95/scroll-world",
  • Network accessline 8
    },   "homepage": "https://github.com/oso95/scroll-world",   "license": "MIT",
  • Network accessline 9
    "homepage": "https://github.com/oso95/scroll-world",

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 25
    [Credential-related source omitted]

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

  • Executable scriptline 1
    Executable file
  • Network accessline 204
    const url = (isMobile() && s.clipM) ? s.clipM : s.clip;     fetch(url).then(r => r.ok ? r.blob() : Promise.reject(new Error('404')))
  • Network accessline 205
    fetch(url).then(r => r.ok ? r.blob() : Promise.reject(new Error('404')))

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

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/scroll-world/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/scroll-world/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/scroll-world/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/scroll-world/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.

oso95/scroll-world: #140 on hotskills, 10.8k stars

[![oso95/scroll-world on hotskills](https://hotskills.dev/badge/oso95-scroll-world.svg)](https://hotskills.dev/skill/oso95-scroll-world/)