Skip to content
Back to Blog
informational

What Is 3MF? The 3D Printing Format Replacing STL

2026-05-17 9 min read

The Problem With STL That Nobody Talks About

STL has been the default file format for 3D printing since 3D Systems introduced it in 1987. That's nearly four decades of a format designed for stereolithography machines that cost more than a house, being used on desktop printers that cost less than a smartphone. The format was never meant to carry color, material properties, texture maps, or print settings — and it shows. Open an STL file in any text editor and you'll find a list of triangles. That's it. Every surface on a 3D model is broken into flat triangular facets, described by three vertices and a surface normal. There is no concept of units — a cube described as 10 units wide could be 10 millimeters or 10 inches depending on what the slicer assumes. Prusa Slicer, Cura, and Bambu Studio all handle this differently, which is why the same STL sometimes imports at wildly different scales. More critically, STL cannot store color information at all. If you want to print a multi-color figurine on a Bambu Lab X1C or a Prusa XL, you either need to split the model into separate STL files — one per color — or use a proprietary format. There's no field in the STL specification for material assignments, infill settings, or support structures. Every time you slice an STL, you're starting from scratch. The 3MF Consortium, founded in 2015 by Microsoft, Autodesk, Dassault Systèmes, HP, Shapeways, and others, set out to fix all of this. The result is the 3D Manufacturing Format — a container file that carries geometry, color, materials, print settings, and metadata in a single, well-documented package.

What 3MF Actually Contains

A 3MF file is, structurally, a ZIP archive. Rename any .3mf file to .zip and open it, and you'll find a collection of XML files, texture images, and a manifest. The core geometry is stored in a file called 3dmodel.model, written in a straightforward XML schema that any developer can read and implement without a license fee. The base 3MF specification covers: **Geometry:** Meshes stored as indexed triangle lists, similar to STL but with explicit units defined in the XML header. A model tagged as millimeters will always import at the correct scale. **Color and materials:** Each triangle or group of triangles can be assigned a color (as an RGBA hex value) or a material reference. The Materials & Properties extension goes further, supporting gradient colors, composite materials, and multi-property assignments. **Object metadata:** Author name, creation date, description, and custom properties can all be embedded. This matters for print farms and product teams who need traceability. **Print tickets:** The 3MF specification includes a Print Ticket extension that lets slicer software embed layer height, infill percentage, support settings, and printer profiles directly in the file. Open a 3MF saved from Bambu Studio and the intended print settings travel with it. **Multiple objects and build plate layout:** A single 3MF can describe an entire build plate — multiple objects, each with its own position, orientation, and material assignment. An STL describes exactly one mesh. A 3MF can describe a complete production run. The file sizes are comparable to binary STL for simple models and often smaller for complex ones, because the XML compression inside the ZIP is efficient. A detailed figurine that runs 45 MB as a binary STL might come in at 38 MB as a 3MF, though this varies considerably by geometry type.

How Major Slicers Handle 3MF Today

Support for 3MF has become standard across every serious slicer, though the depth of implementation varies. **Bambu Studio** has the most complete 3MF support currently available to consumers. When you save a project in Bambu Studio (File > Save Project), it writes a 3MF that includes the full plate layout, filament assignments for multi-color prints, support painting data, and all slicer settings. Send that file to a colleague with a Bambu Lab printer and they can reproduce your exact setup without reconfiguring anything. **Prusa Slicer and PrusaSlicer 2.x** export 3MF project files that embed print profiles, modifier meshes, and per-object settings. Go to File > Save Project As and you get a .3mf. The plain Export Plate as STL option strips all of that out. For anything beyond a single-material print, the project 3MF is the right choice. **Ultimaker Cura** has supported 3MF import since version 3.0 and export since version 4.x. The implementation is solid for geometry and basic settings but doesn't preserve Cura-specific modifier meshes as reliably as PrusaSlicer's native format. **Microsoft 3D Builder**, which ships with Windows 10 and 11, reads and writes 3MF natively and was one of the first consumer applications to do so — unsurprisingly, given that Microsoft co-founded the 3MF Consortium. **Fusion 360** exports 3MF directly from the Manufacturing workspace: go to Make > 3D Print, select your printer, and choose 3MF as the output format. The geometry exports with correct units and, if you've set up multi-body components, each body can be exported as a separate mesh object within the same file. One honest caveat: not all 3MF files are equal. A 3MF exported from Fusion 360 carries geometry and units. A 3MF saved as a project from Bambu Studio carries geometry, settings, plate layout, and filament data. The format supports all of this, but only if the exporting application wrote it in.

3MF vs. STL vs. OBJ: When to Use Each

The 3D printing file landscape has three main contenders, and each has a legitimate use case. **STL** remains the safest choice for maximum compatibility. If you're uploading a model to a service bureau, a print farm, or a marketplace like Printables or Thingiverse, STL is universally understood. It has no ambiguity about what it contains — just geometry — which also means there's nothing to go wrong. For single-material, single-color prints where you're going to configure settings yourself in the slicer, STL is perfectly adequate. Its limitation isn't a bug, it's a feature: simplicity. **OBJ** is the format to use when color and texture matter but you're working across applications that don't support 3MF well. OBJ stores vertex colors and UV coordinates, and it pairs with an MTL material file and texture images. The weakness is that it's a loose collection of files — the OBJ, the MTL, and any referenced PNG textures all need to travel together. Zip them up or one will inevitably go missing. **3MF** is the right choice when you need to preserve print intent across machines or collaborators, when you're working with multi-color or multi-material models, or when you want settings to travel with the geometry. It's also the format to use when submitting to services that explicitly support it, such as HP's Multi Jet Fusion print services or Shapeways' professional upload pipeline. A practical rule: use 3MF for project files you'll return to or share with other people using the same slicer ecosystem. Use STL for final geometry exports to services or communities where you don't know what slicer the recipient is using. Use OBJ when you have texture maps and the destination application handles OBJ well. For converting between these formats, tools like CocoConvert handle the geometry translation reliably. What they can't do — and this is worth being direct about — is synthesize print settings that weren't in the source file. Converting an STL to 3MF gives you a valid 3MF with correct geometry and units, but the print ticket section will be empty because the STL had nothing to contribute.

