threejs-dev-setup
Skill9 starsChanged 54 days agoApache-2.0View on GitHub
Bootstrap and toolchain guidance for three.js applications using npm, Vite/Webpack/Rollup, bare ESM import maps, and TypeScript. Covers canonical import paths for `three` core versus `three/addons/` (examples/jsm re-exports), version alignment with https://threejs.org/docs/, and fixing "module not found" for loaders and controls. Use when scaffolding a new 3D project, migrating bundler, or debugging resolution of addons—do not use for rendering API details (see threejs-renderers) or asset loading logic (see threejs-loaders).
In this repository21 other files it gives its agents.
- openspec-apply-changeSkill
- openspec-archive-changeSkill
- openspec-exploreSkill
- openspec-proposeSkill
- threejs-animationSkill
- threejs-audioSkill
- threejs-cameraSkill
- threejs-controlsSkill
- threejs-geometriesSkill
- threejs-helpersSkill
- threejs-lightsSkill
- threejs-loadersSkill
- threejs-materialsSkill
- threejs-mathSkill
- threejs-node-tslSkill
- threejs-objectsSkill
- threejs-postprocessingSkill
- threejs-renderersSkill
- threejs-scenesSkill
- threejs-texturesSkill
- threejs-webxrSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
Import errors for three/addons/..., examples/jsm, ESM vs CJS interop, or bare specifier resolution
- Very specific: line 30
Minimal loop: create renderer + scene + camera + one mesh.
- Distinctive: line 52
Always match r152+ style color management docs when giving snippet defaults (output color space)—point to threejs-renderers/textures for …
- Distinctive: line 61
When answering under this skill, prefer responses that:
- Distinctive: line 66
Never assume global script tags unless the user explicitly uses CDN/no-bundler HTML.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
When to use this skill
ALWAYS use this skill when the user mentions:
- Creating or configuring a new three.js project, Vite/Webpack/Rollup entry, or browser
importmap - Installing the
threepackage, aligning version with documentation, or TypeScript setup (@types/threewhere applicable) - Import errors for
three/addons/...,examples/jsm, ESM vs CJS interop, or bare specifier resolution
IMPORTANT: this skill vs runtime topics
- threejs-dev-setup = install paths, bundler, module graph, and where to import addons from.
- threejs-renderers =
WebGLRenderer/WebGPURenderer, canvas, pixel ratio, render loop—after the project loads. - threejs-loaders =
GLTFLoader,DRACOLoader, progress callbacks—after imports resolve.
Trigger phrases include:
- "vite three.js", "webpack three", "import map", "three/addons", "cannot find module", "jsm"
- "新建项目", "安装 three", "找不到模块", "ESM", "TypeScript three"
How to use this skill
- Confirm delivery model: SPA bundler (Vite/Webpack), Node tooling, or static HTML with
importmap—each affects howthree/addons/resolves. - Pin
threeversion to a release compatible with the docs the user cites; note that addon paths follow the published package layout. - Show canonical imports: core from
three; controls/loaders/effects fromthree/addons/...(mapped toexamples/jsmin source tree). See examples/workflow-scaffold.md. - Minimal loop: create renderer + scene + camera + one mesh;
requestAnimationFrame—enough to verify toolchain without duplicating threejs-renderers depth. - TypeScript: enable
moduleResolutionappropriate for bundler; reference types fromthreepackage typings; avoid duplicating global script tag patterns unless user targets no-bundler HTML. - On failure: distinguish missing dependency vs wrong path vs SSR context (no
window/document). - Deepening: link user to three.js manual first chapter after scaffold works.
Doc map (official)
| Docs section | Representative links |
| Manual (getting started) | https://threejs.org/manual/ |
| Docs index | https://threejs.org/docs/ |
| Package / install context | https://www.npmjs.com/package/three |
Scope
- In scope: npm/install, bundlers, import maps, TypeScript basics for three, addon import paths, minimal verification snippet.
- Out of scope: WebGL theory, full render target or post stack (threejs-renderers, threejs-postprocessing), physics, deployment beyond "build runs".
Common pitfalls and best practices
- Mixing multiple
threecopies in one page breaks singletons; dedupe with bundler aliases. - Importing addons from deep
node_modules/.../examples/jsmpaths is fragile; prefer package exportsthree/addons/...when available. - Always match r152+ style color management docs when giving snippet defaults (output color space)—point to threejs-renderers/textures for details.
- SSR frameworks need dynamic import or client-only components for WebGL context.
Documentation and version
Toolchain and import paths follow the three npm package version the user installs. The Manual and docs are updated with the library; addon paths (three/addons/...) must match the package layout for that release—when in doubt, cite the version number and the exact import line from the current docs.
Agent response checklist
When answering under this skill, prefer responses that:
- Name the bundler or runtime (Vite, Webpack, bare ESM,
importmap) and the intendedthreeversion. - Link https://threejs.org/manual/ and/or https://threejs.org/docs/ for authoritative setup context.
- Distinguish threejs-dev-setup (resolution) from threejs-renderers (runtime API) failures.
- Never assume global script tags unless the user explicitly uses CDN/no-bundler HTML.
- Recommend deduplicating
threeinpackage.json/ lockfile when duplicate singleton issues appear.
References
Keywords
English: three.js, vite, webpack, rollup, import map, typescript, npm, three/addons, examples jsm, module resolution, scaffold
中文: three.js 安装、构建、importmap、模块解析、three/addons、脚手架、Vite、Webpack
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

