Skip to content
Novus Examples
glb24 KB

glTF Material — KHR_materials_variants (GLB)

One mesh, two named material variants (Copper and Cobalt) selectable at runtime — the extension behind every product configurator that swaps a finish without reloading geometry. The primitive also carries a plain `material`, so viewers with no variant support still render something.

Loading 3D preview…

Specifications

Format
glTF 2.0 binary (GLB)
Extension
KHR_materials_variants
Variants
2
Variant Names
Copper, Cobalt
Materials
2
Default Material
copper

Testing contract

Expected to pass
Scenario
Enumerate the asset's variants, select index 1, and re-render.
Expected result
Two variants are listed; selecting Cobalt swaps the material without touching the accessors, and a viewer that ignores the extension shows the copper default.

What is a .glb file?

GLB is the binary form of glTF, packaging 3D scene geometry, materials, textures, animations, and node hierarchy into a single self-contained file. It is optimized for efficient runtime loading and is often called the JPEG of 3D. It is widely used in web, AR, and real-time 3D applications.

How to use this file

Use an example GLB to test glTF loaders, embedded-texture and animation handling, and real-time rendering pipelines in web or game engines.

How to use this file for testing

“glTF Material — KHR_materials_variants (GLB)” is a deterministic Novus Examples fixture for PBR material testing, Conversion testing. Complete PBR material sets — base colour, normal, roughness, metallic, ambient occlusion, and height — for testing material-generation models and physically-based renderers channel by channel.

Documented properties for this file: glTF 2.0 binary (GLB). Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

3D and CAD fixtures carry one small, documented solid or scene. Convert and inspect against the known geometry, units, and structure; format twins let you diff interchange fidelity, and the 3D viewer previews the actual mesh.

Code examples

import trimesh  # pip install trimesh

mesh = trimesh.load("variants.glb")
print(mesh.bounds, mesh.faces.shape)

Generated by generation/models_p7.py. Free for any use, no attribution required — license.