STL Mesh

STL CHECKER · FREE · NO UPLOAD

STL Repair — Find Out Why Your Model Won't Slice

Drop an .stl to check watertightness, holes, non-manifold edges and degenerate triangles — then run a basic repair. Nothing uploaded.

The model preview appears here after analysis.

Health report

Drop an STL to see whether it is watertight, how many boundary and non-manifold edges it has, and whether duplicate vertices or degenerate triangles are inflating the file.

Basic repair welds duplicate vertices, removes degenerate triangles and recomputes normals. It does not fill holes — a slicer's repair or dedicated mesh tools handle that.

How to read the health report

HOW MANY TRIANGLES SHARE THIS EDGE?Manifold edgeexactly 2 — every edge, everywhere✓ printableBoundary edgeonly 1 — the rim of a holenothing onthis side⚠ breaks slicingNon-manifold edge3 or more — inside is ambiguous⚠ breaks slicing
Watertight means every edge is the left case. The checker counts the other two for you.
  • Watertight = printable. Every edge belongs to exactly two triangles, so the mesh encloses a volume and the slicer knows exactly where material goes.
  • Boundary edges are the perimeter of holes. A few dozen usually means one small gap; thousands mean whole surfaces are missing (common with meshes exported from CAD surfaces or ripped from games).
  • Non-manifold edges are shared by three or more triangles — internal walls or self-intersections. Slicers disagree on how to interpret them, so results vary by tool.
  • Degenerate triangles have zero area. They add nothing to the shape and can crash stricter importers; the basic repair simply removes them.
  • Duplicate vertices are an STL-format artifact, not a defect in your model — welding them shrinks the data and makes the topology analysis meaningful.

Model looks fine but imports at the wrong size? That's a units problem, not damage — see the STL format guide. Need to convert instead of repair? Start at the viewer.

The honest limits of automatic repair

Welding vertices, dropping degenerate triangles and recomputing normals are safe: they never change the shape you modeled. Hole filling is different — the software has to invent geometry that was never there, and a bad guess seals a vent, bridges a gap or caps the wrong opening. That's why this tool reports holes precisely but doesn't auto-fill them. When a fill is what you need, run your slicer's repair (PrusaSlicer, Bambu Studio and Cura all ship one) and inspect the result before printing.

FAQ

Is my STL uploaded to repair it?+

No. The checker parses the STL, builds an edge map and runs the repair with JavaScript in this tab. There is no upload endpoint on this site — analysis and repair keep working with the network disconnected.

What does "watertight" mean and why do slicers care?+

A watertight (manifold) mesh encloses a volume completely: every edge is shared by exactly two triangles. Slicers compute where material goes by slicing that volume; a hole or a non-manifold edge makes "inside" ambiguous, which causes missing walls, phantom infill or failed slices.

What exactly does the basic repair fix?+

Three things: duplicate vertices are welded (STL stores every triangle separately, so a cube's corner exists 3+ times), zero-area and collapsed triangles are removed, and vertex normals are recomputed. These fix shading artifacts, shrink file size and clean up topology noise.

Can this tool fill holes in my model?+

Not yet — hole filling changes geometry and doing it badly ruins a model, so this tool only reports holes (as boundary-edge counts) honestly. For filling, use your slicer's built-in repair (PrusaSlicer and Bambu Studio both have one) or a dedicated tool like Meshmixer. An automatic hole-filling option here is planned.

My slicer says the model has errors but prints fine. Should I care?+

Sometimes. Modern slicers auto-repair silently, so small defects often print fine. Problems appear when defects are large (missing surfaces), when auto-repair guesses wrong (sealed vents, fused gaps), or when you export for someone else whose toolchain is stricter. A clean mesh removes the guesswork.

Why does my STL have so many duplicate vertices?+

That is the STL format itself: it stores raw triangles with no shared-vertex list, so every vertex is written once per triangle that touches it. Welding restores the shared topology — same shape, cleaner data, and it is what makes the edge analysis meaningful.

🧊
Written by Casey Marlin · Last updated
This update: edge analysis covered by scripts/test-repair.mjs