STL to OBJ Converter
Convert STL files to OBJ right in your browser, one at a time or several at once. An STL stores every triangle on its own, so each corner is written again for every triangle that touches it. The converter merges those repeated corners, so the OBJ is one connected mesh that 3D apps can smooth, edit and unwrap, and the file gets smaller. You can add normals (flat, or smooth with sharp edges kept), change the units from millimetres to metres or inches, and turn a Z-up print model to Y-up for apps and game engines that expect it. Every OBJ is read back straight after it is written, and the page shows the triangle count and size it found. It reads binary and ASCII STL, and nothing is uploaded.
100% private — everything runs in your browser. Everything runs in your browser; your STL files are never uploaded.
Size and direction
Mesh
Runs in your browser: the STL is read and turned into OBJ by our own code, with no upload and nothing saved. You may use what you make here, including commercially, with no credit needed. The rights in your own models stay as they were.
How to convert an STL to OBJ
- Drop one or more STL files on the box, or click Try a sample.
- Check the model size and the watertight line under the 3D view. If the size looks wrong, change STL units.
- Choose OBJ units, the up direction, merging and normals.
- Download the OBJ, or the OBJ with an MTL file as a ZIP, or all files in one ZIP.
What you can use it for
- Open a 3D print model in a 3D app that prefers OBJ
- Get a connected mesh you can smooth, sculpt or unwrap
- Bring a scanned or printed part into a game engine or web viewer
- Make an STL file smaller as OBJ with shared vertices
- Change a model from millimetres to metres for a scene
- Turn a Z-up print model to Y-up for apps that expect it
What changes from STL to OBJ
| STL | OBJ from this converter | |
|---|---|---|
| Corners | Repeated for every triangle | Each corner once (merged), shared by its triangles |
| Normals | One per triangle, often ignored by apps | None, flat or smooth: your choice |
| Units | None stored | None stored; numbers kept, or changed to mm, cm, m or inches |
| Colour and materials | None (some binary STLs use colour bits that apps read differently) | Optional MTL with one grey material |
| Format | Binary or ASCII | Plain text, one line per vertex, normal and face |
A 20 mm cube as a binary STL is 684 bytes with 12 triangles and 36 corner entries; as an OBJ with merged corners it has 8 vertices and the same 12 triangles.
What the sample bracket gives
| Setting | Vertices | Normals | Triangles | OBJ size | Read back the same |
|---|---|---|---|---|---|
| Merge corners off, no normals | 2,016 | – | 672 | 50.1 KB | Yes |
| Merge corners within 0.001 mm (default), no normals | 336 | – | 672 | 15.8 KB | Yes |
| Merged, flat normals | 336 | 106 | 672 | 24.9 KB | Yes |
| Merged, smooth normals (sharp edges over 30° kept) | 336 | 208 | 672 | 27.6 KB | Yes |
Computed by the converter itself from its Try a sample bracket (60 × 40 × 46 mm, 672 triangles, a 32.9 KB binary STL). Every row was read back by the converter’s own OBJ reader with the same triangle count.
Units and size
| STL units | OBJ units | A 20-unit cube in the OBJ |
|---|---|---|
| millimetres | millimetres | 20 × 20 × 20 |
| millimetres | metres | 0.02 × 0.02 × 0.02 |
| inches | millimetres | 508 × 508 × 508 |
| millimetres | inches | 0.7874 × 0.7874 × 0.7874 |
An STL has no unit field, so the converter asks what the numbers mean (millimetres for almost every 3D printing file) and what the OBJ should use. Same as the STL keeps the numbers exactly.
Next steps
Check a model in 3D in the STL viewer. Going the other way? OBJ to STL makes a print-ready STL from an OBJ. For a 3MF with units built in, use STL to 3MF, and to price a print, try the 3D Print Cost Calculator.
Sources
Sources: Library of Congress: STL (STereoLithography) File Format Family; Library of Congress: Wavefront OBJ File Format.
More free tools
Working with 3D models?
View, convert and make 3D files with free tools that run privately in your browser, with no sign-up and no watermark.
Frequently asked questions
Is this STL to OBJ converter free?
Yes. There is no sign-up, no watermark and no limit on how many files you convert. The conversion runs in your browser, so your STL never leaves your device.
What is the difference between STL and OBJ?
Both describe the surface of a 3D model with flat faces. STL stores each triangle separately with no colour, units or texture coordinates. OBJ is a text format with shared vertex numbers, and it can also hold normals, texture coordinates, named parts and a link to an MTL material file.
Why does the OBJ have fewer vertices?
An STL repeats each corner for every triangle that touches it. Merging writes each corner once and points the triangles at it, so a 20 mm cube goes from 36 corners to 8. The shape and the triangle count stay the same.
Will the OBJ open at the right size?
OBJ files have no unit field, so 3D apps read the numbers in whatever unit they assume. By default the numbers are kept exactly as in the STL (usually millimetres). Choose Metres if the app expects metres, as most game engines and web viewers do.
Which up direction should I choose?
3D printing and CAD files are usually Z-up, and OBJ files from 3D apps are usually Y-up. Keep Z-up if the OBJ goes back to printing or CAD. Choose Y-up if the model lies on its back when you open it in a 3D app or game engine.
Are colours kept?
STL files carry no reliable colour, so the OBJ has none. Tick Add an MTL file to get one plain grey material that you can change in your 3D app.
Should I add normals?
Most 3D apps work out normals themselves, so None gives the smallest file. Flat keeps every face crisp; Smooth makes curved surfaces look round while edges sharper than the angle you set stay sharp.
What if my STL is not watertight?
It still converts: every triangle is written as it is. The page tells you how many open or non-manifold edges it found, so you know before you print or edit.
Is my STL uploaded?
No. The STL is read and converted by JavaScript in your browser, so it never leaves your device. There is no sign-up, no watermark and no limit on the number of files.