Repair an STL that will not slice
Drop in the file your slicer complained about. You will see what is wrong with it, watch it being fixed, and get the repaired file back in the same format it came in. The file never leaves this tab.
The repair runs on your own machine. The file is never uploaded, there is no account, and there is no size limit beyond what your computer can hold.
Why your slicer refuses the file
A slicer does not print a surface. It fills a volume: it works out, for every layer, which parts of the plate are inside the object and which are outside. That question only has an answer if the surface is completely closed. One missing triangle and there is a gap between inside and outside, and the slicer has to guess — which is why the symptom is usually not an error message but a print that comes out hollow, or with a wall missing, or with layers that stop halfway across.
Three things break that closure, and they are the three this tool finds. A **hole** is a ring of edges with a face on one side only. A **non-manifold edge** is a line where three or more faces meet, so there is no single answer to which side is inside. A **pinched point** is where two separate pieces of surface touch at one vertex — it looks solid on screen and encloses nothing at all.
None of them are visible in a 3D view, which is the frustrating part. A model with a hundred holes renders exactly like a model with none.
What the repair actually does, in order
First it stitches. Points that sit closer together than the tolerance become one point. This is the fix for the commonest defect of all, and it is one most people never diagnose: a CAD program that tessellates two neighbouring surfaces separately writes their shared edge out twice, at coordinates that differ in the seventh decimal place. The model looks perfect and is split along every panel edge.
Then it separates the pinches. Every edge with three or more faces, and every point where two cones of surface meet, is pulled apart onto its own copy of the vertices. Nothing moves — the copies sit exactly where the original was — but the faces around each sheet stop sharing an identity with the faces around the other. This is the step that turns a problem with no correct answer into one that has several: a non-manifold edge becomes a set of ordinary open edges, and an open edge is just a hole.
Then it agrees on a direction, so that neighbouring triangles walk their shared edge in opposite ways and the whole surface has a consistent inside and outside. Then it covers the holes. Each ring of open edges gets the triangulation that adds the least area, which for a crack, a missing facet or an open tube end is the surface that was meant to be there.
Then it checks the direction again. Now that the shells are closed the enclosed volume has a sign, and any shell built inside out is turned round as a whole — which is how a model that renders black in some viewers comes back rendering normally.
You can see whether it worked
The two panels under the 3D view are the same report run twice: once on the file as it arrived, once on the model as it now stands. If the left says three holes and the right says none, the repair worked. If the right still says something, it says what.
The most useful single number is the volume in the measurements below. A volume can only be computed for a closed surface, so a figure appearing where there was a dash is the proof that the model now encloses something. If you know roughly how much material the part should use, it is also a sanity check on the repair: a patch in the wrong place shows up as a volume that is obviously wrong.
When the repair cannot help
A hole that is most of a missing side gets covered, but it gets covered flat. Nothing working from the edges of a gap can know what the shape inside it was supposed to be. The result is closed and printable; it is not the model you would have had if the side had been exported properly. If a whole face is missing, go back to whatever wrote the file.
Walls that pass through each other are not detected, and this tool does not claim they are. Finding them means testing every triangle against every other one, which is not something a browser can do on a model of any size. Every edge in a self-intersecting model has exactly two faces, so it passes every check here and still confuses some slicers. If a model reports clean and still slices strangely, this is the usual reason.
A flat triangle — three points in a line, enclosing no area — is left alone deliberately. It is ugly and it is not a fault: it keeps the surface closed, and removing one opens a hole whose only sensible patch is the triangle you just removed. Where such a triangle has a genuinely short edge, the stitch collapses it at the first step.
It works on more than STL
The page is called repair STL because that is what people arrive having typed, but nothing in the repair is about STL. It works on the mesh, so 3MF, OBJ, PLY, OFF, GLB, COLLADA and FBX all go through the same steps. The box under the 3D view offers to give it back in any format we can write, and it starts on the one you gave us.
If you are repairing a file to print it, 3MF is worth considering over STL on the way out. It is smaller, it records its own units so a slicer cannot get the scale wrong, and every current slicer reads it.
Questions
- Is my file uploaded anywhere?
- No. The file is read by your own browser and the repair runs on your own machine. Nothing is sent to a server, there is no account, and there is no size limit beyond what your computer can hold.
- The repair says it closed the holes but my slicer still complains.
- The usual cause is walls that pass through each other, which no check on this page looks for — see the section above on what the repair cannot do. The second most common cause is that your slicer is objecting to something that is not a defect at all, such as the model being several separate pieces.
- What is the gap setting for?
- It is how far apart two points can be and still be treated as the same point. Leave it at zero unless a crack survives the repair. If one does, raise it a little at a time: it is a share of the model’s overall size, and the panel shows you what that comes to in millimetres for your file.
- Will the repair change the shape of my model?
- Only where it had to. Stitching moves points by less than the gap setting. Separating a pinch moves nothing at all. Covering a hole adds surface where there was none. A model that was already sound comes out with exactly the triangle count and volume it went in with, and the report says that nothing needed doing.
- Why does my model come back in more pieces than it went in?
- Because it was already in that many pieces and one point was holding them together. Separating a pinched point is what reveals it. If the extra pieces are stray scraps, switch on “throw away every piece except the biggest”.
- Can I repair and convert at the same time?
- Yes. Choose a different format in the box under the 3D view and you get the repaired model in that format. The repair happens first, so the file you download is the fixed one.
Convert it while you are here
Where to go next
Other tools for the same file
- Reduce the size of an STL fileFewer triangles, the same shape, a much smaller file
- Check whether an STL is ready to printFind out what is wrong with a model before you print it
- Gridfinity generatorBins and baseplates, any size, built in the browser
- 3D printing cost calculatorThe real cost of a print, and whether to print it or order it
- Turn text into an STLType a word and print it, without drawing anything