Skip to content
Novus Examples

Models

The models category covers 3D and CAD interchange formats, each carrying one small, documented solid so you have a known shape to convert and inspect. The mesh formats hold a real 10 mm cube: STL in both ASCII and binary encodings, a Wavefront OBJ, and a 3MF manufacturing package. There's a DXF drawing of the same cube as 3D line geometry, an EPS vector illustration, and minimal well-formed STEP (AP214) and IGES samples for testing header and entity parsing. Every file states its geometry, units, and structure, so you're converting against a known object rather than a mystery mesh.

Filter models on Browse · 159 files · 20 subcategories

159 of 159 files

Animation

Preview of glTF Animation — Four Channels Across Two Nodes (GLB)
glb
3.1 KB
Actual file preview for glTF Animation — Four Channels Across Two Nodes (GLB)

glTF Animation — Four Channels Across Two Nodes (GLB)

A single animation whose four channels drive two nodes at once: the parent's translation, rotation and scale, and a spinning child that inherits all of it. The fixture for checking that channels are applied per node and per path rather than collapsed into one track.

File
GLB · Animation
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF Node Animation — CUBICSPLINE Sampler (GLB)
glb
3.2 KB
Actual file preview for glTF Node Animation — CUBICSPLINE Sampler (GLB)

glTF Node Animation — CUBICSPLINE Sampler (GLB)

One cube on one node, with translation, rotation and scale each driven by a five-key sampler that is cubic-spline, with in/out tangents stored around each value. Three files differing only in `interpolation` — the cleanest way to prove an animation player implements all three modes rather than treating everything as linear.

File
GLB · Animation
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF Node Animation — LINEAR Sampler (GLB)
glb
2.8 KB
Actual file preview for glTF Node Animation — LINEAR Sampler (GLB)

glTF Node Animation — LINEAR Sampler (GLB)

One cube on one node, with translation, rotation and scale each driven by a five-key sampler that is linearly interpolated. Three files differing only in `interpolation` — the cleanest way to prove an animation player implements all three modes rather than treating everything as linear.

File
GLB · Animation
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF Node Animation — STEP Sampler (GLB)
glb
2.7 KB
Actual file preview for glTF Node Animation — STEP Sampler (GLB)

glTF Node Animation — STEP Sampler (GLB)

One cube on one node, with translation, rotation and scale each driven by a five-key sampler that is held (STEP) — the value jumps at each key. Three files differing only in `interpolation` — the cleanest way to prove an animation player implements all three modes rather than treating everything as linear.

File
GLB · Animation
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF Skinned Mesh — Four-joint Chain (GLB)
glb
24.8 KB
Actual file preview for glTF Skinned Mesh — Four-joint Chain (GLB)

glTF Skinned Mesh — Four-joint Chain (GLB)

A longer tube skinned to a four-joint chain, every joint but the root animated, so the whole limb curls rather than hinging once. Exercises joint-matrix accumulation down a hierarchy — the step that a two-bone rig cannot catch.

File
GLB · Animation · 768 triangles
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF Skinned Mesh — Two-joint Bend (GLB)
glb
17 KB
Actual file preview for glTF Skinned Mesh — Two-joint Bend (GLB)

glTF Skinned Mesh — Two-joint Bend (GLB)

A tube skinned to a two-joint chain with inverse bind matrices, unsigned-byte JOINTS_0 and float WEIGHTS_0, plus a three-second rotation animation on the elbow. The shipped models category had no skinned mesh at all; this is the smallest complete one — rig, bind pose, weights and clip in a single self-contained GLB.

File
GLB · Animation · 512 triangles
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF Skinned Mesh — Two-joint Bend (JSON)
gltf
23.7 KB
Actual file preview for glTF Skinned Mesh — Two-joint Bend (JSON)

glTF Skinned Mesh — Two-joint Bend (JSON)

The same two-joint skinned bend as readable glTF JSON with its buffer embedded as a base64 data URI — the file to open in a text editor when a GLB's skin, sampler or inverse bind matrices are not doing what you expect.

File
GLTF · Animation
Use case
Conversion testingMesh processing QA· Conversion set

Buffers

Preview of BIN — glTF External Buffer Payload
bin
10.4 KB
Actual file preview for BIN — glTF External Buffer Payload

BIN — glTF External Buffer Payload

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

File
BIN · Buffers
Use case
Conversion testingError handling· Conversion set
Preview of GLB — Interleaved Vertex Attributes (byteStride 32)
glb
13.6 KB
Actual file preview for GLB — Interleaved Vertex Attributes (byteStride 32)

GLB — Interleaved Vertex Attributes (byteStride 32)

Position, normal and UV packed into ONE bufferView with byteStride 32 and three accessors at offsets 0, 12 and 24 — the GPU-friendly layout, and the one a naive parser mis-reads because it assumes each accessor owns its view. Twinned here with a tightly-packed version of the same sphere.

File
GLB · Buffers
Use case
Conversion testingMesh processing QA+1· Conversion set
Preview of GLB — Self-contained BIN Chunk
glb
11.1 KB
Actual file preview for GLB — Self-contained BIN Chunk

GLB — Self-contained BIN Chunk

The third storage strategy for the identical sphere: a GLB whose buffer is the BIN chunk, with no URI at all. Compare the three file sizes in this group to see exactly what base64 and JSON whitespace cost.

File
GLB · Buffers
Use case
Conversion testingMesh processing QA· Conversion set
Preview of GLB — Texture stored in a bufferView
glb
14.3 KB
Actual file preview for GLB — Texture stored in a bufferView

GLB — Texture stored in a bufferView

The third texture-storage strategy: the PNG lives inside the GLB's BIN chunk as a bufferView, addressed by `mimeType` rather than a URI. This is what a GLB packer must produce, and extracting the image again is the round-trip test.

File
GLB · Buffers
Use case
Texture map testingConversion testing· Conversion set
Preview of GLB — Tightly-packed Vertex Attributes
glb
13.7 KB
Actual file preview for GLB — Tightly-packed Vertex Attributes

GLB — Tightly-packed Vertex Attributes

The same sphere with every attribute in its own bufferView and no byteStride — the layout most exporters emit and most parsers assume. The control against which the interleaved twin in this group is diffed.

File
GLB · Buffers
Use case
Conversion testingMesh processing QA+1· Conversion set
Preview of glTF — Base64 Data-URI Buffer
gltf
15.2 KB
Actual file preview for glTF — Base64 Data-URI Buffer

glTF — Base64 Data-URI Buffer

The same sphere with its buffer inlined as a base64 data URI: one self-contained text file, at roughly a third more bytes than the binary it encodes. The middle point of the three storage strategies in this group.

