About

About FixSTL

FixSTL is a free STL checker and fixer that runs in your browser. It finds the mesh errors that break slicing, applies conservative repairs, and tells you plainly what it could not fix.

Why we built it

Most failed slices start with a mesh that is not a closed, consistent surface: a hole left by an export, faces wound the wrong way, parts that overlap without being joined. Checking for those should take seconds and should not require installing software or sending a design to someone else’s server.

We also wanted a fixer that is honest. A repair that quietly reshapes a part, or that calls every file fixed, only moves the failure to the printer. FixSTL makes the smallest change that resolves a clear defect, keeps your original geometry when a change would move the surface too far, and checks the result again before it calls it fixed.

Built by Tripo

FixSTL is built and run by the team at Tripo, which makes AI tools that create 3D models from images and text. FixSTL is free to use and does not need a Tripo account. When a mesh is too damaged to repair, the page suggests regenerating it with Tripo instead.

How it works

Your file is read and processed on your device, in a background Web Worker. It is not uploaded.

  • The repair engine is written in Rust and compiled to WebAssembly. It builds the edge topology of the mesh and counts open boundaries, non-manifold edges and vertices, inconsistent normals, duplicate and degenerate faces, self-intersections and separate shells.
  • Repairs are local: welding nearly coincident vertices, removing duplicate and zero-area triangles and zero-thickness flaps, stitching cracks, making face orientation consistent, filling flat and curved holes up to about a third of the model’s size, and cutting out small self-intersecting or non-manifold patches and filling them again.
  • A shape guard compares every repair with the original surface. Most fixes may move it by at most 0.1% of the bounding-box diagonal; a rebuilt patch may replace surface, but the result must stay within 1% of the diagonal of the original and keep the same number of parts. A repair beyond these limits is discarded and the original geometry is kept.
  • With the Rust engine, a file is called fixed only after it re-checks the exported result as a closed, manifold, consistently oriented solid with no self-intersections.
  • A TypeScript engine is kept as a fallback for browsers that cannot run the WebAssembly module, and as a second repair candidate that is delivered only if the Rust engine verifies it. When the fallback produces a report, it does not check self-intersections or non-manifold vertices, and its “fixed” only means no hole remained; the report says which engine ran.

What FixSTL cannot fix

Automatic repair handles bookkeeping errors. It cannot invent surface that was never captured, and it does not judge whether a part will print well.

  • Overlapping parts and boolean leftovers are reported, not merged: FixSTL does not split parts along the line where they cross. They need a boolean union in a modelling tool.
  • Internal walls, parts touching along an edge or at a corner, and damaged areas too large to rebuild locally are reported and left as they are.
  • Large missing regions, such as a whole missing side of a scan, need manual modelling or a rebuild.
  • Wall thickness is estimated but never thickened. Overhangs, units and printer-specific limits are not evaluated.
  • A verified solid is not a printability guarantee. Check the repaired file in your slicer before printing.

Learn more

Our STL repair guides explain what each mesh error means, which ones stop a print and how to check a repair in your slicer. How we test compares FixSTL with six other repair tools on the same 200 files. How we handle data is in the privacy policy; the rules for using the site are in the terms of use. Questions and feedback: contact us.

Check an STL file

Free, in your browser, no upload.

Repair an STL