Why a mesh that looks fine still fails
A model can render perfectly and still be unusable. Slicers, boolean operations and simulation tools all need something stronger than "it looks right": they need the mesh to describe a closed, consistently-oriented solid. This analyser checks whether it does.
The checks, and what each one actually means
Non-manifold edges — an edge shared by three or more faces. Real surfaces do not do this; it usually means two shells were merged carelessly or an internal wall was left behind. Slicers either refuse the file or produce nonsense at that edge. This is the most serious finding.
Holes and boundary loops — edges belonging to only one face. A closed solid has none. Each boundary loop is one hole, and a mesh with holes has no defined inside, so a slicer cannot tell what to fill.
Degenerate triangles — faces with zero area, either because two vertices coincide or because all three are collinear. They carry no surface information, break normal calculation, and cause divide-by-zero errors in downstream code.
Duplicate faces — the same triangle stored twice. Doubles up surfaces, confuses inside/outside tests, and wastes space.
Inconsistent winding — adjacent faces that disagree about which way is out. Produces patches that render inside-out and makes volume calculation meaningless.
Disconnected shells — separate pieces of geometry with no shared vertices. Perfectly legitimate for a multi-part model, and a red flag for something that should be one solid.
Isolated vertices — points no triangle references. Harmless, but a sign of sloppy editing.
Self-intersections — triangles passing through each other. The mesh can be watertight and manifold and still be physically impossible. This check is optional because it is expensive; on large meshes it samples and says so.
Welding comes first
An STL file is unindexed triangle soup — every triangle carries its own three vertices, and neighbouring triangles do not know they are neighbours. Analyse it as-is and every edge looks like a boundary, giving a nonsense result.
The analyser therefore welds vertices by spatial hash before doing any topology work. That is why it can give meaningful answers about an STL at all, and it is why the tolerance matters: too tight and genuine neighbours stay separate, too loose and distinct detail collapses.
Watertight and manifold
These two headline results are what most people are really asking about. Watertight means no holes and no non-manifold edges — the mesh encloses a definite volume. Manifold means every edge is shared by exactly two faces. A model needs both before a slicer will treat it as a solid, and before a volume figure means anything.
Privacy
Analysis runs entirely in your browser. Nothing is uploaded.
Tiny Online Tools







