GLB to STL Converter
Convert GLB models to STL directly in your browser. Geometry is processed locally, and your file is never uploaded.
Your GLB stays on this device. MeshWrench converts it to STL locally in your browser.
Up to 150 MB. STL cannot store materials, textures, vertex colors, animations or skins — surface geometry only. Metre-based coordinates are scaled ×1000 to millimetres.
Processed locally — nothing was uploaded.
- File name
- File size
- Scene
- Meshes
- Primitives
- Node instances
- Source vertices
- Output triangles
- Skipped degenerate triangles
- Width (mm)
- Height (mm)
- Depth (mm)
glTF stores dimensions in metres. STL has no unit field, so MeshWrench writes millimetre-scaled coordinates (×1000) for common slicer compatibility.
Batch processing is a Pro capability.
Pro batch tools are being prepared. Purchasing is not available yet.
Drag files here, or click to browse
GLB files only, same limits as single-file conversion.
How to convert GLB to STL
- Select a GLB file using the picker above.
- MeshWrench parses it locally, in a background worker — nothing leaves your device.
- Review the preview, dimensions and any warnings, then download the converted STL file.
What geometry is preserved
The converter resolves your GLB file's full scene graph: nodes, node transforms (translation, rotation, scale or an explicit matrix), and mesh instancing (the same mesh placed by more than one node). Indexed and unindexed primitives are supported, along with triangle, triangle-strip and triangle-fan topology. The output is one flattened triangle mesh with correct geometry and consistent, outward-facing normals, including through mirrored (reflected) node transforms.
What happens to materials and textures
STL stores surface geometry only. Materials, textures, UV coordinates and vertex colors are not included in the download — this is a limitation of the STL format itself, not something MeshWrench chooses to drop. MeshWrench never fetches an externally-referenced buffer or image; only a GLB's own embedded binary data is read. If your file includes any of these, a warning appears before you download.
How scenes and node transforms are handled
MeshWrench converts the GLB's default scene (or scene zero when none is specified). Every node's transform is composed with its parent's, all the way down the scene graph, so nested and mirrored placements convert correctly. Point and line primitives can't be represented in STL and are skipped with a warning; animations, skins and morph targets are not applied — only each mesh's undeformed base geometry converts.
How metres are converted to millimetres
glTF defines model dimensions in metres. STL does not store units, so MeshWrench writes millimetre-scaled coordinates for common slicer compatibility — applying a factor of exactly ×1000, once, after all node transforms are resolved. The source axis orientation is preserved; nothing is rotated.
What happens to animations and skins
Animations, skeletal skins and morph targets are not applied or baked into the output. MeshWrench converts each mesh's undeformed base geometry only — a warning appears before download whenever your file includes any of these, so the exported shape is never mistaken for a posed or animated result.
GLB versus STL
GLB (binary glTF 2.0) is a compact format that can describe full scenes: node hierarchies, materials, textures, animations and skins alongside the mesh data. STL stores only raw triangle geometry, with no units and no metadata, but remains the most widely supported format across slicers and CAD tools — which is why converting to it is useful even though it's the simpler format.
Why a GLB may fail to convert
- The file isn't a valid GLB container, or its internal chunk data is corrupted or truncated.
- The file references external buffer or image data instead of embedding it — MeshWrench never fetches external files.
- The file uses Draco or meshopt mesh compression, which MeshWrench doesn't support yet.
- The file requires a glTF extension MeshWrench doesn't recognize.
- No mesh in the file has a valid
POSITIONattribute, or the scene contains no triangle geometry at all. - The file is more complex (nodes, triangles, scene depth) than this tool's safety limits currently allow.
Is the file uploaded?
No. There is no server-side conversion route in MeshWrench. Your browser reads the GLB file, parses it, and builds the STL file, all on your device. You can verify this yourself: open your browser's developer tools, watch the network tab, and convert a file. No request containing your file — or any external resource it references — will appear.
Frequently asked questions
Is my GLB file uploaded?
No. The file is parsed and converted entirely in your browser, inside a background Web Worker. It's never sent to a server — check your browser's network tab while a file converts to confirm this yourself. MeshWrench also never fetches an externally-referenced buffer, image or file from a GLB.
Are materials and textures preserved?
No. STL stores surface geometry only — no material, texture, UV or vertex-color information exists in the format. If your GLB includes any of these, MeshWrench shows a warning before you download, but the STL itself never contains them.
What units does the downloaded STL use?
glTF/GLB defines model dimensions in metres. STL doesn't store units at all, so MeshWrench writes millimetre-scaled coordinates (multiplying by exactly 1000, once) for common slicer compatibility.
Are animations, skins and morph targets applied?
No. This converter exports each mesh's undeformed base geometry only — animations, skeletal posing and morph-target shapes are not applied or baked in. A warning appears before download if your file includes any of these.
Why did my conversion fail?
Usually because the file is corrupted, references external data MeshWrench can't load locally, uses Draco or meshopt compression MeshWrench doesn't support, or doesn't contain any convertible triangle geometry — see "Why a GLB may fail to convert" below for the full list MeshWrench checks for.
Explore free tools