threejs-geometries
Skill9 starsChanged 54 days agoApache-2.0View on GitHub
three.js geometry authoring: BufferGeometry, typed BufferAttribute and interleaved layouts, InstancedBufferGeometry, primitive Geometries (box/sphere/torus/etc.), ExtrudeGeometry and Shape/Path/Curve from Extras, WireframeGeometry, and addon geometries such as TextGeometry, DecalGeometry, RoundedBoxGeometry. Covers merged scope of procedural curves and extrusion formerly split as extras-curves; for animation morph targets see threejs-animation; for merging buffers utilities see official BufferGeometryUtils module in docs Utils addons.
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-dev-setupSkill
- 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
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
Prefer built-in primitives when they fit before custom buffers.
- Distinctive: line 62
When answering under this skill, prefer responses that:
≈ “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:
- Building or modifying
BufferGeometry, attributes, index buffers, draw ranges - Instancing via
InstancedBufferAttribute/InstancedMeshgeometry side (threejs-objects for mesh wrapper) - Extruding
Shapealong paths,TubeGeometry,LatheGeometry,ExtrudeGeometry - Text or decal addon geometries
IMPORTANT: geometries vs math
- threejs-geometries = GPU-ready triangle data.
- threejs-math =
Box3,Sphere,Raytests without mesh topology.
Trigger phrases include:
- "BufferGeometry", "BufferAttribute", "ExtrudeGeometry", "Shape", "Curve"
- "几何体", "缓冲几何", "挤出", "文字几何"
How to use this skill
- Prefer built-in primitives when they fit before custom buffers.
- For custom meshes: create
BufferGeometry, setposition,normal,uv, optionalindex; compute bounding volumes for culling. - For instancing attributes, align divisor/count with
InstancedMeshpatterns in threejs-objects. - For 2D profiles: build
Shape/Path, extrude or lathe per docs; consult Extras Curve family for path sampling. - For addon NURBS knots, follow Addons Curves pages sparingly—cite docs instead of copying full APIs.
- Dispose geometries when replacing meshes to avoid leaks.
See examples/workflow-extrude-shape.md.
Doc map (official)
| Docs section | Representative links |
| Core | https://threejs.org/docs/BufferGeometry.html |
| Geometries | https://threejs.org/docs/BoxGeometry.html |
| Extrude | https://threejs.org/docs/ExtrudeGeometry.html |
| Shape | https://threejs.org/docs/Shape.html |
Scope
- In scope: Core geometries, buffer core, curve/shape/extrusion workflows, selected addon geometries.
- Out of scope: Physics collision mesh baking; full CAD import pipelines.
Common pitfalls and best practices
- Missing normals break lighting; compute or import consistently.
- Wrong winding order flips faces—check side/culling.
- Huge attribute counts need LOD or simplification (modifiers in addons—mention only if user asks).
Documentation and version
Primitives and BufferGeometry live under Geometries and BufferGeometry in three.js docs. Curve, Shape, and extrusion APIs appear under Extras and Geometries—Addons Curves / Geometries document NURBS and text meshes; link those instead of copying long signatures.
Agent response checklist
When answering under this skill, prefer responses that:
- Link
BufferGeometry, a primitive, orExtrudeGeometry/Shapeas appropriate. - Point instancing usage to threejs-objects for
InstancedMeshpatterns. - Point morph targets and tracks to threejs-animation when deformation is time-driven.
- Reference
BufferGeometryUtils(Addons Utils) only by name + docs link when merging/splitting. - Emphasize
dispose()when replacing large custom buffers.
References
- https://threejs.org/docs/#Geometries
- https://threejs.org/docs/BufferGeometry.html
- https://threejs.org/docs/ExtrudeGeometry.html
Keywords
English: buffergeometry, extrude, shape, path, curve, primitives, instancing, three.js
中文: 几何体、BufferGeometry、挤出、Shape、曲线、实例化、three.js
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.

