Skip to the tool

Compress GLB 3D models.

3D models crushed with Draco — right on your own device.

No uploads — 100% local No ads Free & open source

Drop GLB models here

or browse your files

Files never leave your device. Everything runs in your browser, nothing touches a server — tools you've used even work offline.

Compress GLB 3D models entirely in your browser — geometry crushed with Draco or Meshopt, embedded textures re-encoded, optionally fewer triangles. Product models, scans and game assets shrink dramatically; nothing is ever uploaded.

Before / after

Render of the same model after Draco compression and the texture cap — visually near-identical Render of the original 3D camera model at a fixed camera angle
Original — 6.2 MB
Compressed — 1.3 MB

Original

6.2 MB

Compressed

1.3 MB

Saved

−78%

Real result, not a mock-up: this 27k-triangle photoscanned camera went through the Compress GLB tool — glTF Transform with the Draco geometry codec compiled to WebAssembly, plus the Max texture size cap at 1024 px, the "usual culprit" fix the guide itself teaches — and dropped from 6.2 MB to 1.3 MB. Both sides of the slider are the same fixed-camera render of the actual files: every triangle survives, all 9 textures re-encoded, only the bytes leave. Drag away — any softness you can find is the texture cap at work, not the geometry.

Model by Rajil Jose Macatangay — CC0.

How it works

  1. Drop files anywhere on the page, click to browse, or paste with ⌘V.
  2. Pick a quality or preset — or set an exact target size and let the tool find it.
  3. Compress, compare before/after, and download — individually or as a ZIP.

Three ways to compress geometry

Draco (Google) packs vertex data and connectivity the tightest and is decoded by three.js, Babylon.js, <model-viewer> and every major engine. Meshopt (EXT_meshopt_compression) trades a little size for very fast, GPU-friendly decoding — also widely supported. And None quantizes the numbers without any compression extension at all: the output opens in every glTF viewer with zero extra decoders, which makes it the safe pick when you don’t control the viewer.

Textures and triangles

Embedded JPEG textures re-encode at your chosen quality and PNGs can be downscaled — 4K textures are the usual culprit in oversized web models, and the Max texture size cap alone often halves a file. Any texture that would grow is kept untouched, and GPU-compressed formats (KTX2) pass through as-is. The optional Simplify slider decimates the mesh itself — permanent detail loss, but the biggest wins on dense photogrammetry scans.

Under the hood

The pipeline is glTF Transform — the reference glTF processing library — running with Google’s Draco codec and meshoptimizer compiled to WebAssembly, all inside a worker on your device. Deduplication, welding and pruning run first, then your chosen codec; animations, materials and scene structure are carried over untouched. Your model never leaves the browser — no queue, no server, no copy of your asset anywhere.

Frequently asked questions

Will the compressed model open in my viewer?

Draco and Meshopt output needs a viewer with the matching decoder — three.js, Babylon.js, <model-viewer> and the major engines all bundle both. If you can’t control the viewer, pick None: that output needs no decoder at all.

Are animations and materials preserved?

Yes — animations, skins, materials and the node hierarchy pass through untouched. Only vertex data is compressed and textures re-encoded; nothing is restructured.

Why is my .gltf file rejected?

A .gltf keeps geometry and textures in separate files this browser tool can’t reach. Export as a single .glb (Binary glTF) — every DCC tool and engine has that option — and it will convert.

Is my model uploaded?

No. The whole pipeline — parsing, compression, texture re-encoding — runs in your browser. The server only delivers this page; your asset never leaves your device. Want proof? Run one file through, switch your connection off, and run another — it still works.