STL Viewer Blogstlviewer.swift.id

OBJ Viewer: Open OBJ Files with Colors (OBJ + MTL) on Android

By Ihwan · · 4 min read

You open an OBJ model that looked great in the designer's preview, and on your phone it shows up as a single flat color. The geometry is fine, the colors are gone. Nine times out of ten, the reason is a small companion file called .mtl that didn't come along, or came along but wasn't opened with the model. This guide explains how an OBJ viewer finds colors, how to open an OBJ with its MTL on Android, and when you should forget the colors and export STL for printing instead.

Short answer: An OBJ file stores the shape; its colors live in a separate MTL file that the OBJ refers to by name. On Android, pick the .obj and the .mtl together in the viewer's file picker (multi-select), then choose "File colors". If you only open the .obj, you get the shape in one color.

How OBJ and MTL work together

OBJ is a plain-text format from the animation world. It lists vertices (v lines), faces (f lines) and, optionally, which material each group of faces uses. The materials themselves are defined in a second file, the MTL (material library). The OBJ contains a line such as:

mtllib vase.mtl

and later lines like usemtl glaze_blue before each group of faces. The MTL then defines glaze_blue with a diffuse color (Kd 0.1 0.3 0.8) and possibly a texture image (map_Kd glaze.png).

So a "colored OBJ" is really two or three files: the .obj, the .mtl, and sometimes texture images.

Why colors vanish: the five usual causes

CauseSymptomFix
Only the .obj was sentSingle color, no warningAsk for the .mtl too, or for a ZIP with both
The .mtl was sent but opened separatelyA note that colors are missingSelect both files in one go
File name mismatchThe OBJ says mtllib model.mtl but the file is model (1).mtlRename it back to match
Colors come from texture imagesFlat or partial colorsTextures are image maps; printing workflows usually ignore them
Chat app renamed or compressed filesMissing or mismatched filesSend as a ZIP or through cloud storage

The file-name case is surprisingly common: browsers and chat apps add "(1)" or a number to duplicate downloads, which silently breaks the link between the two files.

How to open an OBJ with colors on Android

  1. Put the .obj and .mtl in the same folder on your phone, for example Downloads. Check the MTL name matches the mtllib line if you can.
  2. Open STL Viewer and tap Open file.
  3. In the file picker, long-press the .obj, then tap the .mtl to select both. Confirm.
  4. The model opens. Tap the color button in the toolbar and choose File colors to see the materials instead of a single model color.
  5. If you only selected the .obj, the app shows a note that colors are missing and names the .mtl to open with it.

If you try to open the .mtl on its own, the app explains that it's a material file and should be selected together with its .obj. Receiving both files in a ZIP is the cleanest option; the guide to opening files lists the routes. To see a working example first, open the vase sample: it is an OBJ with its MTL.

Do you even need the colors for printing?

For a single-color printer, colors are only a preview. What matters is the geometry, and OBJ has two habits that are worth checking before you print:

When to export STL (or 3MF) instead

If you are preparing a file for a single-color print, there is no benefit to keeping it as OBJ. Exporting STL from your modeling tool gives you a file every slicer reads identically. If you want to keep colors for a multi-color printer, 3MF is the better container, because it stores colors and units inside one file instead of relying on a separate MTL. Compare the formats in 3MF vs STL.

GoalBest format
Preview a colored model on your phoneOBJ + MTL, or 3MF
Single-color printSTL
Multi-color print3MF
Sharing with a renderer or game engineOBJ

Example: a 4-color planter

A designer sends you planter.obj (6.1 MB) and planter.mtl (1 KB) by email. You save both to Downloads, open them together, and switch to File colors: terracotta body, green rim, white drainage tray and a gray logo. The info panel shows 120 x 120 x 105 mm, "Watertight: Yes", and about 122,000 triangles. Your printer is single color, so you note the parts and print the body in terracotta PLA. For a quick look at what the planter will cost in filament, the estimate in the same panel gives weight and length for PLA at your chosen infill.

Note: STL Viewer shows OBJ colors defined in the MTL file. It is a viewer, not an editor: changing materials or fixing texture paths happens in your modeling software.

Ready to try? Get STL Viewer for Android and open the vase sample, then your own files. For the other formats the app opens, see the 3D model viewer overview.

The other ways to get files into the app are described on the STL Viewer website.

Frequently asked questions

Why does my OBJ file have no color?

The colors are stored in a separate MTL file. If the MTL is missing, renamed or not opened together with the OBJ, the model shows in a single color.

How do I open an OBJ with its MTL on my phone?

Put both files in the same folder and select them together in the viewer's file picker. In STL Viewer, then choose File colors.

Can I 3D print an OBJ file?

Most slicers accept OBJ, but check its size and whether it is watertight, since OBJ has no units and models made for rendering are often open.

Should I use OBJ or STL for 3D printing?

For single-color prints STL is the safe choice. For multi-color prints, 3MF keeps colors and units in one file.