A PRACTICAL START

A lighter GLB,
step by step.

Start with a conservative pass, then change one setting at a time. Keep the original model so you can compare and go back.

1. Bring a self-contained model

Choose one GLB with embedded geometry and textures, up to 50 MB. Separate .gltf, .bin and image files are not accepted here. Selecting a file opens a local browser preview; processing starts on the server only when you click Optimize model.

2. Choose a starting point

Conservative keeps the original texture format and does not request triangle reduction or Meshopt compression. Smaller file adds high Meshopt compression. Both preserve named nodes, named materials and extras by default. Neither preset is lossless.

The conservative preset currently produces this local command:

gltfpack -i input.glb -o output.glb -kn -km -ke

The Smaller file preset adds -cc. Use a matching native gltfpack 1.3 binary when reproducing this service's output.

3. Adjust the biggest contributor

For geometry-heavy files, lower the triangle target gradually and inspect silhouettes and thin parts. The target is a simplification goal, not an exact final count. For texture-heavy files, choose KTX2 or WebP to enable texture quality and maximum dimensions. A smaller dimension can have more visible impact than a geometry change.

Read the compatibility guide before enabling compression or changing texture format.

Control simplification and texture encoding

When reducing triangles, the error limit controls allowed relative simplification error (default 1%). Lock border vertices can help preserve open mesh boundaries. These limits may prevent reaching the requested triangle count; they do not guarantee identical appearance. For KTX2 textures, ETC1S favors small files, while UASTC favors quality at a substantially larger size. Verify the output in your target viewer.

Adjust geometry precision

Advanced settings lets you choose 1–16 bits for positions, texture coordinates, normals and vertex colors. Higher values preserve finer detail but can increase size. Start with the defaults, then inspect silhouettes, UV seams and shading. Disable geometry quantization ignores these bit settings and adds -noq; it does not disable simplification, texture conversion or other optimization.

Animation sampling rate

Only affects animations. Lower rates may reduce size but make motion less smooth. Do not resample preserves source timing; other animation optimization still applies.

Texture scale

Scales texture dimensions when converting to KTX2 or WebP. The maximum texture size also applies. Smaller textures can lose detail.

Aggressive simplification

Prioritizes the target triangle count over quality and ignores the error limit. May visibly change silhouettes and details. Off by default.

4. Compare and download

Switch between Original and Optimized, inspect the model from several angles, and check size and triangle counts. Counts sum each mesh primitive once, rather than every scene instance. Also test animations, materials and application behavior in your destination viewer.

Download before the result expires, 60 minutes after upload. The result panel includes the equivalent command for your exact settings. Larger output can be a valid result; try a different setting or keep the original.

When to use the local engine

Run gltfpack locally when your asset exceeds this service's limits, needs command-line options outside this interface, or must remain on your device. Native gltfpack accepts more input formats than this site's single-GLB workflow. See the official engine documentation for installation and the full option list.

Open the optimizer ↗