STL to OBJ converter — the same mesh, as text
VTubeMe's STL to OBJ converter writes your .stl as an OBJ — the format nearly every sculpting, CAD and rendering tool opens. The mesh and its coordinates are unchanged. Free, five conversions a day, up to 50 MB.
How do I convert an STL to OBJ?
Drop the .stl on this page and download a zip holding the .obj.
- 1Drop your .stl into the box above, binary or ASCII, up to 50 MB; sign in when prompted.
- 2The file is opened in Blender on our server and written as an OBJ, turned from Z-up to OBJ's usual Y-up, with no scaling.
- 3Download the zip and unpack it: the .obj is the model, and the .mtl beside it is there only because OBJ importers look for one.
- Accepts:
- one .stl, binary or ASCII, up to 50 MB.
- Returns:
- a zip with the .obj and its .mtl; no textures, because there are none.
- Costs:
- nothing, and no credits — an account, though: five conversions per account per rolling 24 hours, shared across all the free format pairs. Conversions that fail are not counted.
- Measured:
- 8,696 vertices and 16,867 triangles in, the same out; a 100-unit cube is 100 units in the OBJ.
- OBJ has no unit either, so the numbers mean whatever the program opening it assumes.
- OBJ is text: a 50 MB binary STL of 999,698 triangles came out as 77 MB.
What actually happens to the file
Both formats are from the same era and say nearly the same thing. STL lists triangles with every corner written out; OBJ lists the vertices once and the faces as indices into them, and can also hold UVs, normals and material names. So this conversion loses nothing, and what it gains is reach: ZBrush, Meshmixer, older CAD tools and almost every renderer read OBJ.
On our test model the 8,696 vertices and 16,867 triangles came through unchanged. Like STL, OBJ stores no unit, so the 100 that meant 100 mm in your slicer is still just 100.
What this conversion cannot do
Measured on real files, not assumed. Everything below is a property of the formats or of the pipeline, and knowing it beforehand is cheaper than discovering it in your 3D tool.
The numbers are kept and the unit is not guessed
An STL stores coordinates and no unit. A cube written as 100 units on a side came out 100 units on a side in the GLB, in the FBX and in the OBJ — nothing is multiplied or divided. What changes is how the target reads those numbers: glTF defines its unit as the metre, so a part modelled as 100 mm arrives as a 100-metre object, and the FBX is marked as metre-sized units with the same 100 in it. Scale by 0.001 in the program you open it in if your STL was in millimetres. The Z-up axis of the STL is turned so the model stands upright in Y-up formats.
No colour, no UVs, no rig — there were none
STL is a list of triangles and nothing else: no materials, no texture coordinates, no vertex colours, no skeleton. The result is the same surface in a container that could hold all of those, with all of them empty. Colour has to be added in a 3D tool afterwards; no converter can recover what the file never had.
Uploads stop at 50 MB
This pair takes files up to 50 MB — half of what the GLB, FBX and OBJ pairs take among themselves, because dense scans and print files cost the converter far more memory per megabyte than a game character does. For scale: a binary STL of 50 MB is about a million triangles, and we converted one of 999,698. If your file is larger, decimate it first; MeshLab and Blender both do that without changing the format.
Five conversions a day, per account
This pair is free and takes no credits, but one account gets five conversions per rolling 24 hours across all the free format pairs together — the converter is one machine and this is what keeps it answering. Each slot frees itself 24 hours after it was used; nothing expires at midnight. Conversions that fail are not counted.
Frequently asked questions
Why a zip, when there are no textures?
Every OBJ pair on this site hands over the folder the exporter wrote — the .obj and the .mtl it names — so the download is the same shape whether or not there are images. Here the .mtl is a default material and you can ignore it.
Is the mesh changed?
No. Same vertices, same triangles, no decimation and no repair. The model is turned so that Z-up becomes Y-up, which is a rotation of the whole thing and not an edit to its shape.
Binary or ASCII STL — does it matter?
Both are read. We checked a binary STL and a hand-written ASCII one; they convert the same way. ASCII writes the same triangles out as text and is several times larger, so it reaches the 50 MB limit with far fewer triangles than the million or so a binary STL holds.
Can I just look at the STL first?
Yes, and nothing is uploaded for that: the STL viewer runs in your browser. Open the STL viewer →
The other format pairs
All 30 are free, all run the same pipeline, and all say what they drop.
GLB to OBJ
GLB in, OBJ out — free, zipped with its materials.
FBX to OBJ
FBX in, OBJ out — free, zipped with its materials.
OBJ to GLB
OBJ in, GLB out — free, one file.
STL to GLB
STL in, GLB out — free, one file.
STL to FBX
STL in, FBX out — free, one file.
PLY to OBJ
PLY in, OBJ out — free, zipped with its materials.
DAE to OBJ
DAE in, OBJ out — free, zipped with its materials.
USDZ to OBJ
USDZ in, OBJ out — free, zipped with its materials.
OBJ to STL
OBJ in, STL out — free, one file.
OBJ to PLY
OBJ in, PLY out — free, one file.
OBJ to DAE
OBJ in, DAE out — free, zipped with its textures.
OBJ to USDZ
OBJ in, USDZ out — free, one file.
GLB to STL
GLB in, STL out — free, one file.
FBX to STL
FBX in, STL out — free, one file.
Only want to look at the file? GLB viewer, FBX viewer and OBJ viewer all run on your own device — nothing is uploaded.
Is your model going into VTubing?
A scan, a print file or a CAD part is not an avatar, and no format change makes it one: a VTubing avatar needs a humanoid skeleton and a face that moves. If what you have is a rigged character in FBX or GLB, the VRM converter maps its bones onto the VRM humanoid and carries the materials over, ready for VSeeFace, Warudo and VNyan.
Open the VRM converter