Guides
How to open an OBJ file, with its textures intact
Open OBJ files on Mac, Windows or in a browser, and fix the grey, untextured model you get when the .mtl file or texture paths go missing.
3 min read

Quick answer
How do I open an OBJ file?
Double-click it on a Mac to open in Preview, or drag it into a browser viewer such as Babylon.js Sandbox on any computer. To keep colours and textures, open the .obj together with its .mtl file and the images the .mtl names. Blender imports all three through File, Import, Wavefront (.obj).
What an OBJ file is
Wavefront OBJ dates from the late 1980s, and it is still the format almost every 3D program can read. It is plain text. Open one in a text editor and you will see lines starting with v (a vertex position), vt (a texture coordinate), vn (a normal) and f (a face that joins them). That simplicity is why it has lasted, and also why it has limits: no animation, no skeleton, and no single standard for modern PBR materials.
The three parts of an OBJ model
An OBJ model is usually more than one file:
- The
.objfile. Geometry and UV coordinates. - The
.mtlfile. Material definitions: colours, and the names of the texture images to use. The.objnames it on amtllibline. - The texture images. PNG or JPEG files, named inside the
.mtlon lines likemap_Kd wood.png.
Keep all of them in the same folder, and move them together. Most "my OBJ is grey" problems happen because one of the three got left behind.
Open it on a Mac
Double-click it. Apple lists Wavefront OBJ among the formats Preview supports. Preview looks for the .mtl next to the file.
Open it in a browser
On Windows, Linux or ChromeOS, use a browser viewer:
- Babylon.js Sandbox: select the
.obj,.mtland images together and drag them in at once. - Online 3D Viewer: the same, and it can convert the result to GLB, which packs everything into a single file.
Open it in Blender
Use File › Import › Wavefront (.obj). Blender reads the .mtl file and builds materials from it. Check two things after import:
- Orientation. OBJ has no fixed up axis. If the model lies on its back, change the importer's Forward and Up axis settings and import again.
- Scale. OBJ has no units either, so a model built in centimetres arrives a hundred times too big. Scale it, then apply the scale with Ctrl+A.
Fix a grey or untextured OBJ
- Is there a
.mtlfile? If not, the geometry loads with a default material. You will need to build the materials again or get the file from whoever made the model. - Does the
.objname the right.mtl? Open the.objin a text editor and look for themtllibline. The name has to match the file exactly, including capitals. - Are the texture paths relative? Open the
.mtl. A line likemap_Kd C:\Users\someone\Desktop\wood.pngwill not work on your machine. Change it tomap_Kd wood.png, with the image in the same folder. - Does the model have UVs? Without texture coordinates (
vtlines), a texture has nowhere to go. See UV mapping.
When to choose OBJ, and when not to
OBJ is a good choice for static props going into tools that are fussy about other formats, and for 3D-printing workflows that convert to STL. For the web, for AR and for game engines, GLB is usually better, because it is one file with standard PBR materials. The 3D file formats guide compares them.
Vi3W exports OBJ as well as GLB and FBX, so you can pick OBJ when a tool needs it and GLB everywhere else.
Last reviewed

