OBJ Viewer: open OBJ files with MTL and textures
An OBJ rarely comes alone. Drop the .obj together with its .mtl and the images, a whole folder or a ZIP, and the viewer matches every texture by name, lists what is missing and lets you add files without starting over.
OBJ, MTL and images stay local
Drop OBJ, MTL and textures here
Select all files at once, a folder or one ZIP
Geometry and textures are matched in the browser, no file is sent to a server.
Model library
What is an OBJ file?
OBJ was created by Wavefront Technologies and became one of the most widely supported 3D formats. It is plain text: lines starting with v hold vertex positions, vt texture coordinates, vn normals and f the faces, which may be triangles, quads or larger polygons. Objects and groups split a file into named parts.
Materials live in a separate MTL file that the OBJ names in a mtllib line. The MTL sets colours, shininess and transparency and points to texture images by file name. That split causes most of the trouble: if the MTL or an image is not next to the OBJ, the model loads grey. OBJ has no units, no skeleton and no animation.
What the OBJ tab shows
- Complete file set
- Which OBJ was opened, which MTL it asks for and whether that MTL was found in the selection.
- Texture list
- Every image the MTL references, with its slot such as base colour or normal map and a clear found or missing status. Folder paths in the MTL are ignored, the match is by file name.
- Add files later
- Missing textures can be added with one button. The model reopens with the new images, the files you already chose stay in.
- Unit choice
- Metres, centimetres, millimetres or inches with the size updating at once, since an OBJ cannot say which one it means.
- Unused images
- Images in the selection that no material uses, often leftovers or textures meant for another version of the model.
Programs that open OBJ
- Blender
- Imports and exports OBJ with MTL, including the PBR additions to MTL, which this viewer reads as well.
- Maya, 3ds Max, Cinema 4D
- All import OBJ for static meshes. Their exports often use a unit other than metres, so check the size.
- Unity, Unreal Engine, Godot
- Read OBJ as a static mesh. For characters and animation these engines expect FBX or glTF instead.
- ZBrush and MeshLab
- Common for sculpts and scans, where OBJ carries high resolution meshes with UVs.
Common OBJ problems and fixes
- The model shows up grey or white
- The MTL file or the textures were not part of the selection. Add them in the OBJ tab or drop the OBJ again together with everything from its folder. The tab names each missing file.
- The MTL points to folders on another computer
- Exporters often write absolute paths of the machine that made the file. The viewer only uses the file name at the end of such a path, so the textures load as soon as they are in the selection.
- The size is 100 times off
- There is no unit in OBJ. A model built in centimetres looks 100 times too big when read as metres. Pick cm in the OBJ tab and keep that setting when you import it elsewhere.
- Faces look dark or inside out
- Missing or flipped normals. The viewer computes smooth normals when the file has none. If faces still look wrong, the vertex order is reversed and needs fixing in a 3D program.
Frequently asked questions
How do I open an OBJ file with textures?
Select the .obj, the .mtl and all image files together, drop the folder that contains them or pack everything into a ZIP. The OBJ tab then lists every texture and whether it was found.
What is the MTL file next to my OBJ?
The material library. It holds colours and the names of the texture images for each material. Without it the geometry still loads, but every part gets the same neutral material.
Can an OBJ contain animation or a rig?
No. OBJ stores static geometry only. Animated or rigged models are usually shared as FBX or GLB, which the FBX Viewer and the GLB Viewer on this site open.
Why does the viewer show triangles where my OBJ has quads?
Graphics cards draw triangles, so quads and larger polygons are split when the file is read. The OBJ file itself is not changed.
Which texture formats work?
PNG, JPEG, WebP, GIF, BMP and TGA. Browsers cannot decode PSD, TIFF or EXR, so convert such textures to PNG first.