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.
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…
$ npx skills add nirholas/three.ws --skill build-threejs-scroll-worlds -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nirholas/three.ws build-threejs-scroll-worlds --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "build-threejs-scroll-worlds" agent skill from https://github.com/nirholas/three.ws/tree/main/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds into .claude/skills/build-threejs-scroll-worlds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-threejs-scroll-worlds", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nirholas/three.ws/tree/main/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worldsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nirholas/three.ws --skill build-threejs-scroll-worlds -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nirholas/three.ws build-threejs-scroll-worlds --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .agents/skills && cp -r skills-src/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds .agents/skills/build-threejs-scroll-worlds && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "build-threejs-scroll-worlds" agent skill from https://github.com/nirholas/three.ws/tree/main/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds into .agents/skills/build-threejs-scroll-worlds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-threejs-scroll-worlds", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nirholas/three.ws --skill build-threejs-scroll-worlds -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nirholas/three.ws build-threejs-scroll-worlds --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds .cursor/skills/build-threejs-scroll-worlds && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "build-threejs-scroll-worlds" agent skill from https://github.com/nirholas/three.ws/tree/main/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds into .cursor/skills/build-threejs-scroll-worlds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-threejs-scroll-worlds", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nirholas/three.ws.git --path third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nirholas/three.ws --skill build-threejs-scroll-worlds -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nirholas/three.ws build-threejs-scroll-worlds --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds .gemini/skills/build-threejs-scroll-worlds && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "build-threejs-scroll-worlds" agent skill from https://github.com/nirholas/three.ws/tree/main/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds into .gemini/skills/build-threejs-scroll-worlds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-threejs-scroll-worlds", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nirholas/three.ws build-threejs-scroll-worldsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nirholas/three.ws --skill build-threejs-scroll-worlds -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .github/skills && cp -r skills-src/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds .github/skills/build-threejs-scroll-worlds && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "build-threejs-scroll-worlds" agent skill from https://github.com/nirholas/three.ws/tree/main/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds into .github/skills/build-threejs-scroll-worlds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-threejs-scroll-worlds", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nirholas/three.ws --skill build-threejs-scroll-worlds -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nirholas/three.ws build-threejs-scroll-worlds --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds .opencode/skills/build-threejs-scroll-worlds && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "build-threejs-scroll-worlds" agent skill from https://github.com/nirholas/three.ws/tree/main/third_party/designcode-agent-skills/agent-skills/web-design/build-threejs-scroll-worlds into .opencode/skills/build-threejs-scroll-worlds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-threejs-scroll-worlds", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
build-threejs-scroll-worldsBuild 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…
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.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit ddf6e49. It shows what the files ask for, not the result of running them.
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.
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.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from nirholas/three.ws at commit ddf6e49, republished under its Apache-2.0 licence (© nirholas). 2,193 words, ~4,654 tokens.
.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.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.
threejs for a single interactive scene with no scroll-authored journey.scroll-world-storytelling when deciding between real-time 3D, pre-rendered video, and DOM-first storytelling.scroll-scrubbed-visual-sequence for a video or image sequence whose time is scrubbed by scroll.cinematic-scroll-storytelling for DOM-first GSAP/Lenis choreography.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.
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.
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:
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.
Define one reusable visual grammar:
Every visible detail must support the same world. Random noise, unrelated texture packs, arbitrary particle effects, and one-off materials create complexity without cohesion.
Use 4–8 chapters for most experiences. Store the full contract as data rather than scattering thresholds through CSS and the render loop:
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.
Create these systems once:
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 edgesUse 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:
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.
Use a coherent PBR surface stack where it improves the image:
| map | role | common failure |
|---|---|---|
| base color | material identity and broad variation | baked highlights fight live lighting |
| normal | small directional relief | strength too high makes rubber or foil |
| roughness | controls highlight breakup and age | flat values make every object plastic |
| AO | contact and crevice grounding | multiplied too heavily makes dirty seams |
| metalness | separates conductors from dielectrics | gray values everywhere create implausible mud |
| emissive | practical lights, screens, runes | replaces light but does not illuminate nearby forms |
| alpha/transmission | foliage, cloth, glass, mist | sorting, overdraw, and depth artifacts |
Record the detailed surface and light plan in the ledgers from references/world-bible.md.
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:
rig.target = progressFromScroll(scrollY); // exact reproducible story state
rig.smooth = reduceMotion
? rig.target
: damp(rig.smooth, rig.target, 5.2, dt); // cinematic render stateUse 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.
Compose every chapter endpoint at desktop and mobile before interpolating.
scrollWeight to give important views more dwell; do not distort the camera path just to slow a section.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.
Resolve the adjacent chapters once per frame and interpolate their declared values:
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.
Scroll owns macro movement. Pointer, touch, and keyboard interactions own local response.
idle, hover, focused, active, and unavailable states for each interactive object.Write the interaction matrix before implementation; use the pattern in references/world-bible.md.
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.
Make the first authored frame complete before loading the entire journey.
Do not hide a 40 MB world behind a decorative percentage. Record the load plan in the asset ledger.
Start with these budgets, then profile on the actual target device:
| budget | mobile target | desktop target |
|---|---|---|
| DPR cap | 1.25–1.5 | 1.5–2 |
| visible triangles | 150k–300k | 500k–1.2m |
| draw calls | 50–90 | 90–160 |
| shadowed lights | 1–2 | 2–4 |
| simultaneously blended full-screen layers | 2 | 3 |
| critical initial transfer | 3–6 MB | 5–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.
dt near 1/30 second after stalls.document.hidden and when the experience is not visible.Follow references/quality-and-qa.md. At minimum verify:
Use the Codex browser for visual and interaction verification. Build/DOM checks are not visual proof.
Return:
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
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.
Open the folder on GitHubat commit ddf6e49
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.
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Build Threejs Scroll Worlds this skillnirholas/three.ws | 227 | 1 repos | ~4.7k | Automated safety check: Pass | Apache-2.0 | |
| Image to Three.js Modelimg2threejs/img2threejs | 18k | 1 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 | |
| Web CloneJane-xiaoer/claude-skill-web-clone | 1k | 2 repos | ~2.7k | Automated safety check: Pass | MIT | |
| Threejs Game Directormajidmanzarpour/threejs-game-skills | 2.4k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Threejs Gameplay Systemsvalkor-ai/loom | 1.2k | 1 repos | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Threejs World Generationcalesthio/OpenMontage | 65k | — | ~2k | Automated safety check: Pass | AGPL-3.0 |
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.
Jane-xiaoer/claude-skill-web-clone
网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 /…
majidmanzarpour/threejs-game-skills
Entrypoint for building, upgrading, and finishing Three.js browser games.
valkor-ai/loom
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…
calesthio/OpenMontage
Build deterministic, editable, free-viewpoint Three.js worlds from text or structured briefs.
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.
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…
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…
nirholas/three.ws
Audit a website or digital experience against its supplied source references for originality and plagiarism risk.
nirholas/three.ws
Turn a completed daily UI inspiration capture into exactly five original landing-page builds, one per separate Codex task, using Sites.
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…
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…
Works with
Categories
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.
Build Threejs Scroll Worlds fits situations like: 3D scrollytelling; scroll-driven WebGL worlds; camera journeys; interactive portfolios.
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.
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.
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.
SKILL.md names no scripts, command-line tools or credentials: Build Threejs Scroll Worlds is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
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.
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.
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.
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.
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.