OBJ to STL,
print-ready on the first try

OBJ is a working format. STL is a promise to a printer: triangles only, machine-ready, no opinions. The conversion between them is a two-minute job in Blender - and the traps that turn it into an afternoon are units and topology, both visible before you export once you know where to look.

A stone golem miniature on a print-bed grid in a Blender viewport, wrapped in a translucent wireframe print-volume box with faint resin-print layer lines

The whole conversion makes sense once one table is in your head: every question about OBJ to STL is answered by which layer of the file you care about. Here is that table, then the step-by-step, then the three traps that cause almost every failed print blamed on the format.

What each format keeps

LayerOBJSTL
TrianglesYesYes
UVsYesNo
Materials and colourYes, with the MTL fileNo
Unit systemNo - convention onlyNo - millimetres assumed
Multiple partsGroupsLoose shells in one file
Slicer-nativeUsually converted firstAlways

The conversion, step by step

01 - Import and measure. File, Import, Wavefront OBJ - then read the object dimensions in the sidebar before anything else. You are looking for real-world numbers: a tabletop miniature lives around 28 to 32 mm tall, a desk prop in the centimetres. If the numbers are not in that league, fix the scale now, not in the slicer.

02 - Set the scene units. In Scene Properties, choose the unit system and unit scale that match the numbers you just read, and keep them for the whole session - switching units mid-project is how 1000x errors sneak in.

03 - Repair what a printer cannot forgive. Holes in the surface, flipped normals, zero-area faces and paper-thin shells. The 3D-Print Toolbox finds all of them; the fixes are quick when the mesh is simple and worth scripting when it is not.

04 - Export. File, Export, STL. Tick Selection Only, keep Scale at 1.0 if the scene units are already honest, and name the file like the print queue depends on it - because it will.

The three traps

Scale. STL has no unit field; slicers assume millimetres. A model that exports 0.03 units tall arrives as a speck, and one exported in metres arrives as a building. This is the number one STL-is-broken complaint, and it is never the format - always the scene.

Non-manifold geometry. A printer prints a watertight solid, and a hole in the surface is a hole in the print. Look for boundary edges, internal faces and vertices floating between shells; the toolbox lists them so you can fill, bridge or delete with intent.

Paper-thin shells. AI OBJs often arrive as open shells - beautiful in the viewport, unprintable on the bed. Solidify gives thickness; check the wall against the nozzle or resin detail limit before committing to a print run.

Before you slice: a thirty-second audit

Open the 3D-Print Toolbox in the N panel and press Check All. The report should come back clean - or every item on it explained. Non-manifold edges get filled or bridged, thin walls get thickened, overhangs deserve a second look before supports. Thirty seconds here saves a failed six-hour print.

When 3MF is the better container

STL is the lingua franca and it is not going anywhere, but two situations deserve 3MF: multicolour prints, where 3MF carries the colour while STL cannot, and multi-part kits, where a single 3MF keeps every part exactly where it snapped together. Export both when a client is the audience; export 3MF when only a printer is.

When the OBJ comes from an AI generator, expect the same three repairs every time: density that needs a decimate, shells that need solidify, and a scale that needs a reality check against a ruler. None of it is hard - it is the tax on the shortcut, and paying it in Blender takes minutes.

Keep going

The pages that answer the next question.

Frequently asked questions

Short answers to what people ask before they commit.

Does STL keep materials or colours?⌄

No - STL is triangles and nothing else. No material, no colour, no layers, no units. If those matter, export 3MF instead: it carries colour, parts and real units, and current slicers read it happily.

Why does my exported STL come out microscopic or huge?⌄

Because STL carries no unit system, and slicers assume millimetres. A model scaled in Blender metres arrives at a slicer as if it were metres of filament. Check the scene unit scale and the object dimensions before export, and the mystery disappears.

Is it safe to convert OBJ online?⌄

It works, but you hand over scale control, repair options and the model itself. Blender is free, the conversion takes under two minutes, and the fix tools ship with the application. Do it locally unless the file is trivial and the stakes are zero.

How do I know the mesh is printable before slicing?⌄

Run the 3D-Print Toolbox check: it reports non-manifold edges, thin walls, overhangs and self-intersections in one pass. Watertight geometry matters more than poly count - a dense but closed mesh prints, and a light mesh with one hole can fail outright.

Should the OBJ be one mesh before export?⌄

Join or boolean the parts that should fuse into one solid. Separate shells are legal but risky: two surfaces sharing a wall confuse slicers, and a floating detail inside a closed body is invisible until the print proves it was there.

Does converting OBJ to STL lose detail?⌄

Not by itself - both formats store triangles, STL simply drops the extras. Detail loss happens earlier, at export density or decimation, and normals arrive hard-split at UV seams, which is worth knowing before blaming the converter.

Put the workflow to work.

Sign in with Google, pick a plan, and generate your first asset.

Compare plans
OBJ to STL in Blender: The Print-Ready Conversion