Convert OBJ to GLB

Runs on your device · Your file never leaves your device.

An OBJ is really a small pile of files — the mesh, an .mtl beside it, and the texture images the .mtl names. A GLB is one file with all of it inside. This does the packing, on your device.

Add the .mtl and the textures along with the .obj and the GLB comes out complete: colours, maps and all, ready to hand to somebody or drop into a web page. Add only the .obj and you get correct geometry with a plain surface — which is sometimes exactly what you want, and is said plainly either way.

The conversion runs on your own machine, which for a 3D file is the whole point: a model is usually a client’s product, a scanned property or something not yet announced. Nothing is sent to a server, so there is nothing to delete afterwards and nothing to take anyone’s word for.

How to convert OBJ to GLB

  1. Drop the OBJ file — and its companion files if it has any.
  2. Check that GLB is selected.
  3. Press Convert.
  4. Download the GLB file.

Supported formats and limits

Input
OBJ
Output
GLB
Companion files
MTL and texture images are used when you add them
Keeps animation
Nothing to keep — OBJ stores no animation
Where it runs
In your browser; the model is never uploaded

Not for: Adding materials the OBJ never had — if there is no .mtl, there is no colour information to carry.

How the .mtl and the images are matched

The .mtl does not have to carry the name written on the OBJ's mtllib line. Any .mtl you add is read, and its materials are matched to the OBJ's parts by their usemtl names. Only one .mtl is used, the first in your list, so if the model's materials are split across two .mtl files, join them into one first.

Texture images are found by their file name, with capital letters ignored, so add the images the .mtl names. An image the .mtl names but you did not add is not looked for anywhere else; that surface comes out without its picture. A zip of the whole folder also works: it is unpacked here (up to 60 files and 400 MB), the largest model inside is used, and the .mtl and images are kept beside it.

Which .mtl settings survive in a GLB

An .mtl describes a surface with diffuse, specular and shininess values; GLB describes it as metal and roughness, so some settings translate and some do not. Carried: the diffuse colour (Kd) and its image (map_Kd), transparency (d or Tr), emission (Ke and map_Ke) and the normal map (norm). Not carried: specular colour and shininess (Ks, Ns), the specular image (map_Ks), bump maps, the transparency image (map_d) and displacement (disp). Every surface is written fully rough and non-metallic, so glossy materials look matte until you adjust them where you open the GLB. Colours stored per vertex inside the OBJ, which some scanners write, are kept.

Texture images are stored inside the GLB as PNG. For photographic JPEG textures that usually makes the GLB larger than the files you added.

Getting the size right

An OBJ holds bare numbers with no unit, and a GLB reads every number as a metre. So once you add the model, the page measures it and shows its size, with a choice for what one unit in the file means: leave it as it is, a millimetre, a centimetre or an inch. Pick one and the page shows the size the GLB will have before you convert. A chair that measures 45 metres wide was almost certainly saved in centimetres.

Very large OBJ files

When the files together pass about 120 MB, the page warns that the conversion needs plenty of free memory, but still runs it. An OBJ is text, and a browser tab cannot read a text file much over 500 MB in one piece, so a larger OBJ is refused with that reason instead of producing an empty result. Split the model into parts in the program it came from and convert each part here; each part becomes its own complete GLB.

Frequently asked questions

Are my files uploaded to a server?
No. This conversion runs inside your browser using your own device’s processing power, and the file is not uploaded. Once a tool has been used once (video, text recognition and background removal download their engine from this site the first time), it keeps working when your connection drops.
Do I have to add the .mtl file?
Only if you want the colours. Press Add more files and include the .mtl and any .jpg or .png it refers to; they are packed into the GLB so nothing can go missing later.
Is GLB the same as glTF?
Same format, different packaging. GLB is the single binary file; glTF is readable JSON with the data in files beside it. GLB is the one to send to somebody.

Related tools

More in 3D models

This page in other languages: العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা