Documentation
Free, browser-only — no account, no API keys, your files never leave your device.
1. Quick start
Compress a model in three steps
2. Compression options
What each setting does, and when to use it
Textures are usually the biggest part of a GLB. WebP at 1024px is a good default. Use PNG for lossless quality (larger files). JPEG is smallest but drops transparency — textures that use alpha are automatically kept in WebP.
Merges identical vertex data, meshes, textures, and materials. Safe for almost all models.
Drops data nothing references. Named locator nodes and custom metadata are kept.
Compresses geometry heavily. Your engine needs a Draco-capable loader (e.g. DRACOLoader in three.js). Disable it if your pipeline cannot decode Draco — when disabled, the output contains no Draco data even if the input did.
Merges identical vertices so geometry compresses better. Safe default.
Reduces triangle count by the chosen ratio. Always preview the result with Compare before shipping it — aggressive ratios can open small gaps at seams of multi-part meshes.
Reduce draw calls by merging meshes and flattening the node tree. These change your model's structure, so they are off by default. Named meshes are never merged, keeping part names intact.
Animations are preserved. Keyframes are losslessly resampled to remove redundant frames, which often shrinks animated models further.
3. Need an API or bulk processing?
There are no API keys — the tool is fully client-side
OptimizeGLB no longer offers a hosted API, so there is nothing to authenticate against and no API keys to request. The compressor runs entirely in your browser.
If you need automated/high-volume processing, a custom optimization pipeline, or a local license to run the optimizer inside your own infrastructure, contact us — we build custom setups. For one-off scripting needs, the open-source gltf-transform CLI (which powers this tool) is a great option.