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.
- Boundary edges
- Non-manifold edges
- Winding conflicts
- Degenerate triangles
- Duplicate faces
- Self-intersections
Validated locally — nothing was uploaded.
- Not checked Degenerate triangles
Triangles with a repeated vertex, or zero/near-zero area.
Excluded from every topology check below; can cause rendering or slicing artifacts.
Repair: coming in STL Repair - Not checked Duplicate faces
Two or more triangles sharing the exact same 3 vertices, same or reversed winding.
Can cause flickering (z-fighting) in some renderers and slicers.
Repair: coming in STL Repair - Not checked Boundary / open edges
Edges used by only one triangle — an opening in the surface.
The model isn't a closed solid; most slicers will warn or auto-repair.
Repair: coming in STL Repair - Not checked Non-manifold edges
Edges shared by more than two triangles.
Ambiguous "inside vs. outside" at that edge — unpredictable slicing behavior.
Repair: coming in STL Repair - Not checked Inconsistent winding
Adjacent triangles that disagree on winding direction across a shared edge.
Can cause inside-out shading and confuse a slicer's surface-direction test.
Repair: coming in STL Repair - Not checked Inward-oriented shells
A closed, consistently-wound shell whose normals point inward.
Still topologically watertight, but may render or slice as if inverted.
Repair: coming in STL Repair - Not checked Disconnected shells
The model is made of more than one separate, unconnected piece.
Often intentional (multi-part models) — verify it matches your expectation.
Repair: coming in STL Repair - Not checked Self-intersections
Triangles that geometrically cross through each other.
Can cause unpredictable slicing behavior at the overlapping region.
Repair: coming in STL Repair
- File size
- Triangles
- Valid triangles
- Degenerate triangles
- Source vertex slots
- Unique vertex positions
- Duplicate coordinate references
- Surface area
- Enclosed volume
Boundary breakdown
- Total boundary edges
- Closed loops
- Open chains
- Branched components
- Non-simple components
Shells
Analysis timing
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.
- Manifold validation — every edge must be shared by exactly two triangles.
- Boundary validation — open edges are grouped into closed loops, open chains, branches or non-simple shapes.
- Winding validation — adjacent triangles must agree on traversal direction across a shared edge.
- Duplicate-face validation — no triangle may exactly repeat another's three vertices.
- Orientation validation — closed, consistently-wound shells are checked for inward (inverted) orientation via signed volume.
- Self-intersection validation — no two triangles may geometrically cross, outside expected shared-edge adjacency.
- Degenerate-triangle detection — zero- and near-zero-area triangles are found and excluded from every rule above.
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
- This tool validates only — it never modifies, repairs or re-exports a file.
- A passing validation result does not certify printability; a failing one does not mean a file can't be sliced.
- Every check has a disclosed safety limit; a check that can't finish safely is reported as skipped, never as passed.
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.
Explore free tools