Skip to content
3DToolBench

Convert 3MF to OBJ

3MF is a printing format and OBJ is a modelling format. Going from one to the other is how a printable part gets back into Blender, Maya or 3ds Max. Names and colours survive the trip, because OBJ has somewhere to put both.

Drag a 3D file here, or.

This page is set up for 3MF files. Other formats we can read work here too.

The file is read on your own computer. It is never uploaded.

Add a file to switch this on.

Your file is read by your own browser and never sent to a server. There is no upload, no account and no copy of your model anywhere but on your computer.

Objects become named groups

A 3MF can hold several objects, and a slicer project usually does. OBJ has the matching idea: each object is written as its own named group, so what was four objects on a print plate arrives in Blender as four named objects you can select separately.

The names come from the file itself. A standard 3MF names its objects directly; a Bambu Studio, OrcaSlicer or PrusaSlicer project keeps them in a settings part, and both are read. If you only want one of them, pick it from the list under the 3D view before converting.

Colour becomes a material file

A 3MF stores colour as base materials that objects point at. OBJ stores colour in a separate .mtl file that the .obj refers to by name. When the 3MF has colours, both files are written and you get a .zip holding the pair — hand you the .obj alone and the model would open grey with no explanation.

Keep the two files together and open the .obj. Every modelling program reads the .mtl automatically as long as it sits beside the .obj.

Normals are rebuilt, not copied

A 3MF stores no vertex normals, so they are calculated here from the geometry with a thirty degree crease angle, the same threshold Blender uses by default. Flat faces stay flat and curved surfaces come out smooth.

That is why the OBJ shades correctly the moment it opens, instead of arriving faceted or, worse, smoothed into a balloon.

Print plate coordinates are not modelling coordinates

A 3MF from a slicer places every object where it stood on the build plate, and the plate has its origin at one corner or in the middle depending on the printer. So a single small part saved from a project frequently sits two hundred millimetres away from the origin, and arrives in Blender somewhere off in the distance with its origin point nowhere near it.

Nothing is wrong when that happens — those are the real coordinates. In Blender, select the object and use Object, Set Origin, Origin to Geometry, then Object, Clear, Location to bring it back to the middle. Doing it in that order keeps the shape where it is relative to itself, which matters if you kept several objects.

If you are converting several objects and their arrangement matters, leave them alone. The spacing between them is the spacing you set on the plate.

What survives, and what does not

Kept in the OBJ file

  • The exact shape of every object you keep
  • Object names, written as OBJ groups
  • Colours, written into a companion .mtl file
  • Vertex normals, rebuilt properly from the geometry

Lost on the way

  • The unit, because OBJ has nowhere to record one — the numbers are converted, the statement is not
  • Everything the slicer added around the model
  • Nothing about textures: a printing 3MF carries none to lose

How to convert 3MF to OBJ

  1. Drop the .3mf file in

    Plain models and slicer project files both open. Every object inside is found, including the ones Bambu Studio and OrcaSlicer store in separate parts.

  2. Choose which objects to keep

    The list under the 3D view names each one. Each kept object becomes its own named group in the OBJ, so you can still tell them apart in Blender.

  3. Set the output up axis to Y

    3MF is always Z-up and Blender, Maya and 3ds Max all expect Y-up. Doing it here saves a rotation and a possible mistake at the other end.

  4. Decide the unit for a modelling program

    The 3MF states its unit, so the input is already correct. For Blender, metres usually behaves best; keep millimetres if the model is going back to a printer afterwards.

  5. Download, and unzip if you get a .zip

    A model with colour arrives as a zip holding the .obj and its .mtl. Put both in the same folder and open the .obj — the material file is found automatically.

3MF and OBJ compared

3MF and OBJ compared, row by row
Property3MF.3mfOBJ.obj
File contentsA ZIP archive holding XML. The model itself is one XML part inside it.Plain text, one item per line. Materials live in a separate .mtl file beside it.
GeometryTriangles, with a build platform and placement for each object.Triangles and polygons. Also stores free-form curves, which almost nothing writes.
UnitsRecorded in the file. Millimetre, centimetre, inch, foot, metre or micron.None. Like STL, the numbers are bare, though exporters usually mean metres.
Colour and textureColour groups and materials per triangle, and textures in later extensions.Material names and texture coordinates, with the materials themselves in the .mtl file.
Separate objectsSeveral named objects, each placed on the build plate with its own transform.Named objects and groups, each able to carry its own material.
Published byThe 3MF Consortium, 2015, explicitly to replace STL.Wavefront Technologies, 1980s, for the Advanced Visualizer.
Written byPrusaSlicer, OrcaSlicer, Bambu Studio, Cura, Fusion 360 and Windows itself.Blender, Maya, 3ds Max, ZBrush and most modelling programs.

Questions

Why did I get a .zip file?
Because the model had colours, and colours in OBJ live in a separate .mtl file. The zip holds the .obj and the .mtl together. Unzip both into the same folder and open the .obj.
Which way up will the model be?
3MF is always Z-up, and the OBJ is written the same way unless you change it. Blender and most modelling programs expect Y-up, so setting the output up axis to Y here saves you a rotation later.
What happens to the units?
The 3MF states its unit and the OBJ cannot. The coordinates are converted into whatever you choose in the second box, so the model is the right size — but the OBJ itself does not say so, and whatever opens it will assume something.
Can I convert only one object out of a project file?
Yes. The list under the 3D view shows every object with its name and triangle count, and each row has a button that picks that one alone.
My object opened in Blender miles from the origin. Why?
Because those are its real coordinates on the print plate. Use Object, Set Origin, Origin to Geometry and then Object, Clear, Location to bring it back to the middle.

Where to go next