Convert GLB to OBJ

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

A GLB is a sealed parcel — geometry, materials and textures in one binary file. Some older programs will not open it at all. This unpacks it into an OBJ, a format that many more programs read.

Expect the OBJ to be considerably larger than the GLB it came from. That is not a mistake: GLB stores numbers in a compact binary form, often compressed further with Draco, while OBJ writes every coordinate out as readable text. The shape is identical; only the way it is written down has changed.

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 GLB to OBJ

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

Supported formats and limits

Input
GLB
Output
OBJ
Companion files
None — the GLB carries its own textures
Keeps animation
No — the format cannot store it
Where it runs
In your browser; the model is never uploaded

Not for: Keeping animation — OBJ has nowhere to store it. Convert to glTF instead if the clips matter.

What comes out of the GLB

Each part of the GLB becomes an object in the OBJ, under its own name, placed where the GLB placed it, with its normals and texture coordinates. The texture coordinates are turned over vertically, because glTF counts image rows from the top and OBJ from the bottom. Corners that triangles share in the GLB stay shared, and a part repeated by instancing is written out once for every copy.

When the GLB has colours or textures, the download is a zip with the .obj, an .mtl file and the texture images. The images are taken out of the GLB with their original bytes, so a JPEG stays the same JPEG. The .mtl holds each material's base colour, roughness, metalness, emission and transparency, and names its colour, normal and emission images. Colours stored per point are written after each point's position. A GLB with no colours or images gives a single .obj.

Rigs, blend shapes and the rest of the scene

A rigged character is written in its rest shape as stored in the GLB, not in a frame of any clip, and blend shapes are not applied, so you get the base shape. Cameras and lights are left out. Lines and point clouds are written as OBJ lines and points. A GLB compressed with Draco or meshopt is unpacked first and the full geometry is written.

Units and the long numbers

A GLB is in metres by definition, so the page offers no unit choice: the OBJ's numbers are metres as well, with Y pointing up, as in the GLB.

A GLB stores each position as a 32-bit number, and the OBJ writes each one with all the digits needed to give back exactly that value. A coordinate saved as 0.1 therefore appears as 0.10000000149011612. Those digits are a large part of why the OBJ is so much bigger, and they mean that nothing was rounded on the way.

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.
Why is the OBJ so much bigger than the GLB?
Because OBJ is plain text and GLB is compact binary, frequently Draco-compressed on top. An OBJ several times the size of the GLB, with exactly the same geometry, is normal and expected.
Are Draco-compressed GLB files supported?
Yes. The decompressor is served from this site, so it works even when other people’s CDNs are down, and the model opens without you having to know it was compressed.

Related tools

More in 3D models

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