Asset format specification
Understand the GLB profiles used for individual catalog downloads, pack files, catalogs, prebuilds, configurators, and editable editions.
On this page (6)
threejsassets uses GLB (binary glTF 2.0) for 3D delivery. Compression, materials, textures, and scene structure vary by file type and pack. Read the current pack README and inspect the selected GLB instead of assuming one universal profile.
Container#
A GLB can contain geometry, materials, animations, and embedded images in one binary file. A pack ZIP may also include components, JSON reference data, documentation, a license, and optional preview or authoring files.
No FBX or engine-native prefab is promised unless a pack page explicitly lists it.
Common geometry profiles#
| File | Typical current profile | Intended use |
|---|---|---|
| Individual asset downloaded from the catalog | Web-optimized; may use Draco | Render one catalog asset |
| Individual low-poly GLB inside a pack | Commonly uncompressed | Compose a scene |
| Combined pack catalog | Joined and Draco-compressed | Inspect many models in one file |
| Prebuild | Pack-specific; may use Draco | Use a composed set-piece |
| Configurator GLB | Commonly uncompressed with named materials | Change product zones at runtime |
| Editable authoring GLB | Uncompressed with preserved structure | Edit supported parts and materials |
These are profiles, not promises for every future release. A file that declares KHR_draco_mesh_compression needs a Draco decoder.
Textures#
Some processed textured files may use KTX2 / Basis Universal. Such a file needs KTX2Loader and detectSupport(renderer). Current low-poly environment packs are often texture-free and store colour in the COLOR_0 vertex attribute, so they do not need a texture decoder.
Configure only the loaders required by the selected file:
const draco = new DRACOLoader().setDecoderPath('/draco/')
const ktx2 = new KTX2Loader()
.setTranscoderPath('/basis/')
.detectSupport(renderer)
const loader = new GLTFLoader()
.setDRACOLoader(draco)
.setKTX2Loader(ktx2)Self-host decoder files that match your three.js version. threejsassets does not provide an asset or decoder CDN.
Materials and editability#
Low-poly environment files commonly use a shared material plus vertex colours. Configurator files use named materials. Editable authoring files preserve additional semantic structure when that edition is available. A standard GLB remains usable without optional React components, but its exact node and material names belong to that release.
Orientation and scale#
Environment packs target Y-up and +Z forward. Heights use a metric convention while footprints can be stylized, and pivots vary for vehicles, configurators, and declared exceptions. Read scale, orientation & pivots before combining packs or adding physics.
Before integration#
For each file, confirm:
- declared glTF extensions and decoder requirements;
- node, material, animation, and slot names;
- texture formats and colour behaviour;
- bounding box, pivot, up axis, and forward direction; and
- the matching README and LICENSE.
See Web optimization: Draco, KTX2, poly budgets for performance guidance.
Ask us directly — we answer support mail ourselves.