Hieu-ccsetup threejs

Build immersive 3D web experiences with Three.js - WebGL/WebGPU library for scenes, cameras, geometries, materials, lights, animations, loaders, post-processing, shaders (including node-based TSL), compute, physics, VR/XR, and advanced rendering. Use when creating 3D visualizations, games, interactive graphics, data viz, product configurators, architectural walkthroughs, or WebGL/WebGPU applications. Covers OrbitControls, GLTF/FBX loading, PBR materials, shadow mapping, post-processing effects (bloom, SSAO, SSR), custom shaders, instancing, LOD, animation systems, and WebXR.

install
source · Clone the upstream repo
git clone https://github.com/dige04/hieu-ccsetup
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/dige04/hieu-ccsetup "$T" && mkdir -p ~/.claude/skills && cp -r "$T/config/skills/threejs" ~/.claude/skills/dige04-hieu-ccsetup-threejs && rm -rf "$T"
manifest: config/skills/threejs/SKILL.md
source content

Three.js Development

Build high-performance 3D web applications using Three.js - a cross-browser WebGL/WebGPU library.

When to Use This Skill

Use when working with:

  • 3D scenes, models, animations, or visualizations
  • WebGL/WebGPU rendering and graphics programming
  • Interactive 3D experiences (games, configurators, data viz)
  • Camera controls, lighting, materials, or shaders
  • Loading 3D assets (GLTF, FBX, OBJ) or textures
  • Post-processing effects (bloom, depth of field, SSAO)
  • Physics simulations, VR/XR experiences, or spatial audio
  • Performance optimization (instancing, LOD, frustum culling)

Progressive Learning Path

Level 1: Getting Started

Load

references/01-getting-started.md
- Scene setup, basic geometries, materials, lights, rendering loop

Level 2: Common Tasks

  • Asset Loading:
    references/02-loaders.md
    - GLTF, FBX, OBJ, texture loaders
  • Textures:
    references/03-textures.md
    - Types, mapping, wrapping, filtering
  • Cameras:
    references/04-cameras.md
    - Perspective, orthographic, controls
  • Lights:
    references/05-lights.md
    - Types, shadows, helpers
  • Animations:
    references/06-animations.md
    - Clips, mixer, keyframes
  • Math:
    references/07-math.md
    - Vectors, matrices, quaternions, curves

Level 3: Interactive & Effects

  • Interaction:
    references/08-interaction.md
    - Raycasting, picking, transforms
  • Post-Processing:
    references/09-postprocessing.md
    - Passes, bloom, SSAO, SSR
  • Controls (Addons):
    references/10-controls.md
    - Orbit, transform, first-person

Level 4: Advanced Rendering

  • Materials Advanced:
    references/11-materials-advanced.md
    - PBR, custom shaders
  • Performance:
    references/12-performance.md
    - Instancing, LOD, batching, culling
  • Node Materials (TSL):
    references/13-node-materials.md
    - Shader graphs, compute

Level 5: Specialized

  • Physics:
    references/14-physics-vr.md
    - Ammo, Rapier, Jolt, VR/XR
  • Advanced Loaders:
    references/15-specialized-loaders.md
    - SVG, VRML, domain-specific
  • WebGPU:
    references/16-webgpu.md
    - Modern backend, compute shaders

Quick Start Pattern

// 1. Scene, Camera, Renderer
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

// 2. Add Objects
const geometry = new THREE.BoxGeometry();
const material = new THREE.MeshStandardMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);

// 3. Add Lights
const light = new THREE.DirectionalLight(0xffffff, 1);
light.position.set(5, 5, 5);
scene.add(light);
scene.add(new THREE.AmbientLight(0x404040));

// 4. Animation Loop
function animate() {
  requestAnimationFrame(animate);
  cube.rotation.x += 0.01;
  cube.rotation.y += 0.01;
  renderer.render(scene, camera);
}
animate();

External Resources