Reduce an STL File
Reducing a mesh is not about how much you throw away — it is about how many triangles you keep. A 40,000-triangle scan and an 800-triangle craft model can be the same object; the difference is which edges survive. Press Melt and watch them leave, live, cheapest edge first. Stop the moment the shape starts to suffer, scrub back up if you overshot, and export at the exact count you landed on. Nothing is uploaded — your file never leaves the browser.
How do I reduce an STL file?
- Load your STL or OBJ. Nothing uploads. Parsing, reduction and export all happen in this tab, so the file never leaves your machine.
- Wait for the collapse sequence. The whole reduction is computed once, up front, from your original count down to four triangles.
- Press Melt, or drag the slider. Triangles leave cheapest-edge-first. Stop the moment the shape starts to suffer.
- Overshot? Scrub back up. Nothing is destroyed. The slider runs both ways, instantly, at any point.
- Export a binary STL at the exact count you landed on.
That is the whole loop. Everything below is for when the default result is not quite what you wanted — a foot that vanished, a lopsided shell, a model too big to load.
What makes this reducer different?
Most reducers ask for a percentage and hand back one result. That answers the wrong question twice over: a percentage means nothing without knowing the starting count, and a single blind result gives you nothing to judge. This tool is built around the opposite idea — compute the entire collapse order once, then let you scrub it like footage.
What it is not: a remesher. It only removes triangles from the mesh you brought. If your model needs more detail than it currently has, or an even quad grid, this is the wrong tool.
What does each control do?
How do we keep the ears and fingers?
Watch almost any model melt and the same thing happens: the ears go before the head, the fingers before the fist. That looks like bad taste, but the algorithm is doing exactly what it was told. Quadric decimation scores each edge by how much surface area would move if its two endpoints merged — and an ear is a thin blade built from small triangles that barely cover any area. Erasing it is cheap by that measure. A broad flat panel on the model’s back is expensive to touch even though nobody would miss a triangle of it. The algorithm optimises for area; you are looking for recognisability. Those are not the same thing.
Three things push back. The score is divided by local area, which turns it into a mean squared distance and stops small features being bargains. Protect detail adds weight where the surrounding faces disagree most sharply about which way is out. And pinning removes a point from the game entirely. That last distinction matters more than it sounds: making a vertex expensive to move does not save it, because its neighbours can still collapse onto it, and merging onto a point that is already there costs almost nothing.
There is also a term for volume. A quadric only measures distance to planes, so clearing a large flat face scores near zero however much of the model goes with it — invisible at 2,000 triangles, and the whole backside at 271. Charging each collapse for the volume it removes fixed that: on one test the same step went from losing 0.46% of the model’s volume to losing none.
How do we keep both sides matching?
Feed in a perfectly mirror-symmetric model and the reduced version usually is not symmetric any more. Nothing has gone wrong: the collapse order is a single global priority queue, and when the left ear and the right ear generate mathematically identical scores, the tie breaks on whichever happened to be pushed first. One side collapses, that changes its neighbours’ scores, and the halves drift apart from there. The further you melt, the wider the gap.
Lock symmetry closes it, pairing every vertex with its reflection and treating each pair as a single collapse. Vertices on the plane are snapped to stay on it, so the seam never wanders, and the slider can never stop halfway through a pair. Measured mismatch fell from 1.95% of the diagonal to zero.
It needs both halves tessellated the same way, though, which a scan almost never gives you. When that fails, Even up halves works on shape rather than topology: on one scanned tortoise it took mismatch from 2.37% to 0.46% at 300 triangles. And Copy A to B sidesteps the problem entirely by reflecting one half onto the other — exact by construction, at the cost of any asymmetry that was really there.
How do we repair a file before reducing it?
Almost always because the file arrived with them. Three failures look alike on screen and have different causes.
One honest limit: a badly damaged file will not come out perfect. Repair separates and closes what it safely can, but a mesh that arrives with hundreds of edges shared by three or more faces keeps some of that through the reduction. It will look right and print; it will not be textbook clean.
What is doing the melting?
Quadric edge-collapse decimation, published by Michael Garland and Paul Heckbert at SIGGRAPH 1997 and still the standard — it is what runs when you click “Decimate” in Blender or “Quadric Edge Collapse” in MeshLab. Every edge gets an error score: how far would the surface move if its two endpoints merged into one point? Edges lying in flat regions score near zero, so they go first, which is why a melting sphere stays stubbornly round while its triangle count falls off a cliff.
The browser twist is computing the entire collapse sequence once, before you touch anything, so rebuilding at any target is a replay measured in milliseconds. That is what makes the slider scrubbable in both directions and the melt stoppable mid-fall. Above what your device can hold, a linear-time grid clustering pass runs first, snapping nearby vertices together to bring a multi-million-triangle scan down to something the quality algorithm can finish properly. You will see a note above the model when that happens, so you always know which mesh you are looking at.
Questions people actually ask
- Garland, M. & Heckbert, P. — "Surface Simplification Using Quadric Error Metrics", SIGGRAPH 1997 (the edge-collapse method this tool implements)
- Rossignac, J. & Borrel, P. — vertex clustering by spatial grid (the pre-reduction pass used on oversized meshes)
- MeshLab documentation — Quadric Edge Collapse Decimation filter (the same method, desktop-side)
- STL format specification — binary STL is 84 header bytes plus 50 bytes per triangle (the file-size readout above)
- howmany.pro 3D Workshop conventions — 800-triangle hand-build cap and ~5,000-triangle phone render ceiling
The scan decided how many triangles your model has. The melt lets you decide how many it needs.