File
GLTF · Buffers
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF — External .bin Buffer
gltf
1.3 KB
Actual file preview for glTF — External .bin Buffer

glTF — External .bin Buffer

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

File
GLTF · Buffers
Use case
Conversion testingError handling· Conversion set
Preview of glTF — External Texture URI
gltf
19.2 KB
Actual file preview for glTF — External Texture URI

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.

File
GLTF · Buffers
Use case
Texture map testingConversion testing+1· Conversion set
Preview of glTF — Texture as a Data URI
gltf
19.5 KB
Actual file preview for glTF — Texture as a Data URI

glTF — Texture as a Data URI

The same textured sphere with the PNG inlined as a base64 data URI in `images[0].uri` — a single portable text file. The variant that makes a glTF e-mailable and that some loaders quietly refuse.

File
GLTF · Buffers
Use case
Texture map testingConversion testing· Conversion set
Preview of PNG — External glTF Base-colour Texture
png
182 B
Actual file preview for PNG — External glTF Base-colour Texture

PNG — External glTF Base-colour Texture

The 64x64 two-colour checker referenced by the external-texture glTF in this group. Small, hard-edged and axis-aligned on purpose: UV seams, wrap mode and filter choices are all visible at a glance.

File
PNG · Buffers · 64 × 64 px
Use case
Texture map testingConversion testing· Conversion set

Cad

Preview of DXF — CAD Cube (line geometry)
dxf
16.2 KB
Actual file preview for DXF — CAD Cube (line geometry)

DXF — CAD Cube (line geometry)

A 10 mm cube drawn as 12 DXF LINE entities — the AutoCAD interchange format, written with ezdxf. For testing DXF parsers and CAD conversion.

File
DXF · Cad
Preview of EPS — Isometric Cube Illustration
eps
709 B
Actual file preview for EPS — Isometric Cube Illustration

EPS — Isometric Cube Illustration

An isometric cube as Encapsulated PostScript — a 2D vector illustration with three shaded faces. For testing EPS/PostScript rendering and vector conversion.

File
EPS · Cad
Preview of IGES — Minimal Line Entity
iges
648 B
Actual file preview for IGES — Minimal Line Entity

IGES — Minimal Line Entity

A minimal, well-formed IGES 5.3 file with a single LINE entity and correct Start/Global/Directory/Parameter/Terminate sections. For testing IGES parsers and CAD conversion.

File
IGES · Cad
Preview of Spur Gear — 16 teeth (DXF)
dxf
21.2 KB
Actual file preview for Spur Gear — 16 teeth (DXF)

Spur Gear — 16 teeth (DXF)

A 16-tooth spur-gear profile as a closed DXF polyline with a central hub bore — real parametric CAD geometry (not a primitive). For testing DXF parsers, CAM tools, and CAD conversion.

File
DXF · Cad
Use case
Conversion testing· Conversion set
Preview of Spur Gear — 16 teeth (STEP)
step
3.3 KB
Actual file preview for Spur Gear — 16 teeth (STEP)

Spur Gear — 16 teeth (STEP)

The same 16-tooth spur-gear profile as STEP AP214 CARTESIAN_POINT entities — the CAD-exchange twin of the DXF, for testing STEP parsing.

File
STEP · Cad
Use case
Conversion testing· Conversion set
Preview of STEP — AP214 Cube Corner Points
step
673 B
Actual file preview for STEP — AP214 Cube Corner Points

STEP — AP214 Cube Corner Points

A minimal, well-formed STEP AP214 file holding the eight corner points of a 10 mm cube. For testing STEP header and entity parsing and CAD-exchange tooling.

File
STEP · Cad

Compression

Preview of GLB — Float32 Vertex Baseline
glb
73.5 KB
Actual file preview for GLB — Float32 Vertex Baseline

GLB — Float32 Vertex Baseline

An unquantised sphere: 32-bit floats for both positions and normals, 24 bytes of attribute data per vertex. The uncompressed reference for the quantized and gzip twins in this group.

File
GLB · Compression · 3,968 triangles
Use case
Conversion testingMesh processing QA+1· Conversion set
Preview of GLB — KHR_mesh_quantization Twin
glb
48.9 KB
Actual file preview for GLB — KHR_mesh_quantization Twin

GLB — KHR_mesh_quantization Twin

The same sphere with positions as normalised 16-bit and normals as normalised 8-bit integers under KHR_mesh_quantization — 66.6% of the float32 twin's bytes. The extension is in extensionsRequired, so a loader without support must refuse the file rather than render garbage.

File
GLB · Compression
Use case
Conversion testingMesh processing QA+1· Conversion set
Preview of GZ — Gzipped Float32 GLB
gz
21.5 KB
Actual file preview for GZ — Gzipped Float32 GLB

GZ — Gzipped Float32 GLB

The float32 GLB from this group as a deterministic gzip stream (no embedded filename, mtime 0) — what a CDN actually sends when a viewer advertises `Accept-Encoding: gzip`. It compresses to 29.2% of its source against 55.6% for the quantized twin, which is the point of shipping both: quantisation halves the file on disk and then gives most of that back over the wire.

File
GZ · Compression · gzip (deflate)
Use case
Conversion testingPerformance testing· Conversion set
Preview of GZ — Gzipped Quantized GLB
gz
27.2 KB
Actual file preview for GZ — Gzipped Quantized GLB

GZ — Gzipped Quantized GLB

The quantized GLB from this group as a deterministic gzip stream (no embedded filename, mtime 0) — what a CDN actually sends when a viewer advertises `Accept-Encoding: gzip`. It compresses to 55.6% of its source against 29.2% for the float32 twin, which is the point of shipping both: quantisation halves the file on disk and then gives most of that back over the wire.

File
GZ · Compression · gzip (deflate)
Use case
Conversion testingPerformance testing· Conversion set

Decimation

Degenerate

Preview of GLB — Clean Reference Cube
glb
1008 B
Actual file preview for GLB — Clean Reference Cube

GLB — Clean Reference Cube

The clean reference cube as a GLB, so the same baseline is available to glTF tooling and to the site's 3D preview. Identical topology to the OBJ twin in this group.

File
GLB · Degenerate · 12 triangles
Use case
Mesh repair testingMesh processing QA· Conversion set
Preview of GLB — Duplicate Vertices, Split Seam
glb
1.2 KB
Actual file preview for GLB — Duplicate Vertices, Split Seam

GLB — Duplicate Vertices, Split Seam

The duplicated-corner cube as a GLB. Because glTF stores every attribute per vertex, the duplication doubles the position and normal buffers for a shape that needs eight corners — the cheapest optimisation an asset pipeline can make, and the one this fixture measures.

