Free online GLB viewer
GLB viewer that keeps the whole scene in one file
Drop a .glb here and it arrives whole: materials, textures and node hierarchy included, because that is the entire premise of the binary packaging. No account, no upload — the container is decoded in this tab. Orbit it, switch to wireframe to judge the topology, and the measurements sit below: how large the model is, how many triangles it took, how much surface it has, and how much space it encloses once the shell proves closed.
- 100% free
- No signup
- Materials and textures
- No size limit
- Nothing uploaded
Drag a file anywhere on this page to open it. F fits the view, W switches shading, G the grid, R spins it.
How to open a GLB file
Three steps, and you know its materials, its topology and its real size.
Drop the .glb in
One file is all it takes, which is the entire point of the format: geometry, materials, textures and the node hierarchy are packed into a single binary container with a JSON header. There is no companion .bin to remember and no texture folder to lose, so a GLB that opens on your machine opens on everyone else's.
Orbit it under neutral light
The model keeps the materials the file defines — base colour, metalness, roughness and any texture maps — and is lit here by one hemisphere light and two directional lights rather than an HDR environment. That is a deliberate choice: an environment map flatters metal and hides geometry, and this page is for judging shape and scale rather than for making a render look expensive.
Check the scale before you trust it
glTF is metres by convention, so a 40 mm knob authored correctly reads 0.04 in the bounding box here. Multiply by 1000 to compare against a printer bed. If the numbers look like millimetres already, the model was exported from a printing pipeline that ignored the convention — which is common and not an error in itself, but it will be an error the moment the file reaches a renderer that expects metres.
Technical specifications
| Extension | .glb — binary glTF 2.0 |
|---|---|
| Kept | Geometry, PBR materials, embedded textures, node hierarchy |
| Read past | Animation clips, skins, cameras, lights |
| Not supported | Draco compression (KHR_draco_mesh_compression), KTX2 textures |
| Units | Metres by convention — multiply by 1000 for millimetres |
| File size | No fixed limit — past 100 MB you are told what it will cost this tab, then it opens |
Frequently asked questions
What is the difference between GLB and glTF?
They are the same format in two packagings. A .gltf is JSON that points at its geometry buffer and textures as separate files beside it; a .glb is that same JSON with the buffers and images embedded in one binary file. Everything a glTF can express, a GLB expresses identically — the difference is purely whether the payload travels with the description. That is why GLB is what you send to other people and glTF is what you keep in a repository where the .bin and the textures are versioned alongside it.
It says the file is Draco-compressed and will not open. Why?
Draco is an optional glTF extension that compresses vertex data, and decoding it needs a WebAssembly decoder of roughly a megabyte. This page does not ship one, because it would be downloaded by every visitor to serve the minority of files that use it. Re-export without Draco, or run gltf-transform to decompress the file. The error names the extension so you know that is what happened, rather than leaving you with a blank viewport.
Are my textures shown?
Yes when they are inside the file, which for GLB is the normal case — PNG and JPEG images embedded in the binary chunk are decoded and applied. The exception is KTX2 / Basis Universal textures, a compressed GPU format that needs a transcoder this page does not include; when the file uses those, the geometry loads and the error explains that the textures did not. The line under the viewport always states whether what you are looking at is textured, has vertex colours, or has no colour data at all.
Why does my animated GLB stand still?
Because animation is read past. A GLB can carry skins, joints and animation clips, and this page keeps the geometry and materials in the bind pose and ignores the rest — the measurements exist to answer dimensional questions, and a mesh in motion has no single bounding box to report. For checking a rig, load the file in Blender or a viewer built for playback; for checking whether it will fit on a plate or in a scene, the bind pose is the right frame.
The triangle count here is higher than my modeller reports.
Almost always because glTF splits a mesh wherever the material changes, and this page counts every triangle in every primitive across the whole scene. A modeller showing you one object with four materials reports its triangles once; the file contains four primitives, and the total is what gets drawn. The parts row appears under the panel whenever the scene holds more than one mesh, which is the quickest way to see that this is what happened.
Can I convert a GLB to STL here?
Not on this page yet — conversion is a separate wave of tools on this site. What this page gives you meanwhile is the information that decides whether the conversion is even worth doing: a GLB with textures and vertex colours loses all of it in STL, and a GLB that is not watertight will not slice no matter which converter you use. The watertight row and the colour line are both visible before you commit to a pipeline.
About GLB and the single-file idea
GLB is glTF 2.0 with the payload folded in. The specification calls glTF the “JPEG of 3D”, and the ambition is visible in what it standardises: a physically based material model, a node hierarchy, and a binary buffer layout that maps onto what a GPU wants without a conversion step in between. Where earlier interchange formats described how to build a model, glTF describes how to draw one — which is why it loads fast and why it has become the default for the web, for AR pipelines and for asset stores.
The single-file packaging solves a problem that sounds trivial until it costs you an afternoon. A model split across a .gltf, a .bin and a folder of textures is complete only as long as nothing separates them, and everything separates them: email, a download that grabs one file, a drag into a browser tab. GLB makes that failure impossible by construction. The trade is that a GLB is opaque to version control and awkward to edit by hand, which is exactly why the .gltf form still exists and is what most pipelines keep in the repository.
One thing GLB does not fix is scale discipline. The specification says distances are in metres, and most authoring tools respect it, but a model that came from a 3D-printing workflow often arrives with millimetre numbers and no marker saying so — a 40 mm part that claims to be 40 metres. Nothing in the file catches that, so the bounding box under the viewport is worth a glance before the model goes anywhere. If your source of truth is a printed part rather than a rendered one, 3MF is the format that states its unit outright.
Where your GLB is decoded
Every number on this page is worked out by JavaScript running in the tab you are reading it in. The model you open is read straight off your own disk — it is never uploaded, logged or kept, which is also why these tools carry on working after you disconnect from the network.
One clause specific to this page: the embedded textures are decoded by the browser's own image decoder inside this tab, exactly as the geometry is. No part of the file is sent anywhere to be unpacked.