SupaVoxel
Wavefront to binary glTF

OBJ to GLB Converter

Drop an .obj with its .mtl and textures, or one .zip, and download a single GLB that loads in three.js, model-viewer, Godot, Unity and Android AR. Set the units before you export so it shows up at the right size. Runs on your device.

  • Reads .mtl and textures
  • Units fixed on export
  • No upload
  • Free, no sign-up
Updated October 2026

How to convert OBJ to GLB

  1. 01

    Open the OBJ with its files

    Select the .obj, its .mtl and the texture images together, drag them in at once, or drop one .zip. The panel confirms what it read under Also read. Quads and n-gons are triangulated as the file is read, and the panel shows how many objects and groups it contains under Meshes.
  2. 02

    Tell it the units

    OBJ doesn't record units. The converter assumes meters, the glTF convention. If the model was made for printing or in ZBrush and is in millimeters, set File units to mm; the Output size in meters updates as you click.
  3. 03

    Export the GLB

    Press Convert to GLB. You get one .glb with geometry, normals, UVs and any vertex colors in a single binary file, plus the size before and after.

OBJ materials and textures: bring the .mtl along

An OBJ rarely travels alone. Its colors live in a separate .mtl file, named on the OBJ's mtllib line, and its textures in image files next to that. Give the converter all of them and the GLB packs them into one file: Kd colors and map_Kd textures become the GLB's base color. A norm map, or a map_Bump whose file name marks it as a normal map (_normal, _nrm, _nor, _n), becomes the GLB's normal texture. A plain grayscale height map isn't carried over. PNG, JPG and TGA images are read.

Files are matched by name only, so an .mtl that points to C:\Users\...\wood.png or a textures/ subfolder still finds wood.png. If you drop the .obj alone, it still converts, but in neutral gray, and an amber note lists the files that weren't included. Dragging a whole folder isn't supported; select the files inside or zip it. OBJs from scans, sculpts and print sites often have no .mtl at all, and then there's nothing to add.

What an OBJ to GLB conversion keeps

OBJ dataGLB result
v / f geometry, quads and n-gonsKept, triangulated
o objects and g groupsKept as separate meshes
vt texture coordinatesKept, ready for the textures you apply later
vn normalsKept; computed smooth if missing
Vertex colors (v x y z r g b)Kept as glTF vertex colors
.mtl colors and texture imagesKept when supplied; gray if left out

Going the other way? GLB to OBJ writes the .obj, the .mtl and the textures as a zip.

OBJ vs GLB

OBJ has been the safe common format since the early 1990s. GLB is the modern delivery format, built for loading fast.

OBJ
Plain text, from Wavefront Technologies. Geometry, UVs and normals; materials in a separate .mtl
GLB
Binary glTF 2.0 from the Khronos Group. Geometry, PBR materials, textures and animation in one file
Size
Text OBJ is typically several times larger than the same mesh as GLB
Units
OBJ: none. GLB: meters
Animation
OBJ: none, static meshes only. GLB: rigged characters, shape keys and keyframed clips
Where GLB is required
three.js and Babylon.js scenes, <model-viewer>, Android Scene Viewer, Shopify and many 3D marketplaces

Tips before you ship the GLB

Do
  • Shrink the finished file with the GLB compressor if it is headed for a website
  • Check the scale in a viewer: a 1.8 m character should read about 1.8 m tall
  • Merge tiny objects in your 3D app first if the OBJ has hundreds of groups; each becomes a mesh
  • Inspect the OBJ in the OBJ viewer when the source looks odd
Avoid
  • Forget the .mtl and images; without them the GLB is gray
  • Leave a millimeter OBJ on the default meters; it lands 1,000 times too large
  • Use a 2-million-triangle sculpt on mobile; reduce it with the mesh simplifier
  • Rename the .obj to .glb by hand; the formats are not interchangeable

FAQ

Frequently asked questions

How do I convert OBJ to GLB for free?

Drop the .obj file on the converter at the top, set the file units if it isn't in meters, and press Convert to GLB. It's free with no account, and the conversion runs entirely in your browser, so the model isn't uploaded. Files up to 200 MB work.

Why is my GLB gray when the OBJ had colors?

The colors and textures live in the .mtl file and its images, and only the .obj was dropped. Select the .obj, .mtl and textures together, or zip them and drop the .zip; the amber note under the model lists anything still missing. Old Phong settings like specular shine don't map exactly to glTF's PBR materials, so expect small differences.

Why is my model huge or tiny in three.js?

OBJ has no unit, and GLB is defined in meters. A model exported in millimeters, common for 3D printing files, arrives 1,000 times too big if treated as meters. Set File units to mm or cm before converting and confirm the Output size matches the real object.

Does the GLB keep separate objects?

Yes. Each o object and g group in the OBJ becomes its own mesh in the GLB, so you can still hide, move or assign materials to parts in an engine or in Blender. The converter shows the part count under Meshes before you export.

Is GLB better than OBJ?

For delivery, yes: GLB is binary, so it's smaller and faster to load, it stores units and PBR materials, and it can embed textures in one file. OBJ is still the most widely readable editing format. Many people keep the OBJ as a master and ship the GLB.

Can I use the GLB in Unity, Godot or Unreal?

Godot imports GLB natively. Unity needs a glTF importer package such as glTFast, and Unreal has a built-in glTF importer. Scale comes through correctly in all three, because GLB is defined in meters and each importer converts from that to its own unit. For engine-specific import settings, see the Unity and Godot guides.

Start free

Need a model to convert in the first place?

Generate it from a photo in the studio. Untextured models usually finish in under a minute and download as GLB on the free plan.

No credit card required · 3 free credits to start