From partme-ai-full-stack-skills
Authors three.js geometries: BufferGeometry with attributes, primitives (BoxGeometry, SphereGeometry), ExtrudeGeometry from Shapes/Curves, InstancedBufferGeometry, WireframeGeometry, and addons like TextGeometry, DecalGeometry for custom 3D models.
npx claudepluginhub partme-ai/full-stack-skills --plugin t2ui-skillsThis skill uses the workspace's default tool permissions.
**ALWAYS use this skill when the user mentions:**
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
ALWAYS use this skill when the user mentions:
BufferGeometry, attributes, index buffers, draw rangesInstancedBufferAttribute / InstancedMesh geometry side (threejs-objects for mesh wrapper)Shape along paths, TubeGeometry, LatheGeometry, ExtrudeGeometryIMPORTANT: geometries vs math
Box3, Sphere, Ray tests without mesh topology.Trigger phrases include:
BoxGeometry, SphereGeometry, etc.) when they fit before custom buffers.position, normal, uv, optional index; compute bounding volumes for frustum culling.InstancedMesh patterns in threejs-objects.Shape/Path, extrude or lathe per docs; consult Extras Curve family for path sampling.geometry.dispose() when replacing meshes to avoid GPU memory leaks.import * as THREE from 'three';
// Create a simple triangle with custom BufferGeometry
const geometry = new THREE.BufferGeometry();
const vertices = new Float32Array([
-1, -1, 0, 1, -1, 0, 0, 1, 0
]);
geometry.setAttribute('position', new THREE.BufferAttribute(vertices, 3));
geometry.computeVertexNormals(); // Always compute normals for correct lighting
// Validate: ensure bounding sphere exists for frustum culling
geometry.computeBoundingSphere();
if (!geometry.boundingSphere) {
console.warn('Bounding sphere computation failed — check vertex data');
}
const material = new THREE.MeshStandardMaterial({ color: 0x00ff00 });
const mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
// Cleanup when done
// geometry.dispose(); material.dispose();
See examples/workflow-extrude-shape.md.
| 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 |
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.
When answering under this skill, prefer responses that:
BufferGeometry, a primitive, or ExtrudeGeometry / Shape as appropriate.InstancedMesh patterns.BufferGeometryUtils (Addons Utils) only by name + docs link when merging/splitting.dispose() when replacing large custom buffers.English: buffergeometry, extrude, shape, path, curve, primitives, instancing, three.js
中文: 几何体、BufferGeometry、挤出、Shape、曲线、实例化、three.js