What problem does it solve? Real-time strategy games with hundreds of units suffer from excessive draw calls and unstable frametimes when each unit is rendered as a separate mesh. This Skill provides rendering rules and patterns for building scalable Three.js rendering pipelines using instancing and batching. ## Core Features & Use Cases - Instanced Rendering Rules: Enforces use of InstancedMesh, shared geometry, shared materials, and batched transform updates instead of one mesh per unit. - Decoupled Render Pipeline: Defines a Simulation → Render Extraction → Visibility Filtering → Instance Updates → GPU Submission pipeline that keeps rendering separate from game logic. - API Constraints: Prevents common bugs such as forgetting instancedMesh.instanceMatrix.needsUpdate = true or creating new THREE.Mesh objects inside the game loop. - Use Case: When building an RTS with thousands of units on screen, apply these rules to keep draw calls low and frametimes stable using texture atlases, frustum culling, and lightweight shaders. ## Quick Start Use the threejs-instancing skill to design the rendering layer for my RTS game so thousands of units render with minimal draw calls.