HowMany.pro
Home3D WorkshopReduce STL

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.

Share a video of your reduced model — lighting, materials, a backdrop, and every angle at once. Full manual below: quickstart, every control explained, diagrams, and what to do when a foot vanishes or a shell comes out lopsided.
The STL reducer
Load a mesh, press Melt, and watch triangles leave one collapse at a time. Stop when it starts losing the shape - then scrub the slider back up a notch. The original is never touched.
Triangles
...
Kept
100%
Vertices
...
Side A / B
-
Binary STL
...
Trim on loadCut a huge scan down before the quality pass - faster, and the slider still runs all the way to 4 triangles.
What survives
Drag to tumble, scroll to zoom.Amber = kept detail, white = mirror line. Click any marker again to remove it. Mirror needs three marks or more; extra marks only make the line more certain, and the dashed outline shows where it landed.
SymmetryMark three points or more along the mirror line to enable these.

How do I reduce an STL file?

  1. Load your STL or OBJ. Nothing uploads. Parsing, reduction and export all happen in this tab, so the file never leaves your machine.
  2. Wait for the collapse sequence. The whole reduction is computed once, up front, from your original count down to four triangles.
  3. Press Melt, or drag the slider. Triangles leave cheapest-edge-first. Stop the moment the shape starts to suffer.
  4. Overshot? Scrub back up. Nothing is destroyed. The slider runs both ways, instantly, at any point.
  5. Export a binary STL at the exact count you landed on.
40,000raw scan5,000phone renders it800hands can build it292bunny scalesame object, four different jobsyou are choosing a rung, not a discount
The ceilings are absolute, so the target should be too. A percentage cannot know where you started.

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.

Target an exact triangle count
Not a percentage. 800 is roughly the ceiling for hand assembly with scissors and glue; 5,000 is where a phone browser stops spinning a model smoothly. Those are absolute numbers, so the target should be too.
Watch it happen, and go back
The full collapse order is computed before you touch anything, so any count rebuilds in milliseconds. You see the exact moment the model stops looking like itself instead of guessing a number.
Watertight in, watertight out
A closed mesh stays closed the whole way down: zero open edges at 50%, 20% and 5%, and still zero at four triangles. Collapses that would flip a triangle inside-out or pinch the surface into a fin are refused.
It repairs before it reduces
Duplicate faces, faces wound inside-out, and pinched vertices where two sheets touch at a point all get fixed on load. On one test file that meant separating 63 pinched vertices, without which the reduction jammed at 496 triangles no matter what you asked for.
Keep the details that matter
Pin a point and it never moves and never collapses, at any count. The usual complaint about quadric decimation is that ear tips and toes go first; pinning is a hard lock, not a hint.
Symmetry that survives
Reduce a mirror-symmetric model normally and the halves drift apart, because ties in the collapse queue break arbitrarily. Lock symmetry collapses mirrored pairs as one step. Measured left-right mismatch: 1.95% of the model diagonal, down to zero.
Cut, mirror, or copy a half
Keep one side and the cut is capped, so the half is still a solid. Or reflect one side onto the other, which spends the whole triangle budget on one half and draws it twice.
Big files welcome
Above what your device can hold, the mesh passes through a linear-time clustering pass first. A 1.3 million triangle scan comes down to a workable size in a few seconds, and the tool tells you when it has done so.
Nothing is uploaded
No account, no queue, and no copy of your file left on a server you do not control. Close the tab and it is gone.

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?

