GLB — One Mesh under Three Parents
Twelve nodes reference one sphere mesh, in three groups whose parents each apply a different rotation and scale. The fixture for importers that copy geometry per node: a correct import keeps one mesh resource with twelve transforms, a naive one produces twelve meshes.
Specifications
- Format
- glTF 2.0 binary (GLB)
- Meshes
- 1
- Mesh Instances
- 12
- Parent Groups
- 3
- Nodes
- 15
- Note
- each parent applies its own rotation and scale
Testing contract
Expected to pass- Scenario
- Import and count mesh resources versus scene objects.
- Expected result
- One mesh resource and twelve placements; an importer that duplicates geometry per node inflates memory twelvefold for no visual difference.
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
“GLB — One Mesh under Three Parents” is a deterministic Novus Examples fixture for Conversion testing, Mesh processing QA. The same content exported across many formats and linked as a group, so you can convert one and diff against the expected twin.
Documented properties for this file: 15 nodes · 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("shared-mesh-multi-parent.glb")
print(mesh.bounds, mesh.faces.shape)Related files
- glbGLB — 24-level Node HierarchyOne box mesh referenced by a 24-deep chain of nodes, each adding a translation, an 11-degree rotation and a 0.94 scale, so the result spirals. Any error in matrix accumulation compounds visibly by the tip instead of hiding in rounding.

- glbGLB — Node Transforms as 4x4 MatricesSix cubes in a ring whose nodes carry a column-major 4x4 `matrix` and no translation/rotation/scale keys — the encoding a DCC exporter uses when a transform cannot be decomposed. Paired with a TRS twin of the identical ring.

- glbGLB — Three Scenes, Default is Scene 1Three named scenes over three meshes, with the asset's `scene` property pointing at index 1 rather than 0. Loaders that hardcode scene 0 show the wrong content and never report an error — this is the file that catches them.

- gltfglTF — 24-level Node Hierarchy (JSON)The 24-level spiral as readable JSON, so the `children` arrays and per-level TRS can be traced by eye. Useful when a converter flattens or re-parents a hierarchy and you need to see exactly where.

- gltfglTF — Node Transforms as TRSThe same six-cube ring with translation, quaternion rotation and scale spelled out per node. Read it next to the matrix twin to check a decomposition routine, or to confirm that your quaternion component order really is xyzw.

- gltfglTF — Three Scenes, Default is Scene 1 (JSON)The three-scene asset as readable JSON, where the top-level `"scene": 1` is one line you can point at in a bug report. Also the fixture for round-tripping multi-scene assets through tools that keep only one scene.

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