GLB compressor: Draco, same look, a fraction of the bytes

Drop a .glb and get it back with its geometry Draco-compressed and its duplicate data folded away. Textures, materials, the skeleton, the morph targets and the animations come through as they were; what changes is how the triangles are stored. Up to 50 files in one zip.

Free · no account needed · files deleted after 3 days

What the compressor does to the file

Three passes, in order. Identical accessors, textures and materials are stored once instead of per use. Resources nothing references are dropped, with every vertex attribute, every leaf node and every extras block kept on purpose, so a material variant that still needs its texture coordinates keeps them. Then every mesh primitive is encoded with Draco: positions at 14 bits, normals at 10, texture coordinates at 12, the library defaults that look the same in a viewer and halve or quarter the geometry.

Textures are not touched. On a textured model they are usually most of the bytes, so the saving you see depends on how much of the file was geometry to begin with: a scan with one small texture shrinks by 80 or 90 percent, a low-poly prop with 4K maps by a few percent. The page shows both numbers so there is no guessing.

Where a Draco GLB opens

Three.js, Babylon, model-viewer, Unity's glTFast, Godot, Blender and the Khronos sample viewer all decode Draco on load. The one family that does not is VRM: UniVRM and the VTubing apps read plain glTF only, so a VRM is refused here rather than turned into a file that opens nowhere. The VRM optimizer trims a VRM in a way those apps can read.

What this tool cannot do

Not for VRM

A .vrm, or a .glb that carries VRM data, is refused with a pointer to the VRM optimizer. A Draco-compressed VRM does not load in UniVRM or in any VTubing app, and a file that opens nowhere is not a smaller file.

Geometry only

Textures keep their format and size. For a file whose bulk is 4K images, the saving is small; resize the images in your 3D tool or run the VRM optimizer's texture step before compressing.

A zip holds up to 50 files

Members other than .glb are ignored; nested folders are kept in the result. More than 50 files, or more than 500 MB of models unpacked, is split into smaller zips first.

Three days, then gone

The upload and the result are deleted three days after the job, downloaded or not. The page keeps no history: bookmark the download or take the file while it is there.

Frequently asked questions

Will my model look different after compression?

Not at viewing distance. Draco quantizes positions to 14 bits across the model's bounds: on a two-metre character that is a tenth of a millimetre. Hard edges, UV seams and smooth shading all survive, because the normals and texture coordinates travel with the vertices.

Why is a VRM refused?

VRM readers (UniVRM, VSeeFace, VRChat's importer, VRoid Hub) do not decode Draco. The compressor would hand you a smaller avatar that no VRM app opens. The VRM optimizer reduces polygons and textures without compressing the container, which is what those apps can read.

Can I compress several files at once?

Yes: zip them and drop the zip. Up to 50 .glb files, each compressed under its own name, back as one zip with the before and after bytes of every member listed on the page.

Does it handle a file that is already Draco?

Yes. It is decoded and encoded again with the settings above. Expect about the same size as before, within a percent either way, not a second halving.

What about animations and skins?

They pass through. Draco keeps vertex order where morph targets need it, skin weights are quantized with the rest of the attributes, and animation channels are untouched.