File
GLB · Degenerate · 12 triangles
Use case
Mesh repair testingMesh processing QA· Conversion set
Preview of GLB — Inverted Normals / Mixed Winding
glb
1020 B
Actual file preview for GLB — Inverted Normals / Mixed Winding

GLB — Inverted Normals / Mixed Winding

The mixed-winding cube as a GLB with a default single-sided material, so the reversed faces are culled and you can see straight through the model. Turning on doubleSided hides the defect without fixing it, which is the trap this fixture is for.

File
GLB · Degenerate · 12 triangles
Use case
Mesh repair testingMesh processing QA· Conversion set
Preview of GLB — Non-manifold Edge (three faces on one edge)
glb
1.1 KB
Actual file preview for GLB — Non-manifold Edge (three faces on one edge)

GLB — Non-manifold Edge (three faces on one edge)

The finned cube as a GLB. It renders without complaint in any viewer — rasterisation never asks about adjacency — so this is the fixture that separates tools which actually analyse topology from tools which merely draw triangles.

File
GLB · Degenerate · 14 triangles
Use case
Mesh repair testingMesh processing QA· Conversion set
Preview of GLB — Zero-area Triangles
glb
1.2 KB
Actual file preview for GLB — Zero-area Triangles

GLB — Zero-area Triangles

The same four degenerate triangles inside a structurally valid GLB. The file passes every glTF schema check — nothing in the format forbids a zero-area face — so this is the fixture for geometry validation as opposed to document validation.

File
GLB · Degenerate · 16 triangles
Use case
Mesh repair testingMesh processing QA· Conversion set
Preview of OBJ — Clean Reference Cube
obj
1002 B
Actual file preview for OBJ — Clean Reference Cube

OBJ — Clean Reference Cube

A welded, manifold, consistently-wound unit cube: 8 vertices, 12 triangles, 18 edges each shared by exactly two faces, and a signed volume of exactly 1.0. This is the answer key — each defect fixture in the degenerate/ subcategory is this mesh with exactly one thing wrong.

File
OBJ · Degenerate · 12 triangles
Use case
Mesh repair testingMesh processing QA· Conversion set
Preview of OBJ — Duplicate Vertices, Split Seam
obj
1.3 KB
Actual file preview for OBJ — Duplicate Vertices, Split Seam

OBJ — Duplicate Vertices, Split Seam

The reference cube with all eight corners stored twice at bit-identical coordinates: the first six triangles use one copy, the last six use the other. It renders as a closed cube but is topologically two disconnected surface patches with a split seam, which is why smoothing, subdivision and boolean operations all misbehave on it.

File
OBJ · Degenerate · 12 triangles
Use case
Mesh repair testingMesh processing QA· Conversion set
Preview of OBJ — Inverted Normals / Mixed Winding
obj
1.1 KB
Actual file preview for OBJ — Inverted Normals / Mixed Winding

OBJ — Inverted Normals / Mixed Winding

The reference cube with three of its six cube faces (six of its twelve triangles) wound clockwise instead of counter-clockwise, and `vn` records that follow the reversed winding into the solid. The classic symptom is a model that looks half-invisible with backface culling on and half-black with it off.

File
OBJ · Degenerate · 12 triangles
Use case
Mesh repair testingMesh processing QA· Conversion set
Preview of OBJ — NaN Vertex Coordinates
obj
443 B
Actual file preview for OBJ — NaN Vertex Coordinates

OBJ — NaN Vertex Coordinates

The same NaN vertex in Wavefront OBJ, where the literal is the bare token `nan`. Normals are deliberately not written, because the three faces touching that vertex have no computable normal — which is exactly the state an importer must handle rather than serialise.

File
OBJ · Degenerate · 12 triangles
Use case
Mesh repair testingError handling· Conversion set
Preview of OBJ — Non-manifold Edge (three faces on one edge)
obj
1.2 KB
Actual file preview for OBJ — Non-manifold Edge (three faces on one edge)

OBJ — Non-manifold Edge (three faces on one edge)

The reference cube with a two-triangle fin welded along one top edge, so that edge is shared by three faces instead of two. Non-manifold edges have no defined surface orientation, which is why slicers refuse them and why subdivision and offsetting produce garbage.

File
OBJ · Degenerate · 14 triangles
Use case
Mesh repair testingMesh processing QA· Conversion set
Preview of OBJ — Zero-area Triangles
obj
1.5 KB
Actual file preview for OBJ — Zero-area Triangles

OBJ — Zero-area Triangles

The reference cube plus four triangles with no area, one for each way a mesh can have one: three collinear points, two coincident vertices at different indices, a repeated index, and all three indices identical. Their face normals are undefined, which is where downstream tools produce NaN.

File
OBJ · Degenerate · 16 triangles
Use case
Mesh repair testingMesh processing QA· Conversion set
Preview of PLY — Duplicate Vertices, Split Seam
ply
799 B
Actual file preview for PLY — Duplicate Vertices, Split Seam

PLY — Duplicate Vertices, Split Seam

The duplicated-corner cube as ASCII PLY — the format scanners and photogrammetry tools emit, and the one where unwelded duplicates are most common because each captured point arrives independently.

File
PLY · Degenerate
Use case
Mesh repair testingMesh processing QA· Conversion set
Preview of PLY — NaN Vertex Coordinates
ply
557 B
Actual file preview for PLY — NaN Vertex Coordinates

PLY — NaN Vertex Coordinates

A structurally perfect ASCII PLY in which one vertex reads `nan nan nan` — the value an exporter writes after dividing by a zero-length vector. The header, counts and face list are all correct, so the file parses; every bounding box, centroid and normal computed from it is then poisoned.

File
PLY · Degenerate
Use case
Mesh repair testingError handling· Conversion set
Preview of STL — Zero-area Facets with Null Normals
stl
3.5 KB
Actual file preview for STL — Zero-area Facets with Null Normals

STL — Zero-area Facets with Null Normals

An ASCII STL of the reference cube with two extra facets that have no area and declare a null (0 0 0) normal — exactly what CAD tessellators emit at a sliver. Slicers either drop them, warn, or divide by zero; this is how you find out which.

File
STL · Degenerate
Use case
Mesh repair testingMesh processing QA· Conversion set

Lod

Preview of GLB — Sphere LOD 0 (16,128 triangles, very high)
glb
290.3 KB
Actual file preview for GLB — Sphere LOD 0 (16,128 triangles, very high)

GLB — Sphere LOD 0 (16,128 triangles, very high)

The same unit sphere at 16,128 triangles — level 0 of a four-step ladder that spans 202x from top to bottom. Because every level is generated analytically from the same surface rather than decimated, the ladder is an exact reference: any deviation you measure is your tool's, not the fixture's.

