STL to GLB converter — a print file for the web

VTubeMe's STL to GLB converter writes your .stl as one .glb that three.js, model-viewer and game engines load. Triangles and coordinates are kept as they are; STL has no colour to carry. Free, five conversions a day, up to 50 MB.

Free · 5 conversions a day per accountNeed a VRM avatar instead? →

How do I convert an STL to GLB?

Drop the .stl on this page and download the .glb — nothing to install, and the mesh is not altered.

  1. 1Drop your .stl into the box above, binary or ASCII, up to 50 MB; sign in when prompted, there is nothing to pay.
  2. 2The file is opened in Blender on our server and written as a binary glTF. The Z-up model is turned to glTF's Y-up so it stands upright; the coordinates themselves are not scaled.
  3. 3Download the .glb. It has no material, because an STL has none — set a colour where you use it.
Accepts:
one .stl, binary or ASCII, up to 50 MB — about a million triangles in binary form.
Returns:
one .glb with the same triangles, flat-shaded, no material.
Costs:
nothing, and no credits — an account, though: five conversions per account per rolling 24 hours, shared across all the free format pairs. Conversions that fail are not counted.
Measured:
a 100-unit cube came out 100 units wide; a 16,867-triangle model kept all 16,867, and its vertex count went from 8,696 to 50,545.
  • glTF's unit is the metre: a part modelled as 100 mm becomes a 100-metre object until you scale it by 0.001.
  • No colour, UVs or rig can appear — the STL never had them.
  • The GLB is larger than the STL: a 50 MB STL of 999,698 triangles came out as an 80 MB GLB.

What actually happens to the file

An STL is a bare list of triangles, the format slicers and CAD exports settled on in the 1980s. A GLB is the web's 3D format: one binary file that three.js, Google's model-viewer, Babylon.js and Godot load directly. Putting a printable part or a scan on a web page is the usual reason to make this conversion.

Triangles cross one for one — 16,867 in, 16,867 out on our test model — but the vertex count grows about sixfold, 8,696 to 50,545. STL shades each facet flat, and glTF can only say that by giving every triangle its own three vertices. That is also why the GLB is bigger than the STL it came from: the same model went from 0.80 MB to 1.25 MB.

The result looks faceted because the STL is faceted. Smoothing the normals is a choice about your model, so it is left to you.

What this conversion cannot do

Measured on real files, not assumed. Everything below is a property of the formats or of the pipeline, and knowing it beforehand is cheaper than discovering it in your 3D tool.

The numbers are kept and the unit is not guessed

An STL stores coordinates and no unit. A cube written as 100 units on a side came out 100 units on a side in the GLB, in the FBX and in the OBJ — nothing is multiplied or divided. What changes is how the target reads those numbers: glTF defines its unit as the metre, so a part modelled as 100 mm arrives as a 100-metre object, and the FBX is marked as metre-sized units with the same 100 in it. Scale by 0.001 in the program you open it in if your STL was in millimetres. The Z-up axis of the STL is turned so the model stands upright in Y-up formats.

No colour, no UVs, no rig — there were none

STL is a list of triangles and nothing else: no materials, no texture coordinates, no vertex colours, no skeleton. The result is the same surface in a container that could hold all of those, with all of them empty. Colour has to be added in a 3D tool afterwards; no converter can recover what the file never had.

Uploads stop at 50 MB

This pair takes files up to 50 MB — half of what the GLB, FBX and OBJ pairs take among themselves, because dense scans and print files cost the converter far more memory per megabyte than a game character does. For scale: a binary STL of 50 MB is about a million triangles, and we converted one of 999,698. If your file is larger, decimate it first; MeshLab and Blender both do that without changing the format.

Five conversions a day, per account

This pair is free and takes no credits, but one account gets five conversions per rolling 24 hours across all the free format pairs together — the converter is one machine and this is what keeps it answering. Each slot frees itself 24 hours after it was used; nothing expires at midnight. Conversions that fail are not counted.

Frequently asked questions

Why is my model enormous in the GLB viewer?

Because STL has no unit and glTF does: it reads every number as metres. A 100-unit cube stays 100 units, which a slicer shows as 10 cm and a glTF viewer shows as a 100-metre block. Nothing was scaled; apply 0.001 in your viewer or scene if the STL was in millimetres.

Why did the vertex count go up six times?

STL shades each triangle flat. glTF expresses that by giving every triangle its own three vertices instead of sharing them, so 8,696 shared vertices became 50,545 while the 16,867 triangles stayed exactly the same.

Binary or ASCII STL — does it matter?

Both are read. We checked a binary STL and a hand-written ASCII one; they convert the same way. ASCII writes the same triangles out as text and is several times larger, so it reaches the 50 MB limit with far fewer triangles than the million or so a binary STL holds.

Can I just look at the STL first?

Yes, and nothing is uploaded for that: the STL viewer runs in your browser. Open the STL viewer →

The other format pairs

All 30 are free, all run the same pipeline, and all say what they drop.

Only want to look at the file? GLB viewer, FBX viewer and OBJ viewer all run on your own device — nothing is uploaded.

Is your model going into VTubing?

A scan, a print file or a CAD part is not an avatar, and no format change makes it one: a VTubing avatar needs a humanoid skeleton and a face that moves. If what you have is a rigged character in FBX or GLB, the VRM converter maps its bones onto the VRM humanoid and carries the materials over, ready for VSeeFace, Warudo and VNyan.

Open the VRM converter

More tools for this format