Compress GLB models in your browser
Minify the JSON chunk, strip exporter metadata, and quantise float normals and UVs to normalised shorts. Quantised normals declare KHR_mesh_quantization so the file stays valid.
or browse your device. Everything is processed on this device
No GLB to hand?
How to compress a GLB
A glTF binary (.glb). It is unpacked in this tab and never uploaded.
Leave both on for the usual saving. Turn stripping off if your runtime reads node or material names.
You get a valid GLB 2.0 file. Open it in your viewer before shipping if you quantised.
What compressing a GLB actually does
GLB is glTF 2.0 in one file: a short header, a JSON chunk that describes the scene, and a BIN chunk of typed arrays. Exporters often pretty-print the JSON and fill it with names, extras and generator strings. Minifying and stripping that costs nothing at draw time.
The BIN chunk is harder. Draco and meshopt can shrink geometry a lot, but they need WASM codecs and CSP exceptions this site refuses to take on lightly. Instead, float UVs in [0,1] become normalised unsigned shorts (core glTF), and float normals become normalised shorts under KHR_mesh_quantization. Positions stay 32-bit floats.
There is no better same-purpose format to upsell to: GLB is already the web container. STL is worse for browsers. If you need print-ready facets, use the STL tool; for the web, stay on GLB.
GLB compression FAQ
Does this use Draco?
No. Draco needs a WASM decoder in every client that loads the file. This page minifies JSON, strips metadata, and rewrites eligible float accessors as normalised integers.
Will stripping names break my scene?
Only if something in your pipeline looks up nodes, meshes or materials by name. Viewers that only draw the default scene do not need those strings.
Are positions quantised?
No. Integer positions need KHR_mesh_quantization plus a dequantisation transform. Normals use that extension when quantised; UVs use core normalised unsigned shorts. Positions stay 32-bit floats.
Can I compress .gltf with external bin files?
Not on this page. Drop a single .glb. A separate .gltf plus .bin pair is the same data; pack it to GLB first.
Do my files get uploaded?
No. Parsing and rewriting run in this browser tab. Nothing is sent to a server.
Related
Same format joins the queue. Anything else re-routes to its own tool.