What Draco does
Draco encodes mesh attributes and connectivity into a compact compressed buffer inside the glTF/GLB. It is the standard way to cut the geometry half of a model's size, and it is supported by the KHR_draco_mesh_compression glTF extension.
Draco is lossy in the sense that it quantizes attributes to a chosen bit depth — but Zlim bounds that quantization so the result is visually indistinguishable from the source.
The trade-off: decode cost
Draco-compressed meshes must be decoded at load time by a Draco decoder. Mainstream runtimes ship one (model-viewer, three.js, Babylon.js), so this is usually transparent — but on very low-end devices the decode adds a little CPU time. When fast decode matters more than maximum size, meshopt is the alternative; Zlim supports both.
zlim optimize model.glb # Draco applied per the chosen profileFAQ
Is Draco lossless?
Not strictly — it quantizes attributes. Zlim caps the quantization so the output is visually lossless while still capturing most of the size win.
Does Draco require a runtime decoder?
Yes. Web viewers like model-viewer and three.js bundle a Draco decoder, so Draco GLBs load out of the box in those environments.
Draco vs. meshopt — which should I pick?
Draco for the smallest files; meshopt for faster decode and progressive-friendly buffers. Zlim can apply either, chosen by profile.
Optimize your model now
Start free — 25 optimizations a month. No card required.