Skip to content
Testaroo

Explore the test library

Find files, editable templates and browser test targets by what you need to make or test. The directory below is cut by format; the two collections under it cut the same library by subject and by workflow.

192 results

Page 4 of 8; 24 results per page.

Show the canonical directory
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 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
Preview of glTF Morph Targets: Two Targets (JSON)
gltf
27.6 KB
Actual file preview for glTF Morph Targets: Two Targets (JSON)

glTF Morph Targets: Two Targets (JSON)

The same two-target morph plane as readable glTF JSON, so the `targets` array, the mesh-level `weights` and the target accessors can be inspected without a hex editor.

File
GLTF · Morph
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
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: 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: 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 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: 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 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 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
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