Free 3D model compressor, No sign-up

A smaller file, same model. Pick where it is going and see the saving before you download. Works on GLB, STL, OBJ and PLY.

Drop a 3D model

  • STL
  • OBJ
  • PLY
  • GLB
  • glTF

Nothing is uploaded. The file stays on your device.

Where the weight goes in a GLB

A GLB is geometry plus textures in one file, and the textures are usually the problem. A 4096 px colour map and a 4096 px normal map can be several megabytes before the mesh contributes anything at all. Halving their resolution roughly quarters their size.

After that it is the geometry. glTF stores positions as 32-bit floats by default, which is far more precision than a physical object needs. Quantization stores them as integers against the bounding box instead. Meshopt compression then packs the whole vertex stream, and decodes fast enough that the download saving is never eaten by decode time. Both are glTF extensions, and an importer that does not know one refuses the file, which is why the tool asks where the file is going before it uses them.

If the model is still too heavy after all that, the triangle count itself is the issue: reduce the polygons on the next tab, then come back.

STL, OBJ and PLY

These formats have no textures to resize, so the saving comes from how the numbers are stored. An ASCII STL or PLY writes every coordinate as text, often a dozen characters where binary needs four bytes. Saving it as binary keeps the exact same triangles in a fraction of the space.

A binary STL or PLY has nothing left to take out. Short of zipping it, a tool that shrinks one either converts it to another format or removes triangles. Here that second step is its own tab, Reduce, so you see what you give up.

OBJ stays OBJ. Numbers are rounded to a hundred-thousandth of the model's size, far below what a printer or a screen can show, and comments and blank lines go. Everything else in the file is kept line for line.

Questions

Will the compressed file still open in Blender, Godot and Unity?
Pick where it is going and the tool only uses what that program reads. Opens anywhere, the default, is a plain GLB that every viewer and engine reads, Godot included; the saving comes from cleanup and textures. Web, smallest adds quantization and meshopt, read by three.js, Babylon.js and model-viewer but not by many desktop programs. Blender and Unity (glTFast) get quantization without meshopt, since Blender's meshopt import is very new and Unity needs an extra package for it.
Meshopt or Draco?
Draco compresses geometry slightly smaller; meshopt decodes several times faster and handles animation better. For anything a person waits for in a browser, decode speed usually matters more than the last few percent.
Does it change how the model looks?
Quantization rounds vertex positions to a fine grid, which is invisible at normal scale. Resizing textures is the one setting you can see. It is also where most of the saving comes from, so try 2048 or 1024 px and look before going smaller.
Why is my GLB so big in the first place?
Almost always textures. A single 4K PNG can outweigh the entire mesh. After that it is uncompressed float positions and duplicated vertices, which is what quantization and welding deal with.
Can I compress an STL?
If it is an ASCII STL, yes: saved as binary it keeps the same triangles and is usually about 80% smaller. A binary STL is already 50 bytes per triangle with nothing spare, so the only way to shrink it is fewer triangles. The tool says so and links to Reduce.
Why is my OBJ so big?
OBJ is plain text: every coordinate, UV and normal is written out as digits, and the face lines that tie them together are often half the file. The compressor rounds positions to a hundred-thousandth of the model's size, UVs to 5 decimals and normals to 4, and drops comments and blank lines. Faces, UVs, normals, groups and material names stay. The saving depends on how many digits the exporter wrote: a few percent for a tidy Blender export, much more for one that writes full floats. The .mtl file and textures are separate files and are not changed.
What about PLY files?
An ASCII PLY is saved as binary PLY with every property kept, vertex colours included. A binary PLY is already packed, so like a binary STL it only gets smaller with fewer triangles.
What does the origin setting do?
Bottom centre moves the model's origin to the centre of its footprint, on the floor, so it stands on the ground where an engine places it instead of sinking halfway in. For a static model the offset goes into the vertices, so the mesh itself carries the new origin. The default, As in the file, leaves the origin where it was; choose Bottom centre for an engine.
Is my file uploaded?
No. The file is read and compressed in your browser and never leaves your device.
Do I need an account or to sign up?
No. There is no sign-up, no login and no email, and no limit: the tool runs in your browser, so there is nothing to meter. Use it as often as you like, on as many files as you like.

Next