skills/threejs-skills/threejs-math/SKILL.md
three.js math library: Vector2/3/4, Matrix3/4, Quaternion, Euler, Color, Box2/Box3, Sphere, Plane, Ray, Line3, Triangle, Frustum, Cylindrical/Spherical coords, MathUtils, and Interpolant base classes; addon math utilities such as OBB, Octree, Capsule, ConvexHull, MeshSurfaceSampler. Use for transforms, intersection tests, and spatial queries; for keyframe interpolation tied to AnimationMixer use threejs-animation; for picking implementation use threejs-objects with Raycaster.
npx skillsauth add partme-ai/full-stack-skills threejs-mathInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
ALWAYS use this skill when the user mentions:
applyQuaternion, lookAt, world vs local transformsBox3/Sphere, containment/intersection testsRay vs Plane vs Frustum tests (without full picking pipeline)IMPORTANT: math vs objects vs animation
| Need | Skill |
|------|--------|
| Raw math types | threejs-math |
| Raycaster + layers picking | threejs-objects |
| QuaternionKeyframeTrack playback | threejs-animation |
Trigger phrases include:
updateMatrixWorld before world-space queries (threejs-objects).Box3().setFromObject(object) for rough bounds; refine per need.ray.intersectBox, sphere.containsPoint, etc., per docs.Octree/OBB for games—cite addon pages, avoid copying full API tables here.Color conversions relate to materials/textures—cross-link.MeshSurfaceSampler for distributing points on meshes.import * as THREE from 'three';
const ray = new THREE.Ray(
new THREE.Vector3(0, 1, 0), // origin
new THREE.Vector3(0, 0, -1) // direction
);
const box = new THREE.Box3(
new THREE.Vector3(-1, -1, -5),
new THREE.Vector3(1, 1, -3)
);
const hit = ray.intersectBox(box, new THREE.Vector3());
if (hit) {
console.log('Intersection at:', hit);
}
See examples/workflow-ray-aabb.md.
| Docs section | Representative links | |--------------|----------------------| | Math | https://threejs.org/docs/Vector3.html | | Math | https://threejs.org/docs/Matrix4.html | | Math | https://threejs.org/docs/Quaternion.html | | Math | https://threejs.org/docs/Ray.html |
Core math types are listed under Math; addon utilities (Octree, OBB, …) appear under Addons → Math in three.js docs. Global also lists constants (e.g. wrapping, blending) sometimes needed alongside materials.
When answering under this skill, prefer responses that:
Vector3, Matrix4, Quaternion, …) from the docs.AnimationMixer / track math to threejs-animation when time-sampled.Raycaster picking flows to threejs-objects when interaction is the goal.English: vector, matrix, quaternion, euler, box3, sphere, ray, frustum, three.js
中文: 向量、矩阵、四元数、欧拉角、包围盒、射线、three.js
development
Provides per-component and per-API examples with cross-platform compatibility details for uni-app, covering built-in components, uni-ui components, and APIs (network, storage, device, UI, navigation, media). Use when the user needs official uni-app components or APIs, wants per-component examples with doc links, or needs platform compatibility checks.
tools
Creates new uni-app projects via the official CLI or HBuilderX with Vue 2/Vue 3 template selection, manifest.json and pages.json configuration, and directory structure setup. Use when the user wants to scaffold a new uni-app project, initialize project files with a single command, or set up the development environment.
tools
Browses, installs, configures, and manages plugins from the uni-app plugin market (ext.dcloud.net.cn) including component plugins, API plugins, and template plugins with dependency handling. Use when the user needs to find and install uni-app plugins, configure plugin settings, manage plugin dependencies, or integrate third-party components.
tools
Develops native Android and iOS plugins for uni-app including module creation, JavaScript-to-native communication, and plugin packaging for distribution. Use when the user needs to build custom native modules, extend uni-app with native capabilities (camera, Bluetooth, sensors), or create publishable native plugins.