3D · 13 tools · nothing uploads

Check a 3D model for 3D printing

Check whether a 3D model is watertight (every triangle edge shared by exactly two triangles, counted by position rather than by vertex index, since STL is a triangle soup with no shared indices at all) and report its volume, surface area, bounding box in millimetres and inches, and smallest observed edge as a rough minimum-feature estimate. Nothing is uploaded.

Input

Check a 3D model for 3D printing tests whether the mesh is watertight: every edge should touch exactly two triangles, matched by position since STL keeps no shared index. It also prints volume, surface area, a millimetre and inch bounding box, and the shortest edge as a floor on wall thickness. A model that fails returns a volume, marked approximate.

Questions

What does watertight mean here?

Every triangle edge in the mesh is shared by exactly two triangles, counted by the position of its endpoints rather than by shared vertex index, since a format like STL stores a triangle soup with no shared indices at all. A model that passes this test has no holes a slicer would have to guess how to fill.

What happens if my model is not watertight?

The verdict names how many open edges and how many non-manifold edges it found. Volume and surface area are still reported, with a note that a model with holes can produce a print that does not match the source geometry, so treat that volume figure as approximate.

What if the mesh is watertight but some faces point inward?

The tool reports that some edges are walked the same way by both of their triangles, meaning some faces have flipped normals, and it withholds the volume figure entirely rather than printing a number computed from a mix of correct and inverted faces, telling you to fix the normals before slicing.

What units does it assume?

The models own units are read as millimetres. The bounding box is printed both that way and converted to inches, so a model authored in centimetres or meters will report the wrong physical size unless you account for that yourself.

What is the minimum feature estimate?

The length of the single shortest edge found anywhere in the mesh, offered as a rough floor on wall thickness or fine detail. It is not a real thin-wall analysis, since a long thin sliver of geometry can still have a short edge without the surface being thin there.

Related 3D tools

1→1Convert 3D modelTurn an OBJ, STL, PLY, GLB, glTF, FBX, DAE, 3MF, 3DS or 40-odd other 3D formats into GLB, glTF, OBJ, STL, PLY or USDZ. Textures round-trip through glTF/GLB; OBJ, STL, PLY and USDZ output geometry only.Takes one file1→13D model mesh infoRead vertex/face/material counts and the bounding box out of an OBJ, STL, FBX, DAE or 40-odd other 3D formats, via assimp's import side, the wide side of the engine model-convert also uses.Takes one file1→1Inspect a glTF/GLB modelRun the Khronos glTF-validator over a glTF or GLB file and report every error, warning, info and hint it finds, alongside a resource summary (draw calls, vertex/triangle counts, materials, textures, animations). A model in another format is converted to GLB first, so the report describes that conversion's output rather than the original file's own bytes.Takes one file1→1Measure a 3D modelRead the bounding box, volume, surface area and triangle count out of a 3D model, per mesh and as a whole. Volume assumes consistent outward-facing triangle winding.Takes one file1→1Strip 3D model metadataRemove authoring metadata (generator string, copyright, node/mesh names, and any glTF "extras" fields) from a 3D model before sharing it. Converts through assimp's import side to glTF/GLB first, so the input can be any of the 40-odd formats assimp reads, then edits the resulting scene JSON directly.Takes one file1→1Optimize a 3D modelShrink a 3D model: weld coincident vertices within a tolerance, simplify the mesh toward a target triangle fraction, and quantize vertex positions onto a coarser grid. No Draco compression, since three ships Draco's decoder but not its encoder, and the encoder three's own exporter points at is a CDN this project never fetches anything from.Takes one file1→1Convert STL between ASCII and binaryConvert an STL 3D model between its ASCII (text) and binary encodings. Both describe the same triangle mesh, so this is a direct parse-and-rewrite with no 3D engine involved.Takes one file·→1Text to 3DTurn typed text into an extruded 3D model, glyph outlines from opentype.js flattened to Bezier shapes and extruded to a chosen depth. Font is one of four bundled Liberation Sans faces.Takes no file