How to check an STL file before printing
Published · By STL Viewer Online
Most failed prints that get blamed on the printer were decided before the slicer opened. The file had a hole, an inverted region, a wall thinner than the nozzle, or was a twenty-fifth of the intended size. Slicers try to be helpful about this, which mostly means they fix what they can without asking and warn about the rest in a corner you do not look at. This guide is the check to run before you slice: what to look for, why it matters, and what happens if you skip it. Every step can be done in the STL viewer in the browser, without installing anything.
1. Is the mesh watertight?
A printable mesh is a closed surface: every edge is shared by exactly two triangles, with no gaps. The slicer walks through the model layer by layer and needs to know, for every point, whether it is inside the part (print it) or outside (do not). A hole makes that ambiguous. The words used are watertight (no holes) and manifold (no edge shared by three or more triangles, no vertex where two shells only touch at a point). Both are needed.
How to check: the viewer's panel says watertight: yes or gives the number of open edges and non-manifold edges. Zero and zero is what you want. A handful of open edges is a small hole; hundreds means the model was exported as separate surfaces or is a raw scan. The repair tool merges duplicate vertices, which closes hairline gaps caused by sloppy exports, and reports the count before and after. It does not fill real holes; for those you need a mesh editor with a fill tool (Blender's 3D-Print add-on, Meshmixer, Microsoft 3D Builder).
2. Do the normals point out?
Each triangle has an outside. If a region of triangles is wound the wrong way, the slicer sees a cavity where there should be solid, or a solid where there should be air. The symptom in the slicer preview is a part of the model that is missing or hollow; the symptom in the viewer is a patch that looks dark, flat or see-through from some angles, because the renderer lights the back of the triangle.
Mirroring is the usual cause. Mirror a half in some CAD tools and the mirrored triangles come out inside out. Booleans between overlapping shells are the other. STL repair unifies the orientation across each connected shell and tells you how many triangles it flipped. If the count is the whole model, the shell was entirely inverted; the repair inverts it back as one piece.
3. Are the walls thick enough?
An FDM printer with a 0.4 mm nozzle can reliably print a wall of two extrusions, about 0.8 mm; a single 0.4 mm wall prints but is fragile, and anything thinner is simply skipped by most slicers, leaving a gap you did not design. Resin printers do better, but walls under about 1 mm bend during washing and curing. Designers working on screen forget this constantly, because a 0.3 mm wall looks fine at 200 percent zoom.
How to check: switch on the section plane in the viewer and slide it through the model. Thin walls show as hairlines in the cut. Then click two points across a suspect wall to measure it. A phone-stand lip at 1.2 mm is fine; a decorative fin at 0.4 mm will be dropped or will snap. If you find one, thicken it in CAD; scaling the whole model up is the wrong fix unless the whole model can be bigger.
| Feature | FDM, 0.4 mm nozzle | Resin (SLA/MSLA) |
|---|---|---|
| Minimum wall, supported both sides | 0.8 mm | 0.8 to 1.0 mm |
| Minimum free-standing wall | 1.2 mm | 1.0 to 1.5 mm |
| Minimum pin or post diameter | 2.0 mm | 1.0 mm |
| Minimum embossed or engraved detail | 0.4 mm wide, 0.2 mm deep | 0.1 mm wide, 0.1 mm deep |
| Minimum hole diameter that stays open | 1.5 mm (prints undersize) | 0.5 mm |
These are conservative starting values; your printer and settings may do better, and a test print will tell you.
4. Is it the right size?
STL has no units. The slicer assumes millimetres. A part designed in inches, or in a Blender scene set to metres, arrives 25.4 or 1000 times too small; a part designed in centimetres in some tools arrives ten times too small. This is the single most common "the model is broken" report on sharing sites, and the model is not broken at all.
How to check: read the bounding box in the viewer and compare with what the part is supposed to be. The viewer warns when the largest dimension is under 10 or over 1,000, but a 12 inch part that reads 12 mm sits inside the plausible range and will not trip it, so read the numbers yourself. The units guide has the fix for each CAD program and each slicer. Do this before checking walls, since a scaled-wrong model fails every other test for no reason.
5. Where are the overhangs?
FDM prints in the air badly. A surface that leans more than about 45 degrees from vertical has each layer sticking out past the one below with too little to rest on; past 60 degrees it droops, and a flat ceiling with nothing below it is a bridge that only works over short spans. Resin printers handle overhangs better but suction and peel forces make large flat areas parallel to the build plate a problem instead.
How to check: orbit under the model in the viewer. Any surface you can see from directly below is an overhang. Decide now whether you will rotate the part to reduce them, add supports in the slicer, or split the model. The viewer does not compute overhang angles (the slicer does, and shows them in colour), but the thirty seconds of orbiting usually settles the orientation before the slicer is open.
6. How dense is the mesh?
Not a failure mode, but a cost. A curved surface exported with a coarse tolerance shows flat facets in the print; a model exported at an absurdly fine tolerance is a 200 MB file that takes minutes to slice for no visible gain. Switch on wireframe and look at a curved area: a dozen triangles across a 20 mm cylinder will show facets, a few hundred is plenty, tens of thousands is wasted. The triangle count in the panel puts a number on it, and the format guide has a table of sensible export tolerances.
What a slicer does with a bad file
- Small holes: most slicers close them silently on each layer by connecting the loose ends of the perimeter. Usually fine, occasionally a spike or a missing patch.
- Large holes or open surfaces: PrusaSlicer and Bambu Studio show a warning icon on the object and offer a repair through a cloud service on Windows; Cura shows a message and uses a mesh fix option under the object settings. Results vary from good to a solid block.
- Inverted normals: some slicers reorient automatically and say nothing; others print a hollow region. Do not rely on it.
- Thin walls: skipped, or printed as a single fragile extrusion if "thin wall detection" is enabled. Never thickened.
- Wrong scale: PrusaSlicer notices very small objects and asks whether they were in inches. Cura has a preference to scale extremely small models. Otherwise you get a speck on the plate.
- Overlapping shells: unioned, usually correctly.
The theme is that a slicer will always produce G-code. It does not refuse. Whether the G-code prints the part you intended is a question the slicer cannot answer, which is why the check is worth doing first.
The checklist
[ ] Bounding box matches the intended size (mm)
[ ] Watertight: yes, 0 open edges, 0 non-manifold edges
[ ] No dark or see-through patches when orbiting (normals)
[ ] Thinnest wall measured >= 0.8 mm FDM / 1.0 mm resin
[ ] Overhangs identified; orientation or supports decided
[ ] Triangle count reasonable for the size (wireframe looks even)
[ ] Volume and material estimated; fits the bed after rotation
[ ] Repaired copy saved if normals or duplicates were fixed
Eight boxes, about a minute for a typical download. The dimensions page gives the numbers, the repair page fixes what can be fixed and reports what cannot, and the cost calculator handles the last box.