File
GLB · Lod · 16,128 triangles
Use case
Mesh decimation testingMesh processing QA+1· Conversion set
Preview of GLB — Sphere LOD 1 (3,968 triangles, high)
glb
73.5 KB
Actual file preview for GLB — Sphere LOD 1 (3,968 triangles, high)

GLB — Sphere LOD 1 (3,968 triangles, high)

The same unit sphere at 3,968 triangles — level 1 of a four-step ladder that spans 202x from top to bottom. Because every level is generated analytically from the same surface rather than decimated, the ladder is an exact reference: any deviation you measure is your tool's, not the fixture's.

File
GLB · Lod · 3,968 triangles
Use case
Mesh decimation testingMesh processing QA+1· Conversion set
Preview of GLB — Sphere LOD 2 (960 triangles, medium)
glb
19.1 KB
Actual file preview for GLB — Sphere LOD 2 (960 triangles, medium)

GLB — Sphere LOD 2 (960 triangles, medium)

The same unit sphere at 960 triangles — level 2 of a four-step ladder that spans 202x from top to bottom. Because every level is generated analytically from the same surface rather than decimated, the ladder is an exact reference: any deviation you measure is your tool's, not the fixture's.

File
GLB · Lod · 960 triangles
Use case
Mesh decimation testingMesh processing QA+1· Conversion set
Preview of GLB — Sphere LOD 3 (80 triangles, low)
glb
2.7 KB
Actual file preview for GLB — Sphere LOD 3 (80 triangles, low)

GLB — Sphere LOD 3 (80 triangles, low)

The same unit sphere at 80 triangles — level 3 of a four-step ladder that spans 202x from top to bottom. Because every level is generated analytically from the same surface rather than decimated, the ladder is an exact reference: any deviation you measure is your tool's, not the fixture's.

File
GLB · Lod · 80 triangles
Use case
Mesh decimation testingMesh processing QA+1· Conversion set
Preview of OBJ — Sphere LOD 3 (low poly)
obj
5.5 KB
Actual file preview for OBJ — Sphere LOD 3 (low poly)

OBJ — Sphere LOD 3 (low poly)

The coarsest level as plain-text OBJ — 80 triangles you can read end to end. Small enough to paste into a bug report, which is what makes it useful when a pipeline mangles winding or normals and you need the smallest reproducer.

File
OBJ · Lod · 80 triangles

Low Poly

Preview of Low-poly Chair (GLB)
glb
9.3 KB
Actual file preview for Low-poly Chair (GLB)

Low-poly Chair (GLB)

A low-poly chair — a seat, four legs, and a backrest — as a self-contained vertex-coloured GLB. Real, recognisable geometry (not a primitive) for testing glTF loaders, the 3D viewer, and thumbnailers.

File
GLB · Low Poly
Preview of Low-poly Coffee Mug (GLB)
glb
74 KB
Actual file preview for Low-poly Coffee Mug (GLB)

Low-poly Coffee Mug (GLB)

A low-poly coffee mug — a cylindrical body with a looped handle — as a self-contained vertex-coloured GLB. Real, recognisable geometry (not a primitive) for testing glTF loaders, the 3D viewer, and thumbnailers.

File
GLB · Low Poly
Preview of Low-poly House (GLB)
glb
4.4 KB
Actual file preview for Low-poly House (GLB)

Low-poly House (GLB)

A low-poly house — walls, a door, and a pitched roof — as a self-contained vertex-coloured GLB. Real, recognisable geometry (not a primitive) for testing glTF loaders, the 3D viewer, and thumbnailers.

File
GLB · Low Poly
Preview of Low-poly Robot (GLB)
glb
32.3 KB
Actual file preview for Low-poly Robot (GLB)

Low-poly Robot (GLB)

A low-poly robot — a stacked-box character with a head, arms, legs, and antenna — as a self-contained vertex-coloured GLB. Real, recognisable geometry (not a primitive) for testing glTF loaders, the 3D viewer, and thumbnailers.

File
GLB · Low Poly
Preview of Low-poly Tree (GLB)
glb
17.7 KB
Actual file preview for Low-poly Tree (GLB)

Low-poly Tree (GLB)

A low-poly tree — a trunk with three stacked conical layers — as a self-contained vertex-coloured GLB. Real, recognisable geometry (not a primitive) for testing glTF loaders, the 3D viewer, and thumbnailers.

File
GLB · Low Poly

Materials

Preview of GLB — PBR Sphere (glTF twin of the OBJ+MTL pair)
glb
23.7 KB
Actual file preview for GLB — PBR Sphere (glTF twin of the OBJ+MTL pair)

GLB — PBR Sphere (glTF twin of the OBJ+MTL pair)

The same sphere and the same brushed-metal material as the OBJ+MTL pair in this group, but as a single self-contained GLB. Convert the OBJ+MTL and diff against this to score an OBJ-to-glTF material converter.

File
GLB · Materials · 960 triangles
Use case
PBR material testingConversion testing· Conversion set
Preview of glTF Material — doubleSided True vs False (GLB)
glb
19.4 KB
Actual file preview for glTF Material — doubleSided True vs False (GLB)

glTF Material — doubleSided True vs False (GLB)

Two open half-shells with identical geometry and opposite `doubleSided` flags. Because the shells are open you can see straight into them, which is the only way to tell backface culling from a lighting difference.

File
GLB · Materials · 528 triangles
Use case
PBR material testingConversion testing· Conversion set
Preview of glTF Material — KHR_materials_clearcoat (GLB)
glb
23.8 KB
Actual file preview for glTF Material — KHR_materials_clearcoat (GLB)

glTF Material — KHR_materials_clearcoat (GLB)

A rough red base under a full-strength, near-mirror clearcoat lobe — the two-layer material that car paint, lacquered wood and phone cases all need. The base and coat roughness differ by an order of magnitude, so a renderer that collapses the layers is obvious.

File
GLB · Materials
Use case
PBR material testingConversion testing· Conversion set
Preview of glTF Material — KHR_materials_unlit (GLB)
glb
23.7 KB
Actual file preview for glTF Material — KHR_materials_unlit (GLB)

glTF Material — KHR_materials_unlit (GLB)

A sphere whose material opts out of lighting entirely via KHR_materials_unlit — the shading path used for baked scenes, maps and stylised art. Renders as a flat silhouette in a conformant viewer and as a lit ball in one that ignores the extension, which makes the difference obvious.

File
GLB · Materials
Use case
PBR material testingConversion testing· Conversion set
Preview of glTF Material — KHR_materials_variants (GLB)
glb
24 KB
Actual file preview for glTF Material — KHR_materials_variants (GLB)

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.

