100% local processing — your files never leave your computer

STL Validator

Validate an STL file's mesh topology against a precise, disclosed rule set — manifold errors, boundary gaps, winding conflicts, duplicate faces and self-intersections — entirely on your device.

Your STL stays on this device. MeshWrench validates 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 with issue overlays. Drag to rotate, scroll to zoom.

Show/hide
Boundary edges
Non-manifold edges
Winding conflicts
Degenerate triangles
Duplicate faces
Self-intersections

What this validator checks

Each rule below is validated independently and reported with an exact count — never a single pass/fail score. An STL file is valid (watertight) only when every rule passes: zero boundary edges, zero non-manifold edges, zero winding conflicts, zero duplicate faces, and a completed self-intersection scan that finds none.

Validation error reference

"Has boundary edges" / open mesh error
Real gaps in the surface exist — the closed-loop count usually corresponds to the number of holes.
"Has non-manifold edges"
At least one edge is shared by three or more triangles — an ambiguous, non-manifold surface at that edge.
"Has winding conflicts"
Two adjacent triangles disagree on winding direction, even though the edge itself is manifold.
"Has duplicate faces"
At least one triangle exactly repeats another's three vertices, same or reversed winding.
"Self-intersections found"
At least one pair of triangles genuinely overlaps in 3D space.
"Self-intersections not checked"
The model was too complex to fully validate within this tool's safety limits — reported honestly, never as a pass.

How validation results are computed

Validation starts from exact-identity vertex matching (bit-exact float32 comparison, never a distance tolerance — a tolerance would change the model's real topology and could mask a genuine gap). From there, an edge-incidence table classifies every edge, boundary edges are grouped into components, triangles are grouped into connected shells, each shell's orientation is propagated and its signed volume computed when meaningful, duplicate faces are grouped by canonical vertex identity, and self-intersections are found via a spatial-grid broad phase plus a robust triangle-triangle test.

Validation limitations

After validation: repairing errors

This validator identifies problems only. STL Repair — a planned, separate MeshWrench tool — will fix what's found here (holes, inverted normals, non-manifold geometry) locally in your browser, once it ships.

Frequently asked questions

Does validating an STL file here upload it anywhere?

No. Validation runs entirely inside your browser, in a background Web Worker. Your file's bytes never cross the network — open your browser's dev tools and watch the network tab while a file loads to confirm this yourself.

What does "invalid topology" mean?

It means the file has no usable surface to validate at all — for example, every triangle is degenerate (zero-area or has a repeated vertex). This is distinct from "not watertight," which means real geometry exists but fails one or more strict checks.

Is this a manifold checker?

Yes — checking for non-manifold edges (an edge shared by more than two triangles) is one of the checks this validator runs, alongside boundary-edge, winding-conflict, duplicate-face, orientation and self-intersection validation.

Can I get a machine-readable validation result?

Yes. Download the full JSON validation report — it includes the verdict, every count, per-shell detail, and which checks completed versus were skipped due to a safety limit.

Will this validator modify or fix my file?

No. This tool only reports errors — it never welds, repairs, reorients or re-exports your mesh. A separate repair tool is planned for that.