STL to OBJ
STL in, OBJ out, in this tab. STL is a pile of triangles with no names, no shared vertices and no colour.
OBJ file · v + f lines
Same triangles, STL-style geometry rewritten as OBJ. Convert, then download the . file.
- Triangles
- —
- Vertices
- —
- Time
- —
- Size
- —
What actually changes in the file
STL is a pile of triangles with no names, no shared vertices and no colour. OBJ is text: it lists each corner once and then says which corners each face uses. This converter does that translation in the tab, merging the repeated corners as it goes.
| Field | STL (source) | OBJ (target) | What happens |
|---|---|---|---|
| Triangles | stored | stored | copied 1:1, never remeshed |
| Vertices | repeated per facet | shared list | coincident points merged on write |
| Normals | per facet | not written | your importer recomputes them from the faces |
| UVs | none | not written | nothing in STL to carry over |
| Objects | one shell | one o line | every shell lands in the same object |
| Units | none | none | no scaling is applied |
| Materials | none | no .mtl | geometry only, no sidecar file |
What this converter does, and what it does not
- Reads
- binary STL, ASCII STLdetected from the file contents, not the extension
- Writes
- v + f linesOBJ output carries geometry only
- Merges vertices
- yescoincident points collapse before writing
- Scales units
- nocoordinates are copied as they are
- Repairs meshes
- noholes and non-manifold edges pass through unchanged
- Size limit
- memorybounded by the tab, not by a server quota
Convert, or convert to something else
STL → OBJ is the right move when the next tool wants OBJ. It is the wrong move when it does not.
Convert to OBJ when
- Your tool wants OBJ text rather than binary STL
- You want shared vertices, so the mesh imports with a smaller vertex count
- You are about to edit the geometry by hand and want a file you can read
Do not convert to OBJ when
- You are going straight to a slicer. STL or 3MF is what it wants
- You need normals or UVs in the output. This writer emits vertices and faces only
- The model is a CAD surface (STEP, IGES), not a mesh
Frequently asked
Does the OBJ keep the original vertex count?
No. STL repeats each corner once per triangle, so a closed cube arrives as 36 corners. The writer merges coincident points, which turns that cube into 8 vertices and 12 faces. The surface is identical; only the indexing changes.
Why is the OBJ bigger than the STL?
OBJ stores decimal text where STL stores 4-byte floats. Expect roughly two to three times the bytes for the same mesh, which is normal for any text geometry format.
Are normals written into the OBJ?
No. This writer emits v and f lines only. Blender, Unity and three.js all recompute normals from the faces on import, so the shading you see is derived, not carried.
What happens to multiple solids in one STL?
They land in one object. STL has no solid boundaries that survive parsing, so the OBJ gets a single o line and every triangle under it.
Is the file uploaded anywhere?
No. The parser and writer are the page's own JavaScript. Nothing is sent over the network, which you can confirm in the network panel while converting.
Related pairs
- OBJ to STLreverse
- STL to PLYsame family
- PLY to STLreverse
- OBJ to PLYsame family
- PLY to OBJsame family
- All 132 pairsmatrix