threejs-interaction · calesthio — Claude Code skill: setup and features
Ready-made patterns for Three.js user input, raycasting, and camera controls. Helps add object picking and touch detection to 3D scenes.
npx skills add calesthio/OpenMontage --skill threejs-interaction -a claude-codeWhat threejs-interaction does
The skill provides integration patterns for handling user interactions in Three.js. It details Raycaster setup for mouse and touch coordinates, layer-based object filtering, and camera navigation controls. Supported controls include OrbitControls, FlyControls, FirstPersonControls, PointerLockControls, and TrackballControls.
Picking breaks on embedded canvases whenever container offsets are ignored. Developers must calculate normalized device coordinates using getBoundingClientRect(). The skill supplies conversion routines for full-screen viewports and isolated DOM canvas elements.
Features like damping in OrbitControls stop working without an active update call inside the render loop. Rapid pointer events also demand throttling. The guide recommends limiting raycast checks during hover events to preserve frame rates.
What it helps with
- detect clicks and taps on 3D meshes using Raycaster
- convert mouse coordinates from custom canvas elements into normalized space
- set up smooth camera movement with OrbitControls
- throttle hover raycasting to prevent frame drops
Example prompts for the agent
- Set up click detection on meshes using Raycaster for an embedded canvas element
- Add OrbitControls with damping and rotation limits to the scene
- Configure FirstPersonControls with movement speed and vertical constraints
How to install threejs-interaction
1Skills CLI (Vercel)
npx skills add calesthio/OpenMontage --skill threejs-interaction -a claude-code2Manually: put the files in place
~/.claude/skills/threejs-interaction/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/threejs-interaction/
1Skills CLI (Vercel)
npx skills add calesthio/OpenMontage --skill threejs-interaction -a codex2Manually: put the files in place
.agents/skills/threejs-interaction/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add calesthio/OpenMontage --skill threejs-interaction -a cursor2Manually: put the files in place
.cursor/skills/threejs-interaction/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install calesthio/OpenMontage threejs-interaction2Manually: put the files in place
.github/skills/threejs-interaction/SKILL.md1Skills CLI (Vercel)
npx skills add calesthio/OpenMontage --skill threejs-interaction -a gemini-cli2Platform CLI
gemini skills install https://github.com/calesthio/OpenMontage --path .claude/skills/threejs-interactionManually: put the files in place
.devin/skills/threejs-interaction/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add calesthio/OpenMontage --skill threejs-interaction -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set28
The whole set →Other versions of threejs-interaction
Similar
Questions about threejs-interaction
How to install threejs-interaction in Claude Code?
Run npx skills add calesthio/OpenMontage --skill threejs-interaction -a claude-code. This installs the skill file into your agent environment.
Which camera controls does the skill cover?
It includes configurations for OrbitControls, FlyControls, FirstPersonControls, PointerLockControls, and TrackballControls.
Why does raycasting fail on embedded canvas elements?
Standard window-based formulas ignore container offsets on the page. The skill provides formulas using getBoundingClientRect() to calculate accurate normalized coordinates.