AccountTry Pro free

STL vs 3MF: what actually differs and which one to use

STL is the format every printer workflow understands, 3MF is the one that carries everything else, and knowing exactly what each stores tells you which to send.

Updated 20 October 2026 · 7 min read

Two very different ideas of a "print file"

STL dates from 1987 and describes one thing: a list of triangles. Each triangle is written as a normal vector plus three corner coordinates, nothing more. A binary STL has an 80-byte header, a 4-byte triangle count and then exactly 50 bytes per triangle (twelve 32-bit floats and a 2-byte attribute field), so a 500,000-triangle model is always about 25 MB. The ASCII variant spells the same data out as text and is roughly four to five times larger.

3MF was published by the 3MF Consortium (founded by Microsoft with printer and software vendors) to replace STL with something closer to a document. A .3mf file is a ZIP package. Inside, 3D/3dmodel.model is an XML file that lists vertices once and triangles as indices into that list, plus a build section saying which objects are placed on the plate and where. Other parts of the package hold thumbnails, textures and application-specific data such as slicer settings.

That structural difference explains almost every practical difference below.

Side-by-side comparison

PropertySTL3MF
UnitsNone. Numbers are bare; software assumes millimetresDeclared in the file (unit attribute: micron, millimeter, centimeter, inch, foot, meter; default millimetre)
Vertex storageEvery triangle repeats its three cornersShared vertex list, triangles reference indices
Colour and materialsNot in the standard; a few vendors abuse the attribute bytesBase materials, colour groups and textures are part of the spec
Multiple objectsOne triangle list (ASCII can hold several solids, but many programs merge them)Many named objects, components and plate positions
CompressionNoneZIP (deflate) container
Print settingsNoneSlicers store their own project settings inside the package
Metadata80-byte header text, usually ignoredTitle, designer, licence, thumbnails, custom keys
Software supportUniversalAll current mainstream slicers and most CAD exporters

The differences that matter in practice

Units

Because STL has no units, a model drawn in inches and exported to STL arrives in the slicer 25.4 times too small. 3MF writes the unit into the model element, and a compliant reader converts on import. If you regularly receive parts from people working in imperial CAD, asking for 3MF removes a whole class of "why is my part 2 mm tall" problems. STL scale issues are covered in detail in our guide to STL units and scale.

Colour and multi-material

Standard STL cannot carry colour. 3MF can, at two levels. The core and materials extension let an object or individual triangles reference a material or colour. On top of that, slicers store their own painting data: PrusaSlicer's multi-material painting and Bambu Studio's colour painting are saved as per-triangle attributes specific to those programs. A painted model therefore keeps its colours when reopened in the same slicer family, but another slicer may load only the geometry. Treat painted regions as slicer project data, not as a portable colour format.

Multiple objects and plates

An STL is one bag of triangles. If you export a three-part assembly as a single STL, the slicer sees one object; you can split it back with "Split to objects" (PrusaSlicer, Bambu Studio, OrcaSlicer) only if the parts are not touching, and you lose their names. A 3MF keeps each object separate and named, records its position, and can reference the same mesh several times as components, so ten copies of a bracket do not mean ten copies of the triangles. Bambu Studio and OrcaSlicer additionally save multiple plates in one project.

File size

Indexed vertices plus ZIP compression usually make a 3MF a fraction of the equivalent binary STL. The exact ratio depends on the mesh, and an embedded thumbnail or texture can add more than the geometry saves, but for large organic models the difference is substantial. That matters when uploading to model repositories or emailing files to a print service.

Print settings and metadata

This is the main reason people choose 3MF today. Saving a project in PrusaSlicer, Bambu Studio, OrcaSlicer or Cura writes a 3MF containing the objects, their placement and the slicer's configuration: layer height, per-object modifiers, supports, seam painting. Reopen it on another machine with the same slicer and everything is where you left it. The catch is that these settings are stored in each application's own format inside the package. OrcaSlicer, as a Bambu Studio fork, reads Bambu projects well; most other cross-slicer combinations bring over the meshes and ignore or partially map the settings. Most slicers ask whether you want to open a 3MF as a full project or import only the geometry, which is useful when you want someone's model but not their printer profile.

