Show the work. Check the result.

A useful conversion needs more than a model on a screen. Our tests compare exported geometry with known dimensions, independent file readers, and actual slicer import workflows.

Version 0.1.0 · lib3mf 2.5.0 WASM
Local and public-site evidence recorded September 21, 2026 (Asia/Shanghai). These results cover the cases listed below. They are not a complete 3MF conformance certification or a printability guarantee.

Measured conversion accuracy

Our accuracy benchmark requires exact triangle and instance counts, preserved face orientation, no newly collapsed vertices or zero-area faces, and at most 0.001 mm of vertex-position and dimension error. This is our test threshold for the listed fixtures, not an industry certification, an error guarantee for every file, or a printer tolerance.

CheckMeasured result
Geometry benchmarks44 / 44 passed
Largest vertex-position error0.000658 mm
Largest dimension error0.000318 mm
Extreme-coordinate tests3 rejected with an explanation; STL download disabled

The benchmark includes fractional dimensions, all six units, rotation, nonuniform scale, mirrors, twelve nested transforms, positioned instances, a 6,144-triangle torus, selected official 3MF tests, and the three real slicer samples below. An independent Python reader expands the original XML using 64-bit arithmetic and compares every oriented facet with the downloaded binary STL. Separate ZIP files are checked per instance. Bounds alone are not enough to pass.

The maximum error occurs in a deliberate test near 10,000 mm from the origin. Binary STL uses 32-bit coordinates, so rounding depends on coordinate magnitude. We added a source-reader precision screen and a ±10,000 mm output range after extreme-coordinate tests exposed lost detail. Passing these safeguards does not establish watertightness, printability or unlimited numerical accuracy. The original source mesh is the reference; conversion cannot restore detail absent from that mesh.

Full accuracy measurements · Precision safeguard regressions · Curved 3MF sample · Checked curved STL

Download a test you can repeat

10 mm cube

12 triangles · 1 instance · 10 × 10 × 10 mm

Original 3MF ↓Checked STL ↓

1-inch cube

12 triangles · 1 instance · 25.4 × 25.4 × 25.4 mm

Original 3MF ↓Checked STL ↓

Two placed cubes

24 triangles · 2 instances · X spans 0–40 mm

Original 3MF ↓Checked STL ↓Separate ZIP ↓

Cross-model reference

24 triangles · 2 instances · nested model part

Original 3MF ↓Checked STL ↓Separate ZIP ↓

The original cube geometry is released under CC0. Open a sample in the viewer to check it without downloading a conversion.

What the independent check measures

  1. Create small original 3MF packages with explicit units, transforms and expected values established separately from the converter.
  2. Run the browser engine adapter and write binary STL from normalized geometry.
  3. Read STL with a separate Python struct decoder. Check file length, triangle counts, coordinates, bounding boxes, normals and signed volume where applicable.
  4. For separate exports, check the number of STL files and each instance’s retained coordinates. For rejected inputs, require a controlled error and no usable download.

Our ordinary fixture threshold is 0.01 mm, with a relative tolerance for larger unit examples. Mirroring tests also verify orientation rather than relying only on bounds. The manifest reports exactly which checks were performed.

Original fixture results

The automated core run records 32 checks, with 0 failures in the saved run. It includes the six units, default units, rotated and nested transforms, repeated instances, mirrored winding, unused resources, disconnected shells, appearance loss, cross-model references and explicit rejection cases.

Full core results (JSON) · 23-item acceptance mapping · Selected official suite results · Archive and rejection checks

A real preview from the test run

Actual converter showing the original one-inch cube, dimensions 25.4 mm, object selection and STL downloads
Automated Chrome run with the original one-inch cube. This is the functioning tool, with a 25.4 mm result on each axis.

Actual slicer workflows

Each input below was generated by the named application’s official macOS binary: import our original 10 mm cube STL and export a mesh-bearing 3MF project. After conversion, its STL was reopened using the same slicer’s command-line information reader. These are actual software runs, not handcrafted imitations of slicer XML.

ApplicationVersionScope and resultEvidence
PrusaSlicer2.9.6pass
One 10 mm cube; 1 instance, 12 triangles. Same-slicer re-import.
3MF · STL
Re-import log
Bambu Studio2.8.2.61pass
One 10 mm cube; 1 instance, 12 triangles. Same-slicer re-import.
3MF · STL
Re-import log
OrcaSlicer2.4.2pass
One 10 mm cube; 1 instance, 12 triangles. Same-slicer re-import.
3MF · STL
Re-import log

Prusa and Orca command-line exports referenced optional thumbnail files they did not include. The converter ignores only these recognized missing thumbnail relationships and displays a warning. It still requires all referenced model geometry. The source 3MF files above are unchanged slicer outputs.

Machine-readable compatibility record. This small mesh workflow does not establish compatibility with every printer preset, modifier, painted material, multi-plate project or future release. Settings and toolpaths are never transferred to STL.

Browsers, cancellation and privacy

Browser and interface test record contains versions, actual versus simulated environments, downloads, viewer-to-converter continuity, cancellation, preview failure and network/storage observations. Local browser automation and mobile emulation are identified separately from physical phones.

Physical iPhone Safari and Android Chrome checks require those devices and remain unverified in this release. Desktop WebKit automation is not evidence of actual Safari or iOS hardware behavior. The native Safari 26.1 smoke record separately documents actual file selection, preview and an independently decoded STL download.

Network checks use a controlled local file, inspect request destinations and bodies, then repeat conversion with network access disabled after assets have loaded. Chrome and Firefox use protocol offline; automated WebKit aborts all HTTP(S) requests because its offline flag also breaks local Blob reads. The report distinguishes these test methods. Storage checks inspect cookies, localStorage, IndexedDB and service workers. No third-party analytics is connected to the converter. Public hosting also uses Cloudflare security requests and cookies, separately from these local model-processing checks. See file privacy for the full behavior and its limits.

Page, link and responsive checks · 200% text-size simulation

Performance and resource boundaries

Elapsed values in the test records are observations on the recorded machine, not a speed claim. Cold engine loading, model complexity and hardware change the result. The advertised limits are 50 MiB input, 200 MiB expanded ZIP data, 1 million expanded triangles, 10,000 entries and 64 component levels.

Controlled performance and resource observations explain the tested loads and what was measured. Resource rejection tests use controlled inputs and lower injected thresholds to exercise the same enforcement paths.

What we do not test or promise

  • No watertightness, self-intersection, strength, manufacturing or print-safety certification.
  • No automatic repair, Boolean union, shell splitting or geometry reconstruction.
  • No complete preservation of slicer projects, colors, textures or materials.
  • No promise that passing test cases represent every valid 3MF file.
  • No SEO ranking, traffic, revenue or AI citation result inferred from development tests.

Check the supported subset and keep the original source project. The site’s source and accompanying acceptance report contain reproducible test commands.

Format references: 3MF Consortium specifications · lib3mf 2.5.0 release. Product behavior is documented in our test method and results.