Threejs

mrgoonie/claudekit-skills/.claude/skills/threejs

by mrgoonie80113d86bc44MIT2.2K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 6 months ago

Build 3D web apps with Three.js (WebGL/WebGPU). Use for 3D scenes, animations, custom shaders, PBR materials, VR/XR experiences, games, data visualizations, product configurators.

AI-generated overview

Reference guide for building 3D web applications with the Three.js WebGL/WebGPU library.

What it does
This skill provides a structured, level-based reference set for Three.js development, covering scene setup, loaders, textures, cameras, lights, animations, math, geometry, materials, interaction, post-processing, controls, performance, node materials, physics/VR, WebGPU and shaders. It also includes a quick-start code pattern for a basic scene, camera, renderer, lights and animation loop. It produces guidance and code examples rather than generated files or scripts.
When to use it
Use it when implementing or debugging 3D web experiences such as scenes, models, animations, visualizations, games, configurators or VR/XR work. It is also relevant when working with WebGL/WebGPU rendering, custom shaders, PBR materials, asset loading or post-processing effects.
Requirements
No scripts are shipped; it is instructions and reference documents only. The described work targets the Three.js library in a JavaScript web environment, and the document lists external documentation and community links.

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/00-fundamentals.md - Fundamentals
  • 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
  • Geometry: references/18-geometry.md - Built-in shapes, BufferGeometry, custom geometry, instancing
  • Materials: references/11-materials.md - PBR, basic, phong, lambert, physical, toon, normal, depth, raw, shader materials, material properties

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
  • Shaders: references/17-shader.md - GLSL, ShaderMaterial, uniforms, custom effects

Quick Start Pattern

javascript
// 1. Scene, Camera, Rendererconst 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 Objectsconst geometry = new THREE.BoxGeometry();const material = new THREE.MeshStandardMaterial({ color: 0x00ff00 });const cube = new THREE.Mesh(geometry, material);scene.add(cube);
// 3. Add Lightsconst light = new THREE.DirectionalLight(0xffffff, 1);light.position.set(5, 5, 5);scene.add(light);scene.add(new THREE.AmbientLight(0x404040));
// 4. Animation Loopfunction animate() {  requestAnimationFrame(animate);  cube.rotation.x += 0.01;  cube.rotation.y += 0.01;  renderer.render(scene, camera);}animate();

External Resources

Source and attribution

Source:mrgoonie/claudekit-skillsin.claude/skills/threejsat commit80113d8

License: MIT

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal