glTF — 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.
Interactive preview rendered from the equivalent glTF (multi-scene.glb); drag to orbit. Download the file above for the GLTF original.
Specifications
- Format
- glTF 2.0 (JSON + base64 buffer)
- Scenes
- 3
- Default Scene
- 1
- Readable
- true
- Note
- same asset as the GLB twin
Testing contract
Reference control- Scenario
- Round-trip through a converter and re-read the top-level `scene` value and the `scenes` array.
- Expected result
- All three scenes and the default index survive; many converters silently keep only the default scene and drop the other two.
What is a .gltf file?
glTF (.gltf, GL Transmission Format) is the 'JPEG of 3D' — a JSON scene description referencing geometry, PBR materials, textures, and animation, with binary buffers stored alongside or as a .bin. It is the standard for web and real-time 3D.
How to use this file
Use an example .gltf file to test glTF loaders (three.js, model-viewer), PBR material handling, and glTF-to-GLB packing.
How to use this file for testing
“glTF — Three Scenes, Default is Scene 1 (JSON)” 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: glTF 2.0 (JSON + base64 buffer). 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("multi-scene.gltf")
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 — 64 Nodes Sharing One MeshAn 8x8 field of columns built from a single 12-triangle mesh referenced by 64 nodes with seeded random heights. Core-glTF instancing needs no extension: the file is tiny, and the interesting question is whether your renderer batches the 64 draws or issues them one by one.

- glbGLB — EXT_mesh_gpu_instancing (32 instances)Thirty-two copies of one cube expressed as instance attribute accessors on a single node under EXT_mesh_gpu_instancing — the extension that moves instancing off the scene graph and onto the GPU. A viewer without support shows exactly one cube at the origin, which is the tell.

- 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 — One Mesh under Three ParentsTwelve 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.

- 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.

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