Three.js interaction - raycasting, controls, mouse/touch input, object selection. Use when handling user input, implementing click detection, adding camera controls, or creating interactive 3D experiences.
Install with Tessl CLI
npx tessl i github:cloudai-x/threejs-skills --skill threejs-interaction98
Does it follow best practices?
Validation for skill structure
Discovery
100%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a well-crafted skill description that excels across all dimensions. It provides specific capabilities (raycasting, controls, input handling), uses natural trigger terms users would actually say, includes an explicit 'Use when...' clause, and carves out a distinct niche within the Three.js ecosystem focused specifically on interaction and user input.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: raycasting, controls, mouse/touch input, object selection, click detection, camera controls, interactive 3D experiences. | 3 / 3 |
Completeness | Clearly answers both what (raycasting, controls, mouse/touch input, object selection) AND when with explicit 'Use when...' clause covering multiple trigger scenarios. | 3 / 3 |
Trigger Term Quality | Includes natural keywords users would say: 'user input', 'click detection', 'camera controls', 'interactive', 'mouse/touch input', 'object selection', 'Three.js', '3D'. | 3 / 3 |
Distinctiveness Conflict Risk | Clear niche focused specifically on Three.js interaction and input handling; distinct from general 3D rendering or other JavaScript skills with specific technical terms like 'raycasting' and 'camera controls'. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
100%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is an excellent skill file that serves as a comprehensive reference for Three.js interaction patterns. It maintains high token efficiency while providing complete, executable code examples for raycasting, camera controls, selection systems, and coordinate conversion. The structure progresses logically from quick start to advanced patterns with clear cross-references to related skills.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is lean and efficient, jumping directly into executable code examples without explaining basic concepts Claude already knows. Every section provides actionable code without unnecessary preamble. | 3 / 3 |
Actionability | All code examples are complete, executable, and copy-paste ready. The skill covers raycasting, multiple control types, selection systems, and coordinate conversion with specific, working implementations. | 3 / 3 |
Workflow Clarity | For an interaction reference skill, the workflows are clear. Each section shows the complete pattern (setup, usage, events). The InteractionManager class demonstrates proper event binding and cleanup patterns. | 3 / 3 |
Progressive Disclosure | Well-organized with clear section hierarchy from Quick Start through advanced topics. References to related skills (threejs-fundamentals, threejs-animation, threejs-shaders) are clearly signaled at the end without deep nesting. | 3 / 3 |
Total | 12 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 13 / 16 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (661 lines); consider splitting into references/ and linking | Warning |
metadata_version | 'metadata' field is not a dictionary | Warning |
license_field | 'license' field is missing | Warning |
Total | 13 / 16 Passed | |
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.