OBJ to GLB converter. One file, compressed.
Drop an .obj file and get a single compressed GLB, converted on your device with object names, UVs and normals kept.
Updated
No OBJ file at hand?
What an OBJ file is, and why it is a poor fit for the web
OBJ is a plain-text mesh format from the 1990s that every 3D program reads; it ships as several files with no units and no compression, which is what a web page needs most.
An OBJ file lists vertices (v), texture coordinates (vt), normals (vn) and faces (f) as lines of text, grouped into named objects (o) and groups (g). Materials live in a separate .mtl file, and each texture is a separate image the .mtl points to. Almost every modelling, CAD and scanning tool exports it, which is why it is still the format people reach for.
Those strengths are what make it awkward online. Text is several times larger than the same numbers in binary, and OBJ has no compression. A model is really a folder — .obj, .mtl and images — that has to stay together. OBJ has no unit, so the same file can mean millimeters or meters, and no hierarchy, so parts cannot be nested or moved as a group. Faces can be quads or n-gons, which a GPU cannot draw until they are split into triangles.
GLB solves each of those: one binary file, triangles ready for the GPU, meters by definition, an optional compression extension, and a node tree. Converting is mostly repacking, which is why an OBJ of any real size gets smaller on the way to GLB.
How to convert OBJ to GLB
Five steps take an OBJ to a GLB a browser can show. This is the general method, and what this tool does at each step.
01Parse the text
Read every vertex, texture coordinate, normal and face, and keep each object or group as its own part, with its name.
This tool: parses the .obj with three.js's OBJ reader. Each object (o) or group (g) becomes a mesh with its name. Line and point elements are skipped.
02Triangulate
Quads and n-gons are split into triangles. For flat, convex faces any split looks the same; a twisted or concave face can come out folded, which is fixed in the modelling tool.
This tool: splits every face into a fan of triangles from its first corner.
03Keep or rebuild the normals
Normals decide whether a surface shades smooth or faceted. An OBJ with vn lines carries the modeller's shading; one without needs them computed.
This tool: keeps the file's normals; without them, each face gets a flat normal from its winding. UVs are kept.
04Rebuild the materials
A full conversion reads the .mtl file and its textures and turns them into glTF's PBR materials, which is approximate: MTL was written for older shading models.
This tool: does not read .mtl files or textures. Every part gets one neutral grey material, ready to be assigned in your viewer or configurator.
05Optimize and write the GLB
Merge duplicate vertices, index them, and compress the geometry so the single file is as small as it can be.
This tool: merges duplicate data, indexes vertices, removes what nothing uses, then applies Meshopt compression (Web preset) or writes plain glTF 2.0 geometry (Max compatibility).
OBJ and GLB, side by side
Both are mesh formats; GLB is the one built for delivery over a network.
| Aspect | OBJ | GLB |
|---|---|---|
| Files | The .obj, plus a .mtl and one image per texture | One file, textures embedded |
| Encoding | Plain text | Binary |
| Faces | Triangles, quads or n-gons | Triangles |
| Units | None: the numbers mean whatever the exporter meant | Always meters |
| Hierarchy | A flat list of objects and groups | A node tree |
| Materials | MTL: diffuse, specular and texture maps | PBR metallic-roughness |
| Compression | None | Optional Meshopt or Draco extensions |
| Animation | None | Skeletal and morph-target animation |
Before you export the OBJ
Three settings in your modelling or CAD tool decide whether the GLB comes out the right size and shape.
Export in meters
OBJ carries no unit and this tool keeps the numbers as written, which glTF reads as meters. A model exported in millimeters arrives a thousand times too big: set the export scale to meters, or 0.001 from millimeters.
Include normals
Turn on "write normals" so curved surfaces keep the shading you modelled. Without them, every face is shaded flat.
Name the parts
Object and group names become mesh names in the GLB. A configurator finds the part to swap or recolor by its name, so "Seat" beats "Cube.004".
Questions about the OBJ to GLB converter.
What it does, what it leaves to you, and what it costs.
More free tools
GLB optimizer
Compress GLB, glTF, STL and OBJ models in the browser and see what makes them heavy.
STEP to GLB converter
Turn a CAD export (.step, .stp) into a web-ready GLB.
FBX to GLB converter
Convert an FBX export to GLB for web viewers and AR.
3D viewer with embed code
Upload a model, get a share link and an embed for your site.
AR QR code generator
A QR code that opens your product in AR on any phone.
Need your whole catalog web-ready?
SBFS converts product catalogs — OBJ, CAD or scans — into fast 3D configurators, with every part named, materials built for your finishes and files tuned to load on a phone. See configurator demos by industry.
Book a 20-min call