Reduce / Video mode
The switch at the top of the studio. Reduce holds triangles, symmetry and detail; Video holds look, spin and screens. The model, the camera and every setting stay put when you flip between them - only the panels change.
Trim on load
Caps the mesh before the quality pass runs. Auto uses what your device can hold. Picking 100k on a million-triangle scan makes everything downstream faster, and the slider still runs all the way to four triangles afterwards.
Melt and the slider
The slider is logarithmic, so the low counts where decisions actually get made take up as much travel as the high ones. Melt walks it down 2 per cent per tick until you stop it.
Protect detail
Reweights the collapse score toward sharp, curved and outermost points. The raw quadric measures error as distance times area, so a foot built from a few small triangles is cheap to delete however far the surface has to move. This pushes back.
Pin detail
Click the model to lock a point. Pinned vertices never move and never collapse. Click a pin again to remove it. Pins raise the floor slightly, since their neighbourhood can no longer simplify.
Mark mirror line
Click three or more points along the line of symmetry. They are an indication, not a measurement: a plane is fitted through them, then slid and tilted until it actually mirrors the mesh. On a deliberately sloppy set of five picks, agreement went from 43 to 83 per cent.
Lock symmetry
Collapses each mirrored pair of vertices as a single step, so both halves stay identical as the count falls. Needs both halves tessellated the same way - true of most modelled files, rarely true after a scan.
Even up halves
For when the halves cannot melt in step. Moves each vertex a fraction of the way toward the reflection of its opposite number. Positional only, so the face count is untouched.
Copy A to B / B to A
Keeps one side, reflects it, welds the seam. Exact rather than approached, and the counts on the buttons tell you which side carries more detail. It does discard genuine asymmetry.
Keep A only / Keep B only
Cuts the model at the mirror line and caps the cut with well-proportioned triangles, so the half stays a closed solid rather than an open shell.
Full screen
Expands the viewport to fill the screen, with no frame guide and no markers. Escape returns.
Extra views: Front, Side, Top, Back, Free
Opens more windows on the same model. Each named view holds its angle; Free tumbles on its own. Every window updates live as you reduce, which is the point - a collapse that ruins a leg is obvious from the front and invisible from above. Open as many as your screens can hold.
Link camera
Makes Free windows follow the studio camera. Named views ignore it deliberately, since holding their angle is what they are for.
Look (Video mode)
Material, lighting, background, brightness and edges. Seven materials including Marble and Red, three lighting rigs, brightness 60 to 150 per cent. All of it drives the live canvas AND the exported frames, so the preview is the product.
Backdrop image (Video mode)
Loads any picture behind the model, cover-fitted. Painted into the canvas rather than sitting behind it in the page, so it appears in the exported video too.
Caption (Video mode)
Puts a title and the triangle count in the frame, with a small howmany.pro mark in the corner. The box starts with the file name so you can add to it. Both are placed against the filming rectangle, not the canvas edge, so they never fall outside the shot.
Motion and Axis (Video mode)
Turntable shows a band round the middle - 38 per cent of the viewing sphere. Orbit tilts at a different rate from the spin and reaches 71 per cent. Every angle reaches 99 per cent but needs a longer clip, and the panel says so when the chosen length would strobe. Axis defaults to Y; X and Z are for files that came out of CAD lying on their side.
Preview spin (Video mode)
Runs the exact turn the export will render, at the same length and the same framing, and plays on every second screen at once.
Fit whole turn (Video mode)
Measures every angle before rendering and frames the widest one. Without it a zoomed-in view clips as the model comes round: at 1.5x zoom, 111 of 120 frames lost part of the model.
Show frame (Video mode)
Dims everything outside the export aspect so you can see what is in shot. It is the video frame, not the mirror line.
Video clip and Frames (Video mode)
Video clip records straight to MP4 where the browser allows it - the one format that plays on a phone and posts anywhere - and falls back to WebM. The frame sequence is the route that always works: it cannot drop a frame, and one ffmpeg line turns it into an MP4. JPEG frames are about a tenth the size of PNG; PNG is only worth it if you need alpha for compositing - tick Transparent next to it and the frames really do carry the channel. Either way the clip loops exactly, and Cancel stops a render in progress.

How do we keep the ears and fingers?

one big flat panellarge area, tiny errorscore: EXPENSIVEscore: CHEAPmany small triangles, almost no areathe tipyou wanted
Error is scored as distance times AREA. The panel is expensive because it is big; the ear is cheap because it is small - even though the ear is the part you would miss.

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.

weighted onlyneighbours close inpinnedtip survives
Making a point expensive does not save it - its neighbours collapse onto it instead. A pin removes it from the game.

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?

mirror lineleft: score 0.041right: score 0.041collapses firststill there
Identical scores on both sides, one queue: the tie breaks arbitrarily, one side collapses, and its neighbours rescore. The halves diverge from there.

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.

Lock symmetrycollapse pairs togethermismatch to 0.00%Even up halvesnudge toward the mirror2.37% to 0.46%Copy A to Breflect one halfexact, 0.0000%
Lock needs matching tessellation on both halves. Even up works on shape alone. Copy is exact but discards real asymmetry.

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.

