An STL file holds only the surface shape of a model as triangles. A 3MF file can hold the shape together with units, colours, several objects and slicer settings in one package. Both print; 3MF carries more of the project with it.
Most 3D printing starts from one of two model formats, and the choice decides how much information survives the trip to the slicer.
What an STL file contains
A mesh of triangles describing the outer surface of the object, and nothing else: no units, no colour, no material, no information about which parts belong together. It is universal, which is why nearly every model site offers it.
What a 3MF file adds
Units, so the size is not guessed. Several objects and their arrangement on the plate. Colours and materials for multicolour printers. Slicer settings and print profiles, when the file is saved from a slicer project. It is a packaged format, closer to a project file than to a bare shape.
Where G-code fits
The slicer turns a model into G-code, the instructions a specific printer follows: temperatures, movements, speeds. G-code made for one printer and one filament is not a model and should not be shared as one; it only suits the machine it was sliced for.
Which to use
For downloading and sharing shapes, either works, and STL is the most widely accepted. For multicolour prints, projects with several parts or files that should reopen with their settings, 3MF keeps more of the work. Laser and cutting machines use different formats again, usually SVG or DXF for vector paths.
Questions makers ask before buying
Why do some STL models print at the wrong size?
Because STL has no units. A model drawn in inches but read as millimetres comes out far too small, and the slicer has to be told to scale it.
Is G-code the same kind of file?
No. G-code is the output of the slicer: machine instructions for one printer and one material. STL and 3MF describe the model; G-code describes how a particular printer should make it.
Last reviewed 15 September 2026