STL vs OBJ vs 3MF: 3D Printing File Formats Compared

When you export a model for 3D printing, you usually get a choice of three formats: .stl, .obj, and .3mf. They all describe the same physical object, but they carry very different amounts of information — and picking the wrong one can mean a model that prints in the wrong colour, the wrong size, or not at all. This guide breaks down what each format stores, where it came from, and which one belongs in your workflow.

STL — the universal mesh

STL is the oldest of the three, created in 1987 by 3D Systems for their stereolithography machines. Its job is deliberately narrow: it describes the surface of an object as a mesh of triangles and nothing else. No colour, no texture, no units, no materials — just (x, y, z) coordinates for each triangle's corners and a normal vector telling the slicer which side faces out. If you want the full story on how that works, see our guide on what an STL file is.

That minimalism is exactly why STL has survived for nearly four decades. The format is so simple that every CAD program, sculpting app, slicer, and online printing service can read and write it without fuss. The trade-off is that STL knows nothing about your design intent — a value of 20 could be millimetres, centimetres, or inches, and the file will not tell you which.

OBJ — the graphics-world mesh

The OBJ format comes from Wavefront Technologies in the late 1980s and grew up in the world of computer graphics, animation, and visual effects rather than fabrication. Like STL it stores a mesh, but it can also store UV texture coordinates and vertex colour, and it references a companion .mtl (material) file that defines surface colours and image textures. An OBJ model therefore usually arrives as a pair of files, not one.

Because it preserves texture and colour data, OBJ is the natural export when a model comes out of Blender, ZBrush, or another sculpting and texturing tool. It can also store smooth-shading and quad faces, which artists prefer. For pure single-colour printing it offers little over STL, and not every slicer handles its colour data, so its strength is really the bridge between graphics software and a colour-capable printer.

3MF — the modern print format

3MF (3D Manufacturing Format) is the newcomer, published by the 3MF Consortium — a group including Microsoft, Autodesk, HP, and others — with the explicit goal of fixing STL's shortcomings for modern printing. Under the hood a 3MF file is a ZIP archive containing XML, which lets it pack far more than geometry into a single, compact file.

A 3MF file can store units, colour, multiple materials, several distinct objects, and print settings such as supports and orientation, all in one place. This is why it has become the native format of modern slicer ecosystems: when you save a project in Bambu Studio, PrusaSlicer, or OrcaSlicer, you are saving a 3MF. For multi-colour and multi-material printing it carries exactly the information STL and OBJ cannot.

Side-by-side comparison

 STLOBJ3MF
Stores colour?NoYes (via .mtl)Yes (built in)
Stores units?NoNoYes (millimetres defined)
File sizeModerateLarger (plus textures)Compact (zipped)
Multi-objectNo (single mesh)PartialYes
Print metadataNoneNoneSupports, settings, materials
Best useUniversal single-colour printingTextured models from graphics toolsMulti-colour / multi-material printing

Which format should you use?

There is no single winner — the right choice depends on where your model is going.

Practical rule of thumb: 3MF is technically the richest format, but STL is still the one that never surprises you. If a model only needs to be one colour, STL remains the most frictionless way to get it printed.

Why STL still dominates despite its age

It would be easy to assume the oldest format is the worst, but STL's longevity is earned. Its very simplicity means there is almost nothing to go wrong: no material definitions to misread, no archive to unpack, no version mismatches. That reliability is why STL is still the default export on most CAD tools and the lingua franca of print-sharing sites. 3MF is genuinely better when you need colour, materials, or metadata — but for the large majority of prints that are a single colour, STL is the path of least resistance, and that is unlikely to change soon.

Whatever format you ship, the underlying mesh still has to be valid. Any of these formats can contain a broken model, so it is worth understanding why your geometry must be water-tight and manifold before it reaches a slicer. And once you have a clean file, your slicer software is what turns it into the G-code your printer actually follows.

Generate a print-ready STL — free

Need a clean model to start from? Pick a shape, adjust its dimensions, and export a water-tight STL right in your browser — no sign-up, no install, nothing uploaded.

Open the STL generator →

Frequently asked questions

Is 3MF better than STL for 3D printing?

For multi-colour, multi-material, or settings-rich projects, yes — 3MF stores information STL simply cannot, and it imports at the correct size. For ordinary single-colour prints, STL is just as good and far more universally supported, so it remains the safer default when you are sharing a file.

Can every slicer open OBJ and 3MF files?

Most modern slicers (Cura, PrusaSlicer, Bambu Studio, OrcaSlicer) open all three formats. Older or more specialised tools, and many online print services, still expect STL, which is why STL stays the lowest-common-denominator format for handing a model to someone else.

Why does my model import at the wrong size?

STL and OBJ store no units, so a slicer has to guess — usually millimetres. If your model was authored in another unit it can appear far too big or too small. 3MF avoids this entirely because it records units in the file. With STL or OBJ, just rescale in the slicer.

About the author: Amir is a long-time 3D-printing hobbyist who has spent years designing parametric models and tuning both FDM and resin printers. He writes and maintains all the guides on Free STL Shapes and revises them as slicers, printers, and best practices evolve. Spotted something out of date? Let him know.