Mesh repair: closed, clean, outward-facing
Drop a model and get it back with duplicate vertices merged, loose vertices and edges removed, every hole filled and the normals turned outward, with the counts of what was found and what is left. The four fixes a slicer or an importer complains about most, done in Blender on our server.
STL for the slicer, GLB or FBX for an engine. Defaults to the format you dropped.
The four fixes, in order
First, vertices closer than a tenth of a millimetre are merged, which is what turns a model exported with split edges back into one connected surface. Second, vertices with no edges and edges with no faces are removed: the stray points a scanner leaves and the guide lines a modeller forgot. Third, every open boundary is filled with one face, whatever its size, so the surface closes. Fourth, face normals are recalculated to point outward, so a slicer does not read the part as inside out.
The report counts vertices, faces, open or non-manifold edges and loose vertices before and after. A model that reads as many edges before and none after was split at its hard edges by its exporter, which is common for GLB and FBX and harmless once merged. A model that still has non-manifold edges after is one where faces meet at an edge three or more ways, which filling cannot fix.
What this tool cannot do
Holes are filled flat
Each boundary becomes one planar face. A hole in a curved surface gets a flat patch, visible on a smooth model. That makes a part printable; it does not sculpt the missing surface.
Shape keys stop it
Merging decides from the base shape and would weld two vertices that a shape key moves apart. A mesh with shape keys is refused; the UV unwrap tool, which adds nothing and removes nothing, still takes it.
Self-intersections and inside-out shells stay
Faces that pass through each other are left alone, and a shell whose normals all point inward is turned outward only when its geometry says which way is out. Overlapping parts of an assembly are repaired separately, not joined.
One job at a time on a shared machine
Jobs run one after another on one converter. A dense model can take a few minutes; a job that needs more than five minutes of Blender time is stopped and reported, not left hanging.
Three days, then gone
The upload and the result are deleted three days after the job, downloaded or not. The page keeps no history: bookmark the download or take the file while it is there.
Frequently asked questions
Is the result watertight?
It is closed wherever the mesh had an open boundary, and the report's non-manifold count says whether anything is left. Edges shared by three or more faces, and faces that intersect, are not boundary problems and are not fixed here.
What does the merge distance mean for my file?
A tenth of a millimetre in the model's own units, scaled by the object's scale. For a metre-based GLB that is 0.0001 units; for an STL modelled in millimetres it is 0.1 units. Details smaller than that may be merged.
Why did the vertex count drop so much?
Exporters often write a vertex per face corner so that each face can carry its own normal and UV. Merging folds those back into one vertex per position. The look is the same; the mesh is now connected, which is what holes and normals need.
Can I repair a VRM or a rigged character?
A rigged model without shape keys, yes; the skin weights are kept. A VRM has shape keys for its expressions and is refused; its mesh is better left as the author built it.
Which output for 3D printing?
STL. It carries the geometry alone, which is all a slicer reads, and the file states no unit, so check the size in the slicer before printing.