OBJ·.obj

What is a .obj file?

An OBJ file is a plain-text 3D model format from Wavefront that stores vertices, faces, texture coordinates and object names. It is very widely supported, stores no units, and keeps colours in a separate .mtl file.

Open your .obj file here

Drop a .obj file

.obj

Free, and it opens in this tab. Nothing is uploaded, and there's no account to make.

Runs locally · nothing uploaded

Open the full OBJ viewer →

Capabilities

Each row carries its source and the date it was checked.

PropertyValueSource · retrieved
Stores unitsnoRead as mm by convention. Nothing in the file says so.Wavefront OBJ file format specification · 2026-09-04
Stores colouryesWavefront OBJ file format specification · 2026-09-04
Stores assembly structureyesWavefront OBJ file format specification · 2026-09-04
Geometry kindtriangle meshWavefront OBJ file format specification · 2026-09-04
Binary or texttextWavefront OBJ file format specification · 2026-09-04
Extensions.objWavefront OBJ file format specification · 2026-09-04
MIME typemodel/objWavefront OBJ file format specification · 2026-09-04
Standardno formal standardWavefront OBJ file format specification · 2026-09-04
Vendorneutral, no single vendorWavefront OBJ file format specification · 2026-09-04

What an OBJ file looks like

OBJ is readable text, and unusually pleasant to read:

v 0.0 0.0 0.0
v 10.0 0.0 0.0
v 0.0 10.0 0.0
vn 0.0 0.0 1.0
o bracket
f 1//1 2//1 3//1

v is a vertex, vn a normal, vt a texture coordinate, f a face and o an object name. Indices are 1-based, which trips up every programmer who writes an OBJ parser for the first time.

Faces can have any number of sides, not just three. A lot of OBJ files in the wild are quad meshes, which is why an OBJ can arrive with a different triangle count than you expected: the triangulation happens on import.

The .mtl problem

OBJ stores colours and materials in a separate file with an .mtl extension, referenced by an mtllib line. Textures are separate files again.

This is the most common OBJ frustration. You download or receive a .obj, open it, and everything is grey, because the .mtl was not sent with it. It is also why OBJ is awkward for any single-file upload, including this site's. If your OBJ references a material library, the colours are simply not in the file you uploaded, and the conversion report says so instead of silently rendering grey.

If you need one self-contained file with colour, use GLB or 3MF.

Units

OBJ has no unit. Like STL, the numbers are just numbers, and millimetres is the usual assumption for anything mechanical. Content pipelines for games and film often treat OBJ as metres or as arbitrary "world units" instead, which is why an OBJ from an artist and an OBJ from a CAD package can be a thousand times apart in scale.

Structure

OBJ does keep object and group names, the o and g statements, so a multi-part model arrives with its parts distinguishable. What it does not have is a transform hierarchy: there is no way to say "this part is positioned here relative to that one". Positions are baked into the coordinates.

That is a real but smaller loss than STL's, and this site's conversion reports distinguish the two.

What OBJ is good for

  • Universal interchange for meshes. Almost every 3D tool ever written reads

OBJ.

  • Human inspection and scripting. It is text, and a few lines of code can

read or write it.

  • Photogrammetry and scanning output, where OBJ plus a texture is a common

delivery format.

What it is not good for

  • Manufacturing. There is no unit and no exact geometry. Use STEP.
  • Single-file colour delivery. Use GLB.
  • Very large meshes. Text is bulky, and a 10-million-triangle OBJ is enormous

and slow. Use PLY binary or GLB.

What opens a .obj file

Free tools are listed first. Paid rows are marked, and paying never moves a row up the table.

ApplicationOpensSavesPlatformsFreeSource
This site's viewerin-browser, nothing uploadedany browseryesviewer →
Autodesk Meshmixerwindows · macosyesdocs · 2026-09-04
Blenderwindows · macos · linuxyesdocs · 2026-09-04
CloudComparewindows · macos · linuxyesdocs · 2026-09-04
FreeCADwindows · macos · linuxyesdocs · 2026-09-04
MeshLabwindows · macos · linuxyesdocs · 2026-09-04
PrusaSlicerImport only; slicers output G-code, not meshes.windows · macos · linuxyesdocs · 2026-09-04
Autodesk Fusionwindows · macospaiddocs · 2026-09-04
Rhinowindows · macospaiddocs · 2026-09-04
SketchUpExport requires SketchUp Pro.windows · macos · linux · webpaiddocs · 2026-09-04