Slicer and CAD support

  • PrusaSlicer, Bambu Studio, OrcaSlicer, Cura: read and write both formats. Bambu Studio and OrcaSlicer default to 3MF projects; sending a print to a Bambu printer uses a sliced 3MF that also contains G-code.
  • Fusion and SolidWorks: export both STL and 3MF. Fusion can also send a design straight to a slicer, which uses a mesh export behind the scenes.
  • Model repositories: Printables and MakerWorld accept 3MF; MakerWorld in particular is built around Bambu-style 3MF projects with print profiles. STL remains the lowest common denominator on every site.
  • Older or specialist tools: some resin slicers, CNC/CAM packages, mesh repair tools and scripts only accept STL.

To check what a 3MF actually contains before opening it in a slicer, load it in the 3MF viewer; for an STL, the STL viewer shows dimensions and triangle count so you can catch scale problems early.

When to use which

Choose 3MF when

  • You want to keep your own print job: plate layout, modifiers, painted supports and seams.
  • The model has several parts, colours or materials that belong together.
  • The model comes from CAD in a unit other than millimetres.
  • You are sharing a model on a site that supports print profiles and you want others to reproduce your result.
  • File size matters.

Choose STL when

  • The recipient's software is unknown, old or specialised (CAM, some resin slicers, mesh analysis tools).
  • You are publishing a single-part model and want maximum compatibility, ideally alongside a 3MF.
  • You are scripting: binary STL is trivial to read and write in any language without a ZIP or XML library.
  • You are sending to a print bureau that explicitly asks for it.

A common publishing pattern is to offer both: STL files for each part, plus a 3MF project with your tested settings.

How to convert between them

STL to 3MF

Converting adds structure but not information: the result has millimetre units declared (because that is what the STL numbers are assumed to be), indexed vertices and compression, but no colour or settings that were not there before. Open the STL in any slicer and save a project, or use the STL to 3MF converter in the browser. If the STL was really in inches or metres, fix the scale before converting, because the 3MF will otherwise state the wrong size with full confidence.

3MF to STL

Going the other way discards units (geometry is written in millimetres), colours, object names and settings. Decide whether you want one STL with all objects merged or one STL per object; slicers typically export the whole plate as one file unless you export objects individually. The 3MF to STL converter applies each build item's placement transform so parts land where they were on the plate. For many files at once, the batch converter handles the same conversion in one pass.

Common pitfalls

  • Expecting settings to travel between slicers. A PrusaSlicer project opened in Cura gives you the meshes, not the profile. Re-check layer height, supports and modifiers after switching.
  • Sliced vs unsliced 3MF. Bambu Studio can export a "sliced" 3MF that contains G-code for a specific printer and filament. It is not a neutral model file; send the unsliced project or STL to someone with different hardware.
  • Merged parts in a single STL. Exporting an assembly as one STL makes interlocking or touching parts impossible to separate cleanly. Export per part or use 3MF.
  • Lost colours after conversion. Painted regions are slicer-specific. Converting to STL, or opening in a different slicer, will usually drop them.
  • Ignored transforms. Some simple 3MF importers read the mesh but ignore the build transform, so parts appear stacked at the origin or rotated. If positions look wrong, check in a viewer that respects build items before blaming the file.
  • Mesh errors survive conversion. Neither format fixes holes, flipped normals or self-intersections. A conversion only rewraps the same triangles, so repair the mesh first if the slicer reports errors.

Summary

STL is a minimal triangle list with no units, colour or structure, which makes it universal and easy to process. 3MF is a compressed package that knows its units, keeps objects separate, stores colour and lets each slicer save a complete project. Use 3MF for your own work and for anything with several parts or colours; keep STL for maximum compatibility and for tools that accept nothing else.