Convert GLB to glTF Online Free

Unpack a binary glTF (GLB) into the JSON-based glTF format. The scene graph, buffer data, and embedded textures are split into a `.gltf` document plus external `.bin` and image files — easy to inspect, version, and edit.

By ChangeThisFile Team · Last updated: March 2026

Quick Answer

ChangeThisFile converts GLB to glTF by unpacking the binary container into its component parts: a JSON `.gltf` scene description, a `.bin` buffer for mesh data, and any embedded images written out as separate files. The scene graph, nodes, meshes, materials, and animations are preserved. Powered by Assimp on the server. Free, encrypted upload, files auto-deleted after conversion.

Free No signup required Encrypted transfer · Auto-deleted Under 2 minutes Updated May 2026

Convert GLB (Binary glTF) to glTF

Drop your GLB (Binary glTF) file here to convert it instantly

Drag & drop your .glb file here, or click to browse

Convert to glTF instantly

GLB (Binary glTF) vs glTF: Format Comparison

Key differences between the two formats

FeatureGLBglTF
ContainerSingle binary fileJSON + external .bin + textures
File count1Multiple (1 .gltf + 1+ .bin + textures)
ReadabilityBinaryHuman-readable JSON scene description
EditingRequires unpackingDirect JSON edit possible
DistributionOne-file deliveryMulti-file delivery (or zip)
SpecKhronos glTF 2.0 binary containerKhronos glTF 2.0 JSON
CompressionEmbedded as-isExternal files compress independently

When to Convert

Common scenarios where this conversion is useful

Inspecting a model's scene graph

GLB hides everything in a binary blob. Unpack to glTF JSON to read the node hierarchy, material definitions, and animation channels in any text editor.

Versioning models in git

Plain-text glTF + a separate .bin diffs better in git than a monolithic GLB. You can review scene-graph changes in PRs.

Editing materials or extras

Want to tweak a PBR material parameter or add a `KHR_materials_*` extension? glTF JSON makes that a text edit instead of a binary patch.

Re-packing with a different toolchain

Convert GLB → glTF, edit, then re-pack with `gltf-pipeline` or another tool. Useful when the producer toolchain isn't easy to re-run.

Who Uses This Conversion

Tailored guidance for different workflows

For 3D Developers

  • Unpack a GLB to inspect or edit the scene graph in a text editor
  • Convert to glTF + textures so designers can swap a texture without touching the binary
  • Version your model assets in git as plain-text JSON + separate buffers
Re-pack with `gltf-pipeline --binary` when you're ready to ship — keeps loaders happy
Verify any `KHR_*` extensions you depend on are preserved before assuming round-trip equivalence

For Technical Artists

  • Edit a material parameter or extras block in the glTF JSON without re-exporting from Blender
  • Swap a base-color texture by replacing the referenced image file
  • Strip an unwanted animation channel by editing the JSON directly
Keep the original GLB as a backup — text edits can subtly desync buffer offsets if you're not careful
Re-validate the output in `<model-viewer>` or Babylon Sandbox before shipping

How to Convert GLB (Binary glTF) to glTF

  1. 1

    Upload your .glb file

    Drop your binary glTF file. Embedded buffers and textures are supported, up to 50MB per upload.

  2. 2

    Server-side unpacking

    Assimp reads the GLB, then writes out a `.gltf` JSON scene description, a `.bin` mesh buffer, and any embedded textures as separate image files.

  3. 3

    Download the glTF bundle

    The result is delivered as a zip containing the `.gltf`, `.bin`, and texture files. Uploaded GLB is deleted from disk immediately after conversion.

Frequently Asked Questions

For typical PBR glTF 2.0 scenes (nodes, meshes, materials, textures, animations, skins), yes — the same scene round-trips back to GLB cleanly with `gltf-pipeline` or Assimp. Some `KHR_*` and `EXT_*` extensions may be passed through but not actively validated; verify your specific extension is supported by Assimp's glTF importer.

Yes. Base color, metallic-roughness, normal, occlusion, and emissive maps are written out as separate texture files. The material definitions in the glTF JSON reference them by relative URI.

Standard glTF 2.0 animations (translation, rotation, scale, weights) and skinned meshes are preserved. The keyframe data lands in the `.bin` buffer; the channels and samplers are described in the JSON.

Yes. Positions, normals, tangents, UVs, vertex colors, and joints/weights for skinning all round-trip via the `.bin` buffer with their original layout.

Assimp is a large native library — shipping it in the browser as WASM would mean a multi-megabyte download on every visit. Server-side keeps the page light and handles edge cases better than browser-only libraries.

50MB per upload on the anonymous endpoint, 5 requests per minute per IP. Use the authenticated /v1/convert API for larger files.

Yes. HTTPS upload, ephemeral temp directory, files deleted immediately after the conversion response. Contents are not logged.

Yes — standard glTF 2.0 with external buffer and image references is the universal interchange format. Three.js's GLTFLoader, Babylon's loader, `<model-viewer>`, Blender's importer, and Unity's glTFast all accept this layout.

Use GLB instead — that's its purpose. glTF with external assets is best when you want to edit or version individual components.

Related Conversions

Need to convert programmatically?

Use the ChangeThisFile API to convert GLB (Binary glTF) to glTF in your app or script. Free tier included.

View API & Pricing
Read our guides on file formats and conversion

Ready to convert your file?

Convert GLB (Binary glTF) to glTF instantly — free, no signup required.

Start Converting