The OBJ Format, Explained
The OBJ format was developed by Wavefront Technologies around 1990 for its Advanced Visualizer animation software. Because the format is simple, open, and text-based, virtually every 3D application since - Blender, Maya, 3ds Max, Cinema 4D, Unity, Unreal Engine - can read and write it, making OBJ a lingua franca for exchanging 3D geometry.
Inside, an OBJ file is a list of plain-text records: "v" lines define vertex positions, "vt" lines texture coordinates, "vn" lines normals, and "f" lines assemble them into faces. Faces can be triangles or larger polygons, and models can be split into named objects and groups.
Materials live in a separate MTL (material template library) file referenced by an "mtllib" line. The MTL describes colors, shininess, transparency, and texture maps; without it, an OBJ still opens fine but displays with default shading.
At a glance
- Extension
- .obj
- Since
- ~1990
- Geometry
- Polygons
- Encoding
- ASCII text
- Materials
- Via MTL file
- Units
- Unitless
What OBJ Files Can Store
OBJ is a step up from bare triangle formats: it carries the structure needed for texturing and rendering, while staying simple enough to parse anywhere. Its main limits are the lack of units, no scene or animation data, and text bulk on very dense meshes.
Capability 01
Texture coordinates (UVs)
Capability 02
Named objects and groups
Capability 03
Materials via MTL
Limitation
No units, scenes, or animation
OBJ vs STL vs PLY
Comparison
OBJ vs STL
Comparison
OBJ vs PLY
How to Open an OBJ File
You can open an OBJ file without installing any 3D software: drag it into our free online viewer to rotate, zoom, and inspect it in your browser. Load its MTL file alongside to see materials, or convert the geometry to STL, PLY, or X3D. Everything runs locally - files are never uploaded.