Browser-local converter
STL to GLB converter
Turn an STL into a GLB you can drop into a web viewer, a game engine or an AR scene. The important part is the unit: glTF is defined in metres and an STL is almost always drawn in millimetres, so the conversion scales the geometry instead of leaving you a model a thousand times too large.
Drop your STL files here
STL, OBJ, PLY, GLB, glTF, 3MF, SVG and DXF. Nothing is uploaded: files are read and converted inside this tab. Checking what this device can handle...
Queue
No files yet. Drop models above, or use the file picker.
Output
Units
Size and placement
Repair and cleanup
These can change the shape, so they need a before-and-after review before export.
Inspection
Add a model to see its dimensions, mesh health and estimated volume.
What this STL to GLB conversion does and does not do
- glTF measures in metres. An STL states no unit, so you tell the workspace what its numbers mean and the geometry is scaled accordingly on the way out. Leave that wrong and your model arrives 1000 times too big or too small.
- STL carries no colour, materials or texture coordinates, so the GLB is written with geometry only. It will render untextured grey in most viewers until you assign a material downstream.
- STL stores no smooth normals. Recalculate normals with smoothing in the workspace before exporting, or the GLB will look faceted, which is a faithful rendering of what the STL actually contains.
- An unwelded STL has three unshared vertices per triangle, which makes a needlessly large GLB. Welding first is usually worth it for anything served over a network.
- The GLB is written uncompressed. Draco and meshopt compression are not applied, because that needs an encoder this site does not ship.
Troubleshooting
The model is enormous in my viewer
The source unit was almost certainly not what you told the workspace. A 100 mm part treated as metres becomes 100 metres. Set the unit correctly and export again.
It looks flat-shaded and faceted
That is what the STL holds: flat triangles with no shared normals. Run recalculate normals with smoothing before exporting and the GLB will carry per-vertex normals.
The GLB file is very large
Weld duplicate vertices first. An STL repeats every vertex for every triangle that touches it, and the GLB faithfully writes what it is given.
It renders grey with no colour
Expected: STL has no material data at all. Assign a material in the workspace, or set one in the tool you are importing into.
Questions
Is the GLB standards-compliant?
Yes. Positions carry the specification-required accessor minimum and maximum, buffer views are 4-byte aligned and the chunks are padded exactly as the container demands, so it passes strict validators.
Will it work in model-viewer, three.js and Babylon?
Yes, and every export is re-opened by the same parser a third-party tool would use, with triangle count, mesh count and bounding box compared against the source before you download.
Can I get a glTF plus .bin instead of a single GLB?
No. GLB is written because one self-contained file has no way to lose its buffer. A .gltf and its sidecar can be separated, and then neither half works.