Free tools / OBJ → GLB

OBJ to GLB.

Wavefront OBJ in, a single self-contained GLB out. Normals are kept, groups become nodes, and a neutral PBR material is assigned.

Specification

What this tool does

Parses the OBJ text, scales it from the unit you declare to glTF metres, rotates the declared up axis to Y and writes one self-contained GLB with a neutral PBR material. MTL files and image sidecars are not read.

Inputs
Wavefront OBJ text
Outputs
Binary glTF 2.0 (GLB) in metres, Y up, embedded buffer, neutral material
Controls
Source units: metres, centimetres, millimetres or inches
Source up axis: Y, Z or X
Limits
Model 64 MiB per file; expanded geometry is bounded at 1,000,000 vertices
No textures, rig or animation are created
Group boundaries become separate meshes

Privacy: Files are parsed, previewed and written back inside your browser. Nothing is uploaded, no account is needed and no generation credits are spent.

Maintained by Bake3D · Updated

Turn a static OBJ into a web-friendly GLB

OBJ is widely used for exchanging polygon geometry, but a complete textured OBJ workflow often relies on separate material and image files. GLB stores a glTF asset in a single binary container that many web viewers and game engines can load. This tool converts the selected OBJ’s geometry into a self-contained GLB with a neutral material.

The conversion does not create textures, a skeleton or animation. It also does not read an accompanying MTL file. It is useful for inspecting and moving a static shape into a GLB-based workflow. If your project needs a textured, rigged character, use the Bake3D generation and rigging workflow or keep the original asset’s full material package in an editor.

Choose source units before converting

OBJ does not reliably declare a physical unit or an up axis. The same coordinate value can mean one millimetre, centimetre, inch or metre in different authoring workflows. Select the source unit used by the application that produced the OBJ. The converter normalizes that choice to glTF’s metre coordinates.

For example, a 100-unit-wide OBJ authored in millimetres becomes 0.1 metres wide in the GLB. Selecting metres for that same file would instead produce a 100-metre object. The preview can fit either model to the screen, so appearance alone is not enough to validate scale. Check the reported dimensions and a known measurement in the destination application.

Select the source up axis as well. Y is the default; Z and X are available for other coordinate conventions. The output is rotated to Y up for the glTF workflow. This is a deliberate coordinate conversion rather than a guess based on the model’s shape.

Conversion steps

  1. Select a .obj file up to 64 MiB.
  2. Set its source units and up axis from the original export settings or a known reference dimension.
  3. Inspect the preview, mesh count and dimensions. Revisit the unit selection if the numbers are implausible.
  4. Download the GLB and import it into the target viewer or editor.
  5. Check orientation, dimensions, normals and the expected visible parts there before using the asset in a larger scene.

The tool processes the file locally without an account or a generation charge. New conversions use the latest settings, and expensive work is serialized so a previous result cannot overwrite a more recent request. The previous preview can remain visible while an updated result is being prepared; its label identifies it as the previous result.

What the output contains

The output includes static mesh geometry, supported normals and texture coordinates, and mesh boundaries where available. A neutral PBR material is assigned. Texture coordinates can still be useful later, but an OBJ’s missing image files do not magically become embedded textures.

Material definitions from MTL, scene lights, cameras and editing history are not carried into this conversion. OBJ has no rig or animation clip to preserve. If the source is an exported pose, that pose is simply the static geometry in the result.

File size depends on the source’s vertices, attributes and topology. Binary storage often reduces the overhead of a large text OBJ, but there is no fixed compression ratio for every file. The output’s actual size is displayed after conversion. Expanded geometry is limited to one million vertices to keep browser use bounded.

Troubleshooting and questions

Why is the GLB gray instead of textured?

This converter does not ingest MTL or image sidecars. Reattach the material in an editor, or export GLB directly from the original application with its textures embedded. The gray preview is intended to make the shape and surface orientation easy to inspect.

Why does the object lie on its side?

Check the source up-axis setting. If the model was authored Z up, select Z before converting. If it has an intentional artistic rotation beyond a simple axis convention, preserve or adjust that orientation in your editor.

Does this optimize topology or add a rig?

No. Changing the container does not perform retopology, remeshing or automatic rigging. Use a dedicated operation for those tasks, then verify the result. For a print-oriented output instead, the GLB-to-STL converter explains the separate scale and geometry checks involved.

How should I validate the result?

The shared conversion stage has tests for transformed and instanced geometry, reflected winding and unused vertices. Compare the source and destination dimensions, inspect normals under simple lighting, and confirm all intended parts are present. Read the glTF specification for its scene and coordinate conventions.

Other free tools

Need to generate a textured mesh, add a rig and create animation? Open the studio with 60 free credits.