Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
openaec-foundation avatar

Threejs Agents Scene Builder

  • 19 installs
  • 11 repo stars
  • Updated July 8, 2026
  • openaec-foundation/three.js-claude-skill-package

Helps with ai & agent building tasks.

About

threejs-agents-scene-builder is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.

  • threejs-agents-scene-builder
  • AI & Agent Building
  • AI-coding skill

Threejs Agents Scene Builder by the numbers

  • 19 all-time installs (skills.sh)
  • +2 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #10,587 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/openaec-foundation/three.js-claude-skill-package --skill threejs-agents-scene-builder

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs19
repo stars11
Last updatedJuly 8, 2026
Repositoryopenaec-foundation/three.js-claude-skill-package

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

threejs-agents-scene-builder

Purpose

This skill is an orchestration guide for building complete Three.js scenes. It provides decision trees that map use cases to the correct combination of lighting, materials, camera, controls, environment, and post-processing. ALWAYS consult this skill first when asked to create a 3D scene or visualization.

---

Master Decision Tree: Use Case to Scene Recipe

Step 1: Identify the Use Case

Use CaseGo To
Product viewer / configuratorRecipe A
Architectural walkthroughRecipe B
Game level / interactive 3DRecipe C
Data visualization / chartRecipe D
Portfolio / hero sectionRecipe E
CAD / BIM / IFC viewerRecipe F
AR / XR experienceRecipe G

Step 2: Choose R3F vs Imperative

ConditionDecision
Project uses ReactALWAYS use React Three Fiber (R3F)
Project uses Vue, Svelte, or vanilla JSALWAYS use imperative Three.js
Need maximum control over render loopPrefer imperative Three.js
Rapid prototyping with component reusePrefer R3F + Drei
Static scene, no interaction frameworkEither works; imperative is lighter

Cross-reference: threejs-impl-r3f for R3F patterns, threejs-core-scene-graph for imperative patterns.

---

Decision Tree: Lighting Setup

Step 1: Scene Type to Lighting Strategy

Scene TypePrimary LightFill LightShadows
Outdoor / daylightDirectionalLight (sun)HemisphereLight (sky/ground)DirectionalLight shadow, PCFSoftShadowMap
Indoor / roomPointLight or SpotLight (fixtures)AmbientLight (low)SpotLight shadows, limit to 2-3
Studio / productSpotLight (key) + SpotLight (rim)AmbientLight or HemisphereLightContactShadows (Drei) or AccumulativeShadows
Stylized / toonDirectionalLightHemisphereLightOptional; BasicShadowMap for hard edges
HDR environment onlyNone (IBL provides all lighting)NoneContactShadows or AccumulativeShadows
Night / darkSpotLight (focused pools)AmbientLight (very low, ~0.05)SpotLight shadows

Step 2: Lighting Intensity (Physically Correct, r160+)

Light TypeUnitTypical IndoorTypical Outdoor
DirectionalLightlux1-51-3 (scene scale dependent)
PointLightcandela50-200N/A
SpotLightcandela100-500N/A
AmbientLightunitless0.1-0.50.2-0.5
HemisphereLightunitless0.3-0.80.5-1.0

Step 3: Light Count Budget

PlatformMax Real-Time LightsMax Shadow-Casting Lights
Mobile3-41 (DirectionalLight only)
Desktop8-162-3 (NEVER PointLight shadows on mobile)
High-end16+ (use TiledLighting)4-5

Critical rules:

  • NEVER use PointLight shadows on mobile — each costs 6 shadow map renders
  • ALWAYS add directionalLight.target to the scene when repositioning the target
  • ALWAYS call RectAreaLightUniformsLib.init() before creating RectAreaLight

Cross-reference: threejs-impl-lighting-shadows for shadow tuning and artifact fixes.

---

Decision Tree: Material Selection

