glTF Optimizer

A glTF optimizer is broader than a compressor: it removes wasted scene data, merges materials, resizes textures, quantizes vertex attributes and chooses compression only after the asset is structurally clean.

Generate this in 3DCreate a custom low-poly model from text or an image in seconds.

Matching downloadable assets

Start with these seed models, then generate variants in the same low-poly direction.

Members unlock protected STL access

Use the free OBJ to test the shape. Subscribe for protected STL downloads now; GLB, FBX, USDZ and Unity are shown as production export targets, not direct library downloads yet.

Commercial licenseProtected STL downloads nowMonthly AI credits included
View member plans

Highlights

  • Remove empty nodes, unused materials, leftover cameras and duplicate accessors first
  • Merge compatible mesh primitives to reduce draw calls, not just file size
  • Use vertex-cache reorder and overdraw reduction before compression
  • Quantize positions, normals and UVs only as far as the visual result allows
  • Draco often shrinks more but can decode slower in the browser
  • EXT_meshopt_compression is usually a strong web default for size plus decode speed
  • Resize prop textures to 512-1024px; reserve 2048px for close hero assets
  • Keep an editable source GLB or glTF separate from the optimized delivery file

Optimization starts with the scene graph, not the byte counter. Generated or exported GLB files often contain empty nodes, leftover cameras, unused materials, duplicate accessors and mesh primitives split only because they once had separate material slots. Removing unused data and merging compatible primitives can cut draw calls before any compression is applied, which is why two files with the same byte size can perform very differently in a browser scene.

Geometry optimization usually combines vertex cache reorder, overdraw reduction, attribute quantization and optional compression. glTF Transform and meshoptimizer can reorder indices so nearby triangles reuse vertices more efficiently on the GPU, then quantize positions, normals and UVs to fewer bits when the precision loss is invisible. Draco can produce smaller downloads, but it is CPU-heavy to decode; EXT_meshopt_compression is often the better real-time choice for web viewers because it balances size and decode speed.

Textures are usually the largest payload even for low poly models. A 5k-triangle prop with a 4096px PNG texture is not optimized, even if the mesh is tiny. Resize props to 512 or 1024px, reserve 2048px for close hero assets, convert color maps to WebP or KTX2/Basis where your loader supports it, and avoid alpha unless the material truly needs transparency. Texture decisions often save more bandwidth than geometry compression on flat-shaded assets.

A finished optimization pass should be measured in three ways: final bytes, draw calls and visual difference at the real viewing distance. Load the GLB in a browser viewer, compare triangle count with the source, inspect material count, and check for UV seams or normal artifacts after quantization. For production, keep the editable source separate from the optimized delivery GLB so future changes are made on clean source data instead of repeatedly compressing an already-lossy file.

Optimization context

Frequently asked questions

Is glTF optimization the same as compression?

No. Optimization includes removing unused data, merging materials, resizing textures and reordering geometry. Compression is only one optional final step.

Should I use Draco or meshopt compression?

Draco can make smaller files, but meshopt often decodes faster in real-time web viewers. Test both with your actual loader and device target.

Why is my low poly GLB still large?

The texture is usually the reason. A tiny mesh with 4K PNG textures can be much larger than a denser mesh with a clean 1024px atlas.

Can optimization change how the model looks?

Yes. Aggressive quantization can create jitter, UV seams or normal artifacts. Always compare at the real camera distance after optimization.

Should I edit the optimized file later?

Keep a clean source file for editing. Treat the optimized GLB as a delivery artifact so compression and quantization do not compound across revisions.

Related

Browse all

Need a custom low-poly model?

Generate one from a text prompt or reference image, then export GLB, FBX, OBJ or STL.

Open the generator