STL Repair for 3D Printing

Find what your slicer will choke on, fix it, and download a watertight model.

Runs entirely in your browser

Loading the tool…

Drag to orbit · scroll to zoom · shift-drag to pan

Model
View
Shading
Show

Check Original Repaired Highlight
  • —Triangles
  • —Size, X × Y × Z
  • —Volume
  • —Surface area

Repair

Check settings

A model that looks fine on screen can still fail to slice. Scans, sculpts, kitbashes, AI generated models and files exported from game engines often have holes, edges shared by three faces, faces wound the wrong way, copies of faces lying on top of each other, and specks of debris floating off to the side. A slicer needs a closed, watertight surface to know what is inside, and each of those breaks it: layers come out with gaps, walls go missing, or the file is refused.

This page runs the checks Blender's 3D Print Toolbox runs, and the repairs of its Make Manifold, in the tab. Open a file and every problem is counted and highlighted on the model; press Repair and it merges what should be joined, fixes zero-area faces, removes duplicates and debris, pulls apart edges and vertices where separate pieces meet, fills the holes, and turns every face to point outward, with a cavity inside a part left facing in as it should. The original and the repair sit side by side in the list, and you can flip between them on the model.

It also finds walls thinner than your nozzle can print. Overhangs are left to your slicer, since which faces need supports depends on how the part is turned on the bed, and that is decided there. Faces that cut through each other are found and shown but not changed, since merging overlapping solids is a boolean union, a job for a modelling program. The repaired model downloads as STL, 3MF for PrusaSlicer, Bambu Studio and Cura, OBJ or GLB. The file never leaves the page, which is served with a header that stops it opening a connection to anywhere.

How to use it

  1. Open an STL, OBJ or GLB file, or look at the broken sample that is already loaded.
  2. Read the list: every problem is counted, and ticked ones are highlighted on the model.
  3. Press Repair, then compare the Original and Repaired columns and views.
  4. Pick STL or 3MF and download the repaired model for your slicer.

Questions

What does non-manifold mean?

A manifold surface is one that could be the skin of a real object: every edge has exactly two faces, one on each side, and around every vertex the faces form a single fan. An edge with three faces, like a fin sticking out of a wall or two boxes touching along an edge, or a vertex where two cones meet tip to tip, is non-manifold. A slicer cannot tell which side of such a place is inside, so it guesses, and often guesses wrong.

What does the repair change, and what does it leave alone?

It changes the mesh, never the shape: vertices that should be one are merged, faces with no area and exact duplicates are removed, pieces that only touch are separated, holes are closed with the smallest surface that fits, faces are turned to face out, and debris below the size you set is deleted. It does not smooth, remesh, thicken walls or move anything that was already right, so a clean model comes back unchanged.

Why are self-intersections not fixed?

Two parts pushed into each other, like a kitbashed arm through a body, need a boolean union to become one surface: working out where every face crosses every other and keeping only the outside. That is a different and much heavier job than this repair, and most slicers already print overlapping closed parts as their outer shell. They are listed and highlighted so you can decide; if the slicer complains, union them in Blender, Meshmixer or your CAD program.

Is it the same as Blender's 3D Print Toolbox?

It runs the same checks, counted the same way where Blender says how: non-manifold edges and vertices, intersecting faces, zero-area faces, thin walls and loose parts. Blender's overhang check is left out, because overhangs depend on how the part is placed on the bed, which your slicer decides and can change. The repair covers what Make Manifold does (merge, fix degenerate faces, fill holes, recalculate normals) plus separating pieces that only touch and removing duplicate faces. You do not need Blender installed, and it runs on any computer with a browser.

Which format should I download?

3MF, if your slicer takes it: PrusaSlicer, Bambu Studio, OrcaSlicer and Cura all do, and it keeps units and the exact mesh. STL, if you need it for an older tool or a print service. An STL stores each triangle on its own, so two pieces that only touch at an edge are joined again when it is read; 3MF, OBJ and GLB keep them apart.

Why is my model inside out?

The order of a face's corners says which way it faces, and some exporters and scripts write them backwards for a whole part. The model looks fine in a viewer that draws both sides, but its volume comes out negative and a slicer treats the inside as outside. The check compares each closed part's volume with how deeply it sits inside other parts, so a hollow inside a solid is expected to face inward and is left that way.

What wall thickness should I check for?

At least your nozzle width: 0.4 mm for most FDM printers, and about twice that for walls you want solid, which is where the default of 0.8 comes from. Resin printers go down to about 0.3 mm. Thin walls are not repaired, since thickening them changes the shape; they are shown so you know where the print may struggle.

Why is there no overhang check?

Which faces overhang depends on which way up the part sits on the bed, and that is chosen in the slicer, often by the slicer itself when it lays a part flat or orients it for fewer supports. A check here would be answering for a position the print may never be in. Your slicer's support preview shows overhangs for the orientation you actually print.

Is my model uploaded?

No. It is read, checked and repaired inside this tab by WebAssembly, in a background worker so the page stays responsive. There is no server doing the work, and the page is not allowed to open a network connection at all.

Your data stays on your device

Everything above runs inside your browser as WebAssembly compiled from Rust. Nothing you type is uploaded, logged or stored on a server. You can load this page once, go offline, and it still works.

This page makes no requests at all, to anywhere. That is not a promise in the copy: it is a Content-Security-Policy header your browser enforces, and connect-src on it is none. Open the network tab and watch nothing happen.