Runs on your device · Your file never leaves your device.
GLB and glTF are the same format wearing different clothes: GLB is one sealed binary file, glTF is readable JSON. Converting one to the other opens the model up so you can look at its structure, check what materials it declares, or edit something by hand.
Nothing is lost in the move. Geometry, materials, textures and animation all carry over — this is a repackaging, not a re-encoding. The binary data, texture images included, is written into the .gltf as text, which is why the file is about a third larger; Draco or meshopt compression in the GLB is kept as it was.
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.
Not for: Producing a .gltf with a separate .bin and loose texture files — the output is a single self-contained .gltf.
GLB files compressed with Draco or meshopt open, using decoders served from this site, and so do files with quantized geometry, texture transforms, WebP, AVIF or KTX2 images, lights and instanced copies of a mesh. Because the GLB is unpacked rather than rebuilt, its compression and its images reach the .gltf exactly as they were.
Nothing in the model. The JSON part of the GLB is written out as it was, and the binary part, which holds the geometry, the animation keyframes and the texture images, becomes one buffer inside the .gltf. Meshes are not split, JPEG images are not compressed again, every scene is kept, and extensions this site does not understand pass through untouched. The result is a single file, with no .bin and no loose images to keep together.
The .gltf is indented with two spaces, so it reads well in any text editor. Materials, nodes with their positions, rotations and scales, and the list of animations are plain JSON you can change by hand. The geometry, the animation keyframes and the images are not: they sit in one buffer, stored inside the file as base64 text, which takes about a third more space than the same bytes in a GLB. If you edit the JSON, leave the counts and offsets in accessors and bufferViews as they are, or the file will no longer match its buffer. To pack an edited file back into a GLB, use /gltf-to-glb.
This page in other languages: العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা