GLB to FBX Converter
Convert a GLB file to FBX right in your browser. The converter reads the GLB with the same 3D engine many web viewers use, places every part where the file puts it (moves, turns, scales and mirrored parts are baked in) and writes a binary FBX 7.4 file. Materials become FBX Phong materials, and the textures go inside the FBX as the original PNG or JPEG images, so one file carries everything; you can also get them as separate files in a ZIP. glTF is in metres and FBX counts in centimetres by default, so the converter writes centimetres (the numbers × 100) unless you choose metres, millimetres or inches, and the FBX says which unit it uses. Draco and meshopt compressed GLBs are read too. This converter writes one still shape: animations, bones and morph targets are not carried, and the rest pose or a frame you pick goes into the FBX. Every FBX is read back before you download it, and the page shows what it found. Nothing is uploaded.
100% private — everything runs in your browser. Everything runs in your browser; your GLB files are never uploaded.
File details
Size and direction
What goes in
Animation
Runs in your browser: your files are read on your device and never uploaded, and web addresses inside a model are not fetched. The 3D engine (three.js) loads from the jsDelivr CDN. You may use what you make here, including commercially, with no credit needed. The rights in your own models and textures stay as they were. Not affiliated with Autodesk.
How to convert a GLB to FBX
- Drop a GLB on the box (or a .gltf with its .bin and textures), or click Try a sample.
- Check the 3D view, the size line and the material table.
- Choose FBX units and the up direction, how textures are stored, and what goes in: normals, texture coordinates, vertex colours.
- Read the check line, then click Download FBX (or FBX + texture files as a ZIP).
What you can use it for
- Bring a web or AR model into a 3D app or game engine that imports FBX
- Hand a model to someone whose tools take FBX but not GLB
- Get one FBX file with the textures inside it instead of a folder of parts
- Move a model between Y-up and Z-up apps with the size stated
- Freeze a posed or animated model in one shape as a still FBX mesh
- Check what a GLB contains: parts, materials, textures, size
What carries over from GLB to FBX
| In the source | In the FBX from this converter |
|---|---|
| Meshes and parts | One FBX mesh per glTF mesh, named after the node; triangles kept as they are |
| Node transforms (move, turn, scale, mirror) | Baked into the vertex positions, so every part sits where it did (mirrored parts keep their faces pointing out) |
| Materials | FBX Phong: base colour to diffuse, alpha to opacity, emission, roughness to shininess |
| Textures | Embedded in the FBX as the original images, or as separate files in a ZIP |
| Texture coordinates | Written per corner, turned to the FBX convention (glTF counts from the top of the image, FBX from the bottom); texture offset and scale baked in |
| Normals | Written per corner (computed when the mesh has none, or after a pose change on a rigged mesh) |
| Vertex colours | Optional, written as colours with alpha |
| Animations, bones, morph targets | Not written: one pose (rest pose, or the first or last frame of a clip) |
| Cameras, lights, points and lines | Left out (meshes only here) and listed in the notes |
The glTF 2.0 specification puts the texture origin (0, 0) at the upper left corner of the image, while FBX texture coordinates count up from the bottom, so each v is written as 1 − v.
How glTF materials become FBX Phong materials
| glTF material | In the FBX | Notes |
|---|---|---|
| baseColorFactor | DiffuseColor | Written as sRGB numbers, as FBX readers expect |
| baseColorTexture | Texture on DiffuseColor | The original image |
| alpha and alphaMode BLEND | Opacity and TransparencyFactor | 1 is fully opaque |
| roughnessFactor | Shininess = 2 ÷ roughness⁴ − 2 (at most 1,000) | A rough match between the two lighting models |
| emissiveFactor, emissiveTexture | EmissiveColor (+ texture) | |
| normalTexture | Texture on NormalMap | |
| metallicFactor, metallicRoughnessTexture, occlusionTexture | Not written | No FBX Phong slot; listed in the notes |
What our test files give
| Test file | What it checks | Triangles | FBX meshes | Materials | Textures | FBX size | Bytes | Read back the same |
|---|---|---|---|---|---|---|---|---|
| crate-textured-anim-morph.glb | Textured crate on a base, a spin animation and a morph target (written in the rest pose) | 24 | 2 | 2 | 1 | 4 × 2.2 × 4 cm | 15,772 | Yes |
| nested.glb | Nested nodes: moved, scaled ×2, turned 90° and mirrored; two materials on one mesh; texture scaled ×2 | 24 | 4 | 2 | 1 | 4 × 13 × 6 m | 21,964 | Yes |
| plain-two-parts.glb | Two plain parts, two colours | 24 | 2 | 2 | 0 | 4 × 2.2 × 4 cm | 14,556 | Yes |
| colours.glb | Vertex colours on two parts | 3 | 2 | 1 | 0 | 300 × 100 × 0 cm | 10,028 | Yes |
| cylinder-meshopt.glb | Cylinder compressed with meshopt | 192 | 1 | 1 | 0 | 20.0012 × 30 × 20.0012 mm | 33,612 | Yes |
Computed by the converter’s own writer from our own test files, read with the same three.js version the page uses. Every FBX was read back by the three.js FBX reader and by our own FBX reader with the same triangle count, size, materials and texture slots.
Units and size
| FBX units | The sample crate (40 × 22 × 40 mm) becomes |
|---|---|
| Metres (UnitScaleFactor 100) | 0.04 × 0.022 × 0.04 m |
| Centimetres (UnitScaleFactor 1, the default) | 4 × 2.2 × 4 cm |
| Millimetres (UnitScaleFactor 0.1) | 40 × 22 × 40 mm |
| Inches (UnitScaleFactor 2.54) | 1.5748 × 0.866142 × 1.5748 in |
glTF measures everything in metres. An FBX file states its unit as a UnitScaleFactor in centimetres, so the same model can be written with different numbers and the same real size.
Next steps
Need a print file? GLB to STL makes an STL from the same GLB. Check a print model in the STL viewer, or make a normal map for a texture with the Normal Map Generator.
Sources
Sources: Khronos glTF 2.0 Specification (“The units for all linear distances are meters”); Blender’s FBX exporter source (io_scene_fbx: the FBX unit is the centimetre; binary record and footer layout); three.js 0.186.1 FBXLoader source (Phong and Lambert materials, Z-up files turned to Y-up, UnitScaleFactor read).
More free tools
Working with 3D models?
View, convert and make 3D files with free tools that run privately in your browser, with no sign-up and no watermark.
Frequently asked questions
Is this GLB to FBX converter free?
Yes. There is no sign-up, no watermark and no limit on how many files you convert. The conversion runs in your browser, so your GLB never leaves your device.
Are textures kept?
Yes. Each texture the materials use goes into the FBX as the original image from the GLB (PNG or JPEG, not re-compressed): the base colour as the diffuse map, plus normal and emission maps. Choose Separate image files to get them next to the FBX in a ZIP instead, or Leave out for colours only.
What happens to animations, bones and morph targets?
They are not written. This converter writes one still shape: the rest pose, or the first or last frame of an animation you pick. A rigged character comes out as a plain mesh in that pose, and morph targets are baked at the weights shown. Keep the GLB if you need the animation.
Will the FBX be the right size?
glTF files are in metres. FBX files state their unit with a UnitScaleFactor in centimetres, and centimetres are the usual FBX default, so by default a 2 m model becomes 200 units with UnitScaleFactor 1. Choose Metres to keep the numbers (UnitScaleFactor 100), or millimetres or inches. Apps that read the unit setting show the same real size either way.
How are glTF materials turned into FBX?
The base colour becomes the diffuse colour, alpha becomes opacity, emission stays emission, and roughness becomes a shininess value (rougher means less shiny). FBX Phong materials have no metalness or roughness maps, so those are listed in the notes and left out; the colours stay.
Which FBX version does it write?
Binary FBX 7.4, with Y-up or Z-up as you choose. Large arrays are compressed inside the file (you can turn that off). ASCII FBX is not written here.
Can it read Draco or meshopt compressed GLBs?
Yes. Both are decoded in your browser with the decoders that come with the same three.js version. Files that need KTX2 (Basis) compressed textures are not supported here yet, and the page says so.
How do I know the FBX is right?
Before the download is offered, the page reads the new FBX back with the three.js FBX reader (the same version that shows the model) and with our own FBX reader, and compares the triangle count, size, materials, texture slots and unit scale with what was written. If anything differs, the file is not offered. The files have been checked with these two readers; they have not been opened in every desktop 3D app.
Is my GLB uploaded?
No. The GLB is read and turned into FBX by JavaScript in your browser, so it never leaves your device. Only the 3D engine itself (three.js) is loaded from a public CDN. There is no sign-up and no watermark.