Quick answer
glTF and GLB are the same format, glTF 2.0, packaged two ways. A .gltf file is readable JSON that points to separate .bin geometry files and texture images. A .glb file packs the JSON, geometry and textures into one binary file. Use GLB to publish, share or upload a model, and .gltf when you want to read, edit or diff it.
What is the difference between glTF and GLB?
Both follow glTF 2.0, the open 3D standard from the Khronos Group. They describe exactly the same things: meshes, PBR materials, textures, animation, cameras and the scene hierarchy.
The only difference is packaging. A .gltf is a text file plus the files it points to. A .glb is a single binary file with everything inside.
| Feature | glTF (.gltf) | GLB (.glb) |
|---|---|---|
| Specification | glTF 2.0 | glTF 2.0 |
| File type | JSON text | Binary container |
| Files per model | Usually several: .gltf, .bin and images | One |
| MIME type | model/gltf+json | model/gltf-binary |
| Readable in a text editor | Yes | No |
| Easy to diff in version control | Yes | No |
| Swap a texture without a 3D tool | Yes, replace the image file | No |
| Easy to share, upload and embed | Easy to lose a file | Yes |
| Size | About the same as GLB with separate files; about a third larger with everything embedded | Smallest single-file option |
| Materials, animation and extensions | Identical | Identical |
What is inside a .gltf file?
A .gltf file is JSON that lists the scene, its nodes, meshes and materials. It does not hold the heavy data itself. It points to it by file name:
{
"asset": { "version": "2.0" },
"buffers": [{ "uri": "chair.bin", "byteLength": 48200 }],
"images": [{ "uri": "chair_baseColor.png" }],
"nodes": [{ "name": "Chair", "mesh": 0 }]
}
The .bin file holds the binary data: vertex positions, normals, texture coordinates, triangle indices and animation keyframes. Textures are ordinary image files, usually PNG or JPEG.
A .gltf can also embed its buffers and images as base64 text inside the JSON. That gives you one file, but base64 makes the binary data about a third larger.
If a .gltf opens with missing textures or no geometry, a file it points to is missing or has been renamed. Drop the .gltf together with its .bin and images, or the whole folder or a ZIP, and MicroPlugins loads them as one model.
What is inside a .glb file?
A .glb is the same glTF packed into one binary file. It has a short header, then a JSON chunk with the same scene description, then a binary chunk that holds the buffers and images.
Because the binary data is stored as raw bytes, there is no base64 overhead. The whole model arrives in one file and one download.
Should I use glTF or GLB?
Use GLB when you
- Publish on a website or online store. One file is simpler to host, cache and embed. See how to embed a 3D model on a website.
- Share or upload a model. Email, chat and most 3D platforms handle one file better than a folder.
- Hand a model to a client or colleague. Nothing can go missing on the way.
Use .gltf when you
- Inspect or hand-edit the scene. Node names, material values and extensions are plain JSON.
- Track changes in Git. Text diffs show what changed between versions.
- Swap textures often. Replace an image file and the model picks it up, with no re-export.
- Debug an exporter. You can read exactly what your 3D software wrote.
Pack a .gltf into one GLB
Drop the .gltf with its .bin and textures, or the whole folder. Nothing is uploaded.
How to convert glTF to GLB, and GLB to glTF
glTF to GLB
- Open the glTF to GLB converter. The target is already set to GLB.
- Drop the .gltf together with its .bin and texture files. A folder or a ZIP works too.
- Click Convert and download a single .glb.
GLB to glTF
- Open the GLB to glTF converter.
- Drop your .glb and click Convert.
- Download a ZIP that holds the .gltf, its .bin and the texture images, ready to unzip and edit.
Want one self-contained .gltf instead? Open Options and turn on Embed buffers and textures in the .gltf before you add the file. The result is one file, about a third larger.
What changes when you convert
Between glTF and GLB the model is repackaged, not re-exported. Texture bytes, material variants and glTF extensions are kept as they are, and Meshopt compression is kept.
Two exceptions are worth knowing. Draco-compressed geometry is decoded and not compressed again, so that file comes out larger. And if you turn on a transform, such as scale, up axis or recentring, the model is rebuilt and its textures re-encoded. The report after each conversion lists what changed.
Is GLB smaller than glTF?
- Against a .gltf with separate files, a GLB is about the same total size. It adds only a small header and a few bytes of padding.
- Against a .gltf with everything embedded, a GLB is noticeably smaller, because base64 adds about a third to the binary data.
- Neither format compresses anything by itself. Real savings come from compressing the geometry (Draco or Meshopt) and the textures (for example WebP). Our guide to reducing GLB and glTF file size shows how.
Loading differs a little too. A GLB arrives in one request. A .gltf with separate files needs one request per file, but a texture shared by several models can then be downloaded and cached once.
Which apps open glTF and GLB files?
Both packagings are part of the same specification, so software that supports glTF 2.0 generally reads both. That includes web libraries such as three.js and Babylon.js, and desktop tools such as Blender.
Optional extensions vary more than the packaging does. A model that uses Draco or Meshopt geometry, WebP textures or KTX2 textures needs a viewer that understands those extensions, whether it is a .gltf or a .glb.
To check a file quickly, drop it onto the glTF viewer. It opens .gltf and .glb files in your browser, including ones compressed with Draco, Meshopt or KTX2.
Frequently asked questions
Is GLB the same as glTF?
Yes, in content. Both follow the glTF 2.0 specification and describe the same meshes, materials, textures and animation. GLB is the binary, single-file packaging of glTF; .gltf is the JSON packaging with separate data files.
Is GLB better than glTF?
For delivery, usually yes. A GLB is one compact file, so it is easier to host, share and embed. A .gltf is better while you are working on a model, because you can read the JSON, diff it and swap textures.
Can I open a .glb file in a text editor?
Not usefully. A GLB is binary, so a text editor shows mostly unreadable bytes. Convert it with GLB to glTF to get the readable JSON, or open it in the glTF viewer to see the model.
Why does my .gltf file show no textures?
A .gltf only points to its textures and .bin files by name. If one is missing, renamed or in another folder, it cannot load. Open the .gltf together with every file it references, or pack it all into a GLB.
Does converting between glTF and GLB lose quality?
No. The converter repackages the model and keeps texture bytes and glTF extensions as they are. The one exception is Draco-compressed geometry, which is decoded and saved uncompressed, so that file comes out larger.
Does a GLB work for AR on iPhone?
Not directly. AR Quick Look on iPhone and iPad uses USDZ. Convert your model with GLB to USDZ. Materials and textures are kept, textures over 4096 px are scaled down, and animation is not carried over.
Keep reading
Convert between glTF and GLB
Both directions, in batch, in your browser. Free, no account, and your files stay on your device.