File
GLB · Materials
Use case
PBR material testingConversion testing· Conversion set
Preview of glTF Material — Metallic-Roughness (GLB)
glb
23.7 KB
Actual file preview for glTF Material — Metallic-Roughness (GLB)

glTF Material — Metallic-Roughness (GLB)

A sphere with the glTF core metallic-roughness material — full metal, low roughness, no textures, so the numbers in the JSON are the whole material. The baseline half of the metallic-roughness vs specular-glossiness twin.

File
GLB · Materials · 960 triangles
Use case
PBR material testingConversion testing· Conversion set
Preview of glTF Material — OPAQUE / MASK / BLEND Side by Side (GLB)
glb
33.9 KB
Actual file preview for glTF Material — OPAQUE / MASK / BLEND Side by Side (GLB)

glTF Material — OPAQUE / MASK / BLEND Side by Side (GLB)

Three identical spheres differing only in alphaMode, arranged left to right. The MASK sphere's base alpha (0.45) sits deliberately just under its 0.5 cutoff, so a correct renderer discards it entirely while a renderer that treats MASK as BLEND draws it semi-transparent.

File
GLB · Materials
Use case
PBR material testingConversion testing· Conversion set
Preview of glTF Material — Specular-Glossiness with Fallback (GLB)
glb
23.9 KB
Actual file preview for glTF Material — Specular-Glossiness with Fallback (GLB)

glTF Material — Specular-Glossiness with Fallback (GLB)

The same metal expressed in the archived specular-glossiness model, carried in `extensions` with an equivalent metallic-roughness fallback and NOT listed in extensionsRequired. The correct shape for an asset that must keep loading in viewers which dropped specular-glossiness support.

File
GLB · Materials
Use case
PBR material testingConversion testing· Conversion set
Preview of MTL — PBR Material (Pr / Pm alongside Phong)
mtl
416 B
Actual file preview for MTL — PBR Material (Pr / Pm alongside Phong)

MTL — PBR Material (Pr / Pm alongside Phong)

The material library for the OBJ in this group, carrying both the original Phong fields and the de-facto PBR extensions (Pr roughness, Pm metallic, Ke emissive). The file that tells you whether an importer reads MTL's PBR additions or only its 1995 subset.

File
MTL · Materials
Use case
PBR material testingConversion testing· Conversion set
Preview of OBJ — PBR Sphere referencing an MTL
obj
59.3 KB
Actual file preview for OBJ — PBR Sphere referencing an MTL

OBJ — PBR Sphere referencing an MTL

A smooth-shaded sphere as Wavefront OBJ with `mtllib`/`usemtl` pointing at a sibling MTL. Downloading the OBJ alone gives you the classic missing-material case; downloading both reproduces the glTF metallic-roughness twin in this group.

File
OBJ · Materials · 960 triangles
Use case
PBR material testingConversion testing· Conversion set

Mesh

Preview of 3MF — Manufacturing Cube
3mf
1 KB
Actual file preview for 3MF — Manufacturing Cube

3MF — Manufacturing Cube

A 10 mm cube as 3MF — the modern OPC-packaged manufacturing format (a ZIP of model XML plus relationships). For testing 3MF readers and slicers.

File
3MF · Mesh · 12 triangles
Use case
Conversion testing· Conversion set
Preview of DAE — COLLADA Cube
dae
1.2 KB
Actual file preview for DAE — COLLADA Cube

DAE — COLLADA Cube

A 10 mm cube as COLLADA (.dae) — the XML digital-asset-exchange format used across 3D tools and game engines. For testing COLLADA parsers and conversion.

File
DAE · Mesh · 12 triangles
Use case
Conversion testing· Conversion set
Preview of GLB — glTF 2.0 Binary Cube
glb
1.3 KB
Actual file preview for GLB — glTF 2.0 Binary Cube

GLB — glTF 2.0 Binary Cube

A 10 mm cube as binary glTF (GLB) — the dominant modern format for 3D on the web and in AR, with per-face normals packed into one self-contained file. Powers the interactive 3D preview on this site; for testing glTF loaders and conversion.

File
GLB · Mesh · 12 triangles
Use case
Conversion testing· Conversion set
Preview of glTF — JSON Cube (embedded)
gltf
2.2 KB
Actual file preview for glTF — JSON Cube (embedded)

glTF — JSON Cube (embedded)

A 10 mm cube as text glTF 2.0 — the JSON scene with its binary buffer embedded as a data URI, the human-readable sibling of the GLB. For testing glTF parsers and GLB↔glTF conversion.

File
GLTF · Mesh · 12 triangles
Use case
Conversion testing· Conversion set
Preview of OBJ — Wavefront Cube
obj
355 B
Actual file preview for OBJ — Wavefront Cube

OBJ — Wavefront Cube

A 10 mm cube as a Wavefront OBJ — plain-text vertices and triangular faces, the lingua franca of 3D asset exchange. For testing OBJ importers and conversion.

File
OBJ · Mesh · 12 triangles
Use case
Conversion testing· Conversion set
Preview of OFF — Geomview Cube
off
167 B
Actual file preview for OFF — Geomview Cube

OFF — Geomview Cube

A 10 mm cube as OFF (Object File Format) — the minimal vertex/face text format from Geomview, common in computational geometry. For testing OFF parsers and conversion.

File
OFF · Mesh · 12 triangles
Use case
Conversion testing· Conversion set
Preview of PLY — ASCII Cube
ply
345 B
Actual file preview for PLY — ASCII Cube

PLY — ASCII Cube

A 10 mm cube as ASCII PLY (Stanford polygon format) — plain-text vertex and face lists common in 3D scanning and research. For testing PLY parsers and conversion.

File
PLY · Mesh · 12 triangles
Use case
Conversion testing· Conversion set
Preview of PLY — Binary Cube
ply
456 B
Actual file preview for PLY — Binary Cube

PLY — Binary Cube

The same cube as binary little-endian PLY — the compact form of the Stanford polygon format. For testing binary-PLY readers.

File
PLY · Mesh · 12 triangles
Use case
Conversion testing· Conversion set
Preview of STL — ASCII Cube
stl
2.9 KB
Actual file preview for STL — ASCII Cube

STL — ASCII Cube

A 10 mm cube as ASCII STL — human-readable facet/normal/vertex records. The most portable 3D-print mesh format; for testing STL parsers and slicers.

File
STL · Mesh · 12 triangles
Use case
Conversion testing· Conversion set
Preview of STL — Binary Cube
stl
684 B
Actual file preview for STL — Binary Cube

STL — Binary Cube

The same 10 mm cube as binary STL — an 80-byte header, a triangle count, and packed little-endian floats. Compact; for testing binary-STL readers.

