# 3MF vs STL: which 3D printing file format should you use?

STL is a bare triangle mesh with no units. 3MF is a compact container that locks in units and can carry color and print settings. When to use each, explained.

---

If you use OrcaSlicer, Bambu Studio, or PrusaSlicer, you have probably noticed that
the default "Save project" no longer hands you an STL. It hands you a 3MF. Meanwhile
almost every model you download from Thingiverse or a mesh generator is still an STL.
So which one should you actually be using, and does it matter?

The short version: STL is a bare triangle mesh with nothing attached, and 3MF is a
small archive that wraps that same geometry together with units, and optionally color,
multiple parts, a thumbnail, and even your full slicer configuration. This post breaks
down what each format really is, when each one is the right call, and how Meshra lets
you export both from the same part so you never have to commit to a lane.

## What is the difference between 3MF and STL?

STL stores only a surface: a long list of triangles with no units, no color, and no
metadata. 3MF stores that same triangle geometry inside a zipped XML container that
also declares its units and can carry color, multiple objects, a preview thumbnail,
and slicer settings. Both describe a mesh, but 3MF describes a whole project while STL
describes a shape.

An STL file (stereolithography, from the 1980s) is deliberately minimal. It is a set
of triangular facets approximating the outer skin of a part, and that is all. It does
not record whether those coordinates are millimeters or inches, so a slicer or CAD tool
has to guess (this is the classic "my part imported at 1/25th scale" bug). It cannot
hold color, cannot hold more than one object cleanly, and carries no thumbnail or notes.

3MF (3D Manufacturing Format) was designed in the 2010s specifically to fix those gaps.
Under the hood a 3MF is a ZIP archive: a `3D/3dmodel.model` XML file with the geometry,
plus supporting files for content types and relationships. Because it is structured XML
in a compressed container, it can declare its units unambiguously, store per-object or
per-triangle color, pack several parts and their arrangement on the plate, embed a
preview image, and (when your slicer writes it) tuck away the printer profile, filament
profile, supports, and paint you set up.

## Is 3MF better than STL for 3D printing?

For most modern printing workflows, yes: 3MF is smaller, carries defined units so
nothing imports at the wrong scale, and can hold color and print settings that an STL
throws away. STL wins only on raw universality, since it is the one format that
essentially every tool ever made can open.

The reason the major slicers switched their default is that 3MF removes whole
categories of error. Units are explicit, so a shared model opens at true size every
time. Multi-color and multi-material assignments survive, so a painted model stays
painted. And a "project 3MF" saved from your slicer keeps your supports exactly where
you placed them, your plate layout, and your tuned print profile, so reopening it later
(or handing it to a friend with the same printer) reproduces the print instead of just
the shape. On file size, 3MF's compressed binary mesh is typically a good deal smaller
than the equivalent ASCII STL.

That said, STL is not going away. It is the safe common denominator: an older machine,
a print-service upload form, a model marketplace, or a one-off simple part are all
places where STL is still the frictionless choice. If you only need to move a plain
shape from A to B and both ends might be old, STL just works.

## What is the difference between a geometry 3MF and a project 3MF?

A geometry 3MF (also called a Core 3MF) contains only the model and its units, nothing
else. A project 3MF is what your slicer saves: the same model plus your printer profile,
filament, supports, paint, and plate layout baked in. They share a file extension but
carry very different amounts of information.

This trips up a lot of makers. When a CAD tool or generator exports a 3MF, you get the
clean geometry with its units declared, ready to slice. When you then open it in
OrcaSlicer or PrusaSlicer, paint it, add supports, dial in your settings, and hit save,
the slicer writes a much richer project 3MF. Both are valid 3MF files. Knowing which one
you are sharing matters: send a geometry 3MF and the recipient sets up their own print;
send a project 3MF and they inherit yours.

## 3MF vs STL at a glance

