What makes a GLB big — and what Zlim does about it
GLB size comes from two places: geometry buffers (vertex positions, normals, UVs, indices) and textures. Most oversized GLBs are heavy on both — uncompressed vertex data and PNG/JPEG textures that balloon in GPU memory.
Zlim compresses the geometry with Draco or meshopt plus vertex quantization, and transcodes textures to KTX2 (Basis Universal) so they stay compressed on the GPU. It also de-duplicates repeated meshes, materials, and accessors.
Measured, not approximate
Every job reports input bytes, output bytes, and the reduction percentage, so the compression is verifiable. Re-running the same file with the same profile yields the same result — useful in CI and asset pipelines.
zlim optimize model.glb # → model.glb (recompressed, ~76% smaller)FAQ
Will compressing the GLB change how it looks?
No perceptible change. Compression and bounded quantization preserve the visual result; the savings are in encoding, not visible detail.
Do compressed GLBs need a special loader?
Draco geometry and KTX2 textures need their decoders at runtime, which mainstream viewers (model-viewer, three.js, Babylon) include. Use meshopt if you prefer a lighter-weight decode.
Compress your GLB now
Start free — 25 optimizations a month. No card required.