Documentation

Choose the smallest Three.js skill set

Choose the smallest Three.js WebGPU skill set for a task, distinguish broad routes from focused work, and handle unsupported concerns explicitly.

Start with threejs-choose-skills when a request spans multiple rendering systems, shared signals, final output, or performance ownership. For one bounded mechanism, invoke its owning skill directly and add validation or pipeline skills only when the task actually needs them.

Decide whether the task needs a router

Use threejs-choose-skills when a request spans several causal systems, requires shared depth or history, has unresolved final-output ownership, or needs a composed performance and validation plan. A scene with ocean, atmosphere, camera motion, exposure, bloom, and visual acceptance is a routing problem because the systems exchange signals and compete for frame and memory budgets.

Invoke one owner directly when the request is already bounded. A camera audit belongs to threejs-camera-controls-and-rigs; a procedural material belongs to threejs-procedural-materials; a concrete unexpected API or runtime behavior belongs to threejs-debugging. Broad routing adds no value when ownership is already known and no cross-skill contract is missing.

Give the router product facts, not adjectives

Before selecting skills, record the installed Three.js package and runtime revision, initialized renderer backend, target devices, resolution and DPR, interaction pattern, temporal behavior, scale, and acceptable error. State whether the scene must explain, inspect, configure, present, or monitor something.

Replace vague requests such as make it cinematic and fast with observable requirements:

Use $threejs-choose-skills to plan a native-WebGPU product viewer. The primary
observable is material and silhouette identity during orbit inspection. Target
views are near, design, and far; UI and asset ingestion stay outside the graphics
route. Report required product inputs rather than guessing them.

The router should identify the earliest missing causal layer before it selects post-processing. A missing silhouette, field, material response, illumination, motion, camera, or image transform has a different owner. Adding bloom or grading cannot repair an unidentified physical or material cause.

Confirm the selection before implementation

Review the proposed set as a human decision before loading more context. Every requested visual result should have one clear owner, shared signals should have one producer, and unsupported application concerns should stay with project or framework guidance. Remove any selected skill that does not change the implementation or its verification.

The exact machine route fields, handoffs, resource declarations, and failure behavior belong to the agent routing contract. This page owns the selection checklist: choose direct ownership for a bounded task, use the router for a composed task, and stop when a required concern has no installed owner.

Load only the selected implementation owners

After the route is fixed, load the destination skills that own the missing mechanisms. Add threejs-image-pipeline when several image-space consumers genuinely share a scene pass, attachments, history, or final output. Do not load it merely because a scene contains one isolated effect.

Add threejs-visual-validation whenever a route makes quantitative, temporal, adaptive, compute, or sustained-performance claims. A simple focused mechanism may use its own local validation instead. Add threejs-debugging only for a concrete failure, suspicious behavior, source/documentation disagreement, or version investigation.

This keeps active context smaller and keeps decisions attributable to owners. It also makes omissions visible rather than burying them under a large generic instruction set.

Route unsupported concerns away

The current pack does not own generic application architecture, DOM UI, accessibility, live-data transport, asset authoring and compression, general studio lighting, WebXR, or deployment. Use project and official domain guidance for those concerns, then route only their declared Three.js presentation interfaces through the pack.

When no installed skill owns a required cause, state the gap and either block that part or reduce scope. Never invent a pseudo-owner. When native WebGPU is unavailable, keep the canonical route blocked unless the user explicitly asks how to teach or apply fallback.

Check the route before implementation

Confirm that every selected skill exists, every shared signal has one producer, and tone mapping plus output conversion each have one owner. Verify numeric budgets have units and provenance. A published table from another scene or device is not measured evidence for the current composition.

For the agent-side contract, continue to routing and minimal context. For a codebase that already has a renderer and project rules, continue to using the pack in an existing project.

Relevant skills

Relevant demos and evidence

Sources and correction path