Make 3D interaction predictable, state-driven, responsive, and accessible.
Read references/interaction-patterns.md before changing camera controls,
selection, manipulation, configuration, annotations, or general app UI.
For model axes, authoritative transforms, constrained manipulation, or surface
queries, also read ../../references/spatial-contracts.md.
Workflow
- Define the primary user task and supported input methods.
- Choose one camera/control owner and explicit transition rules.
- Keep application state outside transient Three.js object state.
- Implement raycast or GPU picking only at interaction boundaries, with clear hover, focus, selected, disabled, and error feedback.
- Add manipulation, configuration, annotations, playback, or navigation as task-specific modules.
- Keep semantic HTML controls available for important actions and status.
- Verify pointer, keyboard, touch, resize, cancellation, and loading/error paths on relevant viewports.
Use ../../references/mint-mcp-assets.md for generated production assets.
Ordinary interface chrome should remain HTML/CSS/SVG/Canvas unless a true 3D
surface is required.
Final Response
Report the interaction model, controls, state ownership, supported input paths, responsive/accessibility evidence, screenshots, and remaining risks.