Free tools / STL checker

STL file checker.

Inspect an STL before slicing. Measure triangles, welded vertices, millimetre dimensions, surface area and signed volume, and find open edges, non-manifold edges, inconsistent winding and tiny triangles.

Specification

What this tool does

Reads the STL locally, welds identical corners, builds an edge table and reports geometry statistics with a watertight and winding verdict. It measures; it does not repair, thicken or re-mesh the file.

Inputs
Binary or ASCII STL
Outputs
On-page report plus a downloadable JSON report; the model itself is not modified
Controls
None; every metric is computed from the file
Limits
Model 64 MiB per file; expanded geometry is bounded at 1,000,000 vertices
Up to 2,000,000 triangles
Welding is exact: corners that differ by rounding count as separate vertices and boundary edges
Volume is reliable only for a closed, consistently wound mesh

Privacy: Files are parsed, previewed and written back inside your browser. Nothing is uploaded, no account is needed and no generation credits are spent.

Maintained by Bake3D · Updated

Know what is in the STL before you slice it

An STL file is a bag of triangles. Nothing in the format says whether those triangles form a closed solid, face outward, share their edges properly or describe a sensible size. Slicers make assumptions to fill the gaps, and those assumptions are where missing walls, phantom holes and hours of wasted filament come from. This checker reads the file locally, welds the repeated corners, builds an edge table and reports what the geometry actually is.

It is an inspection tool, not a repair tool. It will tell you that a mesh has 14 boundary edges and a negative volume; it will not close the holes or flip the faces. Use the report to decide whether to fix the source, run a repair in a mesh tool, or print as is.

Read the report

  1. Choose a binary or ASCII .stl file up to 64 MiB, or use the open sample wedge.
  2. Read the rows beside the preview. Green values pass, amber values deserve a look, red values usually need fixing.
  3. Download the JSON report if you want to keep the numbers with the file or compare before and after a repair.

Triangles and vertices count the faces and the distinct welded corners. Shells counts connected groups of triangles; a single part should usually report one shell, and unexpected extra shells are often stray fragments. Size is the axis-aligned bounding box in millimetres, the unit STL consumers assume. Surface is the summed triangle area in mm².

Volume uses the divergence theorem: every triangle contributes a signed tetrahedron with the origin, and the contributions cancel correctly only when the surface is closed and consistently oriented. For an open or inconsistently wound mesh the number is shown but marked unreliable. For a closed mesh the volume also tells you how much material a solid print needs before infill settings.

Watertight is true when every edge is shared by exactly two triangles. Edges used once are boundary edges: holes, missing faces or unwelded seams. Non-manifold edges are used by three or more triangles, which happens where a fin or internal wall meets a surface. Winding compares the direction neighbouring triangles traverse their shared edge; flipped edges mean some faces point the wrong way. A closed, consistent mesh with negative volume is reported as inside out. Stored normals compares the facet normal written in the file with the one implied by the corner order; disagreement is a sign of a careless exporter and can confuse some tools. Degenerate triangles have zero area; tiny triangles are smaller than 0.01 × 0.01 mm and often come from over-tessellated CAD exports or booleans.

Interpret what you find

A few boundary edges around a visible gap usually mean a face was lost. Many boundary edges on a model that looks closed often mean the exporter wrote corners with slightly different rounding, so this exact-match welding could not join them. Slicers with tolerant welding may still print such a file, but the same seams can break boolean and offset operations later.

Non-manifold edges are common in models built from overlapping shells rather than a single solid. Some slicers handle them; others produce missing layers. Inside-out meshes print as a hollow skin or fail entirely, and a single flipped face can leave a pinhole. Thousands of tiny or degenerate triangles slow slicing and occasionally cause numerical trouble, though they rarely change the printed shape.

None of these checks measure wall thickness, overhangs or the fit of the part to a build volume. They also cannot judge whether the model is the right object. Treat a clean report as a necessary condition, not a printability certificate, and still inspect the sliced layers.

Fix problems in the right place

Repair at the source whenever you can: close faces in the modelling application, merge vertices by distance, recalculate normals, then re-export. For files you did not author, mesh-repair features in slicers and dedicated tools can close small holes and unify orientation. After any repair, run the checker again and compare the two JSON reports.

If the STL came from one of the free converters here, check the original format first. The GLB to STL and OBJ to STL tools reproduce the source geometry faithfully, which means they also reproduce its defects. Reliefs from the image-to-STL tool are generated closed and pass this check by construction; generated character meshes from the studio should be checked like any other model before printing.

Common questions

Why does a model that looks closed report boundary edges?

The corners along a seam differ by rounding, so exact welding treats them as separate vertices. The shape is visually closed but topologically open. Merge vertices by a small distance in a modelling tool and re-export, or rely on a slicer with tolerant welding if the model only needs to print.

Is the volume correct for my model?

Only when the report says the mesh is watertight with consistent winding. An open mesh has no well-defined volume; the number shown is the raw signed sum and is marked unreliable. A negative value on a closed mesh means the faces point inward.

Does the checker change or upload my file?

No. The STL is parsed in your browser and never leaves your machine. The only download is the JSON report with the numbers you see on the page. The preview is the original geometry rotated upright for viewing.

How are these measurements tested?

The measurement code has unit tests against analytic solids: a unit cube reports 12 triangles, 8 vertices, 18 edges, area 6 and volume 1; a right tetrahedron reports volume 1/6; an open box reports four boundary edges and is not watertight; an inside-out cube reports volume −1; a cube with one flipped face reports three inconsistent edges; a fin attached to a cube reports one non-manifold edge; separate boxes report two shells. The browser path is tested by checking the sample wedge (closed, 4,000 mm³) and the open sample (three boundary edges). These verify the mathematics on defined fixtures, not the printability of a specific file. The STL format description explains the binary and ASCII layouts the loader reads.

Other free tools

Need to generate a textured mesh, add a rig and create animation? Open the studio with 60 free credits.