How it is built
The reader unzips the 3MF in the tab, walks its build items and applies the declared unit. The merge step bakes each transform into one mesh. The writer emits binary STL.
What the conversion checks
Conversions are compared on four numbers: triangle count, bounding box, unit scale and shell count. A merge that drops an object shows up as a triangle-count gap; a unit error shows up in the bounds.
What it deliberately does not do
- Does not keep parts separate.
- Does not preserve colour or print settings.
- Does not slice or repair the mesh.
If the print depends on per-part settings, colour or declared units, send the 3MF to the slicer instead of converting it.
Who runs it
This is a small independent project, not a company product. There is no account system and no sales team; email is the support channel. The tool stays limited to 3MF → STL on purpose.
Write to editor@3mftostl.io with the file format and version, the triangle count you expected, and what the output looked like. A small anonymised sample speeds up the fix. Corrections are applied as dated revisions on the page that changed.
Privacy in one paragraph
Files are never uploaded. The page loads no analytics script in this build and stores no cookies for the tool itself. Full detail is on the privacy page.
What the fixture record covers
The test page lists nine 3MF fixtures, not a single demo file. They include a 20 mm cube, a two-shell plate and a package that declares the production extension as required. Each result is parsed again for triangle count, bounds, unit and shell count. A 684-byte STL and a 1,042-byte 3MF can describe the same 12 triangles; the difference is the package around them.
Nothing on this page is a promise about a physical print. The test record is the evidence; where a check was not run, the page says so, and corrections are dated on the page that changed.