$npx -y skills add scottstts/Threejs-Awesome-Graphics-Agent-Skills --skill threejs-camera-directionDirect advanced Three.js camera systems. Use for scale-aware chase rigs, thrust lag, side/orbit cameras, body-relative up vectors, quaternion handoffs, authored cinematic framing, floating origins, pointer-look controls, camera collision constraints, projection ownership, and lif
| 1 | # Camera Direction |
| 2 | |
| 3 | Treat the camera as an authored visual system, not a passive viewport. Compose |
| 4 | the subject, establish scale, choose a stable up frame, and make every mode |
| 5 | handoff explicit. |
| 6 | |
| 7 | ## Build order |
| 8 | |
| 9 | 1. Define the design frame: subject size, screen occupancy, lens, near/far, |
| 10 | motion, and horizon/up convention. |
| 11 | 2. Build camera targets in semantic frames: ship, body surface, docking axis, |
| 12 | or scene-authored shot. |
| 13 | 3. Derive position and orientation independently, then combine them once. |
| 14 | 4. Add input orbit/look only inside declared yaw/pitch and spatial constraints. |
| 15 | 5. Add frame-rate-independent follow or a bounded spring where the reference |
| 16 | uses inertia. |
| 17 | 6. Snapshot and restore camera projection/state when a scene owns it. |
| 18 | 7. Test mode transitions, cuts, pointer-lock reacquisition, resize, and large |
| 19 | coordinates. |
| 20 | |
| 21 | Read [references/camera-rig-and-cinematic-systems.md](references/camera-rig-and-cinematic-systems.md) |
| 22 | for exact chase/side/orbit rigs, projection values, transition |
| 23 | rules, floating-origin shot, pointer controls, and implementation limits. |
| 24 | |
| 25 | ## Non-negotiable rules |
| 26 | |
| 27 | - Use subject dimensions to derive offsets; do not tune one fixed distance for |
| 28 | differently scaled assets. |
| 29 | - For planetary motion, derive up from the dominant body rather than global Y. |
| 30 | - Interpolate position with `lerp` and orientation with `slerp`. |
| 31 | - During an explicit handoff, use one interpolation stage. Do not stack a |
| 32 | transition blend and a second follow smoother over the same interval. |
| 33 | - Re-sync yaw/pitch from the camera when pointer lock is acquired. |
| 34 | - Update the projection matrix whenever FOV, near, far, or aspect changes. |
| 35 | - Keep stars or infinite backgrounds camera-relative when large translation |
| 36 | would create false parallax or precision loss. |
| 37 | - Restore camera and input ownership on scene disposal. |
| 38 | |
| 39 | ## Routing boundary |
| 40 | |
| 41 | Use `$threejs-procedural-animation` for object motion timelines, springs, |
| 42 | docking, staging, and debris. This skill owns how the scene is viewed and how |
| 43 | camera modes hand off. |