What problem does it solve? Adding camera controls to a Three.js scene is error-prone: forgetting controls.update() in the render loop freezes damping, skipping dispose() leaks event listeners, and mixing control types causes erratic camera behavior. This Skill provides correct patterns, API references, and anti-patterns for every Three.js control class. ## Core Features & Use Cases - Control Selection Guide: A decision tree mapping use cases (model inspection, map navigation, first-person, free flight, object gizmo editing) to the right control class among OrbitControls, MapControls, FlyControls, PointerLockControls, TransformControls, and more. - Complete API Reference: Full property, method, and event tables for each control, including correct import paths for Three.js r160+. - Anti-Pattern Catalog: Ten documented mistakes with wrong/correct code pairs, such as attaching controls to document instead of renderer.domElement or omitting delta in FlyControls.update(). - Use Case: When building a 3D editor where users orbit the scene and drag objects with a gizmo, this Skill ensures OrbitControls is disabled during TransformControls drags via the dragging-changed event. ## Quick Start Add OrbitControls with damping to my Three.js scene and make sure the render loop and cleanup are handled correctly.