Dark flecks scattered over a smooth surface
Single triangles wound inside-out, so their normal points inward. Backface culling hides them by showing the face behind; this viewer shades backfaces instead, which is why they show up here and not elsewhere. The winding is repaired on load, walking each component and flipping neighbours that disagree.
Actual gaps you can see through
Genuine open edges. Repair fills boundary loops on load, using best-ear triangulation rather than a fan from one vertex, so the patch is made of chunky triangles other tools can weld against.
Long thin slivers that never go away
Usually needles left at a damaged junction: one edge a fraction of the length of the other two. The rule that stops the surface pinching shut also refuses to clear them. Edges under a tenth of the average now collapse anyway, since moving them changes almost nothing. On one file that took slivers at 230 triangles from 64 down to seven, and at 150 triangles to none.
It will not go below some count
Something is blocking the collapse. Pinned points raise the floor by design. Beyond that it is usually damage: pinched vertices where two sheets meet at a point are the classic cause, and separating them on one file moved the floor from 496 triangles to four.
cut herecap addedear-clipped, chunkytriangles - weldablestill watertight
Keep one side and the cut is capped, so the half is still a closed solid: zero open edges, Euler characteristic 2.

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

Should I reduce an STL by percentage or by triangle count?
By count. "Reduce by 70%" means nothing without knowing where you started, but "get it under 800 triangles" is a real decision: 800 is roughly the ceiling for hand-building with scissors and glue, and around 5,000 is where phone browsers stop rendering smoothly. This tool targets an exact count, with those numbers as one-tap presets.
How big an STL file can I reduce in the browser?
The tool scales to the machine you are on - roughly 600,000 triangles of full-quality reduction on a desktop, less on a phone. Anything larger is passed through a fast clustering step first, so multi-million-triangle scans still work; a note above the model tells you when that has happened. You can also cap it yourself with Trim on load.
Why do the ears and fingers disappear first?
On most reducers they do, and this one works hard to stop it. The standard algorithm scores an edge by how much surface AREA would move, so a thin ear built from small triangles is cheap to delete even though it is the part that makes the model recognisable. Here the score is divided by local area so small features stop being bargains, the Protect detail dial adds weight where the surface turns sharply, and pinning a point locks it outright at any triangle count.
Does reducing an STL make it lopsided?
Not here, if you leave Lock symmetry on. It happens by default in most tools because the collapse order is one global priority queue: identical scores on the left and right break the tie arbitrarily and the sides drift apart. Lock symmetry pairs every vertex with its reflection and collapses each pair as a single step, taking measured mismatch to zero. Where the two halves are tessellated differently, Even up halves or Copy A to B does the job instead.
Will the reduced file still be watertight?
If it went in watertight, yes - a closed mesh stays closed all the way down to four triangles, because collapses that would flip a triangle inside-out or pinch the surface are refused. Cutting a model in half also caps the cut, so each half is a solid. A file that arrives damaged is repaired on load as far as it safely can be, but heavy damage does carry through.
How does the melt actually work?
It is quadric edge-collapse decimation, the same method MeshLab and Blender use: every edge gets an error score for how much the surface would change if its two endpoints merged, and the cheapest edge collapses first. This tool computes the full collapse order once, so any triangle count - up or down - rebuilds in milliseconds.
Is my STL file uploaded anywhere?
No. Parsing, repair, reduction, video and export all run inside your browser tab; the file never leaves your device. There is no signup and no queue, and closing the tab discards everything.
Sources
  • 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.

How Many? Real answers, live tools and games

howmany.pro answers the questions that start with “how many” — researched, sourced and dated — and pairs them with free interactive tools you can use right in your browser: an invoice generator, percentage and tile calculators, a guitar tuner, a metronome, daily trivia and more.

Free tools

Invoice Generator · Percentage Calculator · Tile Calculator · Guitar Tuner · Metronome · Exam Timer · Trivium Daily Quiz · Cursor Playground

Popular answers

Squares on a chessboard · Pokémon types · Bones in the human body · Galaxies in the universe · Moons of Saturn · Piano keys · Types of cheese · Languages in the world · Countries in the world · Continents · Stars in the Milky Way · Neurons in the brain · Adult teeth · Spider legs · Shark teeth · Bee eyes · Heart chambers · Pyramids in Egypt · Zeros in a billion · Cards in a standard deck · Cards in a tarot deck · Scrabble tiles · Notes in an octave · Types of pasta · Dominoes in a set

About · Contact · Privacy Policy · Terms