Format Specification · .obj · Est. 1990

What Is an OBJ File?

An OBJ file is a plain-text 3D geometry format created by Wavefront Technologies. It stores vertices, texture coordinates, normals, and faces, and is one of the most universally supported 3D interchange formats.

Open an OBJ File Now
01 /

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.

02 /

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)

OBJ stores per-vertex texture coordinates, so a model keeps its texture mapping when moved between applications - essential for game assets and rendering.

Capability 02

Named objects and groups

A single file can contain multiple named objects and groups, letting tools address parts of a model individually instead of one merged blob.

Capability 03

Materials via MTL

Companion MTL files describe colors, specularity, transparency, and texture maps. Import the OBJ and MTL together to see the model as its author intended.

Limitation

No units, scenes, or animation

convert OBJ to STL Like STL, OBJ coordinates are unitless, and the format has no lights, cameras, or animation. For 3D printing, geometry is converted to triangles anyway -
03 /

OBJ vs STL vs PLY

Comparison

OBJ vs STL

STL stores only raw triangles - no UVs, materials, or object names - which is all a 3D printer needs. OBJ carries the extra structure that rendering and game work require. Downloading models to print? They often come as OBJ and need converting to STL for your slicer.

Comparison

OBJ vs PLY

PLY attaches properties like color directly to each vertex, which suits 3D scan data; OBJ instead references textures through UV coordinates and MTL files, which suits authored, textured models. Scanners emit PLY; artists exchange OBJ.
04 /

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.

05 /

Work With OBJ Files