Visual GoalMaterialNotes
Realistic / PBRMeshStandardMaterialDefault choice for most scenes
Realistic + clearcoat, transmission, sheenMeshPhysicalMaterialHeavier than Standard; use only when needed
Toon / cel-shadedMeshToonMaterialRequires gradientMap texture for steps
Unlit / flat colorMeshBasicMaterialZero lighting cost; good for wireframes, UI
Performance-critical (many objects)MeshLambertMaterialVertex-lit; cheaper than Standard
Glass / transparentMeshPhysicalMaterial (transmission: 1)Or Drei's MeshTransmissionMaterial in R3F
Reflective floorDrei MeshReflectorMaterialR3F only
Custom shaderShaderMaterial or RawShaderMaterialFull GLSL control
Node-based (WebGPU)MeshStandardNodeMaterialTSL node system; r160+

Critical rules:

  • NEVER use MeshPhysicalMaterial when MeshStandardMaterial suffices — it is significantly more expensive
  • ALWAYS set material.needsUpdate = true after changing defines or extensions
  • ALWAYS dispose materials when removing objects from the scene

Cross-reference: threejs-syntax-materials for material properties and textures.

---

Decision Tree: Camera Selection

Use CaseCamera TypeTypical Settings
Most 3D scenesPerspectiveCamerafov: 50-75, near: 0.1, far: 1000
Product viewer (no perspective distortion)PerspectiveCamerafov: 35-45 (narrow = less distortion)
Architectural (wide angle)PerspectiveCamerafov: 60-90
2D game / isometricOrthographicCameraFrustum sized to world units
CAD / technical drawingOrthographicCameraALWAYS
Data visualization (flat)OrthographicCameraFrustum = data range
Cinematic / dramaticPerspectiveCamerafov: 20-35 (telephoto effect)

Critical rules:

  • ALWAYS call camera.updateProjectionMatrix() after changing fov, near, far, or aspect
  • NEVER set near to 0 — this causes z-fighting across the entire scene
  • ALWAYS keep the near/far ratio as small as possible (ideally < 1:10000)

Cross-reference: threejs-core-renderer-camera for camera API details.

---

Decision Tree: Controls Selection

Interaction PatternControlsNotes
Orbit around object (most common)OrbitControlsALWAYS enable damping
Map / top-down navigationMapControlsLeft-drag = pan, right-drag = rotate
First-person / walkthroughPointerLockControlsRequires pointer lock API
Fly-through (6DOF)FlyControlsKeyboard + mouse
Drag-to-rotate (presentation)Drei PresentationControlsR3F only; spring physics
Scroll-driven animationDrei ScrollControlsR3F only
Object manipulation (translate/rotate/scale)TransformControlsAttach to selected object
Mobile-friendly orbitOrbitControlsTouch gestures built-in

Critical rules:

  • ALWAYS call controls.update() in the animation loop when enableDamping is true
  • ALWAYS call controls.dispose() on cleanup
  • NEVER combine OrbitControls and TransformControls without disabling OrbitControls during transform interaction

Cross-reference: threejs-syntax-controls for controls API details.

---

Decision Tree: Environment Setup

Visual GoalApproachImplementation
Realistic reflections + ambientHDR environment mapscene.environment = pmremGenerator.fromEquirectangular(hdrTexture)
Solid color backgroundscene.background = new Color(...)Simplest option
Gradient backgroundCustom shader on background planeOr CSS gradient behind transparent canvas
SkyboxCubeTexture on scene.background6 face images
Procedural skyDrei <Sky> or Three.js Sky addonDynamic sun position
No background (transparent)renderer = new WebGLRenderer({ alpha: true })CSS controls what shows behind
R3F environmentDrei <Environment preset="studio" />Presets: apartment, city, dawn, forest, lobby, night, park, studio, sunset, warehouse

Critical rules:

  • ALWAYS use PMREMGenerator to prefilter environment maps for PBR materials
  • NEVER use unprocessed HDR textures as scene.environment — they MUST be PMREM-processed
  • Setting scene.environment provides IBL to ALL PBR materials automatically

Cross-reference: threejs-syntax-materials for environment map usage on materials.

---

Decision Tree: Post-Processing

When to Add Post-Processing

ConditionDecision
Scene looks flat or lacks depthAdd SSAO/GTAO + subtle bloom
Need glow / emissive highlightsAdd UnrealBloomPass
Need anti-aliasing (no MSAA)Add FXAA or SMAA
Cinematic lookAdd BokehPass (DoF) + FilmPass (grain) + LUTPass (color grading)
Outline selectionAdd OutlinePass
Performance is critical (mobile)NEVER add post-processing; use baked effects

