100% local processing — your files never leave your computer

Make STL Watertight

Close holes, fix boundary gaps, and turn an STL file into a strictly watertight mesh — verified by re-parsing the actual repaired output, not just assumed from the repair steps.

Your STL stays on this device. MeshWrench repairs it locally in your browser.

Binary or ASCII STL, up to 150 MB. This limit protects your browser from freezing — it isn't a Pro restriction.

Waiting for a file

Interactive 3D preview of the original and repaired model, with issue overlays. Drag to rotate, scroll to zoom.

Issue overlays
Repair mode
Custom operations

Steps to a watertight STL

  1. Select your STL file — MeshWrench analyzes it locally and shows every open edge and boundary loop it finds.
  2. Review the plan: which loops are eligible for automatic filling, and why any aren't.
  3. Run the repair, then check the before/after comparison — boundary edges should read zero.
  4. Download the watertight STL, plus a JSON report documenting exactly what closed.

Why STL files aren't watertight

How boundary loops are classified

Every boundary edge is grouped into a connected component and classified precisely: a closed simple loop (a genuine, fillable hole candidate), an open chain, a branched junction, or a non-simple shape. Only closed simple loops that also pass explicit size, perimeter, area, planarity and self-intersection checks are triangulated and patched in — using the same proven polygon triangulator MeshWrench's OBJ and PLY converters already rely on, never unconditional fan triangulation that can corrupt a concave hole's shape.

Limitations

Frequently asked questions

What does "watertight" actually require?

Zero boundary (open) edges, zero non-manifold edges, zero winding conflicts, zero duplicate faces, and a completed self-intersection check that finds none — the same strict, disclosed policy MeshWrench's STL Checker uses to verify the result.

Will this close every hole in my file?

Only simple, closed boundary loops that pass size, flatness and self-intersection safety checks are filled automatically. A hole with a genuinely non-simple or branched boundary is reported, not forced closed — closing it incorrectly could distort your model.

Do I need to upload my file to make it watertight?

No. Every step — analysis, hole detection, triangulation, and verification — happens locally in a Web Worker in your browser. Nothing is ever sent anywhere.

How is the result verified as actually watertight?

The repaired geometry is serialized to a real binary STL, that exact file is re-parsed with MeshWrench's own STL parser, and the full diagnostics pipeline runs on it again. "Fully repaired" only appears when that verification pass itself comes back clean.

What if my file has small gaps rather than a real hole?

That's usually a seam — two edges that should meet but are a tiny distance apart. Standard mode's tolerance-based vertex welding (with the exact tolerance always shown in model units) closes these before hole-filling runs.