Mesh repair/Topology

Mesh topology and manifold check (local)

Check manifold and watertight topology locally with half-edge traversal, vertex-fan and self-intersection analysis. The Worker parses STL, OBJ, PLY, 3MF, GLB, or a self-contained glTF and reports shells, boundary loops, Euler characteristic, genus, non-manifold edges, bow-tie vertices and intersecting triangle pairs without uploading the file.

ReadyNo uploadWorkerSTL · OBJ · PLY · 3MF · GLB · glTF

Topology report

No upload

Topology report

Half-edge traversal, edge incidence, a vertex-fan check, and a triangle-pair self-intersection test up to 200,000 triangles. Boundary, hole filling and signed volume are separate checks.

Drop a mesh to inspect

STL, OBJ, PLY, 3MF, GLB, or a self-contained glTF. The Worker checks half-edge shells, winding, vertex fans and triangle self-intersections.

Drop a mesh to inspect

STL, OBJ, PLY, 3MF, GLB, or a self-contained glTF. The Worker checks half-edge shells, winding, vertex fans and triangle self-intersections.

Choose a file

Max file size: 500 MB · No upload

No upload · File.slice() / ArrayBuffer → Worker → edge topology report.

How it works

  1. 1

    Drop a mesh file in any supported format.

  2. 2

    The Worker parses the file and builds a half-edge incidence graph with twins for shared edges.

  3. 3

    Boundary edges are counted once, non-manifold edges more than twice, and winding consistency is checked.

  4. 4

    Half-edge traversal groups the surface into edge-connected shells, counts boundary loops and vertex fans, and computes the Euler characteristic and genus.

  5. 5

    If the mesh is under the self-intersection cap, a triangle BVH tests non-adjacent pairs, including coplanar overlaps.

  6. 6

    Read the topology report locally. No file is uploaded.

What the numbers mean

Manifold

A manifold edge belongs to exactly two triangles. This tool checks half-edge incidence, vertex fans, shells, boundary loops, Euler characteristic and genus, plus triangle-pair self-intersections. Self-intersection repair is separate work.

Watertight

Watertight means no boundary edges and no non-manifold edges. A closed mesh can still have self-intersections or thin walls.

Check scope

Half-edge analysis is capped at 2,000,000 triangles and self-intersection analysis at 200,000 triangles. ASCII STL is welded before the check so its triangle soup has meaningful incidence.

Vertex fans

A bow-tie vertex has two or more surface fans connected only at one point. Every incident edge can still have two faces, so an edge-only check misses it. Half-edge fan traversal counts these vertices even when non-manifold edges are present.

shells

A shell is one edge-connected triangle component. A closed shell has no boundary half-edges; an open shell is bordered by boundary loops. Euler characteristic is V − E + F. Genus is derived as (2 − b − χ) / 2 and shown only when every shell is consistently oriented, manifold at edges and vertices, free of degenerate triangles, and has unambiguous boundary loops. Multiple shells report the summed genus.

Self-intersections

The self-intersection test compares non-adjacent triangle pairs under a BVH and reports both intersecting pairs and the number of unique triangles involved. It detects coplanar overlaps; pairs that share a vertex or a coincident position are treated as adjacent contacts. This is detection, not repair.

Printing notes

  • A watertight report is a topology signal, not a slicing guarantee; check thin walls and overhangs separately.
  • Non-manifold edges often need a repair operation before slicing.
  • Self-intersections can create ambiguous inside/outside regions; fix them in CAD or with a boolean operation before printing.
  • Use clean-mesh to remove degenerate and duplicate triangles, then re-run this check.
  • A genus of 0 with one shell usually means a simple solid; holes through the part add handles and raise the genus.

Questions

References

  • · ISO/ASTM 52900
  • · Mesh topology: boundary, non-manifold edges and self-intersections