Free online OBJ to STL converter
OBJ to STL, checked for whether it will print
Drop an .obj and download an .stl — converted in this tab, no upload, no .mtl needed. Quads and larger faces are split into triangles because STL has no other kind, and the named groups a modeller gave you are welded into the single body a slicer expects. Nothing is rescaled: neither format states a unit, so the numbers cross untouched. What the panel adds is the question the conversion cannot answer for you — whether the mesh is closed enough to print at all.
- 100% free
- No signup
- No .mtl needed
- Quads triangulated
- Nothing uploaded
Drag a file anywhere on this page to open it. F fits the view, W switches shading, G the grid, R spins it.
How to convert OBJ to STL
Three steps, and one look at the panel in between.
Drop the .obj
The .mtl beside it is not needed and not asked for: materials have nowhere to go in an STL, so the conversion only ever reads the geometry. Faces with four or more corners are triangulated on the way, which is required — STL has no other kind of face.
Look at the watertight row
OBJ is the format of modelling and sculpting, and neither hobby requires a closed surface. If the panel reports open edges, the mesh has holes that a slicer will either patch badly or refuse. Better to learn it here than after the first layer.
Download the STL
Binary STL, every group welded into one body. Nothing is scaled: neither format states a unit, so the numbers cross unchanged and both ends assume millimetres.
Technical specifications
| Reads | .obj — text, any number of groups |
|---|---|
| Writes | .stl — binary, one body |
| Unit | Neither format states one; scale factor 1 |
| Kept | Every face, triangulated, at its original coordinates |
| Lost | Named groups, texture coordinates, and materials that were in the .mtl anyway |
| Faces | Quads and n-gons are split into triangles |
| File size | No fixed limit — past 100 MB you are told what it will cost this tab, then it opens |
Frequently asked questions
Do I need the .mtl file?
No, and it would not help. The .mtl holds material definitions — colours, shininess, texture filenames — and STL has no field for any of it. Convert the .obj alone; the conversion never looks for the sibling file and never complains about its absence.
What happens to my named groups?
They are welded into one body. OBJ can name every part of a model and keep them addressable; STL has exactly one nameless soup of triangles. The shapes and their positions survive intact, so nothing moves — you simply lose the ability to select 'handle' or 'lid' by name afterwards. If that matters, 3MF keeps parts as separate objects.
Does anything change size?
No. OBJ and STL both state no unit at all, so the coordinates cross with a factor of exactly one and the panel says so. That is a genuine property of this pair rather than luck: the trap lives on the glTF side of the catalogue, where the file is in metres and the printer is not.
My OBJ has quads — is that a problem?
It is handled. Modelling packages work in quads because they subdivide cleanly, and OBJ stores them faithfully. STL cannot: it is triangles or nothing. Each quad becomes two triangles and each larger polygon is fanned, which changes the topology and not the shape. The triangle count in the panel is the count after that split, which is why it is roughly double what your modeller reported.
Will the STL print?
That depends on the mesh, not on the conversion. Ask three things of the panel: is it watertight, is it the size you expected in millimetres, and does the part count match what you meant to send. A sculpt exported straight from ZBrush or Blender often fails the first — open edges, flipped normals, or geometry that only makes sense as a render.
Is the file uploaded?
No. The parse, the triangulation and the STL writing all happen in this tab, and the download is assembled in your own browser's memory. There is no server here to send an .obj to.
About the format of modelling and the format of printing
OBJ came out of Wavefront in the 1980s for rendering, and it shows in what it kept: quads, texture coordinates, named groups, and a companion file describing how each surface should look. STL came out of 3D Systems in the same decade for manufacturing, and it kept triangles. Both are ancient and both survive, because each one does its own job with no ceremony — but they were never designed to describe the same thing, and the conversion is where that becomes visible.
The one thing worth doing before you print is checking whether the surface closes. A modelling package will happily hand you a mesh with holes, flipped faces or two shells intersecting, because none of that stops a render. A printer needs to know which side is inside. The watertight row in the panel is that check, and it is the same one the STL viewer runs, so a file that passes here passes there.
Going the other way — from a printing STL into a modelling OBJ — is a different page and a different problem: the quads do not come back, and neither do the groups.
Where the conversion happens
Every number on this page is worked out by JavaScript running in the tab you are reading it in. The model you open is read straight off your own disk — it is never uploaded, logged or kept, which is also why these tools carry on working after you disconnect from the network.
One clause specific to this page: OBJ is the format sculpts and scans are traded in, and those are often somebody's unreleased work. Nothing here is transmitted — the parse, the triangulation and the write all run in this tab.