Post-Processing Pipeline Order

ALWAYS follow this pass order:

1. RenderPass (beauty render) — ALWAYS first 2. Geometry passes: SSAO, GTAO, SSR 3. Effect passes: Bloom, DoF, Outline 4. Anti-aliasing: FXAA or SMAA 5. Color grading: LUT, Film 6. OutputPass (tone mapping + color space) — ALWAYS last

R3F Post-Processing

In R3F, use @react-three/postprocessing (wraps pmndrs/postprocessing library):

import { EffectComposer, Bloom, SSAO } from '@react-three/postprocessing'

<EffectComposer>
  <SSAO />
  <Bloom luminanceThreshold={0.9} intensity={0.5} />
</EffectComposer>

Critical rules:

  • ALWAYS resize the composer when the window resizes: composer.setSize(w, h)
  • NEVER forget OutputPass at the end — without it, tone mapping and color space conversion are skipped
  • In R3F, @react-three/postprocessing handles pass ordering automatically

Cross-reference: threejs-impl-postprocessing for pass configuration and tuning.

---

Scene Composition Checklist

ALWAYS follow this checklist when building a scene:

1. Renderer — Create WebGLRenderer with antialias: true, set pixel ratio, set size 2. Scene — Create Scene, set background and/or environment 3. Camera — Choose type per decision tree, set position 4. Lighting — Choose recipe per decision tree, respect budget 5. Ground/Environment — Add ground plane, environment map, or sky 6. Content — Add geometries, load models, create materials 7. Controls — Choose per decision tree, configure constraints 8. Shadows — Enable on renderer + lights + objects (3-step opt-in) 9. Post-processing — Add if needed, follow pipeline order 10. Resize handling — ALWAYS handle window resize (camera + renderer + composer) 11. Animation looprequestAnimationFrame or R3F useFrame 12. Disposal — ALWAYS dispose geometries, materials, textures on cleanup

---

Performance Quick Reference

OptimizationWhen to Apply
InstancedMesh>50 identical objects
LOD (Level of Detail)Large scenes with distant objects
frustumCulled: true (default)ALWAYS keep enabled unless object must render off-screen
matrixAutoUpdate: falseStatic objects that NEVER move
Texture compression (KTX2/Basis)ALWAYS for production; reduces GPU memory 4-6x
Geometry mergingMany small static meshes with same material
frameloop="demand" (R3F)Static scenes / configurators
Baked lightingStatic environments
Object poolingFrequently created/destroyed objects

Cross-reference: threejs-errors-performance for detailed optimization strategies.

---

Reference Links

  • references/methods.md — Decision trees with detailed selection criteria
  • references/examples.md — Complete scene recipes for each use case
  • references/anti-patterns.md — Common scene composition mistakes

Related Skills

SkillWhen to Consult
threejs-core-scene-graphScene hierarchy, Object3D API, disposal
threejs-core-renderer-cameraRenderer setup, camera configuration
threejs-core-math-transformsVectors, matrices, coordinate transforms
threejs-syntax-geometryBufferGeometry, built-in shapes, InstancedMesh
threejs-syntax-materialsMaterial properties, textures, environment maps
threejs-syntax-loadersGLTF, FBX, OBJ loading and optimization
threejs-syntax-controlsCamera controls setup and configuration
threejs-impl-lighting-shadowsLight types, shadow configuration, artifacts
threejs-impl-animationKeyframe animation, morph targets, skeletal
threejs-impl-postprocessingEffectComposer, bloom, SSAO, anti-aliasing
threejs-impl-physicsRapier/Cannon.js integration
threejs-impl-r3fReact Three Fiber patterns and hooks
threejs-impl-webgpuWebGPU renderer, TSL node materials
threejs-impl-ifcIFC/BIM model loading and processing
threejs-errors-performanceFPS optimization, memory leaks, draw calls
threejs-errors-renderingVisual artifacts, z-fighting, color issues
threejs-agents-model-optimizerGLTF optimization, compression, LOD generation

Official Sources

  • https://threejs.org/docs/
  • https://threejs.org/examples/
  • https://r3f.docs.pmnd.rs/
  • https://drei.docs.pmnd.rs/

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.