OBJ viewer

Drop an OBJ with its material file and pictures, or a folder or ZIP of them, to see it textured, measure it and check it before you print. Nothing is uploaded.

20 mm20 mm20 mm

Drop an OBJ file anywhere on this pageChoose an OBJ file to open it

Nothing is uploaded. Drop the OBJ with its MTL and pictures, a folder of them, or a ZIP.

The OBJ viewer with a die open: a cube with its pips drawn from a picture, a red 1 on top, a size of 20 × 20 × 20 mm, and rows giving 1 object, 1 material and 1 texture.
The sample die, read from an OBJ, its material file and its picture.

What an OBJ file is

An OBJ is a mesh written as text: a line for each corner (v), each point of a picture (vt) and each face (f), in objects and groups (o, g). Its colors are not in it. It names a material file, the MTL (mtllib), and says which material each face has (usemtl). The MTL gives each material its color (Kd) and the picture laid over it (map_Kd).

So one model is often three kinds of file: the OBJ, the MTL, and a picture for each texture. All of them have to be opened together.

How to open an OBJ with its textures

Drop the OBJ with its MTL and its pictures in one go: select them all, drop the folder they are in, or drop a ZIP of it. The MTL is the one the OBJ names, found by its file name, and each picture the one the MTL names. A folder written in front of a name in either file is passed over, since the files are the ones beside the OBJ.

The rows say what was found: Objects, the objects and groups the OBJ names; Materials, the materials it uses; Textures, how many pictures are shown of those its materials name. A picture that is named and was not dropped is named under the numbers, with what to do.

What the viewer shows

The model with each material’s picture laid over it, tinted by the material’s color as the format has it, or in the color alone where there is no picture. Beside it, the numbers of the STL viewer: size, volume, surface area, triangles, and whether the mesh is closed, which a model to 3D print has to be. Open edges are drawn in red.

Of what an MTL can hold, the color and its picture are shown. Other pictures (map_Bump, map_Ks, norm) and transparency (d) are not.

Measure and check before printing

Measure gives the distance between two points you pick on the model, snapping to corners and edges; Section cuts it open. An OBJ stores no unit, so choose the one it was made in under Units. A model for a slicer is saved as an STL or a 3MF in millimeters, standing on Z, as slicers take it; for the web or a game engine, as a GLB.

The sample is a die of 20 mm: one object, one material and one picture with its six faces, in a ZIP.

Questions

Is my file uploaded?

No. The OBJ, its MTL and its pictures are read by your own browser. The page asks the server for nothing the files name: a picture the MTL names is looked for among the files you dropped, and only there.

Why is my OBJ gray?

Its colors and textures are in the material file it names, the MTL, and the MTL was not dropped with it. Drop the OBJ and the MTL together, with the pictures, or drop the folder they are in. The page says which file the OBJ asks for.

Why is a texture missing?

The MTL names a picture that was not dropped, or one this browser cannot show. PNG, JPG, WebP and BMP are shown; TGA and DDS are not. The page names each picture it did not find. Save the picture as a PNG, change its name in the MTL, and drop the files again.

What unit is my OBJ in?

An OBJ stores no unit. The viewer starts in millimeters, and you choose the unit the model was made in under Units: every number follows. A model under 10 units across was probably made in inches, and the viewer asks.

Why is my model lying on its side?

Most programs write an OBJ with Y up, and the viewer stands it so. A file written with Z up then lies on its back: choose Z under "Up axis" in the Views menu, and the choice is remembered for OBJ files.

Can I convert it?

Yes. The links under the numbers save what is on show as an STL, a 3MF, a GLB, a glTF or a PLY, with the colors of its materials. Textures are not carried into those files. Each has a page of its own that says what it keeps, such as OBJ to STL and OBJ to GLB.