usi3d

Guides · · By the usi3d team

STL vs OBJ vs GLB vs 3MF: differences and when to use each 3D file format

For printing, STL is enough for a single-colour part; 3MF is better because it stores units, several objects and filament colours. OBJ and GLB are graphics formats: they keep textures and materials, and GLB also holds animations in a single file. In usi3d's Convert 3D files tool you turn an STL, OBJ or GLB into STL, OBJ, GLB or 3MF in the browser, with no credits.

Four 3D printed vases of the same model in different finishes on a bench, next to a USB stick and a microSD card

Key points

  • STL: triangles only, with no units or colour. It is the most compatible format for printing single-colour parts.
  • 3MF: geometry in millimetres, several objects, filament colours and slicer settings. It is the project format of Bambu Studio, OrcaSlicer and PrusaSlicer.
  • OBJ: geometry with textures in separate files (MTL and images), with no reliable units.
  • GLB: everything in one file (mesh, materials, textures and animation), in metres with Y up; built for the web, games and augmented reality.
  • usi3d's Convert 3D files tool turns STL, OBJ or GLB files up to 30 MB into STL, OBJ, GLB or 3MF in your browser, with no credits.

What a 3D file format is

Almost every model you print is a mesh: a surface made of thousands of triangles. What changes from one format to another is what comes with those triangles: units, colours, textures, several parts, print settings or animations. Choosing well avoids the three most common letdowns: the part that arrives a thousand times too small, the model that loses its colours and the file your program will not open.

STL, OBJ, GLB and 3MF compared

FormatWhat it storesUnitsColourTypical use
STLTriangles onlyNot stored (mm assumed)NoPrinting single-colour parts; sharing on model repositories
OBJPolygons, normals and texture coordinates; materials in a separate .mtlNot storedYes, with textures in separate filesExchange between modelling programs
GLBMesh, materials, textures, skeleton and animation in a single fileMetres, Y upYes, materials and texturesWeb, viewers, games and augmented reality
3MFSeveral parts, per-face colours, materials and slicer settingsDeclared (mm by default)Yes, filament coloursPrint projects and multicolour parts

STL: the most compatible and the most basic

STL was born in the late 1980s alongside stereolithography and is still the format every slicer accepts. It stores a list of triangles, in binary or text (ASCII) form, and nothing else. It has no units: by convention it is read in millimetres, but if the author exported in inches the part arrives 25.4 times too small. Nor does it store colour, so a painted figurine loses its paint when saved as STL.

OBJ: the veteran of 3D graphics

OBJ supports polygons with more than three sides, normals and texture coordinates. Materials live in a separate .mtl file and textures in loose images: send only the .obj and it arrives without colour. Almost every modelling program opens it, as do many slicers, though they only read the geometry.

GLB: one file with everything

GLB is the binary form of glTF 2.0, the Khronos Group standard for bringing models to the web. It packs the mesh, materials, textures and, if present, the skeleton and animations into a single file. Its units are metres and its vertical axis is Y, whereas printers work in millimetres with Z up: hence the many models that turn up lying on their side or tiny when imported. The models usi3d creates with AI are viewed as GLB, with their texture.

3MF: the format designed for printing

3MF is maintained by the 3MF Consortium, made up of printer and software makers. It is a ZIP with XML files inside: it declares units, stores several parts with their positions, colours and materials and, in Bambu Studio, OrcaSlicer or PrusaSlicer projects, the plate and settings too. For a multicolour part it is the format you need, as we explain in how to paint a 3D model in several colours.

When to use each format

  • Printing a single-colour part: STL or 3MF. 3MF avoids unit mix-ups and is smaller because it is compressed.
  • Printing in several colours with an AMS, MMU3 or other feeder: 3MF, with the filament painting.
  • Keeping your slicing work or sending it to someone with your settings: your slicer's project 3MF.
  • Showing the model on a website or in an augmented reality viewer: GLB.
  • Carrying on editing in Blender or another program with its textures: GLB, or OBJ with its .mtl and images.
  • A mechanical part you are going to modify: ask for the original CAD file (STEP, for instance). A mesh does not keep exact dimensions or curves.
3D printed vase on a workbench next to a printer
The same part can travel in four different formats depending on the next step.

How to convert a 3D file with usi3d

  1. Open the file

    Go to Convert 3D files and choose or drop a self-contained STL, OBJ or GLB of up to 30 MB and 750,000 triangles. It is processed in your browser and uses no credits.

  2. Set the source units

    For STL and OBJ, choose whether the original was in millimetres, centimetres or metres. A GLB needs nothing: its units and Y axis are read automatically, and one without a real size, like those from Text and Image to 3D, is set to 120 mm tall.

  3. Check the part

    Rotate the model in the viewer and look at the dimensions in millimetres and the triangle count. If a figurine meant to be 10 cm tall reads 1,000 mm, the source units are wrong.

  4. Choose the format and download

    Download as STL, OBJ, GLB or 3MF. GLB keeps supported materials and 3MF keeps solid colours where possible.

What you lose when converting

Going from a rich format to a basic one always loses something. From GLB to STL the texture, materials and animation disappear; usi3d's converter also asks for a GLB without a skeleton or animations, so export it in a fixed pose first. From OBJ to STL you lose the colour. The other way round you gain nothing: an STL converted to GLB stays colourless until you paint it.

To turn the texture of an AI-made model into filament colours, use Colours and filament: it groups the shades into the spools you own and exports a colour 3MF. And if you see holes or odd faces when opening any file, run it through Repair an STL model first; the details are in how to repair an STL.

Which formats usi3d delivers

Models you create with Text to 3D or Image to 3D download as STL, GLB and 3MF, and as a ZIP. The 3MF holds the geometry in millimetres, without colour; to get the colours into your slicer, paint the GLB in Colours and filament and download the colour 3MF from there.

If any term in this article is new to you, such as normal, mesh or slicer, it is explained in the 3D printing glossary. And if your printer cannot find the file on the card or USB stick, see the guide to the file not showing up on the printer.

Frequently asked questions

What is the difference between STL and 3MF?

STL stores only triangles, with no units or colour. 3MF declares its units, supports several parts, filament colours and slicer settings, and is compressed.

Which file format is best for 3D printing?

3MF, because it avoids unit errors and keeps colours and settings. STL is still fine for single-colour parts and is the most compatible.

Can you 3D print a GLB file?

The usual route is to convert it to STL or 3MF first, the formats every slicer reads. When you do, bear in mind that GLB is in metres with the Y axis up.

How do I convert a GLB to STL for free?

With usi3d's Convert 3D files tool: open the GLB, check the dimensions and download it as STL. It runs in the browser, with no credits, for files up to 30 MB.

Why is my STL tiny or huge in the slicer?

Because STL stores no units. If it was exported in metres or inches, the slicer reads it as millimetres; scale it (×1,000 or ×25.4) or convert it stating the source units.

Does OBJ keep colours?

Yes, with a separate .mtl materials file and the texture images. If you only send the .obj, the model arrives without colour.

Try it on usi3d: Convert 3D files

Keep reading

Back to the blog