Skip to content
3DToolBench

Convert GLB to STL

A GLB is a whole scene: several meshes, materials, textures, sometimes animation. An STL is one body of triangles. This tool flattens the first into the second in your browser, and gets the scale right on the way.

Drag a 3D file here, or.

This page is set up for GLB files. Other formats we can read work here too.

The file is read on your own computer. It is never uploaded.

Add a file to switch this on.

Your file is read by your own browser and never sent to a server. There is no upload, no account and no copy of your model anywhere but on your computer.

Scale, in the other direction

glTF measures in metres. Slicers read STL as millimetres. A model that goes straight across arrives one thousand times too small — a few hundredths of a millimetre wide, which most slicers show as a dot or reject outright.

This page defaults to reading metres and writing millimetres. Check the width, depth and height shown next to the 3D view before you download: if the numbers match the object you expected, the scale is right.

Everything becomes one object

A GLB scene can hold dozens of meshes, each in its own place in the scene, sometimes nested several levels deep. Each mesh is moved into its true position in the world first, so a part that sat ten centimetres away in the scene is written ten centimetres away in the STL.

All of them then become a single body, because that is what STL holds. If the pieces are not actually touching, you will get several loose shells in one file. The measurements panel says how many separate pieces there are, which is worth checking before printing.

What a printer cannot use

Textures, materials and colours are all dropped. So are animations, skinning and cameras. None of it can be printed and none of it fits in an STL.

Web models are often built to look right rather than to be solid: single-sided walls with no thickness, surfaces that overlap, meshes that do not close. The open-edge count beside the 3D view tells you whether what you have is a real solid or a shell that only looks like one.

An animated model arrives in its rest pose

If the GLB has animation, the shape written to the STL is the pose the mesh was modelled in, not the pose you happened to be looking at. That is not a choice this tool makes — it is where the vertices actually are in the file. Animation in glTF is a set of instructions for moving them, applied by the viewer at playback, and the stored mesh is the starting point those instructions move away from.

For a rigged character this is usually a T-pose or an A-pose: arms straight out, legs apart. If you wanted a particular frame, the pose has to be applied before the file gets here. In Blender, import the GLB, scrub to the frame you want, then use Object, Apply, Visual Geometry to Mesh, and export from there.

What survives, and what does not

Kept in the STL file

  • The shape of every mesh, in its correct place in the scene
  • A sensible size in millimetres

Lost on the way

  • Textures, materials and colours
  • Animation, skinning, cameras and lights
  • The division into separate named objects

How to convert GLB to STL

  1. Drop the .glb file in

    Everything in the scene is read: every mesh, however deeply nested, moved into its true world position.

  2. Set the input unit to metres and the output to millimetres

    This is the default and it is the setting that matters most here. Straight across without it, the model is a thousand times too small and most slicers show it as a dot.

  3. Check the number of separate pieces

    It is shown beside the 3D view. A GLB scene is often several meshes that were never joined, and in an STL they become loose shells in one file. That is fine for a slicer as long as you expected it.

  4. Check the open-edge count before you print

    Web models are frequently hollow shells with no thickness, because a viewer never sees the inside. If this number is not zero, the model is not solid and a slicer will do something unpredictable with it.

  5. Set the up axis to Z and download

    glTF is Y-up, slicers want Z-up. Then download the binary STL. The textures, materials and animation are gone at this point, which is what STL means.

GLB and STL compared

GLB and STL compared, row by row
PropertyGLB.glbSTL.stl
File contentsOne binary file: a small header, the same JSON as glTF, then all the buffers and images.Binary or plain text. Binary is an 80-byte header, a triangle count, then 50 bytes per triangle.
GeometryTriangles, with skinning weights and animation channels alongside them.Triangles only. Curves are approximated when the file is made, and cannot be recovered.
UnitsMetres, fixed by the specification.None. The file stores bare numbers, and every reader has to guess what they mean.
Colour and textureFull physically based materials, with the texture images packed inside the file.None. There is no place in the format for a colour, a material or a texture.
Separate objectsA scene graph of named nodes, each with its own position and rotation.One body. Several parts written into one STL become one undivided lump of triangles.
Published byThe Khronos Group, 2015, as the single-file packaging of glTF.3D Systems, 1987, for the first stereolithography machines.
Written byBlender, Sketchfab, Substance Painter, and every tool that ships models to the web.Every CAD program and every slicer, as the common denominator.

Questions

The result is microscopic in my slicer. Why?
The units were read as millimetres instead of metres. Set the input unit box to metres and the output to millimetres, then check the measurements shown next to the model.
Can I keep the colours?
Not in an STL. Convert to 3MF if you want colour that a printer can actually use, or keep the GLB if you only need it on screen.
My model has holes when I slice it.
Many web models are hollow shells rather than solids, because a viewer never sees the inside. The open-edge count on this page tells you before you waste a print. Filling those holes needs a repair tool such as Blender or Meshmixer.
My model is in a T-pose, not the pose I saw. Why?
Because that is the pose the mesh is actually stored in. Animation is applied by a viewer at playback and never changes the stored vertices. Apply the pose in Blender first if you need a specific frame.

Having it printed

If the part is larger than your bed, needs a material your printer cannot handle, or you do not have a printer, these will print it and post it to you. Work out what it would cost you first — the cost calculator on this site gives you a figure to compare against.

These are ordinary links, not paid referrals — we earn nothing if you use them. The converter above is the same whether you do or not.

Where to go next