threejs-loaders

Load GLTF models, textures, and HDR environments in Three.js applications.

Updated Jun 30, 2026
One-click install
npx skills add https://github.com/ayofemiade/cleva --skill threejs-loaders-ayofemiade
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: threejs-loaders
Source: https://github.com/ayofemiade/cleva/tree/main/.claude/skills/threejs-loaders
Command: npx skills add https://github.com/ayofemiade/cleva --skill threejs-loaders-ayofemiade

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires three.

What problem does it solve? Loading 3D assets in Three.js involves many loader types, async patterns, and configuration details that are easy to get wrong, leading to broken textures, failed model loads, and untracked loading progress. ## Core Features & Use Cases - Model Loading: Load GLTF/GLB, OBJ, FBX, STL, and PLY models with support for Draco compression and KTX2 textures. - Texture & Environment Loading: Configure TextureLoader, CubeTextureLoader, RGBELoader, EXRLoader, and PMREMGenerator for color-accurate maps and PBR environments. - Progress & Error Handling: Coordinate multiple loaders with LoadingManager, promisify loaders for async/await, and implement retry, timeout, and fallback logic. - Use Case: When building a product configurator that loads a Draco-compressed GLB model with an HDR environment map, use this Skill to wire up the loaders, track progress with a LoadingManager, and handle failures gracefully. ## Quick Start Ask the AI to load a GLB model with Draco compression and an HDR environment map in your Three.js scene with a progress indicator.

Frequently Asked Questions about threejs-loaders

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I load a GLTF model in Three.js?▼

Use GLTFLoader from three/addons/loaders/GLTFLoader.js and call loader.load with the model URL and a callback. The callback receives a gltf object whose scene property you add to your Three.js scene, and whose animations array can be played with AnimationMixer.

How to track loading progress for multiple Three.js assets?▼

Use THREE.LoadingManager and pass it to each loader's constructor. Set manager.onProgress to receive per-file updates with loaded and total counts, and manager.onLoad to detect when all assets finish loading.

Does GLTFLoader support Draco compressed models?▼

Yes, GLTFLoader supports Draco compression through DRACOLoader. Create a DRACOLoader, set the decoder path to the Draco decoder files, call preload, then pass it to gltfLoader.setDRACOLoader before loading the compressed GLB file.

How do I load an HDR environment map in Three.js?▼

Use RGBELoader to load .hdr files or EXRLoader for .exr files, then set texture.mapping to THREE.EquirectangularReflectionMapping. For PBR rendering, pass the texture through PMREMGenerator.fromEquirectangular before assigning it to scene.environment.

Why is my loaded texture color washed out in Three.js?▼

The texture color space is likely misconfigured. Set tex.colorSpace to THREE.SRGBColorSpace for color and albedo maps, and use linear color space for data maps like normal and roughness textures, then set tex.needsUpdate to true.

Can I use async/await with Three.js loaders?▼

Three.js loaders use callbacks, but you can wrap loader.load in a Promise that resolves on success and rejects on error. This enables async/await syntax and Promise.all for loading multiple assets concurrently.