Skip to content
Skills Library
Programming · Building & coding

threejs-objects

/threejs-objects

three.js scene graph objects: Object3D transforms and hierarchy, Group, Mesh, InstancedMesh, SkinnedMesh, BatchedMesh, LOD, Line/LineLoop/LineSegments, Points, Sprite, Bone, Skeleton, ClippingGroup; interaction via Raycaster, Layers masks, and EventDispatcher patterns. Merges the former interaction scope—use for picking and layers; for pure vector math without scene graph use threejs-math; for playing skeletal clips use threejs-animation; for frustum culling internals see camera docs.

Licence
Apache-2.0
Last repository change
04.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
3
Scripts
0
HTML comments
0
URLs in SKILL.md
11
Deprecation

No signals detected. Repository changed on 04.10.2026, without references to retired models or APIs.

Licence

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

What it does and when to use it

three.js scene graph objects: Object3D transforms and hierarchy, Group, Mesh, InstancedMesh, SkinnedMesh, BatchedMesh, LOD, Line/LineLoop/LineSegments, Points, Sprite, Bone, Skeleton, ClippingGroup; interaction via Raycaster, Layers masks, and EventDispatcher patterns. Merges the former interaction scope—use for picking and layers; for pure vector math without scene graph use threejs-math; for playing skeletal clips use threejs-animation; for frustum culling internals see camera docs.

Original author description

three.js scene graph objects: Object3D transforms and hierarchy, Group, Mesh, InstancedMesh, SkinnedMesh, BatchedMesh, LOD, Line/LineLoop/LineSegments, Points, Sprite, Bone, Skeleton, ClippingGroup; interaction via Raycaster, Layers masks, and EventDispatcher patterns. Merges the former interaction scope—use for picking and layers; for pure vector math without scene graph use threejs-math; for playing skeletal clips use threejs-animation; for frustum culling internals see camera docs.

How it works

  1. When to use this skill
  2. How to use this skill
  3. Doc map (official)
  4. Scope
  5. Common pitfalls and best practices
  6. Documentation and version
  7. Agent response checklist
  8. References
  9. Keywords
Original SKILL.md headings · 81 lines, 387 words
SKILL.md preview
---
name: threejs-objects
license: Apache-2.0
description: "three.js scene graph objects: Object3D transforms and hierarchy, Group, Mesh, InstancedMesh, SkinnedMesh, BatchedMesh, LOD, Line/LineLoop/LineSegments, Points, Sprite, Bone, Skeleton, ClippingGroup; interaction via Raycaster, Layers masks, and EventDispatcher patterns. Merges the former interaction scope—use for picking and layers; for pure vector math without scene graph use threejs-math; for playing skeletal clips use threejs-animation; for frustum culling internals see camera docs."
---
## When to use this skill

**ALWAYS use this skill when the user mentions:**

- Parent/child relationships, `position/rotation/scale`, `matrixAutoUpdate`, `updateMatrixWorld`
- Choosing mesh types: static vs instanced vs skinned vs batched LOD
- **Picking**: `Raycaster.setFromCamera`, `intersectObjects`, recursive flag, face/uv results
- **Layers**: selective visibility for cameras/lights/objects

**IMPORTANT: objects vs math**

| Need | Skill |
|------|--------|
| Scene graph + picking | **threejs-objects** |
| Box/ray math only | **threejs-math** |

**Trigger phrases include:**

- "Object3D", "InstancedMesh", "SkinnedMesh", "Raycaster", "layers"
- "父子节点", "射线拾取", "图层"

## How to use this skill

1. **Compose** scenes with `Group` and transforms; minimize deep hierarchies where possible.
2. **Instancing**: set per-instance matrices; understand `count` and frustum culling behavior.
3. **SkinnedMesh**: bind skeleton; clips in **threejs-animation**; skinning material flags in **threejs-materials**.
4. **Picking**: normalize device coords, set ray from camera, filter by layers, sort intersections.
5. **Events**: `EventDispatcher` on custom objects—patterns only, not DOM frameworks.
6. **Clipping**: `ClippingGroup` usage per docs when user needs sectional cuts.
7. **Dispose**: geometries/materials/textures when removing objects permanently.