File
STL · Mesh · 12 triangles
Use case
Conversion testing· Conversion set
Preview of USDZ — Universal Scene Description
usdz
593 B
Actual file preview for USDZ — Universal Scene Description

USDZ — Universal Scene Description

A 10 mm cube as USDZ — Pixar's Universal Scene Description packaged as a stored zip, the format Apple uses for AR Quick Look. For testing USD/USDZ readers and conversion.

File
USDZ · Mesh
Use case
Conversion testing· Conversion set
Preview of WRL — VRML97 Cube
wrl
621 B
Actual file preview for WRL — VRML97 Cube

WRL — VRML97 Cube

A 10 mm cube as VRML97 (.wrl) — the classic Virtual Reality Modeling Language scene format, ancestor of X3D. For testing VRML parsers and conversion.

File
WRL · Mesh
Use case
Conversion testing· Conversion set
Preview of X3D — Interchange Cube
x3d
405 B
Actual file preview for X3D — Interchange Cube

X3D — Interchange Cube

A 10 mm cube as X3D — the XML successor to VRML for web and interchange 3D. For testing X3D parsers and VRML↔X3D conversion.

File
X3D · Mesh
Use case
Conversion testing· Conversion set

Morph

Preview of glTF Morph Target — Sparse Accessor (GLB)
glb
13.6 KB
Actual file preview for glTF Morph Target — Sparse Accessor (GLB)

glTF Morph Target — Sparse Accessor (GLB)

A morph target stored as a sparse accessor: only 25 of 289 vertices carry a delta, and the accessor has no bufferView at all, so every other vertex reads as zero. Sparse accessors are the least-implemented corner of the glTF spec and the usual cause of a target that appears to do nothing.

File
GLB · Morph
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF Morph Targets — Animated Weights (GLB)
glb
20.6 KB
Actual file preview for glTF Morph Targets — Animated Weights (GLB)

glTF Morph Targets — Animated Weights (GLB)

The two-target plane with an animation channel whose target path is `weights` — five keyframes, ten scalars, because a weights sampler stores one value per target per key. The case that breaks players which assume every channel output is a vec3 or a quaternion.

File
GLB · Morph
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF Morph Targets — Eight Simultaneous Targets (GLB)
glb
41.6 KB
Actual file preview for glTF Morph Targets — Eight Simultaneous Targets (GLB)

glTF Morph Targets — Eight Simultaneous Targets (GLB)

Eight POSITION morph targets on one primitive — bumps arranged around a circle, so every active weight is visible independently. Eight is where many real-time renderers stop supporting extra targets; this is the fixture that says whether yours does.

File
GLB · Morph
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF Morph Targets — POSITION + NORMAL Deltas (GLB)
glb
27.2 KB
Actual file preview for glTF Morph Targets — POSITION + NORMAL Deltas (GLB)

glTF Morph Targets — POSITION + NORMAL Deltas (GLB)

Morph targets that displace both positions and normals, with the first target already at weight 0.3 in the bind pose. Shading that stays flat while the surface ripples is the symptom of a loader that morphs positions and forgets the normal deltas.

File
GLB · Morph
Use case
Conversion testingMesh processing QA+1· Conversion set
Preview of glTF Morph Targets — Two POSITION Targets (GLB)
glb
20.1 KB
Actual file preview for glTF Morph Targets — Two POSITION Targets (GLB)

glTF Morph Targets — Two POSITION Targets (GLB)

A 16x16 plane with two POSITION morph targets — a sine ripple and a centre bulge — both at weight 0 in the bind pose. Drive the weights yourself to check that a loader adds the deltas to the base positions instead of replacing them.

File
GLB · Morph · 512 triangles
Use case
Conversion testingMesh processing QA· Conversion set

P8 Convert

Preview of Convert v2 Occupied Voxels Source (VOX)
vox
76 B
Actual file preview for Convert v2 Occupied Voxels Source (VOX)

Convert v2 Occupied Voxels Source (VOX)

Real deterministic VOX source with four occupied voxel coordinates, palette indices, and unit occupied-coordinate bounds for Convert v2 import coverage. Stable P8 artifact p8-convert-model-vox.

File
VOX · P8 Convert
Use case
Conversion testingMesh processing QA· Paired fixture
Preview of Convert v2 Tetrahedron Source (3DS)
3ds
128 B
Actual file preview for Convert v2 Tetrahedron Source (3DS)

Convert v2 Tetrahedron Source (3DS)

Real deterministic 3DS tetrahedron source with four vertices, four triangular faces, and unit bounds for Convert v2 import coverage. Stable P8 artifact p8-convert-model-3ds.

File
3DS · P8 Convert
Use case
Conversion testingMesh processing QA· Paired fixture
Preview of Convert v2 Tetrahedron Source (AMF)
amf
634 B
Actual file preview for Convert v2 Tetrahedron Source (AMF)

Convert v2 Tetrahedron Source (AMF)

Real deterministic AMF tetrahedron source with four vertices, four triangular faces, and unit bounds for Convert v2 import coverage. Stable P8 artifact p8-convert-model-amf.

File
AMF · P8 Convert
Use case
Conversion testingMesh processing QA· Paired fixture
Preview of Convert v2 Tetrahedron Source (DRC)
drc
76 B
Actual file preview for Convert v2 Tetrahedron Source (DRC)

Convert v2 Tetrahedron Source (DRC)

Real deterministic DRC tetrahedron source with four vertices, four triangular faces, and unit bounds for Convert v2 import coverage. Stable P8 artifact p8-convert-model-drc.

File
DRC · P8 Convert
Use case
Conversion testingMesh processing QA· Paired fixture
Preview of Convert v2 Tetrahedron Source (FBX)
fbx
280 B
Actual file preview for Convert v2 Tetrahedron Source (FBX)

Convert v2 Tetrahedron Source (FBX)

Real deterministic FBX tetrahedron source with four vertices, four triangular faces, and unit bounds for Convert v2 import coverage. Stable P8 artifact p8-convert-model-fbx.

File
FBX · P8 Convert
Use case
Conversion testingMesh processing QA· Paired fixture
Preview of Convert v2 Tetrahedron Source (LWO)
lwo
112 B
Actual file preview for Convert v2 Tetrahedron Source (LWO)

Convert v2 Tetrahedron Source (LWO)

Real deterministic LWO tetrahedron source with four vertices, four triangular faces, and unit bounds for Convert v2 import coverage. Stable P8 artifact p8-convert-model-lwo.

File
LWO · P8 Convert
Use case
Conversion testingMesh processing QA· Paired fixture
Preview of Convert v2 Tetrahedron Source (VTK)
vtk
150 B
Actual file preview for Convert v2 Tetrahedron Source (VTK)

Convert v2 Tetrahedron Source (VTK)

