Agent skill

Build Threejs Scroll Worlds

by nirholas in nirholas/three.ws

Build rich, scroll-controlled real-time Three.js experiences as one persistent 3D world whose camera, lighting, atmosphere, materials, objects, DOM story, and interactions evolve across authored…

Apache-2.0Auto-check passedGame Development

Install Build Threejs Scroll Worlds

skills CLI
$ npx skills add nirholas/three.ws --skill build-threejs-scroll-worlds -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nirholas/three.ws build-threejs-scroll-worlds --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .claude/skills && cp -r skills-src/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds .claude/skills/build-threejs-scroll-worlds && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
build-threejs-scroll-worlds
GitHub stars
227
Used in
1 other repo
Token cost
~4.7k tokens
SKILL.md length
2,193 words
Files
28 (incl. references)
Skills in repo
92
Repo updated
First seen
Licence
Apache-2.0

At a glance

Build rich, scroll-controlled real-time Three.js experiences as one persistent 3D world whose camera, lighting, atmosphere, materials, objects, DOM story, and interactions evolve across authored…

  • Works in 5 steps: Inline or preload the critical shell,… → Load the next chapter before it can… → Decode textures off the main interaction… → …
  • 3D scrollytelling
  • SKILL.md covers Route the request correctly, Read the build references, Start with the output, not the… and Write the world bible before…, plus 13 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Build Threejs Scroll Worlds is an agent skill from nirholas/three.ws. Build rich, scroll-controlled real-time Three.js experiences as one persistent 3D world whose camera, lighting, atmosphere, materials, objects, DOM story, and interactions evolve across authored chapters. Use for 3D scrollytelling, scroll-driven WebGL worlds, camera journeys, interactive portfolios, product stories, exhibitions, explainers, game or film microsites, spatial narratives, and multi-scene websites where native scroll should travel through one continuous place. Not limited to landing pages.

Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 32 other files, including reference files (for example `agents/openai.yaml` and `demo/PROMPT.md`).

It sits in Game Development, covering 3D graphics and WebGL. It works with Three.js. The repository describes itself as: Open-source platform for 3D AI agents. Turn text or a photo into a rigged, animated GLB avatar, give it an LLM brain, memory and a wallet, and embed it anywhere with one web… The licence is Apache-2.0.

When your agent uses it

  • 3D scrollytelling
  • Scroll-driven WebGL worlds
  • Camera journeys
  • Interactive portfolios

Example prompts

  • “/build-threejs-scroll-worlds”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Inline or preload the critical shell, camera, first-scene geometry, smallest environment, and fallback poster.
  2. Load the next chapter before it can enter; prefetch one or two chapters ahead.
  3. Decode textures off the main interaction path and reveal a chapter only when its required assets are ready.
  4. Keep a designed poster and semantic DOM visible if WebGL, a model, or a texture fails.
  5. Report meaningful progress by required asset weight or completed groups, not an arbitrary timer.

What it can do on your machine

Read from SKILL.md and the folder at commit ddf6e49. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Build Threejs Scroll Worlds loads about 4.7k tokens when it runs, and up to ~18k if it reads all its reference files. Until then it costs about 134 tokens; SKILL.md has 2,193 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~134
When it runs · the whole SKILL.md, loaded when a task matches
~4.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~18k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from nirholas/three.ws at commit ddf6e49, republished under its Apache-2.0 licence (© nirholas). 2,193 words, ~4,654 tokens.