See [examples/workflow-raycaster-pick.md](examples/workflow-raycaster-pick.md).

## Doc map (official)

| Docs section | Representative links |
|--------------|----------------------|
| Core | https://threejs.org/docs/Object3D.html |
| Objects | https://threejs.org/docs/Mesh.html |
| Objects | https://threejs.org/docs/InstancedMesh.html |
| Core | https://threejs.org/docs/Raycaster.html |

## Scope

- **In scope:** Object3D graph, renderable object types, raycasting, layers, dispatcher basics.
- **Out of scope:** Physics engines; XR input mapping (**threejs-webxr**).

## Common pitfalls and best practices

- Forgetting `updateMatrixWorld` before world-space ray tests on moved objects.
- Raycaster without `layers` set picks unintended objects—set masks consistently on camera and objects.
- InstancedMesh raycast hits need per-instance handling—check docs for your version.

## Documentation and version

`Object3D`, mesh types, `Raycaster`, and `Layers` are documented under [Objects](https://threejs.org/docs/#Objects) and [Core](https://threejs.org/docs/Raycaster.html) in [three.js docs](https://threejs.org/docs/). Behavior of picking and layers can shift slightly—link the exact page for the user’s three.js line.

## Agent response checklist

When answering under this skill, prefer responses that:

1. Link `Object3D`, `Mesh`, `InstancedMesh`, `Raycaster`, or `Layers` as needed.
2. Pair skeletal animation with **threejs-animation** and skinned mesh setup.
3. Route pure linear-algebra questions without a scene graph to **threejs-math**.
4. Route XR input to **threejs-webxr** when sessions/controllers are involved.
5. Mention `dispose()` for geometries/materials when removing objects permanently.

## References

- https://threejs.org/docs/Object3D.html
- https://threejs.org/docs/Raycaster.html
- https://threejs.org/docs/Layers.html
- https://threejs.org/docs/InstancedMesh.html

## Keywords

**English:** object3d, mesh, instancedmesh, skinnedmesh, raycaster, layers, scene graph, three.js

**中文:** 场景图、Object3D、Mesh、实例化、骨骼网格、射线拾取、图层、three.js

Files in this package (3)
  • SKILL.md 4 KB
  • agents/openai.yaml 1 KB
  • examples/workflow-raycaster-pick.md 1 KB

Versions

The database has no other skills named threejs-objects.

Database snapshot: 13.11.2026 · package version 0486287984a6 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100threejs-core-scene-graph
    Use when creating Three.js scenes, adding objects, managing parent-child hierarchies, or organizing 3D content. Prevents the common mistake of using add() instead of attach() for reparenting, forgetting matrixAutoUpdate, or missing dispose() calls. Covers Object3D, Scene, Group,…
  • 100threejs-math
    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,…
  • 100threejs-interaction
    Implement and debug Three.js interaction with Raycaster, pointer and touch coordinate conversion, hover/selection state, camera controls, dragging, keyboard input, and world-to-screen projection. Use when picking objects, adding OrbitControls or PointerLockControls, handling…
  • 100threejs-core-raycaster
    Use when implementing mouse picking, hover detection, object selection, or line-of-sight checks in Three.js. Prevents the common mistake of raycasting every mousemove frame, not using layers for filtering, or missing recursive flag. Covers Raycaster, setFromCamera, intersection…
  • 100threejs-fundamentals
    Three.js scene setup: scenes and fog, cameras, the renderer and tone mapping, the animation loop, object hierarchies, transforms, core math and cleanup, on WebGL or with WebGPU and TSL. Use when creating a scene from scratch, configuring a camera or renderer, handling resize, or arranging objects.
  • 95threejs-animation
    Three.js animation - keyframe animation, skeletal animation, morph targets, animation mixing. Use when animating objects, playing GLTF animations, creating procedural motion, or blending animations.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.