Skip to content
3DToolBench

Convert BLEND to OBJ

A .blend file is Blender’s own working file, and only Blender can open it. What you need is an export, which takes about fifteen seconds once you know where it is — and two settings in that dialog decide whether the result is usable.

We cannot read .blend files, and no browser tool can. A .blend is a snapshot of Blender’s internal memory rather than a description of a model, and its layout changes with every version. Export an OBJ from Blender using the steps below; once you have one, every converter on this site will read it.

Exporting an OBJ from Blender

Written for Blender 4.x. The OBJ exporter was rewritten in 3.3 and the dialog has looked like this since; in 2.9 and earlier the options have the same names in a different arrangement.

  1. Select what you want to export, or nothing at all

    Click the object, or press A to select everything

    Blender exports the whole scene by default. If you only want one object, select it and tick Limit to Selected Only in the export dialog. This matters more than it sounds: a scene often contains a camera, lights and a backdrop you did not mean to send anyone.

  2. Set the scene units before you export

    Scene Properties (the printer-and-cone icon) → Units → Unit System: Metric, Unit Scale: 0.001, Length: Millimeters

    Do this first and the rest of the process stops fighting you. With Unit Scale at 0.001 and Length in millimetres, what the sidebar shows as 60 mm is 60 mm everywhere afterwards.

    Blender’s default is one unit to one metre. An OBJ records no unit at all, so whatever number is in the file is what the next program will read — and most read it as millimetres. That mismatch is the whole of the scale problem.

  3. Open the export dialog

    File → Export → Wavefront (.obj)

    A file browser opens with a panel of options down the right-hand side. If that panel is collapsed, click the small arrow at its top to open it — every setting that matters is in there.

  4. Set the axis settings

    Include/Transform → Forward Axis: -Z · Up Axis: Y

    These are the defaults and they are correct for almost everything, because Blender is Z-up and OBJ is conventionally Y-up. The exporter rotates the model as it writes so that it arrives upright in Maya, 3ds Max, Unity and every other Y-up program.

    If your OBJ is going to a slicer or a CAD program instead, those are Z-up. Set Up Axis to Z, or convert the OBJ here afterwards and set the up axis in the converter — either works.

  5. Check the scale field

    Transform → Scale: 1.00

    Leave it at 1.00 if you set the scene units in step two. If you did not, this is the other place to fix it: set Scale to 1000 to turn Blender metres into millimetres.

    Do one or the other, never both. Scene units at millimetres and a scale of 1000 multiply together and give you a model a million times too large.

  6. Decide what to include

    Geometry → Triangulated Mesh · UV Coordinates · Normals · Materials

    Leave UV Coordinates, Normals and Materials ticked. Tick Triangulated Mesh only if the destination needs triangles — most modelling programs prefer the quads, and a slicer will triangulate anyway.

    Materials writes a .mtl file beside the .obj. Both files have to travel together or the model opens grey, and the images the .mtl names have to travel too.

  7. Export

    Export Wavefront OBJ (the button, top right)

    You get an .obj and, if you kept materials, an .mtl beside it. Keep them in the same folder. Any texture images stay wherever they were on your disk — Blender writes their paths into the .mtl rather than copying them.

The scale problem, explained properly

Blender works in metres by default. The default cube is two units across, which Blender considers to be two metres. An OBJ file records no unit whatsoever — it is a list of bare numbers — and the program that opens it has to assume something. Most assume millimetres, because most of the things people convert OBJ files into are printed.

So a model that is 60 mm in your head, modelled as 0.06 units because Blender is in metres, exports as the number 0.06 and arrives at the other end as 0.06 mm. That is the thousand-times-too-small case. The opposite happens when someone models at 60 units meaning millimetres: the file says 60, Blender thought it meant 60 metres, and anything reading it as metres shows a building.

There are two places to fix it and you must use exactly one. Setting the scene units to millimetres, as in step two, makes Blender itself agree with what you meant, and everything downstream follows. Setting the exporter’s Scale field to 1000 instead multiplies on the way out without changing the scene. Doing both gives you a factor of a million.

The way to check is to convert the OBJ here afterwards and read the measured width, depth and height beside the model. If the numbers match the object you have in mind, the scale is right. If they are out by a factor of 1000, you know which of the two mistakes you made.

The axis problem, explained properly

Blender is Z-up: the blue axis points at the ceiling and the ground plane is XY. Maya, 3ds Max, Unity, Unreal and the OBJ convention are all Y-up: green points at the ceiling. If nothing converts between them, a model exported from Blender arrives in Unity lying on its back.

The OBJ exporter handles this with the Forward Axis and Up Axis settings, and the defaults — Forward -Z, Up Y — are the correct conversion from Blender to the Y-up world. Most people never open that panel, which is fine, because the defaults are right.

The exception is a destination that is Z-up: a slicer, or a CAD program. In that case you want Up Axis set to Z, which tells the exporter to leave the orientation alone. If you have already exported with the defaults, you do not need to go back — set the up axis in any converter on this site and the file is rewritten the right way round.

One thing that catches people: rotating the object in Blender is not the same as exporting on a different axis. If you rotate an object 90 degrees and export, the rotation is baked in and the object is genuinely rotated, which means its local axes no longer line up with anything. Apply the rotation with Object, Apply, Rotation if you meant it, and use the export axis settings if you did not.

Why OBJ rather than something else

OBJ is the safest thing to hand to somebody whose software you do not know. It has been readable by everything for thirty years, it is plain text, and it carries named objects, material names and texture coordinates.

It is the wrong choice in two cases. If the model is rigged or animated, OBJ holds neither — use glTF. If you are handing it to someone who will print it, STL or 3MF is more direct, and 3MF records its units so the scale problem above cannot happen to them.

The thing OBJ does badly is textures. The .obj names a .mtl, the .mtl names image files, and all of them have to travel together. Blender writes absolute paths pointing at your own disk unless you tell it otherwise, so an OBJ emailed to someone else frequently arrives with materials that point at folders that only exist on your computer. Converting the OBJ to GLB packs everything into one file and removes the problem entirely.

Where we can actually help

Once Blender has given you an OBJ, everything after that runs here in your browser with nothing uploaded — including checking the scale, which is the part that most often went wrong on the way out.

Questions

Can I convert a .blend file directly?
No, and no tool other than Blender can. A .blend is a dump of Blender’s internal memory with a table describing how it was laid out on the machine that wrote it, and the layout changes between versions. Blender has to do the export.
My exported model is a thousand times too small. What went wrong?
Blender was in metres and whatever opened the OBJ assumed millimetres. Set the scene units to millimetres as in step two, or set the exporter’s Scale field to 1000 — one or the other, never both.
My model is lying on its side in Unity. Why?
Blender is Z-up and Unity is Y-up. The OBJ exporter’s default axis settings convert between them correctly, so this usually means they were changed, or the object had an unapplied rotation. Check Forward Axis is -Z and Up Axis is Y.
Where did my textures go?
They were never in the OBJ. An .obj names a .mtl, and the .mtl names image files by path — often an absolute path on your own disk. Send all the files together, or convert the OBJ to GLB, which packs everything into one file.
Should I tick Triangulated Mesh?
Only if the destination needs triangles. Modelling programs prefer the quads, and anything that needs triangles — a slicer, a game engine — will triangulate on import anyway.

Where to go next

Checked against current software versions on 2026-09-11