Download SKILL.mdSave it as .claude/skills/build-threejs-scroll-worlds/SKILL.md (or your agent's skills folder). This skill also uses 27 other files; get the full folder from GitHub.
name
build-threejs-scroll-worlds
description
Build rich, scroll-controlled real-time Three.js experiences as one persistent 3D world whose camera, lighting, atmosphere, materials, objects, DOM story, and interactions evolve across authored chapters. Use for 3D scrollytelling, scroll-driven WebGL worlds, camera journeys, interactive portfolios, product stories, exhibitions, explainers, game or film microsites, spatial narratives, and multi-scene websites where native scroll should travel through one continuous place. Not limited to landing pages.

Build Three.js Scroll Worlds

Build one detailed real-time world and use native document scroll as its deterministic conductor. Keep the renderer, scene graph, and spatial continuity alive while camera composition, light, fog, animation, copy, and interaction focus move through authored chapters.

The mechanism is one persistent Three.js world + one normalized reversible scroll state. If removing either makes the experience collapse into stacked sections, this skill applies.

The exact Kage demo proves the quality bar; it is staging, not a mandatory subject or layout. Use its detailed anatomy only when the requested direction benefits from it: references/kage-anatomy.md.

Route the request correctly

  • Use threejs for a single interactive scene with no scroll-authored journey.
  • Use scroll-world-storytelling when deciding between real-time 3D, pre-rendered video, and DOM-first storytelling.
  • Use scroll-scrubbed-visual-sequence for a video or image sequence whose time is scrubbed by scroll.
  • Use cinematic-scroll-storytelling for DOM-first GSAP/Lenis choreography.
  • Use this skill when objects must remain truly spatial and interactive while scroll moves through several compositions in one live WebGL world.

Do not disguise a video as Three.js. The public oso95/scroll-world project, reviewed at commit 71cc36d, is a strong reference for intake, scene ledgers, budget gates, mobile-specific composition, config-driven playback, and seam QA, but its renderer is a pre-generated video chain. This skill adopts those structural strengths while retaining real geometry, materials, lighting, raycasting, and camera control.

Read the build references

Before implementing a new world, read:

Copy references/scroll-conductor.js when a project needs a portable native-scroll conductor rather than a framework-specific implementation.

Start with the output, not the template

Determine what the world is for: a landing page, portfolio, museum chapter, product explanation, game teaser, editorial essay, data story, or another spatial experience. Do not force every request into a hero-plus-CTA layout.

Discover only what is unknown:

  • the subject, audience, and ordered story beats;
  • the art direction and emotional arc;
  • whether the world is continuous, portal-connected, or composed as adjacent sets;
  • the target devices and minimum acceptable hardware;
  • how interactive the world should be beyond scrolling;
  • available models, textures, brand assets, audio, and copy;
  • the initial-load and total-download budget.

If the user supplied an approved reference or working scene, inspect it first and carry its real geometry, materials, textures, light ratios, camera values, and motion constants into the ledger. Do not replace measured details with adjectives.

Write the world bible before code

Define one reusable visual grammar:

  • scale system and unit convention;
  • silhouette language and level of stylization;
  • palette and per-chapter accent progression;
  • material families and wear logic;
  • key, fill, rim, practical, and emissive light roles;
  • fog, haze, particles, weather, and post-processing;
  • typography, DOM composition, and near-plane foreground rules;
  • motion grammar for camera, ambient objects, and interactions.

Every visible detail must support the same world. Random noise, unrelated texture packs, arbitrary particle effects, and one-off materials create complexity without cohesion.

Author a scene ledger

Use 4–8 chapters for most experiences. Store the full contract as data rather than scattering thresholds through CSS and the render loop:

js
const chapters = [
  {
    id: "threshold",
    scrollWeight: 1.25,
    copy: {
      eyebrow: "Chapter 01",
      title: "Enter the archive",
      body: "A spatial collection revealed through motion."
    },
    camera: {
      position: [0, 3.8, 13.5],
      target: [0, 2.4, -8],
      fov: 38,
      mobile: { position: [0, 4.8, 18], fov: 46 }
    },
    world: {
      key: 1.0,
      practicals: 0.35,
      fog: 0.018,
      particles: 0.25,
      grade: "cold"
    },
    focus: ["gate", "lantern-left"],
    interactions: ["inspect-gate"],
    assets: ["gate-shell", "stone-1k", "mist-atlas"]
  }
];

For each chapter record the story beat, landmark, camera endpoint, occluders, light/fog state, active animation clips, interaction targets, DOM beat, foreground treatment, asset dependencies, and responsive override. Reject a chapter that differs only by copy.

Build one persistent spatial architecture

Create these systems once:

text
WebGL canvas
  worldRoot
    environment       sky, terrain, distant silhouettes
    architecture      persistent landmarks and paths
    chapterSets       local props grouped for culling and loading
    interactives      raycast targets and animation state
    atmosphere        fog volumes, particles, weather
    nearPlane3D       optional camera-relative depth accents

DOM above canvas
  semantic chapters  headings, copy, links, media, fallback order
  fixed interface    progress, chapter navigation, controls
  fixed cut-outs      optional alpha foregrounds at viewport edges

Use one renderer and normally one scene. Use layers or render passes when transparency, post-processing, or interaction isolation requires them. Do not instantiate one renderer per chapter or rebuild the world at seams.

Choose a topology deliberately:

  • Continuous geography: landmarks share one navigable space; strongest presence, highest world-building cost.
  • Connected sets: rooms or islands are joined by tunnels, gates, fog banks, terrain folds, or darkness; easiest to art-direct and stream.
  • Layered reveal: the same place changes through time, scale, or state; animate materials, visibility, and light instead of moving to unrelated coordinates.

Hide unavoidable discontinuities behind occlusion, darkness, dense atmosphere, an interior threshold, or a close foreground pass. Never let an object visibly teleport in open space.

Give the world real detail

Geometry
  • Establish the large silhouette first, then medium forms, then small accents. A dense scatter of tiny props cannot rescue a weak silhouette.
  • Give architectural edges believable thickness, bevels, joints, caps, reveals, and contact points. Paper-thin roofs and floating props expose the fake immediately.
  • Use modular kits, instancing, merged static meshes, and LODs instead of duplicating unique geometry.
  • Break repetition with authored clusters, scale/rotation ranges, decals, and material variation—not unbounded randomness.
  • Keep collision and raycast proxies simpler than render meshes.
Materials and textures

Use a coherent PBR surface stack where it improves the image:

maprolecommon failure
base colormaterial identity and broad variationbaked highlights fight live lighting
normalsmall directional reliefstrength too high makes rubber or foil
roughnesscontrols highlight breakup and ageflat values make every object plastic
AOcontact and crevice groundingmultiplied too heavily makes dirty seams
metalnessseparates conductors from dielectricsgray values everywhere create implausible mud
emissivepractical lights, screens, runesreplaces light but does not illuminate nearby forms
alpha/transmissionfoliage, cloth, glass, mistsorting, overdraw, and depth artifacts
  • Set color textures to sRGB and keep normal, roughness, AO, metalness, and data textures linear.
  • Keep texel density consistent within a camera range. Reserve 2K–4K maps for surfaces that genuinely fill the frame; use 512–1K atlases for most props.
  • Prefer KTX2/Basis compression, Meshopt/Draco geometry compression, atlases, trim sheets, decals, and baked AO/light where appropriate.
  • Add anisotropy only to shallow-angle surfaces that need it. Setting every texture to the maximum wastes bandwidth.
  • Make wear causal: exposed edges polish, recesses collect grime, water leaves vertical or pooling traces, and paths compress vegetation. Uniform grunge reads as a filter.
  • For foliage, use alpha-tested cards or instanced low-poly clusters before transparent blended planes. Transparency overdraw is often more expensive than geometry.
Lighting and atmosphere
  • Start with one authored key direction, a restrained environment/fill, and practical emissive sources. Add lights only when they create a visible relationship.
  • Bake static bounce and contact where possible. Keep shadow-casting dynamic lights to roughly 1–2 on mobile and 2–4 on desktop unless profiling proves more.
  • Use fog and haze to separate depth planes, not merely darken the scene. Keep the focal landmark inside the contrast window.
  • Match emissive geometry, glow sprites, actual light intensity, and bloom threshold so lamps feel luminous without bleaching the frame.
  • Use post-processing after the unprocessed frame is composed. Bloom, vignette, grain, chromatic separation, and depth of field must not hide weak materials or framing.

Record the detailed surface and light plan in the ledgers from references/world-bible.md.

Map native scroll to deterministic state

Measure stable section anchors only after fonts and critical media settle. Convert scrollY into a fractional chapter value such as 2.35.

Keep separate values:

js
rig.target = progressFromScroll(scrollY);       // exact reproducible story state
rig.smooth = reduceMotion
  ? rig.target
  : damp(rig.smooth, rig.target, 5.2, dt);      // cinematic render state

Use exact progress for navigation, URLs, accessibility, foreground ownership, and interaction gating. Use smoothed progress for camera and visual interpolation only. The same scroll position must recreate the same state forward, backward, after a fast jump, and after reload.

Use references/scroll-conductor.js as the baseline implementation. Keep native scroll as the source of truth; never integrate wheel delta into story position.

Author the camera as cinematography

Compose every chapter endpoint at desktop and mobile before interpolating.

  • Store position, target, FOV, optional roll, lens shift, and responsive overrides.
  • Use Catmull–Rom curves for broad continuous travel and segment interpolation for deliberate turns.
  • Inspect the curve for wall penetration, ground clipping, target flips, speed spikes, and accidental close passes.
  • Parameterize by chapter progress, not raw curve arc length, so story pacing remains intentional.
  • Use scrollWeight to give important views more dwell; do not distort the camera path just to slow a section.
  • Add restrained pointer parallax only after the base composition works. Clamp it and blend it out near precise transitions.
  • On tall viewports, author a pullback/FOV override instead of accepting an arbitrary center crop.

Camera motion must expose new spatial relationships: approach, reveal, passage, scale change, inspection, horizon, departure. Six dolly-ins aimed at the same center are not six scenes.

Show full SKILL.md (851 more words)Show less

Interpolate world state from the same conductor

Resolve the adjacent chapters once per frame and interpolate their declared values:

js
const { a, b, t } = segmentState(rig.smooth);
moon.scale.setScalar(lerp(a.world.moon, b.world.moon, t));
key.intensity = lerp(a.world.key, b.world.key, t);
scene.fog.density = lerp(a.world.fog, b.world.fog, t);

Prefer continuous physical change: occlusion, material blend, animation mixer weight, light, fog, scale, and transform. When swapping assets, crossfade only within an occluded or atmospherically dense interval and keep both states loaded until the transition completes.

Add interactions without fighting scroll

Scroll owns macro movement. Pointer, touch, and keyboard interactions own local response.

  • Use raycasting against named proxy meshes, not every decorative triangle.
  • Define idle, hover, focused, active, and unavailable states for each interactive object.
  • Let hover warm light, shift material response, reveal a label, or trigger a short animation; do not move the scroll camera away from its path.
  • Pause or soften pointer parallax while the user drags a control or activates a hotspot.
  • Gate interactions by exact chapter visibility and depth; hidden objects must not capture events.
  • Mirror every essential hotspot with a DOM button or link in document order. Give it a visible focus state and synchronize its state with the 3D object.
  • On touch, use tap-to-focus then tap-to-activate when accidental activation would be costly. Keep hit targets at least 44 CSS px in the DOM proxy.
  • Make decorative particle trails and cursor effects optional, camera-relative where appropriate, and disabled for coarse pointers or reduced motion.

Write the interaction matrix before implementation; use the pattern in references/world-bible.md.

Keep the DOM story semantic

Keep headings, body copy, links, controls, and the footer in real HTML above or beside the canvas. The 3D world creates place; the DOM carries meaning and fallback order.

  • Reveal display headings by word only when it supports the rhythm; preserve the complete accessible label.
  • Reveal eyebrow, heading, body, media, proof, and CTA as independent beats.
  • Keep the reading block stable while the camera makes its largest move.
  • Use optional fixed alpha cut-outs as near-plane scenery, not as a requirement of every design. When used, keep them fully opaque while active and fade/blur them out after ownership changes.

Load progressively

Make the first authored frame complete before loading the entire journey.

  1. Inline or preload the critical shell, camera, first-scene geometry, smallest environment, and fallback poster.
  2. Load the next chapter before it can enter; prefetch one or two chapters ahead.
  3. Decode textures off the main interaction path and reveal a chapter only when its required assets are ready.
  4. Keep a designed poster and semantic DOM visible if WebGL, a model, or a texture fails.
  5. Report meaningful progress by required asset weight or completed groups, not an arbitrary timer.

Do not hide a 40 MB world behind a decorative percentage. Record the load plan in the asset ledger.

Hold a measurable performance budget

Start with these budgets, then profile on the actual target device:

budgetmobile targetdesktop target
DPR cap1.25–1.51.5–2
visible triangles150k–300k500k–1.2m
draw calls50–9090–160
shadowed lights1–22–4
simultaneously blended full-screen layers23
critical initial transfer3–6 MB5–10 MB
steady frame time≤16.7 ms ideal, ≤25 ms fallback≤16.7 ms

These are starting envelopes, not success claims. Measure CPU, GPU, texture memory, shader compilation, long tasks, and first-interactive frame.

  • Cap dt near 1/30 second after stalls.
  • Pause on document.hidden and when the experience is not visible.
  • Use a quality governor that lowers DPR and optional effects before deleting authored landmarks.
  • Render secondary cameras, reflections, cloth simulations, and expensive particles only while relevant.
  • Dispose geometries, materials, textures, render targets, observers, events, animation mixers, and RAF during teardown.

Respect motion, access, and failure

  • Preserve native reversible scroll; do not trap the wheel or force a custom scrollbar.
  • For reduced motion, snap camera/state to the nearest composed chapter, stop ambient loops and stagger/blur, and retain the complete ordered DOM story.
  • Keep a real heading hierarchy, landmarks, links, form controls, visible focus, and reachable footer.
  • Provide a composed poster or chapter stills when WebGL is unavailable.
  • Maintain contrast when the world changes behind copy; use authored scrims or local contrast management, not an opaque blanket over the whole scene.

Verify the whole journey

Follow references/quality-and-qa.md. At minimum verify:

  • every camera endpoint at 1440×900, 768×1024, and 390×844;
  • slow, fast, reverse, scrollbar-drag, anchor navigation, reload-at-depth, and resize between chapters;
  • material scale, UVs, texture color space, roughness response, contact grounding, shadow stability, fog depth, and post-processing;
  • hover, focus, tap, activation, chapter gating, and interaction recovery after scrolling away and back;
  • first-load poster, progressive chapter loading, failed asset, context loss, hidden-tab resume, and teardown;
  • reduced motion, WebGL fallback, keyboard order, readable DOM, reachable footer, and a clean console;
  • target-device frame time, draw calls, triangles, texture memory, transfer size, and shader compilation.

Use the Codex browser for visual and interaction verification. Build/DOM checks are not visual proof.

Deliver

Return:

  • the world bible and art-direction constants;
  • chapter, camera, material/texture, interaction, asset, and performance ledgers;
  • a layer and scene-graph map;
  • the working experience and local runtime assets;
  • desktop, tablet, and mobile evidence from representative chapters;
  • measured performance and loading results;
  • fallback/reduced-motion evidence;
  • remaining visual, interaction, or device gaps stated plainly.

Keep the bundled Kage demo unchanged unless the user explicitly asks to revise the reference itself.

© nirholas, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 27 other files (references) in third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds of nirholas/three.ws.

  • SKILL.md
  • agents/openai.yaml
  • demo/PROMPT.md
  • demo/index.html
  • demo/preview.jpg
  • demo/secret-pathways-assets/fonts.css
  • demo/secret-pathways-assets/foreground/png/basalt-stones.webp
  • demo/secret-pathways-assets/foreground/png/garden-bush.webp
  • demo/secret-pathways-assets/foreground/png/hill.webp
  • demo/secret-pathways-assets/foreground/png/maple-leaves.webp
  • demo/secret-pathways-assets/foreground/png/pine-tree.webp
  • demo/secret-pathways-assets/foreground/png/sakura-branch.webp
  • demo/secret-pathways-assets/foreground/png/shrine-ruins.webp
  • demo/secret-pathways-assets/foreground/png/stone-lantern.webp
  • demo/secret-pathways-assets/foreground/png/tall-grass.webp
  • demo/secret-pathways-assets/foreground/png/temple-wall.webp
  • … and 12 more

Open the folder on GitHubat commit ddf6e49

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in nirholas/three.ws, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Build Threejs Scroll Worlds next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Build Threejs Scroll Worlds compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Build Threejs Scroll Worlds this skillnirholas/three.ws2271 repos~4.7kAutomated safety check: PassApache-2.0
Image to Three.js Modelimg2threejs/img2threejs18k1 repos~8.2kAutomated safety check: PassApache-2.0
Web CloneJane-xiaoer/claude-skill-web-clone1k2 repos~2.7kAutomated safety check: PassMIT
Threejs Game Directormajidmanzarpour/threejs-game-skills2.4k—~2.2kAutomated safety check: PassMIT
Threejs Gameplay Systemsvalkor-ai/loom1.2k1 repos~1.4kAutomated safety check: PassApache-2.0
Threejs World Generationcalesthio/OpenMontage65k—~2kAutomated safety check: PassAGPL-3.0

Similar skills

  • Image to Three.js Model

    img2threejs/img2threejs

    Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.

    18k GitHub starsUsed in 1 repo~8.2k tokens
    Game DevelopmentAuto-check passed
  • Web Clone

    Jane-xiaoer/claude-skill-web-clone

    网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 /…

    1k GitHub starsUsed in 2 repos~2.7k tokens
    Game DevelopmentAuto-check passed
  • Threejs Game Director

    majidmanzarpour/threejs-game-skills

    Entrypoint for building, upgrading, and finishing Three.js browser games.

    2.4k GitHub stars~2.2k tokensUpdated 10 days ago
    Game DevelopmentAuto-check passed
  • Build and iterate playable Three.js game systems: starter scaffold, architecture, design briefs, core loops, level and encounter design, entities, input, camera, collision and physics, scoring…

    1.2k GitHub starsUsed in 1 repo~1.4k tokens
    Game DevelopmentAuto-check passed
  • Threejs World Generation

    calesthio/OpenMontage

    Build deterministic, editable, free-viewpoint Three.js worlds from text or structured briefs.

    65k GitHub stars~2k tokensUpdated 5 days ago
    Game DevelopmentAuto-check passed
  • 3Dviz Pro Max Scene Builder

    viettranx/3dviz-pro-max

    Guides building an expressive 3D scene in Three.js or Blender by reasoning through intent, object construction and scientific grounding before using a catalog of recipes and kits.

    683 GitHub stars~2.8k tokensUpdated 27 days ago
    Game DevelopmentAuto-check passed

More from nirholas/three.ws

All 92 skills in this repo
  • Add Shader Cursor Trail

    nirholas/three.ws

    Add the Shaders WebGPU mouse effect used for the Tidal Commons hero: a white twinkling halftone cursor trail driven by ChromaFlow, masked through a DotGrid, finished with chromatic ripples and film…

    227 GitHub starsUsed in 1 repo~760 tokens
    Auto-check passed
  • Publish Project To GitHub

    nirholas/three.ws

    Package a finished local project into an intentional GitHub repository, create a strong README and visual preview, push it safely, configure a public GitHub Pages URL when the project is compatible…

    227 GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check: notes
  • Audit a website or digital experience against its supplied source references for originality and plagiarism risk.

    227 GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Turn a completed daily UI inspiration capture into exactly five original landing-page builds, one per separate Codex task, using Sites.

    227 GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • Write Like Meng On X

    nirholas/three.ws

    Write, rewrite, review, or continuously refine X/Twitter posts in Meng To's current voice using his deduplicated authored-post corpus, personal and product context, shared resources, and Content…

    227 GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Browser Video Recording

    nirholas/three.ws

    Create polished 60 fps 4:3 4K browser screen-recording style videos from Codex in-app browser captures, with browser-only crop, natural macOS cursor styling, deliberate click choreography…

    227 GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed

Works with

Questions about Build Threejs Scroll Worlds

What does Build Threejs Scroll Worlds do?

Build rich, scroll-controlled real-time Three.js experiences as one persistent 3D world whose camera, lighting, atmosphere, materials, objects, DOM story, and interactions evolve across authored…. ws.js experiences as one persistent 3D world whose camera, lighting, atmosphere, materials, objects, DOM story, and interactions evolve across authored chapters.

When should I use Build Threejs Scroll Worlds?

Build Threejs Scroll Worlds fits situations like: 3D scrollytelling; scroll-driven WebGL worlds; camera journeys; interactive portfolios.

How do I install Build Threejs Scroll Worlds in Claude Code?

Run `npx skills add nirholas/three.ws --skill build-threejs-scroll-worlds -a claude-code`. Or copy the skill folder (third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds in nirholas/three.ws) into .claude/skills/build-threejs-scroll-worlds in your project. Claude Code loads it when a task matches its description.

How do I install Build Threejs Scroll Worlds in Codex?

Run `npx skills add nirholas/three.ws --skill build-threejs-scroll-worlds -a codex`. Or copy the skill folder (third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds in nirholas/three.ws) into .agents/skills/build-threejs-scroll-worlds in your project. Codex loads it when a task matches its description.

Can I use Build Threejs Scroll Worlds in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nirholas/three.ws --skill build-threejs-scroll-worlds -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/build-threejs-scroll-worlds, .gemini/skills/build-threejs-scroll-worlds, .github/skills/build-threejs-scroll-worlds and .opencode/skills/build-threejs-scroll-worlds in your project.

What does Build Threejs Scroll Worlds need to run?

SKILL.md names no scripts, command-line tools or credentials: Build Threejs Scroll Worlds is instructions for the agent only.

Does Build Threejs Scroll Worlds access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Build Threejs Scroll Worlds safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Build Threejs Scroll Worlds use?

Build Threejs Scroll Worlds is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Build Threejs Scroll Worlds use?

About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 14k tokens, read only when the agent opens those files.

What are the alternatives to Build Threejs Scroll Worlds?

Skills that share tags, products or a category with Build Threejs Scroll Worlds: Image to Three.js Model (img2threejs/img2threejs, 18k stars), Web Clone (Jane-xiaoer/claude-skill-web-clone, 1k stars), Threejs Game Director (majidmanzarpour/threejs-game-skills, 2.4k stars) and Threejs Gameplay Systems (valkor-ai/loom, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Build Threejs Scroll Worlds?

nirholas (a GitHub user) maintains it in nirholas/three.ws, which has 227 GitHub stars. The repository holds 92 skills in this directory. The repository was last updated on October 8, 2026.

Source: nirholas/three.ws on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.