What Is 3MF? The 3D Printing Format Replacing STL
The Problem With STL That Nobody Talks About
STL has been the default file format for 3D printing since 1987. That’s an eternity in tech. A format designed for stereolithography machines that cost more than a house is now the default for desktop printers that cost less than a smartphone. The cracks are showing. STL was never meant to carry color, material properties, texture maps, or print settings. Curious what’s inside an STL? Open one in a text editor. You'll find a simple, brute-force list of triangles. That’s it. Every surface on a 3D model gets shattered into flat triangular facets, each described by three vertices and a normal vector. The format has no concept of units, which is a constant source of headaches. A cube described as 10 units wide could be 10 millimeters or 10 inches, and you won't know until your slicer takes a guess. This is why the same STL sometimes imports at a dollhouse scale in one slicer and as a giant in another. And it can't store color information. At all. If you want to print a multi-color model on a modern machine like a Bambu Lab X1C or a Prusa XL, you have to split your model into separate STLs for each color, or use a different format. There's no field in the STL spec for materials, infill, or supports. Every time you slice an STL, you start from zero. The 3MF Consortium—founded in 2015 by Microsoft, Autodesk, Dassault Systèmes, HP, and others—set out to fix this mess. Their solution is the 3D Manufacturing Format, a modern container that bundles geometry, color, materials, print settings, and metadata into a single, clean package.
What 3MF Actually Contains
Structurally, a 3MF file is just a ZIP archive with a different extension. If you rename any .3mf file to .zip and extract it, you'll find a neat folder containing XML files, texture images, and a manifest. This open structure is its greatest strength. The core geometry lives in a file named 3dmodel.model, written in a readable XML schema that any developer can implement without paying a license fee. Inside that archive, the base 3MF specification defines a rich set of data: It stores geometry as indexed triangle lists, much like STL, but with one crucial difference: units are explicitly defined in the XML header. A model tagged as millimeters will always import at the correct scale, ending the guesswork. It handles color and materials natively. Individual triangles or entire objects can be assigned a specific color (as an RGBA hex value) or a material. The Materials & Properties extension takes this even further, supporting gradients, composite materials, and other complex assignments. Metadata like the author's name, creation date, and a description can all be embedded directly. For print farms and product teams that need to track a part's history, this is invaluable. Most importantly, it has Print Tickets. This extension lets slicer software embed layer height, infill percentage, support settings, and printer profiles right in the file. When you open a 3MF saved from Bambu Studio, the intended print settings travel with it. A single 3MF can also describe an entire build plate, with multiple objects positioned and oriented correctly, each with its own settings. An STL describes one mesh; a 3MF can describe a whole production run. File sizes are often smaller than binary STL for complex models due to efficient XML compression, so a 45 MB STL might become a 38 MB 3MF.
How Major Slicers Handle 3MF Today
Support for 3MF is now standard across every serious slicer, but the depth of that support varies. Some treat it as just another geometry format, while others leverage its full power. **Bambu Studio** has the best 3MF support on the market today, period. When you save a project (File > Save Project), it writes a comprehensive 3MF containing the full plate layout, filament assignments for multi-color prints, all support painting data, and every slicer setting. Send that single file to another Bambu Lab user, and they can reproduce your print perfectly with one click. It's the workflow 3MF was designed for. **Prusa Slicer** also has robust support. Its project files (File > Save Project As) are .3mf files that embed print profiles, modifier meshes, and per-object settings. This is the correct way to save your work for anything more than a simple, single-material print. Using the plain 'Export Plate as STL' option throws away all that valuable information. **Ultimaker Cura** has supported 3MF import since version 3.0 and export since 4.x. The implementation is solid for geometry and basic settings, though it doesn't always preserve Cura-specific features like modifier meshes as reliably as PrusaSlicer's native format does. **Microsoft 3D Builder**, included with Windows 10 and 11, reads and writes 3MF natively. This isn't surprising, as Microsoft was a co-founder of the 3MF Consortium and an early champion of the format. **Fusion 360** exports 3MF directly from the Manufacturing workspace (Make > 3D Print). It correctly handles units and can export multi-body components as separate objects within a single 3MF file. Remember, not all 3MF files are created equal. A 3MF from Fusion 360 will contain pristine geometry and units. A 3MF project file from Bambu Studio contains that plus a complete print setup. The format supports it all, but the file is only as rich as the data the exporting application puts into it.
3MF vs. STL vs. OBJ: When to Use Each
The 3D printing world has three main file formats, and knowing which one to use is key to avoiding frustration. **STL** is the lowest common denominator, which makes it the safest choice for maximum compatibility. If you're uploading a model to a public repository like Printables or Thingiverse, STL is the one format you can be sure everyone can open. Its chief limitation is also its strength: it contains nothing but raw geometry. There are no settings or colors to get misinterpreted. For simple, single-color prints where you intend to configure everything in the slicer yourself, STL works just fine. **OBJ** is the format of choice when you need color and texture information for applications outside of 3D printing, like rendering or game development. It stores vertex colors and UV coordinates for texture mapping, linking to an MTL material file and image files (like PNGs). Its weakness is that it's a loose collection of files that must travel together. Anyone who’s ever hunted down a missing .mtl file or a texture map knows this pain. You must zip them up yourself to keep them from getting separated. **3MF** is the right format when you want your settings and intent to travel with the model. For multi-color or multi-material prints, it's a necessity. For sharing a fully configured project with a collaborator, it's a lifesaver. It is also the required format for many professional print services, like HP's Multi Jet Fusion. Here’s a simple rule: Use 3MF for your own project files and for sharing complete print jobs with people in the same ecosystem. Use STL when publishing geometry for the whole world. Use OBJ when you have texture maps and your destination is a rendering engine, not necessarily a printer. Tools like CocoConvert can translate the geometry between these formats. But no tool can magically invent print settings that weren't in the source file. Converting an STL to 3MF gives you a valid 3MF with geometry, but the print ticket section will be empty because the STL had nothing to offer.
Converting STL to 3MF (and Back): What You Actually Get
Converting from STL to 3MF is a common task, but it's important to understand what actually happens in the process. When you convert an STL to 3MF, the converter reads the triangle mesh and rewrites it in the 3MF XML schema. The most significant gain is an explicit unit definition. CocoConvert defaults to millimeters, which is what most consumer slicers expect. The geometry itself is preserved exactly—no triangles are changed, and no mesh repair happens. You get a valid 3MF file that any modern slicer can open correctly. What you don't get is anything the STL didn't have. There's no color data, no material assignments, and no print settings. The new 3MF will import into Bambu Studio or PrusaSlicer as a raw object, just as if you had imported the original STL. So why bother? The conversion is essential for workflows that specifically require 3MF as an input, such as certain CAD systems or print management platforms like HP's SmartStream 3D Build Manager. The reverse trip—3MF to STL—is a lossy conversion. You get the geometry, but all color data, material assignments, build plate layouts, and print settings are stripped away. If you convert a multi-object 3MF project, you will typically receive multiple STL files (one per object), which is how CocoConvert handles it. This is usually the desired outcome. For 3MF to OBJ conversions, vertex colors are generally mapped correctly. However, if your 3MF uses the Texture 3MF extension with UV-mapped PNGs, the process is more complex. Always verify the output in your target application before relying on it for a critical workflow. No automated converter can reliably fix broken geometry. If your source STL has non-manifold edges, inverted normals, or holes, those defects will be carried over to the 3MF. It's best practice to run your model through a repair tool like Meshmixer (Analysis > Inspector) or Microsoft 3D Builder's automatic repair *before* converting.
3MF in Professional and Industrial Workflows
While hobbyists debate file formats, industry has already voted with its feet. 3MF was designed for serious production workflows, and that's where its strengths become undeniable. HP's Multi Jet Fusion printers, the workhorses behind a huge number of professional nylon parts, use 3MF as their native tongue. To print a full-color part on an HP Jet Fusion 5200, you need a 3MF with per-voxel color data. There is simply no STL workflow that can achieve this. It's 3MF or nothing. In a production environment, the print ticket feature is a game-changer. An engineer can specify a 0.1mm layer height for tolerance, a gyroid infill for strength, and 4 perimeters for a structural wall, then save it all into one 3MF file. That file goes to the print farm, and every operator produces an identical part without touching a single setting. This virtually eliminates errors from manual configuration. CAD software like Autodesk Fusion 360 and PTC Creo export 3MF with proper unit metadata, which solves a huge class of problems. Anyone who has seen a production run ruined because one part was modeled in inches and another in millimeters knows how critical this is. A slicer guessing units wrong can lead to catastrophic fitment issues and real wasted money. 3MF's mandatory unit declaration prevents this entirely. The 3MF Consortium is also pushing the envelope with new extensions. The Slice extension allows pre-sliced layer data to be embedded, sending ready-to-print instructions to the machine. The draft Volumetric extension aims to define continuous material gradients, enabling parts that transition from rigid to flexible. These aren't for printing desk toys; they're the future of professional additive manufacturing.
How to Convert 3MF Files With CocoConvert
CocoConvert is a simple, direct tool for handling 3MF conversions. It supports STL to 3MF, OBJ to 3MF, 3MF to STL, and 3MF to OBJ. You just upload your file, pick a format, and download the result. Here are a few tips to ensure your conversions go smoothly. When going from **STL to 3MF**, the output will have its units set to millimeters. This is usually what you want. However, if your original STL was modeled in inches (common in some US-based CAD workflows), it will import into your slicer looking tiny. If a part that should be 50mm across shows up as 1.97mm, that's the problem. You'll need to scale it by 25.4x in the slicer, or, even better, re-export the original from your CAD software in millimeters before converting. For **3MF to STL**, remember that a large project file with many objects will result in a ZIP archive containing multiple STL files. Each mesh object from the 3MF becomes its own STL. If your goal was a single merged mesh, you'll need to use a tool like Meshmixer or Blender to combine them after the conversion. CocoConvert handles files up to 500MB. This is more than enough for most 3D printing models, but high-resolution scans or very complex assemblies can sometimes exceed this limit. If you have an exceptionally large file, try reducing the mesh resolution in your source application before exporting. It's also important to use the right tool for the job. CocoConvert is a powerful geometry converter, not a slicer or a mesh repair utility. It won't generate print settings or fix broken geometry. For those tasks, use your slicer's project save function or a dedicated repair tool like Meshmixer. For clean, reliable format translation, CocoConvert is the right choice.