Real deterministic VTK tetrahedron source with four vertices, four triangular faces, and unit bounds for Convert v2 import coverage. Stable P8 artifact p8-convert-model-vtk.

File
VTK · P8 Convert
Use case
Conversion testingMesh processing QA· Paired fixture
Preview of Convert v2 VOX Semantic Geometry Reference
json
660 B
Actual file preview for Convert v2 VOX Semantic Geometry Reference

Convert v2 VOX Semantic Geometry Reference

JSON semantic reference for the VOX fixture, publishing occupied coordinates, palette indices, empty face topology, bounds, and the voxel contract. Stable P8 artifact p8-convert-model-vox-reference.

File
JSON · P8 Convert
Use case
Conversion testingMesh processing QA+1· Paired fixture

Point Cloud

Preview of Point Cloud — Fibonacci Sphere (GLB, POINTS)
glb
28.8 KB
Actual file preview for Point Cloud — Fibonacci Sphere (GLB, POINTS)

Point Cloud — Fibonacci Sphere (GLB, POINTS)

The same 1,200-point coloured sphere as a GLB using the POINTS primitive mode — for testing point-cloud rendering in glTF viewers.

File
GLB · Point Cloud
Use case
Conversion testing· Conversion set
Preview of Point Cloud — Fibonacci Sphere (PLY)
ply
42.6 KB
Actual file preview for Point Cloud — Fibonacci Sphere (PLY)

Point Cloud — Fibonacci Sphere (PLY)

A 1,200-point coloured point cloud arranged on a sphere via a Fibonacci lattice — a vertex-only PLY (no faces), the format scanners and LiDAR tools produce. Paired with a GLB (POINTS) twin, for testing point-cloud loaders.

File
PLY · Point Cloud
Use case
Conversion testing· Conversion set

Point Cloud Ai

Repair

Scene Graph

Preview of GLB — 24-level Node Hierarchy
glb
4.9 KB
Actual file preview for GLB — 24-level Node Hierarchy

GLB — 24-level Node Hierarchy

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

File
GLB · Scene Graph
Use case
Conversion testingMesh processing QA· Conversion set
Preview of GLB — 64 Nodes Sharing One Mesh
glb
7.8 KB
Actual file preview for GLB — 64 Nodes Sharing One Mesh

GLB — 64 Nodes Sharing One Mesh

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

File
GLB · Scene Graph
Use case
Conversion testingMesh processing QA+1· Conversion set
Preview of GLB — EXT_mesh_gpu_instancing (32 instances)
glb
3.5 KB
Actual file preview for GLB — EXT_mesh_gpu_instancing (32 instances)

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

File
GLB · Scene Graph
Use case
Conversion testingMesh processing QA+1· Conversion set
Preview of GLB — Node Transforms as 4x4 Matrices
glb
2.4 KB
Actual file preview for GLB — Node Transforms as 4x4 Matrices

GLB — Node Transforms as 4x4 Matrices

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

File
GLB · Scene Graph
Use case
Conversion testingMesh processing QA· Conversion set
Preview of GLB — One Mesh under Three Parents
glb
9.1 KB
Actual file preview for GLB — One Mesh under Three Parents

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.

File
GLB · Scene Graph
Use case
Conversion testingMesh processing QA· Conversion set
Preview of GLB — Three Scenes, Default is Scene 1
glb
17.1 KB
Actual file preview for GLB — Three Scenes, Default is Scene 1

GLB — Three Scenes, Default is Scene 1

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

File
GLB · Scene Graph
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF — 24-level Node Hierarchy (JSON)
gltf
10.1 KB
Actual file preview for glTF — 24-level Node Hierarchy (JSON)

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

File
GLTF · Scene Graph
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF — Node Transforms as TRS
gltf
4.3 KB
Actual file preview for glTF — Node Transforms as TRS

glTF — Node Transforms as TRS

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

File
GLTF · Scene Graph
Use case
Conversion testingMesh processing QA· Conversion set
Preview of glTF — Three Scenes, Default is Scene 1 (JSON)
gltf
23.8 KB
Actual file preview for glTF — Three Scenes, Default is Scene 1 (JSON)

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.

File
GLTF · Scene Graph
Use case
Conversion testingMesh processing QA· Conversion set

Teapot

Preview of Teapot (GLB)
glb
133.5 KB
Actual file preview for Teapot (GLB)

Teapot (GLB)

A procedurally-built teapot — a surface-of-revolution body and lid with a stepped spout, a torus handle, and a knob — as a self-contained GLB. The classic teapot shape, for testing 3D loaders and the model viewer.

File
GLB · Teapot

Textured

Preview of glTF — Textured Mini Quad
gltf
1.6 KB
Actual file preview for glTF — Textured Mini Quad

glTF — Textured Mini Quad

Minimal textured glTF SAMPLE (external PNG + BIN) for glTF loaders and material tests.

File
GLTF · Textured
Use case
Conversion testing· Conversion set
Preview of Textured Cube — UV + embedded PNG (GLB)
glb
2.5 KB
Actual file preview for Textured Cube — UV + embedded PNG (GLB)

Textured Cube — UV + embedded PNG (GLB)

A UV-mapped cube with an embedded 128×128 checkerboard PNG texture and a PBR material, all packed into one self-contained GLB. A fixture for testing texture and UV handling, embedded-image extraction, and PBR material loading.

File
GLB · Textured

Units

Preview of DAE — Signpost, Y_UP declared
dae
5.5 KB
Actual file preview for DAE — Signpost, Y_UP declared

DAE — Signpost, Y_UP declared

The same signpost as COLLADA with `<up_axis>Y_UP</up_axis>` and `<unit meter="1" name="metre"/>` in its asset block. Unlike glTF, OBJ and STL, COLLADA states its convention — so an importer that still gets the orientation wrong has no excuse.

File
DAE · Units · 48 triangles
Use case
Conversion testingMetadata testing+1· Paired fixture
Preview of DAE — Signpost, Z_UP declared
dae
5.5 KB
Actual file preview for DAE — Signpost, Z_UP declared

DAE — Signpost, Z_UP declared

The same signpost as COLLADA with `<up_axis>Z_UP</up_axis>` and `<unit meter="1" name="metre"/>` in its asset block. Unlike glTF, OBJ and STL, COLLADA states its convention — so an importer that still gets the orientation wrong has no excuse.

File
DAE · Units · 48 triangles
Use case
Conversion testingMetadata testing+1· Paired fixture
Preview of GLB — Signpost authored in Centimetres
glb
4.4 KB
Actual file preview for GLB — Signpost authored in Centimetres

GLB — Signpost authored in Centimetres

