threejs-loaders

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

Updated Apr 6, 2026
One-click install
npx skills add https://github.com/capella-hotel-group/capella-hotel-group-poc --skill threejs-loaders-capella-hotel-group
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: threejs-loaders
Source: https://github.com/capella-hotel-group/capella-hotel-group-poc/tree/main/.github/skills/threejs-loaders
Command: npx skills add https://github.com/capella-hotel-group/capella-hotel-group-poc --skill threejs-loaders-capella-hotel-group

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires three.

What problem does it solve? Loading 3D assets in Three.js involves many loader classes, compression formats, and async patterns 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 geometry compression and KTX2 compressed textures. - Texture & Environment Loading: Load standard textures, cube maps, and HDR/EXR environment maps with correct color spaces, wrapping, and PMREM prefiltering for PBR rendering. - Progress & Async Management: Coordinate multiple loaders with LoadingManager, promisify loader callbacks, and implement caching, retry, timeout, and fallback logic. - Use Case: When building a product configurator that displays a compressed GLB model with an HDR environment map, use this Skill to wire up GLTFLoader with DRACOLoader, RGBELoader with PMREMGenerator, and a LoadingManager-driven progress bar. ## Quick Start Show me how to load a Draco-compressed GLB model with an HDR environment map and a loading progress indicator in Three.js.

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 or GLB 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 scene, and whose animations array can be played with AnimationMixer.

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

Create a THREE.LoadingManager and pass it to each loader's constructor. Set manager.onProgress to receive loaded and total counts for a progress bar, 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 its decoder path to the Draco decoder files, call preload, then attach it with gltfLoader.setDRACOLoader before loading the compressed model.

How do I use an HDR file as environment lighting in Three.js?▼

Load the HDR file with RGBELoader, then either set its mapping to EquirectangularReflectionMapping and assign it to scene.environment, or pass it through PMREMGenerator.fromEquirectangular for prefiltered PBR environment lighting.

Why does my loaded texture look washed out or too dark?▼

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

Can I await Three.js loader callbacks with async/await?▼

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.