Open Decimify Online (free, no install) →
Decimify is an online mesh simplifier: it reduces the triangle count of a GLB or STL model inside your browser tab, with a slider you drag while watching the result. The file is parsed locally and the reduction runs as WebAssembly in your browser — nothing is uploaded. A free 3dshouse account is required to open the tool, and it covers every feature at every reduction level, with 3 exports per UTC day. Decimify Pro removes the daily limit.

Why the slider is instant
Most polygon reducers recompute the mesh every time you change the target, so comparing 40% against 60% means waiting twice. Decimify prepares your model once, while the progress bar runs. After that the slider costs nothing: every level between the original and the floor is already available, dragging is equally smooth in both directions, and you can scrub back and forth as often as you like without a single recompute.
Level 0 puts the original geometry back exactly, not an approximation of it.
UVs stay intact while the slider stays live
Decimify keeps UV mapping intact and stays fully real-time. The model is prepared once, when your selection loads; the slider then moves through every reduction level in both directions without recomputing anything, and level 0 puts the original back exactly.
Ordinary reducers usually fail at exactly this: once the reduction gets deep they tear texture seams and stretch the UVs, or they give up live scrubbing and make you run again for every level. Nothing is configured by hand to make that work. On load Decimify classifies every vertex on its own — Manifold (an ordinary surface point), Border (on an open edge), Seam (where the texture splits), Complex (where three or more texture pieces meet) or Locked (not allowed to move) — and the class decides which collapses are allowed. Texture seams are collapsed only where the seam stays compatible, so texture islands do not tear. Two settings, both on by default, add protection: Lock boundaries keeps open edges where they are, and Preserve creases keeps sharp edges sharp and refuses a collapse that would fold the surface into a new one. When per-corner UVs make deep reduction impossible with Maintain UV on, the app tells you so (see below).
Web reducers state this trade-off themselves. Meshy’s Polygon Reducer says its default Keep UVs mode can stall above the target on meshes split at every seam, and that its Hit target mode reaches the number “at the cost of possible stretching where two UV islands get joined.” Decimify draws the same line in one place — the Maintain UV switch below — but it classifies seams, borders and sharp edges first and keeps the slider live while it does.
What the reduction percentage actually means
The slider runs 0–100 and maps to keepRatio = 1 - level/100. Per sub-mesh, targetFaces = max(4, round(originalFaces × keepRatio)).
- It is a target triangle-count ratio, applied per sub-mesh — not a vertex count, and not a whole-scene budget. A scene of ten objects at 50% gives each object 50%, not a shared 50% pot.
- Sub-meshes with fewer than 4 faces are left alone.
- The panel shows the achieved result separately: Faces: current / original and Ratio: n%. Read the Ratio, not the slider — the two can diverge, and when they do the next section is almost always the reason.
Maintain UV: the setting that decides whether the slider moves at all
If you drag to 70% and the Ratio readout barely budges, this is the cause in nearly every case. A textured model whose UV is pinned per face — heavy upholstery exported out of SketchUp, plenty of 3D Warehouse furniture — carries an independent UV slot for every triangle at every shared vertex. With Maintain UV on, Decimify will not reduce across those vertices, so the face count barely moves. The app will say so: when slider reduction exceeds achieved reduction by more than 20 points it shows “Maintain UV is limiting reduction — try disabling it in Settings.”
The trade-off is a contract, not a preference:
- Maintain UV on — seamless. The output is texture-identical to the source. The price is that the slider can lock.
- Maintain UV off — best effort. The mesh reduces freely and the texture is re-mapped onto whatever geometry survives, so the pattern on each face still looks right and the mapping does not drift as you keep reducing.
Because every face keeps its own mapping (matching SketchUp’s own per-face projection semantics), the visible cost of turning it off is small seams between faces whose corners have drifted apart — the per-face pattern itself is preserved. In the browser app, toggling it rebuilds the session by itself; there is no need to pick the file again. And if a mesh genuinely needs both deep reduction and intact textures, the honest answer is that no decimator can give you that: the model has to be re-UV’d (Blender, Maya, RizomUV) so adjacent faces share UV slots, then re-imported.
The three settings, and when to touch each one
- Lock boundaries (on by default) — “Keep boundary vertices fixed during simplification”. It keeps open edges where they are, so the outline of the object does not pull in. Leave it on for anything with an open border: a scanned surface, a cut-away, a single-sided panel. Turn it off only when you accept the silhouette pulling in.
- Preserve creases (on by default) — “Protect sharp edges (≥ 90° angle) from being smoothed”. Sharp folds stay sharp: a reduction that would round one off is refused. Keep it on for hard-surface work (machined parts, furniture, architecture). Turning it off buys extra reduction on organic scans, where there is no real crease to protect.
- Maintain UV (on by default) — see above. This is the one knob that changes what is even possible.
All three persist in localStorage, so they survive a reload. The Smooth angle option you may read about elsewhere is SketchUp-only: it governs which edges get softened on the way back into a SketchUp model, so it does not appear in the browser app.
Simplify a mesh online in four steps
- Open the app and sign in with your free 3dshouse account.
- Click Choose file and pick a
.glbor.stl— the picker accepts only those two extensions. The progress bar runs to 100% as the build slots finish; the slider is disabled until then, showing “Preparing simplification…”. - Drag the reduction slider and watch Faces and Ratio. Camera controls are printed over the viewer: left-click drag to rotate, right-click drag to pan, scroll to zoom.
- Under Export, click GLB or STL. What gets written is the current slider state. Each export spends the day’s free take-out.
One overlay worth understanding before you trust the numbers: the chip at the corner of the viewer prints the bounding box as W × D × H with no unit suffix, and the dropdown beside it is the unit. GLB and STL carry no length metadata, so loading a file resets that dropdown to metres — if the dimensions look off by a factor of a thousand, that dropdown is the fix, not the file.
Made the model with an AI generator? Reducing Meshy and Tripo models covers the GLB those tools hand you.
Formats: what goes in, what comes out
| Format | Materials | UVs | Notes |
|---|---|---|---|
| GLB (glTF) | Preserved | Preserved | Recommended. One file carrying geometry, materials and textures. Import and export (binary glTF). |
| STL | — | — | Geometry only — no UVs, no materials, no shared vertices. Import and export (binary STL). Best for 3D printing. |
Those two are the whole list: the file picker accepts .glb and .stl, and the exporters write binary glTF and binary STL. There is no USDZ export — it was removed from the codebase in April 2026, so any page still claiming it is out of date. For any other source format, convert to GLB first in Blender (File → Export → glTF Binary).
Compressed GLB files open, but the export is uncompressed. Files using Draco mesh compression, EXT_meshopt_compression or KTX2 textures are decoded in your browser on load (since September 2026). What comes out is a plain GLB: no compression extension, KTX2 textures written back as PNG. So the exported file can be larger on disk than the compressed original even with far fewer triangles — a 325 KB meshopt + KTX2 test file came out at about 2 MB. If download size matters, re-compress the result afterwards (for example with gltf-transform or Blender’s glTF exporter).
And the STL detail that explains wildly different results between two files that look the same: STL stores every triangle’s three corners independently, with no vertex sharing, so the mesh has to be welded before anything can be reduced. Decimify welds corners whose coordinates match exactly; corners that differ even in the last digit stay separate, and the mesh around them reduces far less. A clean STL out of the same exporter welds perfectly; an STL that has been through a lossy round trip may not.
What survives a reduction: multiple meshes, nodes and hierarchy; materials, including multi-material meshes; UVs, when Maintain UV is on; normals, which are recomputed as you drag. Vertex colours are not carried. The app raises what it had to skip rather than hiding it: “N texture(s) missing” and “Skipped N submesh(es) with non-finite coordinates”.
Browser app or SketchUp plugin?
Both surfaces render the same interface, from the same code, with only a handful of deliberate differences — so this is a question about where your model lives, not about features.
- Browser — a current browser with WebGL and WebAssembly, nothing to install, and the model comes off your disk as a GLB or STL. Best when the file is already an exported asset: a scan, a downloaded model, a game asset, something headed for a web viewer or a slicer.
- SketchUp — SketchUp 2022 or newer, installed as an
.rbzthrough Extension Manager. It reduces a group or component that is already in your model and commits the result back in place, so every instance of that component updates at once and the whole write is a singleEdit > Undo. That is the one thing the browser app cannot do: see the Decimify SketchUp polygon reducer for the extension side.
Which tool fixes which cause of a heavy model
“My model is heavy” has three different causes and they need three different tools. Reaching for the wrong one is the most common waste of an afternoon.
- Too many triangles — a photogrammetry scan, CAD tessellation, subdivided organics, 3D Warehouse furniture built at furniture-catalogue density. This is the only cause a decimator fixes, and it is what Decimify does: here in the browser for exported files, or inside SketchUp for geometry already in the model.
- Unused components, materials, styles and layers still stored in the file — that is file weight, not triangle count. Decimify does nothing for it; SketchUp’s own purge does. See how to purge unused SketchUp content.
- Stray edges, coplanar face litter, duplicate or reversed faces — a topology problem, not a density problem. That is a cleaner’s job: CleanUp³ for SketchUp.
Reducing triangles will not purge anything, and purging will not remove a single triangle. Check which one you actually have before you pick a tool.
Free and Pro, exactly
- Sign in with a free 3dshouse account when the tool opens. Whether the gate is on is a server switch the app asks for at startup, and an unreachable server keeps it on.
- Free is every feature at every reduction level. No watermark, no locked options, no reduction ceiling. The old 30% free cap is gone — it was replaced by a daily meter in September 2026, so treat any page still quoting it as stale.
- The meter counts take-outs: one export — or, in SketchUp, one commit — is one use. Three per UTC day, per account, resetting at the next UTC midnight. The server is the only counter, so the number is the same across every browser and machine you sign in on.
- From the first export the bottom bar shows how many free exports are left today. Spend them all and the next export is refused with “Free limit reached: 3 / 3 exports used today. Nothing was exported” plus the hours until they return.
- Pro = unlimited take-outs, one product for the browser app and the SketchUp plugin. No licence key to paste: Pro is an entitlement on your account, so the app picks it up without a restart.
- If 3dshouse is unreachable the metering fails open on purpose. An outage must not brick the tool.
Real limits worth knowing before you start
- There is no file-size limit and no triangle limit — the ceiling is the memory of the browser tab, which is also why there is no honest number to quote here. For scale, the sample models shipped with the app run from 3.3 MB to 16.7 MB.
- It is not offline. The engine runs locally and your geometry never leaves the machine, but the page itself and the sign-in check come from the network.
- Broken topology is not repaired. Decimify reduces a mesh, it does not heal one — a non-manifold mesh simply reduces less, so run a repair pass first if the mesh is broken.
- Some meshes with very heavy per-face UV pinning can still refuse to reduce even with Maintain UV off. There is no setting that forces them through; re-UV the model instead.
Typical uses
- Reducing a photogrammetry scan before 3D printing.
- Generating LODs for a Three.js or Babylon.js scene.
- Shaving file size off a glTF before uploading to Sketchfab or a model viewer.
- Hitting a polycount budget for a game asset without reopening Blender.
FAQ
Is there a free online STL simplifier?
Yes. Decimify Online reduces STL and GLB meshes with every feature and every reduction level available for free; a free 3dshouse account is required, and it allows 3 exports per UTC day.
How do I reduce the triangle count of an STL file?
Open the app, click Choose file and pick the STL, drag the reduction slider until the Ratio readout shows the triangle count you want, then export as STL. The slider is a target triangle ratio applied per sub-mesh, and the Faces readout shows current versus original.
Is there an online version, or do I have to install a plugin?
The browser app needs nothing installed — the engine is WebAssembly running in the page. The separate SketchUp plugin exists only because it can reduce geometry already inside a SketchUp model and commit it back in place.
Does it work on a Chromebook?
Yes. The only requirements are a current browser with WebAssembly and WebGL, so ChromeOS and Linux behave exactly like Windows and macOS. The SketchUp plugin, being a SketchUp extension, does not.
Why does the browser version say “Maintain UV is limiting reduction” and stop short of the slider?
The GLB carries a separate UV mapping for almost every face, and Maintain UV (on by default) refuses to merge faces in a way that would tear the texture. The hint shows when the result is more than 20 percentage points short of the slider. Open Settings and switch Maintain UV off to reduce further; the reduced mesh then comes out without its textures. An STL file has no UV, so it never shows this hint.
Why does the browser version say “A .skp file opens in SketchUp itself”?
The web app reads .glb and .stl files only. A .skp stays inside SketchUp: select the model there, open Extensions > Decimify and click Import Selection.
Why does it say “Decimify reads .glb and .stl files, not .obj”?
Only GLB and STL are opened. Export the model as GLB first; in Blender that is File > Export > glTF Binary. GLB files compressed with Draco, Meshopt or KTX2 textures open too.
What does “2 texture(s) missing” mean?
The GLB points at texture images that were not found. The model still loads, but those materials show without their image. Re-export it as a single .glb with the textures packed in, then load it again.
Why does a .glb fail to open with an error over the viewer?
One cause is a file that was cut short, such as an interrupted download or export, which reads like “unexpected end of file”. The error shows over the viewer with a Dismiss button: dismiss it, re-export or re-download the file and load it again.
What does “Skipped 1 submesh(es) with non-finite coordinates” mean?
Part of the model has vertex positions that are not valid numbers (NaN or infinity). Decimify skips those parts and reduces the rest. If a part is missing from the result, clean that part in the source model and export again.
Free: limited to 3 exports a day
Pro: unlimited, guaranteed to work, priority support