A 1.12 m signpost with its coordinates written in centimetres — so this file's numbers read up to 112. glTF has no unit field: the spec simply says metres, which means a wrongly-scaled export is indistinguishable from a genuinely enormous model until something is measured.

File
GLB · Units
Use case
Conversion testingMetadata testing+1· Conversion set
Preview of GLB — Signpost authored in Metres
glb
4.5 KB
Actual file preview for GLB — Signpost authored in Metres

GLB — Signpost authored in Metres

A 1.12 m signpost with its coordinates written in metres — so this file's numbers read up to 1.12. glTF has no unit field: the spec simply says metres, which means a wrongly-scaled export is indistinguishable from a genuinely enormous model until something is measured.

File
GLB · Units
Use case
Conversion testingMetadata testing+1· Conversion set
Preview of GLB — Signpost authored in Millimetres
glb
4.4 KB
Actual file preview for GLB — Signpost authored in Millimetres

GLB — Signpost authored in Millimetres

A 1.12 m signpost with its coordinates written in millimetres — so this file's numbers read up to 1120. glTF has no unit field: the spec simply says metres, which means a wrongly-scaled export is indistinguishable from a genuinely enormous model until something is measured.

File
GLB · Units
Use case
Conversion testingMetadata testing+1· Conversion set
Preview of GLB — Signpost, Y-up
glb
4.5 KB
Actual file preview for GLB — Signpost, Y-up

GLB — Signpost, Y-up

The signpost authored +Y up, which is what the glTF specification mandates and what every conformant viewer assumes. The conformant half of the axis pair: load it, confirm the post stands, and you have calibrated your viewer before testing the Z-up twin.

File
GLB · Units
Use case
Conversion testingMetadata testing+1· Paired fixture
Preview of GLB — Signpost, Z-up
glb
4.5 KB
Actual file preview for GLB — Signpost, Z-up

GLB — Signpost, Z-up

The same signpost authored +Z up — what a Blender or 3ds Max glTF export produces when the axis conversion is skipped. glTF has no field in which to declare this, so the file is indistinguishable from a model that genuinely lies on its back, and every conformant viewer will show it that way.

File
GLB · Units
Use case
Conversion testingMetadata testing+1· Paired fixture
Preview of OBJ — Signpost authored in Metres
obj
9.8 KB
Actual file preview for OBJ — Signpost authored in Metres

OBJ — Signpost authored in Metres

The same signpost as OBJ with coordinates in metres. OBJ has no unit record of any kind, so the two OBJ files in this group are byte-different and semantically identical — the ambiguity that every OBJ import dialog's scale box exists to resolve.

File
OBJ · Units · 48 triangles
Use case
Conversion testingMetadata testing+1· Conversion set
Preview of OBJ — Signpost authored in Millimetres
obj
10.5 KB
Actual file preview for OBJ — Signpost authored in Millimetres

OBJ — Signpost authored in Millimetres

The same signpost as OBJ with coordinates in millimetres. OBJ has no unit record of any kind, so the two OBJ files in this group are byte-different and semantically identical — the ambiguity that every OBJ import dialog's scale box exists to resolve.

File
OBJ · Units · 48 triangles
Use case
Conversion testingMetadata testing+1· Conversion set
Preview of PLY — Signpost, +Y up (comment only)
ply
4.7 KB
Actual file preview for PLY — Signpost, +Y up (comment only)

PLY — Signpost, +Y up (comment only)

The signpost as ASCII PLY with +Y up. PLY has no axis or unit element, so the convention survives only as a header comment that no parser reads — the reason scan data so often arrives rotated.

File
PLY · Units
Use case
Conversion testingMetadata testing+1· Paired fixture
Preview of PLY — Signpost, +Z up (comment only)
ply
4.7 KB
Actual file preview for PLY — Signpost, +Z up (comment only)

PLY — Signpost, +Z up (comment only)

The signpost as ASCII PLY with +Z up. PLY has no axis or unit element, so the convention survives only as a header comment that no parser reads — the reason scan data so often arrives rotated.

File
PLY · Units
Use case
Conversion testingMetadata testing+1· Paired fixture
Preview of USDZ — Signpost, upAxis "Y"
usdz
4 KB
Actual file preview for USDZ — Signpost, upAxis "Y"

USDZ — Signpost, upAxis "Y"

The signpost as USDZ with `upAxis = "Y"` and `metersPerUnit = 1` in the stage metadata. USD is the only format in this group that declares BOTH the axis and the scale, which is exactly why it is the one AR pipelines standardised on.

File
USDZ · Units
Use case
Conversion testingMetadata testing+1· Paired fixture
Preview of USDZ — Signpost, upAxis "Z"
usdz
4 KB
Actual file preview for USDZ — Signpost, upAxis "Z"

USDZ — Signpost, upAxis "Z"

The signpost as USDZ with `upAxis = "Z"` and `metersPerUnit = 1` in the stage metadata. USD is the only format in this group that declares BOTH the axis and the scale, which is exactly why it is the one AR pipelines standardised on.

File
USDZ · Units
Use case
Conversion testingMetadata testing+1· Paired fixture

Vertex Color

Preview of Vertex-coloured Cube (GLB)
glb
1 KB
Actual file preview for Vertex-coloured Cube (GLB)

Vertex-coloured Cube (GLB)

A cube with a different colour at each of its eight vertices, interpolated across the faces (COLOR_0 attribute) — as a GLB. Paired with a PLY twin, for testing per-vertex colour handling.

File
GLB · Vertex Color
Use case
Conversion testing· Conversion set
Preview of Vertex-coloured Cube (PLY)
ply
503 B
Actual file preview for Vertex-coloured Cube (PLY)

Vertex-coloured Cube (PLY)

The same per-vertex-coloured cube as ASCII PLY with red/green/blue vertex properties — the Stanford-format twin of the GLB, for testing PLY colour parsing.

File
PLY · Vertex Color
Use case
Conversion testing· Conversion set

Frequently asked questions

What shape is inside the mesh and CAD files?

One small, documented solid — a real 10 mm cube — so you convert against a known object. It ships as ASCII and binary STL, Wavefront OBJ, and a 3MF package, with a matching DXF line drawing and EPS vector illustration.

Do you support STEP and IGES CAD parsing?

Yes — minimal well-formed STEP (AP214) and IGES samples are included specifically for testing header and entity parsing.

Are there AI / 3D-reconstruction fixtures?

Yes — dense↔decimated GLB pairs, broken↔repaired mesh twins, and point-cloud PLY sets share group IDs so you can test decimation, mesh-repair, and point-cloud pipelines against a reference.

What units and structure are documented?

Every file states its geometry, units (millimetres for the cube), and internal structure in its spec, so you're testing a known mesh rather than a mystery file.