FILE FORMAT GUIDE
What Is an OBJ File?
The Wavefront OBJ format — a plain-text 3D mesh that has been the default exchange format for artists, sculptors, and scanners since the 1980s.
A text file you can read
An OBJ is plain ASCII. Open it in any text editor and you see lines starting with v (vertex), vt (texture coordinate), vn (vertex normal), and f (face). Each face references vertex indices — triangles, quads, or n-gons. That simplicity is why every 3D tool since the 1990s can read it.
Wavefront Technologies created the format for their Advanced Visualizer software. The spec became public domain; no license is needed, which is why OBJ became the lowest-common-denominator exchange format for 3D. It predates STL in spirit (both store geometry as text or indices), but OBJ carries more: UVs for texturing, per-vertex normals, and named groups.
What is inside an OBJ
| Data | Stored in OBJ? |
|---|---|
| Vertex positions (x, y, z) | Yes — v lines |
| Texture coordinates (UVs) | Yes — vt lines |
| Vertex normals | Yes — vn lines |
| Faces (triangles, quads, n-gons) | Yes — f lines with v/vt/vn indices |
| Named objects and groups | Yes — o and g lines |
| Materials and textures | Via external .mtl sidecar |
| Animation, skeleton, morph targets | No — use FBX or glTF for that |
| Units | Undefined — like STL, programs assume mm or meters |
| Print settings, supports, infill | No — use 3MF for that |
Where OBJ files come from
| Source | What it exports |
|---|---|
| Blender | OBJ with .mtl for materials; a universal fallback export |
| ZBrush / Mudbox | High-poly sculpts, often millions of triangles |
| 3D scanners (Artec, Revopoint, photogrammetry) | Scan mesh with or without vertex color |
| CAD exporters (Fusion 360, Rhino) | Tessellated OBJ when native formats are not accepted |
| 3D marketplaces (Turbosquid, CGTrader) | Download option alongside FBX and glTF |
OBJ vs STL
Both are geometry-only formats with no animation, no print settings, and no defined unit. The difference: OBJ can carry UVs, normals, groups, and a material reference. STL carries only triangles. For printing, STL is the safer choice because every slicer accepts it. For sharing with an artist who needs UVs intact, OBJ is better.
| OBJ | STL | |
|---|---|---|
| What it is | Plain-text indexed mesh + optional .mtl | Raw triangle list (binary or ASCII) |
| UVs / normals | Yes | Normals only (per-face, often ignored) |
| Materials / textures | Via .mtl sidecar | No |
| Face types | Triangles, quads, n-gons | Triangles only |
| Named groups | Yes (o/g lines) | No |
| Units | Undefined | Undefined — slicers assume mm |
| Best for | Editing, sculpting, marketplace exchange | Maximum slicer compatibility |
Use the OBJ to STL converter on this site for that extraction, or the STL to OBJ converter for the reverse direction. Conversion runs in the browser; the file is not uploaded.
FAQ
What does OBJ stand for?+
OBJ is short for "object" — the Wavefront OBJ format was created by Wavefront Technologies in the 1980s for their Advanced Visualizer software. The format specification is public domain; no license is needed to read, write, or distribute .obj files.
How do I open an OBJ file?+
Blender, MeshLab, Windows 3D Viewer, most CAD tools, and any three.js-based web viewer. The viewer on this site opens OBJ in the browser — parsing runs in your tab, the file is not uploaded. If the model looks gray, the .mtl material file was not loaded alongside it; geometry is still there.
Can I 3D-print an OBJ directly?+
Most slicers (Bambu Studio, PrusaSlicer, OrcaSlicer, Cura) can import OBJ, but STL remains the universal standard. If the slicer rejects the OBJ or loses scale, convert to STL first using the OBJ to STL converter on this site.
OBJ vs STL — which should I use?+
For 3D printing, STL is safer — every slicer accepts it. For sharing with artists or editors, OBJ is better because it can carry UVs, normals, and a material reference. Neither format stores print settings; use 3MF for that.
What is an MTL file?+
A .mtl file is the material library that an OBJ references. It defines colors, specular, transparency, and texture map paths. The .mtl is a plain-text sidecar — if you move the .obj without the .mtl, the model loads but looks untextured. STL has no equivalent; converting OBJ to STL drops the material entirely.