glTF: External Texture URI
Geometry inline, texture out of line: the image is a relative URI to a sibling PNG while the buffer is embedded, which is the mixed layout that trips asset packers expecting all-or-nothing. Download the PNG in this group with it.
Interactive preview rendered from the equivalent glTF (embedded-texture.glb); drag to orbit. Download the file above for the GLTF original.
Specifications
- Format
- glTF 2.0 (JSON)
- Buffer Storage
- data URI
- Image Storage
- external file
- Image Uri
- external-texture.png
- Wrap S
- REPEAT
- Wrap T
- REPEAT
Testing contract
Expected to recover- Scenario
- Load without the PNG present, then with it.
- Expected result
- The missing image is reported by URI and the sphere still renders with the material's factors; adding the PNG restores the checker.
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: External Texture URI” is a deterministic Testaroo fixture for Texture map testing, Conversion testing, Error handling. Tileable texture channels with documented roles and resolution, for validating texture pipelines, atlas packers, and material import/export.
Documented properties for this file: glTF 2.0 (JSON). 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("external-texture.gltf")
print(mesh.bounds, mesh.faces.shape)Generated by generation/models_p7.py. Free for any use, no attribution required, license.
Related files
- binBIN: glTF External Buffer PayloadThe binary payload the external-buffer glTF in this group points at: tightly-packed positions, normals and indices with 4-byte alignment padding. Not viewable on its own: its bufferViews live in the JSON.

- gltfglTF: External .bin BufferA glTF whose single buffer is a relative URI to a sibling .bin: the layout every DCC tool writes by default, and the one that breaks the moment an asset is moved or served from a different directory. Download the .bin in this group alongside it.

- ediAlder Table Bistro: ANSI X12 810 invoice with a wrong SE segment countANSI X12 810 invoice with a wrong SE segment count for Alder Table Bistro. Identical to edi-810-invoice.edi except for one element: SE declares 11 segments where 13 are present between ST and SE inclusive. The ISA, GS, GE and IEA control numbers, every data segment and the TDS total of 32953 are unchanged, so a parser that checks only syntax accepts the file and only a parser that recounts segments rejects it.

- xmlAlder Table Bistro: UBL 2.1 credit note XMLUBL 2.1 credit note XML for Alder Table Bistro. OASIS UBL 2.1 CreditNote for CN-BST-7002 with type code 381, a BillingReference to invoice INV-BST-5004 dated 2026-08-28, one CreditNoteLine of 5 l and a PayableAmount of 40.90 CAD. It carries the same over-credit as credit-note.pdf: 2 units more than GRN-BST-2004 records returned.

- arAR - Empty Archive (magic only)The smallest valid archive in this catalog: the 8-byte ar magic and nothing after it. ar has no trailer record, so end-of-file is the only end marker, and this is what an empty static library or an empty .deb control archive looks like on disk.

- ediCedar Street Tacos: ANSI X12 810 invoice with a wrong SE segment countANSI X12 810 invoice with a wrong SE segment count for Cedar Street Tacos. Identical to edi-810-invoice.edi except for one element: SE declares 11 segments where 13 are present between ST and SE inclusive. The ISA, GS, GE and IEA control numbers, every data segment and the TDS total of 10433 are unchanged, so a parser that checks only syntax accepts the file and only a parser that recounts segments rejects it.
