
Optimize a 3D model
Shrink a 3D model: weld coincident vertices within a tolerance, simplify the mesh toward a target triangle fraction, and quantize vertex positions onto a coarser grid. No Draco compression, since three ships Draco's decoder but not its encoder, and the encoder three's own exporter points at is a CDN this project never fetches anything from. Nothing is uploaded.
Optimize a 3D model shrinks a mesh three ways. Weld merges vertices within a set distance, 0.0001 by default, 0 to skip it. SimplifyRatio removes triangles toward a target fraction, 1 leaving the mesh whole. QuantizeBits snaps positions onto a coarser grid, a plain float rounding rather than glTF's own quantization extension. Draco compression is not offered here at all.
Questions
What does weld do?
It merges vertices that sit within a set distance of each other, closing tiny gaps left by how the model was exported. weld defaults to 0.0001 in the models own units, and setting it to 0 turns welding off entirely.
What does simplifyRatio do?
It removes triangles toward a target fraction of the original count using three.js SimplifyModifier, so 0.5 aims to keep about half the triangles. A value of 1, the default, leaves the mesh unsimplified; the accepted range is 0.01 to 1.
What does quantizeBits do, and is it the same as glTFs own compression?
No. It snaps every vertex position onto one of 2 to the power of N evenly spaced steps across the geometrys bounding box, a plain float32 rounding done before export. glTFs own KHR_mesh_quantization extension changes the accessors component type to a normalized integer instead, and this tool does not write that extension.
Why is there no Draco compression option?
Because three.js ships Dracos decoder but not an encoder, and the encoder three.js own exporter points at lives on a CDN this project never fetches anything from. Adding Draco output would mean shipping a dependency this codebase does not otherwise carry.
What output formats can I choose?
glb, gltf, obj, stl, stl-ascii, ply or usdz, glb by default. The result is named after your input file with an -optimized suffix and the extension matching your chosen format.
Does it run on the command line?
Yes. It takes a single file and has no browser-only restriction, so the CLI and MCP surfaces run the same weld, simplify and quantize code as the page.
Compare
| Tool | Runs on the CLI | Live as you type |
|---|---|---|
| Optimize a 3D model | Yes | No |
| Convert 3D model | Yes | No |
| 3D model mesh info | Yes | No |
| Inspect a glTF/GLB model | Yes | No |
| Measure a 3D model | Yes | No |
| Strip 3D model metadata | Yes | No |
| Convert STL between ASCII and binary | Yes | No |