3MF vs STL: Which File Format for Multi-Color 3D Prints?
Both files describe a 3D shape, but only one of them can say which parts are which color. For a two-color QR code, that difference saves you a lot of manual work in the slicer.
When you download a model from the QR Forge generator, you get a choice between 3MF and STL. Both will print. The difference is how much information comes along with the shape — and for a two-color part, that information is what lets your slicer assign colors automatically.
What an STL file is
STL is one of the oldest formats in 3D printing, dating back to the earliest commercial printers in the 1980s. An STL file is simply a list of triangles that together describe the outside surface of an object. That's it. There are:
- no units — the slicer assumes millimeters, which is why imported STLs are sometimes 25 times too small or big when someone exported in inches;
- no colors or materials;
- no notion of separate parts — everything in the file is one surface;
- no print settings.
Because it's so simple, every slicer and nearly every 3D program can open an STL. That universal support is its main strength.
What a 3MF file is
3MF (3D Manufacturing Format) was developed by an industry group called the 3MF Consortium, whose members include printer, software and hardware companies. Under the hood, a 3MF file is a ZIP archive containing XML files that describe the model. It can store:
- units, so the model always imports at the right size;
- multiple separate objects or parts in one file;
- colors and materials assigned to each part;
- extra data such as thumbnails, and — in some slicers' own project files — full print settings.
It also tends to produce smaller files, because shared vertices are stored once and the archive is compressed.
Why 3MF is better for a two-color QR code
A two-color QR code has two distinct pieces: the base plate and the raised pattern (plus any text). For the printer to switch colors at the right moment, the slicer needs to know which triangles belong to which piece.
With a 3MF, the base and the pattern arrive as separate parts with colors attached. In Bambu Studio, Orca Slicer and PrusaSlicer, you'll see one object with two parts in the object list. You confirm which filament goes to which part and slice. No painting, no splitting.
With an STL, the slicer sees one merged shape. To print it in two colors you'd need to either paint the raised modules by hand with the slicer's color-painting tool (slow and fiddly for hundreds of tiny squares), or use a layer-based color change. The layer approach works well for QR codes — since the raised pattern starts at a single height, a filament change at that layer gives you two colors — but you have to find and set that layer yourself.
When you should still choose STL
- Your slicer is old or doesn't support 3MF. Most current slicers do, but some older versions of Cura or printer-brand software handle 3MF parts less gracefully.
- You're printing in one color and plan to paint the raised pattern by hand, or you're making a single-color tactile version.
- You want to edit the model in a program that only accepts STL, such as some older CAD or mesh tools.
- You're sending it to a print service that asks for STL. Many accept 3MF now, but STL is the safe default for outside services.
Opening a QR Forge 3MF in common slicers
Bambu Studio and Orca Slicer
Open or drag the file in. If asked whether to load it as a single object with multiple parts, say yes. In the object list, expand the object to see both parts, then use the filament column to set one part to filament 1 and the other to filament 2. With an AMS the printer handles the swap. Without one, see our guide on adding a filament change pause.
PrusaSlicer
Import the file and confirm loading it as a single object with multiple parts if prompted. Each part can be assigned an extruder in the right-hand panel. With an MMU, assign different extruders. With a single extruder, slice the model and use a color change on the layer slider instead.
Cura
Cura imports 3MF files, but multi-part handling is less consistent and color assignment depends on your printer profile. If the parts merge on import, use a layer-based filament change (Cura's "Filament Change" post-processing script) at the first layer of the raised pattern.
A quick comparison
| STL | 3MF | |
|---|---|---|
| Stores colors | No | Yes |
| Separate parts in one file | No | Yes |
| Stores units | No | Yes |
| File size | Larger | Smaller (compressed) |
| Software support | Universal | All major current slicers |
| Best for | Single color, old software, editing | Two-color prints |
The bottom line
For a two-color QR code, download the 3MF. It brings the colors and parts with it, imports at the right size, and turns a fiddly setup into a couple of clicks. Keep the STL as a fallback for older software or single-color prints. Either way, check the result with a test print — see How to 3D print a two-color QR code for the full workflow.
Ready to make one? The generator is free and runs in your browser.
Open the QR generator