| | STL | 3MF |
|---|---|---|
| What it stores | Triangle mesh only | Triangle mesh in a structured container |
| Units | None (tool must guess) | Declared explicitly, no scale surprises |
| Color and materials | No | Yes (per object or per triangle) |
| Multiple parts and plate layout | Clumsy at best | Native |
| Print settings and supports | No | Yes, in a slicer-saved project 3MF |
| Thumbnail and metadata | No | Yes |
| Typical file size | Larger (ASCII) | Smaller (compressed) |
| Compatibility | Universal, every tool | Modern slicers and CAD, growing fast |

## When should you use STL instead of 3MF?

Reach for STL when maximum compatibility matters more than richness: uploading to a
print-on-demand service or model marketplace, feeding an older slicer or printer, or
sharing a single plain part with someone whose toolchain you do not know. It is the
format nothing refuses.

Use 3MF whenever your tools support it and the print is more than a bare single shape:
multi-color or multi-material models, multi-part plates you want arranged a certain way,
or any time you want units locked in and your print setup to travel with the file. In a
current Bambu, Orca, or Prusa workflow, "3MF first, STL as the fallback" is a sound
default.

One thing neither format solves: both are meshes. A triangle mesh, however well
packaged, is a frozen approximation of a surface, not editable engineering geometry.
If you need to change a dimension cleanly later or hand a part to a machine shop, you
want exact geometry (a STEP file) or, better, a parametric source. That trade-off is
the subject of our companion guide,
[STL vs STEP: which file format your project actually needs](/blog/stl-vs-step-which-file-format),
and the deeper reason it matters is covered in
[parametric vs mesh modeling](/blog/parametric-vs-mesh-modeling).

## How Meshra gives you 3MF and STL from the same part

Because Meshra never generates a mesh to begin with, you are not forced to choose a
format up front. When you describe a part, Meshra writes real parametric CAD code
(CadQuery on the OpenCascade kernel) and builds it into an exact solid. Every export
is then just one view of that one solid.

From a single part, the export menu offers STL for slicers and 3D printing, 3MF for the
modern slicer workflow, STEP for CNC quoting and CAD interchange, and GLB for the web.
Meshra's 3MF carries the same triangle mesh as its STL export, in the smaller, more
modern 3MF container, with the geometry declared in millimeters so your slicer never
guesses the unit. Open it in OrcaSlicer, Bambu Studio, or PrusaSlicer, then add your
supports, paint, and profile and save the slicer's own project 3MF from there.

And because the underlying part stays parametric, every dimension Meshra recognizes
becomes a slider. If a printed part comes out a hair too tight, you drag the value and
the same code re-executes deterministically with the new number: no new AI call, and
free on every plan. Get the fit right, then export 3MF for the printer and STEP for the
shop, both from the same source, both current.

<TryMeshra />

## Frequently asked questions

**Is 3MF smaller than STL?** Usually, yes. 3MF stores its mesh as compressed binary
data inside a ZIP container, so it is typically smaller than the same model saved as an
ASCII STL. The gap narrows against binary STL but 3MF still tends to win, and it packs
in more information.

**Will 3MF work with my printer?** 3MF is opened by every current mainstream slicer,
including OrcaSlicer, Bambu Studio, PrusaSlicer, and Cura, and the slicer is what talks
to your printer. If your slicer is a few years out of date, update it or fall back to
STL.

**Can I edit a 3MF file's shape?** Not meaningfully. Like STL, 3MF is a mesh, so you are
limited to mesh-level operations, not clean dimensional edits. To change a dimension
properly, start from exact geometry (STEP) or a parametric part and re-export.

**Does Meshra export 3MF?** Yes. 3MF sits alongside STL, STEP, and GLB in the export
menu for every part, and there is a one-click ZIP if you want all formats at once.

**Should I share a geometry 3MF or a project 3MF?** Share a geometry 3MF if you want the
recipient to set up their own print, and a project 3MF (saved from your slicer) if you
want them to inherit your exact supports, paint, and settings.

Ready to make a part you can export as 3MF, STL, STEP, and GLB from one description?
[Generate your first part free](/sign-up), or browse the
[template gallery](/templates) for parts you can derive and export right now, no prompt
required.
