If you have used 3D models on the web recently, viewed a product in augmented reality on your phone, or imported assets into a modern game engine, you have almost certainly encountered a GLB file. The format has rapidly become the default choice for delivering 3D content to real-time rendering applications, and for good reason. GLB solves problems that older formats like OBJ and STL cannot: it packages everything a 3D model needs, including geometry, materials, textures, and animations, into a single compact binary file that loads fast, renders correctly across different platforms, and works out of the box without manual configuration.
GLB and GLTF: The Relationship
To understand GLB, you first need to understand GLTF. GLTF stands for GL Transmission Format. It was created by the Khronos Group, the industry consortium that also maintains OpenGL, Vulkan, WebGL, and OpenXR. The Khronos Group describes GLTF as "the JPEG of 3D," a universal interchange format designed to be the standard way to transmit 3D content across applications and platforms.
GLTF version 2.0, released in June 2017, defines two file variants:
- GLTF (.gltf) is a JSON text file that describes the 3D scene's structure: meshes, materials, animations, cameras, lights, and the scene hierarchy. It references external binary buffer files (.bin) that contain the actual vertex data and animation keyframes, and it references external texture image files (.png or .jpg). A complete GLTF asset might consist of five or more separate files.
- GLB (.glb) is the binary container variant. It packs the JSON scene description, all binary buffer data, and all texture images into a single self-contained file. One file. Everything included. Nothing external to manage or lose.
GLB is GLTF. They share the exact same data model, the exact same material definitions, and the exact same feature set. The only difference is packaging. GLB puts everything into one file; GLTF spreads it across multiple files. For web delivery, sharing, and embedding, GLB is almost always the preferred variant because a single file is easier to host, transfer, cache, and manage than a collection of files with interdependencies.
What GLB Contains
Mesh Geometry
GLB stores triangle mesh geometry in compact binary buffers. Vertex positions, normals, texture coordinates, vertex colors, and face indices are all packed as typed arrays of floating-point or integer values. This binary storage is vastly more compact and faster to parse than the text-based formats used by OBJ and ASCII STL. A model that produces a 100MB OBJ file might be only 15MB as a GLB, and it loads in a fraction of the time because there is no text parsing overhead.
GLB supports indexed geometry, which means vertices shared by multiple triangles are stored only once and referenced by index. This eliminates the redundancy that inflates STL file sizes, where every triangle independently lists all three of its vertex positions even when adjacent triangles share the same vertices.
PBR Materials
This is arguably GLB's most important feature. The format uses a physically-based rendering (PBR) material model based on the metallic-roughness workflow. Each material defines a set of properties that describe how light interacts with the surface:
- Base color — the surface color or albedo, either as a solid color or a texture map
- Metalness — how metallic the surface is (0 for dielectrics like plastic and wood, 1 for metals like steel and gold)
- Roughness — how rough or smooth the surface is (0 for mirror-smooth, 1 for completely matte)
- Normal map — adds fine surface detail like bumps and grooves without adding geometry
- Occlusion map — describes how much ambient light reaches each part of the surface
- Emissive map — defines areas of the surface that glow or emit light
Because PBR materials are physics-based rather than arbitrary, they look consistent and correct across different rendering engines and viewers. A GLB material that looks right in Three.js will also look right in Babylon.js, in Unity, in Unreal Engine, and in GeometryViewer. This cross-platform consistency is a massive advantage over older material models like OBJ's Blinn-Phong system, where materials often look different in every application.
Textures
Texture images are embedded directly in the GLB file as binary data, typically in PNG or JPEG format. This eliminates the missing-texture problem that plagues OBJ files, where the model and its textures are separate files that can become separated during transfer. When someone sends you a GLB file, you have everything. There are no companion files to lose, no directory structures to preserve, and no relative paths to fix.
Animations
GLB supports multiple types of animation:
- Skeletal animation — bones/joints that deform the mesh, used for character animation and mechanical rigging
- Morph targets (blend shapes) — predefined deformations that can be blended together, used for facial expressions and shape variations
- Node transforms — animating the position, rotation, and scale of objects in the scene hierarchy
Animations are stored as keyframe tracks with interpolation (step, linear, or cubic spline). A single GLB file can contain multiple animation clips, each targeting different nodes and properties. This makes GLB suitable for character models with walk, run, and idle animations, product models with opening and closing animations, and architectural walkthroughs with animated doors and windows.
Neither STL nor OBJ support any form of animation, making GLB the clear choice when you need to deliver animated 3D content.
Scene Hierarchy
GLB can represent a hierarchy of nodes (objects) with parent-child relationships. A car model might have the body as the root node, with four wheel nodes as children, each with its own transform. This hierarchical structure is essential for interactive applications where different parts of the model need to be manipulated independently, like opening a car door or rotating a wheel.
Why GLB Became the Web Standard
Several factors converged to make GLB the dominant format for 3D on the web.
Khronos Group backing. GLTF was created by the same organization that maintains WebGL, the graphics API that powers 3D rendering in web browsers. This alignment means GLTF's data structures map efficiently to WebGL's buffer and texture APIs, resulting in fast loading with minimal processing overhead.
Single-file packaging. Web delivery strongly favors single-file assets. Each HTTP request has overhead. A model that requires five separate files (OBJ + MTL + three textures) means five requests, five potential points of failure, and five cache entries to manage. A single GLB file means one request, one cache entry, and zero missing-file problems.
Framework adoption. Every major WebGL framework added first-class GLTF/GLB support: Three.js, Babylon.js, PlayCanvas, A-Frame, and Google's model-viewer web component. When a developer building a 3D web experience asks "what format should I use," the answer from every framework's documentation is GLTF/GLB.
AR platform support. Google's Scene Viewer on Android uses GLB directly. Apple's AR Quick Look uses USDZ, but toolchains convert from GLB to USDZ automatically. Meta's Spark AR, Snapchat's Lens Studio, and other AR platforms all support GLB import. If you produce a 3D model in GLB, you can reach virtually every AR platform with minimal conversion.
Search engine 3D results. Google uses GLTF/GLB for 3D models that appear directly in search results. When you search for certain products or animals on Google, a 3D model appears that you can view in AR. These models are delivered as GLB files.
Open a GLB File
Drop any GLB file into GeometryViewer to see it with full PBR materials, textures, and animations. No installation, no account, works on desktop and mobile.
Open GLB ViewerHow to Open a GLB File
In the Browser
The fastest way to view a GLB file is in an online viewer like GeometryViewer. Drag the file onto the page and the model renders with full PBR materials, textures, and animations. This is the quickest way to inspect a GLB file without installing any software. Other online options include the official Khronos Group glTF sample viewer and Don McCurdy's GLTF Viewer.
In 3D Software
Blender has native GLTF/GLB import and export. File, Import, glTF 2.0 opens any GLB file with materials and animations intact. Unity and Unreal Engine both import GLB assets. Adobe Substance Painter and Substance 3D Stager support GLB. Most modern 3D software released or updated after 2020 includes GLTF/GLB support.
On Mobile
On Android, you can open GLB files directly in Google's Scene Viewer, which launches automatically when you tap a GLB link in Chrome. On iOS, GLB files can be converted to USDZ for viewing in AR Quick Look, or viewed directly in Safari using web-based viewers like GeometryViewer.
GLB vs Other Formats
GLB vs STL: STL stores only triangle geometry with no materials, colors, textures, or animations. GLB stores everything. Use STL for 3D printing; use GLB for everything else.
GLB vs OBJ: OBJ supports materials and textures but uses an outdated Blinn-Phong material model, requires multiple separate files, and does not support animations. GLB has PBR materials, single-file packaging, and full animation support. GLB is the modern replacement for OBJ in most workflows.
GLB vs FBX: FBX is Autodesk's proprietary format widely used in game development and animation pipelines. GLB is an open standard with broader web and AR support. For web delivery, GLB is preferred. For game engine pipelines that are deeply integrated with Autodesk tools, FBX remains common.
GLB vs USDZ: USDZ is Apple's preferred 3D format for AR Quick Look on iOS. It is based on Pixar's Universal Scene Description (USD) format. GLB has broader cross-platform support, but USDZ is required for native iOS AR experiences. Many workflows produce GLB as the primary format and convert to USDZ for Apple devices.
Creating GLB Files
Most 3D modeling applications can export to GLB. In Blender, use File, Export, glTF 2.0 and select the "GLB" format option. In Substance Painter, export textures for GLTF and use the built-in GLTF export. Online tools like glTF Transform, GLB Packer, and Gestaltor can convert between GLTF and GLB, optimize textures, and apply Draco mesh compression to reduce file size further.
For the smallest possible file size, apply Draco compression during export. Draco is a geometry compression library developed by Google that can reduce mesh data size by 80 to 95 percent with minimal visual quality loss. Most GLTF/GLB export tools offer a Draco compression option.