Converting STL to 3MF (and Back): What You Actually Get

The most common conversion request is STL to 3MF, and it's worth being precise about what the conversion does and doesn't do. When you convert an STL to 3MF, the converter reads the triangle mesh from the STL and rewrites it in the 3MF XML schema. You gain explicit unit definition — CocoConvert defaults to millimeters, which matches the assumption of most consumer slicers. The geometry is preserved exactly; no triangles are added or removed, no mesh repair is performed. You end up with a valid 3MF that any 3MF-capable slicer will open correctly. What you don't get: color data (the STL had none), material assignments (ditto), or print settings. The 3MF will import into Bambu Studio or PrusaSlicer as a geometry-only object, exactly as if you'd imported the original STL. The conversion is useful primarily for workflows that require 3MF as an input format — certain CAD systems, print management platforms, and HP's SmartStream 3D Build Manager, for instance, prefer or require 3MF. The reverse — 3MF to STL — is lossier. You get the geometry, but color assignments, material data, build plate layout, and all print settings are discarded. If you're converting a multi-object 3MF project to STL, you'll typically get either a merged single mesh or multiple STL files, one per object, depending on the converter. CocoConvert exports one STL per mesh object in the 3MF, which is usually what you want. For 3MF to OBJ conversions, vertex colors from the 3MF are mapped to OBJ vertex colors where possible. Texture-based colors require more work and aren't always preserved cleanly in automated conversion — if your 3MF uses the Texture 3MF extension with UV-mapped PNG textures, verify the output in your target application before committing to a workflow. One thing no automated converter can do: repair broken meshes. If your STL has non-manifold edges, inverted normals, or holes, those problems transfer to the 3MF. Run the model through Meshmixer (Analysis > Inspector) or Microsoft 3D Builder's automatic repair before converting if you suspect geometry issues.

3MF in Professional and Industrial Workflows

Consumer 3D printing gets most of the attention, but 3MF was designed with industrial workflows in mind, and that's where its advantages are most pronounced. HP's Multi Jet Fusion printers — the machines behind a significant share of professional nylon parts — use 3MF as their native format. HP's Print Processing Application reads 3MF files and uses the embedded material properties and color data to drive the print. A full-color part printed on an HP Jet Fusion 5200 requires a 3MF with per-voxel color assignments; there is no STL workflow for color MJF printing. In production environments, the print ticket capability matters enormously. A manufacturing engineer can define layer height (say, 0.1mm for a functional part requiring tight tolerances), infill pattern (gyroid for isotropic strength), wall count (4 perimeters for a structural component), and support interface material in a single 3MF file. That file goes to a print farm, and every operator gets the same output without manually entering settings. The error rate from manual configuration drops to near zero. Autodesk Fusion 360 and PTC Creo both export 3MF with proper unit metadata, which matters when parts need to fit together. A mechanical assembly where one component was modeled in inches and another in millimeters will fail catastrophically at assembly if the slicer guesses units wrong — a problem that has caused real production waste. 3MF's mandatory unit declaration eliminates that class of error. The 3MF Consortium continues to develop extension specifications. The Slice extension allows pre-sliced layer data to be embedded in the 3MF, so a model can arrive at the printer already sliced. The Volumetric extension, still in draft, would allow continuous material property gradients — useful for functionally graded materials where, for example, a part transitions from rigid to flexible across its length. These extensions won't matter to someone printing desk toys, but they represent where professional additive manufacturing is heading.

How to Convert 3MF Files With CocoConvert

CocoConvert handles 3MF conversions in both directions: STL to 3MF, OBJ to 3MF, 3MF to STL, and 3MF to OBJ. The process is straightforward — upload your file, select the output format, download the result. A few practical notes on getting good results: **For STL to 3MF:** The output will default to millimeter units. If your STL was modeled in inches (common for files from US-based CAD users), the geometry will be correct but the scale will appear wrong in slicers that trust the unit declaration. Check the model dimensions in your slicer immediately after import. If a part that should be 50mm across shows as 50mm, you're fine. If it shows as 1.97mm, the source STL was in inches and you'll need to scale by 25.4x in the slicer, or re-export the original from your CAD tool in millimeters before converting. **For 3MF to STL:** Large 3MF project files with many objects will produce multiple STL files packaged in a ZIP. Each mesh object in the 3MF becomes one STL. If you need a single merged mesh, use Meshmixer or Blender to combine them after conversion. **File size limits:** CocoConvert currently handles files up to 500MB. Most consumer 3D printing files fall well under this, but high-resolution scans and complex assemblies can exceed it. For very large files, consider reducing mesh resolution in your source application before exporting. **What CocoConvert doesn't do:** It won't repair broken geometry, generate print settings, assign materials, or handle the Slice or Volumetric 3MF extensions. For geometry repair, use Meshmixer or 3D Builder. For full project-level 3MF creation with settings, use your slicer's native project save function. CocoConvert is a geometry conversion tool, not a slicer — and that's the right scope for what it does well. If you're working with 3MF files regularly, it's worth keeping a copy of the 3MF specification (freely available at 3mf.io) bookmarked. Understanding what the format can carry helps you know what to expect from any conversion tool, CocoConvert included.

What Is 3MF? The 3D Printing Format Replacing STL | CocoConvert Blog