Sample GLB Files — Download glTF Binary Models for Testing
GLB — binary glTF 2.0 · .glb · MIME type model/gltf-binary
Download a sample GLB file to test a three.js, Babylon.js or model-viewer scene, a 3D upload pipeline or a glTF parser. There is one file per feature, so a failure points at the feature: a textured low-poly model, a PBR material sheet (a metallic × roughness grid of spheres plus a sphere using base colour, occlusion-roughness-metallic, normal and emissive maps), node animation, morph-target animation, a skinned mesh with a four-joint skeleton, and a multi-mesh scene with a node hierarchy, a camera and two KHR_lights_punctual lights.
The 51,200-triangle model comes twice: uncompressed (923 KB) and Draco-compressed (103 KB), so you can test KHR_draco_mesh_compression decoding and see what it saves. Every GLB passes the Khronos glTF Validator with zero errors and zero warnings, and loads in three.js's GLTFLoader.

Download sample GLB files
| File | Details | Size | Download |
|---|---|---|---|
sample-animated-rotation.glb | 1,024 triangles · 512 vertices · normals · 1 material · 1 animation · metres, Y up | 21 KB | |
sample-skinned-mesh.glb | 1,056 triangles · 562 vertices · normals · 1 material · 1 animation · metres, Y up | 35 KB | |
sample-animated-morph-targets.glb | 768 triangles · 486 vertices · normals · 1 material · 1 animation · metres, Y up | 42 KB | |
sample-multi-mesh-scene.glb | 1,998 triangles · 1,101 vertices · normals · UVs · 4 materials · metres, Y up | 48 KB | |
sample-medium-poly-draco.glb | 51,200 triangles · 25,600 vertices · normals · 1 material · Draco · metres, Y up | 103 KB | |
sample-textured-low-poly.glb | 4,096 triangles · 2,193 vertices · normals · UVs · 1 material · metres, Y up | 133 KB | |
sample-pbr-materials.glb | 26,048 triangles · 14,395 vertices · normals · UVs · 11 materials · metres, Y up | 197 KB | |
sample-medium-poly.glb | 51,200 triangles · 25,600 vertices · normals · 1 material · metres, Y up | 923 KB |
Use these files from the command line or CI
Every URL is stable and CORS-open. Pin the SHA-256 in your test and you will know the moment a fixture changes.
# Download one file curl -O https://pnb-freetoolsforweb.s3.us-east-2.amazonaws.com/samples/3d/glb/sample-animated-rotation.glb # Verify it (SHA-256 is listed for every file above) shasum -a 256 sample-animated-rotation.glb # Machine-readable index of every sample file curl https://pnb-freetoolsforweb.s3.us-east-2.amazonaws.com/samples/index.json | jq '.files[] | select(.format=="glb")'
GLB format at a glance
| Full name | GLB — binary glTF 2.0 |
|---|---|
| Extensions | .glb |
| MIME type | model/gltf-binary |
| Specification | Khronos glTF 2.0, binary container (GLB) |
| Magic bytes | 67 6C 54 46 (“glTF”), version 2 |
| Layout | 12-byte header, JSON chunk, BIN chunk, 4-byte aligned |
| Features covered | PBR, textures, node / morph / skin animation, cameras, lights, Draco |
| Validation | Khronos glTF-Validator: 0 errors, 0 warnings |
What people test with sample GLB files
- Web 3D viewers (three.js, Babylon.js, model-viewer)
- Draco decoder setup (KHR_draco_mesh_compression)
- Animation, morph target and skinning playback
- PBR material and texture-map rendering checks
- Server-side thumbnailing and format conversion
- Upload validation by magic bytes rather than extension
Frequently asked questions
How do I open a GLB file?
Drag it into any online glTF viewer, import it into Blender (File › Import › glTF 2.0), or load it in code with three.js's GLTFLoader or Babylon.js's SceneLoader. GLB is self-contained, so there are no companion files to keep next to it.
What does Draco compression do to a GLB?
It compresses mesh geometry (positions, normals, indices) with quantisation and entropy coding, here shrinking the 51,200-triangle model from 923 KB to 103 KB. Textures and animation are untouched. The cost is a decoder (a few hundred KB of WebAssembly) and some decode time on the client.
Which file should I use to test animation?
sample-animated-rotation.glb for basic node animation (a 4-second rotation and translation loop), sample-animated-morph-targets.glb for morph weights (a cube that turns into a sphere, then squashes), and sample-skinned-mesh.glb for skeletal animation (a four-bone tentacle that bends).
What units and up axis do these files use?
glTF, GLB, OBJ, PLY, OFF, DAE and USDZ are Y-up in metres (the torus knot is about 1.4 m across). STL and 3MF are Z-up in millimetres and rest on z = 0, as slicers expect. FBX is Y-up in centimetres. The units and up axis of each file are listed in its details, so you can check that your importer scales and rotates correctly.
Where do these models come from?
We generate them. A script builds the geometry from formulas (a torus knot, UV spheres, cubes, and a bracket made with a boolean modelling library), then writes each file format byte by byte from its specification. Nothing is downloaded, scanned or converted from someone else's model, which is why they are free for any use, including commercial, with no attribution.
Are these GLB files safe to download?
Yes. Every file is generated by our own open script from scratch — nothing is scraped or user-uploaded — and contains no scripts, macros or executables. The SHA-256 of each file is published on this page so you can verify what you received.
Can I use the sample GLB files commercially?
Yes. They are free for any purpose, including commercial products, test suites, demos and redistribution, with no attribution required. There is nothing to license and no one to ask.
Can I hotlink these files or use them in CI?
Yes. Every link is a stable direct URL over HTTPS with Access-Control-Allow-Origin: * and long cache headers, so curl, wget, fetch() and test runners can pull them directly. A JSON index of every file is linked from each page (see the command-line section).
Related sample files
Free tools that work with GLB
- Hash Generator — Hash text or files with MD5, SHA-1, SHA-256, SHA-384, SHA-512 and CRC32, verify a checksum, or compute an HMAC. Files never leave your device.
- Test File Generator — Generate a dummy file of any exact size in your browser — 1 KB to 2 GB, random bytes, text, CSV or JSON.
Found a problem, or something that could be better? We read every message and we fix things quickly.
Testing a file pipeline? We build them.
Uploads, conversions, previews, document processing and media workflows are the kind of production systems FreeToolsForWeb designs and runs for clients — which is why we needed these files in the first place.
Explore free tools