Polymend

Make problematic 3D models printable. Drop in a GLB or STL and Polymend fixes the small mesh faults that make a slicer complain.

Built for small faults: stray triangles, pinholes and reversed faces. Tested on sculpted figures, CAD parts and 3D scans, in two slicers.

Drop a model here

A .glb or .stl file. Anywhere on this page works.

Up to 200 MB and 1 million triangles a file. Several at once: up to 20 files and 1 GB in all.

What Polymend fixes

Polymend is a free mesh repair tool for 3D printing. Some 3D models look finished but are not printable as they are: a slicer such as Bambu Studio flags them with open edges, non-manifold edges or reversed faces. Polymend repairs those faults in an STL or GLB file and gives you back an STL or 3MF. It is built for small faults, and it tells you plainly when it could not fix everything.

How to use it

  1. Drop a .glb or .stl file on the page, or up to 20 at once. A detailed figure of 300,000 triangles takes about a second.
  2. Compare before and after side by side, and step through each change.
  3. Set a print height in millimeters if you want one.
  4. Download an STL, a 3MF, or both.

Add it to your site

Polymend can sit inside any web page. Choose how it should look, then paste the code where you want the tool to appear. It works there exactly as it does here: models are repaired in your visitor's browser and are never sent to your site or to Polymend.

Theme
Sound
Height
It fills the width you give it. 340 fits the upload card; results scroll inside the frame.
<iframe src="https://polymend.xyz/embed" title="Polymend: STL and GLB mesh repair" width="100%" height="340" style="border:0;border-radius:12px" loading="lazy"></iframe>

The code changes as you choose, so there is nothing to edit by hand. To match your page's own colors, add &bg=dedcd4&edge=d0cec6 to the address with your six-digit hex colors for the backdrop and its edge. If your page has its own light and dark modes, it can tell the frame when they change: frame.contentWindow.postMessage({ type: 'polymend:theme', theme: 'dark' }, '*'). Free, with a small maker's badge under the tool.

Frequently Asked Questions

What are non-manifold edges and open edges?

A slicer expects a closed surface where every edge is shared by exactly two triangles. An open edge belongs to only one triangle, which leaves a gap beside it. A non-manifold edge is shared by three or more triangles, so a slicer cannot tell which side is the inside of the model.

Why does my slicer say my model has errors?

A model can look right and still carry small faults in its mesh: stray triangles stuck to the surface, tiny holes, and triangles facing the wrong way. Bambu Studio reports these on import as open edges, non-manifold edges and reversed faces. In testing, twelve detailed figure models each had 6 to 54 non-manifold edges and 16 to 114 open edges. Polymend brought all twelve to zero, and all twelve then imported into Bambu Studio without the warning.

Is my file uploaded anywhere?

No. The repair runs in your browser, on your device, and once the page has loaded it needs no connection at all. The page's security policy tells your browser to block it from opening any connection, and the code is public so that can be checked.

Which files can I use?

GLB files (binary glTF) and STL files, binary or text, up to 200 MB or 1 million triangles. That limit was measured on a laptop; a phone may manage less. Draco-compressed GLB files, which many museums and model sites publish, are unpacked automatically. GLB files compressed with meshopt are not supported yet; export those uncompressed.

Can I repair several files at once?

Yes. Choose or drop up to 20 GLB or STL files together, up to 1 GB in all. They are repaired one after another on your device, and a list shows how each one went. Open any of them to see it before and after, and download every repaired model at once in one ZIP, with an STL and a 3MF of each and a short summary. Every model is set to the same print height, chosen under Size.

Can it convert a GLB to an STL?

Yes. Drop in a GLB and Polymend turns it upright for printing, lets you set its height in millimeters, repairs it, and gives you an STL, a 3MF, or both in one ZIP. Color and texture are not kept.

Can I use a rigged or animated GLB?

Yes. A GLB with a skeleton, animation or blend shapes has many poses. Polymend first reads its rest pose, the shape stored in the file before anything moves it. If the file has animation clips, a Pose panel appears under the view: choose a clip, drag to any moment of it and let go, and that pose is repaired instead. The arrows step from keyframe to keyframe, and the downloaded files are named for the pose. When you repair several files at once, each one keeps the pose chosen for it. A posed figure often has parts that pass through each other, such as an arm through the body. Polymend counts those but leaves them as they are, and they print as solid.

Why does Bambu Studio say the 3MF is not from Bambu Lab?

That notice is expected and is not an error. A 3MF file can carry a whole slicer project, with printer and filament settings, or just a model. Polymend's 3MF holds only the model, at the size you set in millimeters, so Bambu Studio tells you it loaded the geometry alone and will use your own current settings. Other slicers show similar notices for 3MF files they did not create.

Does it change the shape of my model?

It changes as little as it can. It deletes stray triangles, usually a few dozen out of hundreds of thousands, and adds a few to patch small holes. No existing point is moved, with one exception: points that sit a hair apart on the two sides of a seam are joined into one. Turning the model upright or setting a height moves and scales the whole model without changing its shape. A model with no faults is left exactly as it is. You can see every change in the side by side view and step through them one at a time.

Can a repair cut into my model?

Rarely, and only slightly. To close a small hole Polymend looks for a patch that touches nothing else. Where a sculpted model's surface already overlaps itself there may be no such patch, and the patch then grazes a triangle or two of nearby surface. In testing this happened on about half of the figure models, in one or two places each, and both slicers still accepted the files. The result says when it has happened, and you can step through the changes to see where. A patch that would cut through more than that is not made: the hole is left open and the result is "Partly repaired".

What does "Partly repaired" mean?

Some faults remain and your slicer will probably still warn. Polymend is built for small faults and leaves the rest alone on purpose: holes of more than 100 edges, wide openings that may be meant (like the top of a vase), thin sheets with no thickness, and surfaces that touch along an edge. Switches under Repair options let you ask for some of these. For a badly damaged model, a scan with large missing areas, or a design with walls inside it, a general repair tool or a 3D editor such as Blender will do better. Places where the surface passes through itself are a different matter: Polymend counts them but never changes them, since fixing one means re-sculpting the surface. In a slicer's preview they can show as small dark triangles or flecks; they are not holes, they bring no warning, and they print as solid.

What has it been tested on?

Twelve dense sculpted figures of about 300,000 triangles each, fifteen CAD-exported printer parts and eight museum 3D scans, plus hand-built test shapes. The figures were checked in Bambu Studio and in a second slicer: all twelve failed both slicers' mesh checks before repair and passed after. Twelve of the CAD parts were already sound and were left untouched; in the others only a few collapsed or stray triangles were removed. Of the scans, two were already sound, two were repaired, and four with heavier damage came out "Partly repaired". Other slicers have not been tried yet, so step through the markers before you print.

Is it really free?

Yes. Polymend is free to use and open source under the MIT license. The source is on GitHub.

Created by Ryan Haigh