Esc

GLB Compressor

Make a GLB smaller with meshopt geometry compression and WebP textures, then compare before and after.

Runs in your browser. Nothing is uploaded.

Choose a GLB fileDrop a .glb, a .gltf with its .bin and textures, a folder or a .zip.Up to 256 MB. Files stay in your browser.
Preset

WebP textures up to 1K, meshopt geometry: close to the facet64 3D view files.

Geometry

EXT_meshopt_compression: the smallest geometry, needs a meshopt decoder.

Triangles to keep

Simplification removes triangles and can change the silhouette.

Textures
Max texture size
WebP quality

dedup, prune, weld and resample: lossless.

Choose a file to compress.

How the compressor works

Everything runs in your browser: the file is read and rewritten with glTF-Transform and meshoptimizer, the libraries the facet64 pipeline uses for its 3D view files. Nothing is uploaded.

Meshopt compresses geometry and animation (EXT_meshopt_compression). Quantization stores positions, normals and UVs in fewer bits (KHR_mesh_quantization). Textures are resized and re-encoded as WebP by the browser’s image encoder.

Removing duplicate and unused data merges identical vertices, textures and meshes and drops redundant animation keyframes. It doesn’t change how the model looks. Materials are kept as they are.

Before you ship

  • Meshopt, quantization and WebP are glTF extensions. three.js and Babylon.js load them; check that your engine’s glTF importer does before you replace the original file. The extensions the result needs are listed next to it.
  • Simplification removes triangles and can change the silhouette. Compare in the 3D view, with the wireframe on, before you download.
  • After writing, the result is opened again and its triangles, materials and animations are counted.

Files up to 256 MB. Draco is decoded but not written: a browser can decode it, but encoding needs a separate encoder.

GLB models from the catalog

Browse the catalog