How to reduce a GLB file size

Textures are almost always the problem. Halve their resolution before you touch the mesh, because a single 4K texture can outweigh the entire geometry.

  • Runs in your browser
  • Files never uploaded
  • Free to start

How to do it

  1. Check what is actually heavy. Open the model and look at the triangle count and the texture sizes separately.
  2. Resize textures first. A 4K map is 16 times the pixels of a 1K one, and most products do not need 4K at the size they are shown.
  3. Drop maps you are not using. A model carrying a normal, roughness, metalness and ambient occlusion map it never shows is paying for all of them.
  4. Only then reduce the mesh, with decimation in whatever tool produced the model.
  5. If the GLB is only ever going to be seen as a picture, render it to a PNG or video in the MeshShot web app and ship that instead. An image is a fraction of the size and needs no 3D viewer.

People reach for mesh decimation first because triangle counts are the number they can see, but geometry is compact: a few hundred thousand triangles is a few megabytes at most. Textures are images, and image data dominates almost immediately. A product with four 4K PBR maps is carrying something like 60 megabytes of pixels before the mesh is counted at all.

Good to know: Watch what decimation does to the silhouette. Reducing triangles on a curved surface shows up as faceting on the outline long before it shows on the shading.

Questions

Does GLB compress better than glTF?

GLB is the same data in one binary file, so it avoids the base64 bloat of an embedded glTF. See GLB vs glTF.

Will reducing triangles hurt the render?

On curved shapes, yes, visibly on the silhouette. Try textures first.

What if I only need an image?

Then you do not need the GLB to be small at all. Render it once and ship the PNG or video.

Related guides