MESHBY KINETIC CARVING
Modeling · Extrusion · Slicing · Help
Return to Kinetic Carving MembershipJoin
Fundamentals · FilesbeginnerAll printers~4 min read

STL, 3MF, OBJ, STEP and G-code

Short answer

STL, OBJ and 3MF describe a model's shape; STEP is a CAD file the slicer turns into triangles on import; G-code is the finished set of machine instructions the slicer writes. STL carries no units, colors or settings, while 3MF can carry units, colors, several parts and the full slicer setup, so save your own work as a 3MF project and keep STL for simple single-part exchange.

Two kinds of file: the shape and the instructions

Every print passes through two kinds of file. A model file (STL, 3MF, OBJ, STEP) describes the object. A print file (G-code for FDM, a printer-specific job file for resin) tells one particular printer how to build it with one particular set of settings. You download or design the first, and your slicer writes the second. The path between them is covered in CAD, Slicing and the Path to a Print.

FormatWhat it holdsWhat it leaves out
STLThe surface as a list of triangles, in binary or text (ASCII) formUnits, color, material, settings
3MFA zip-style archive: meshes, units, colors, several objects, and (from a slicer) the project settingsNothing essential for printing, but other slicers may ignore settings they do not recognize
OBJA mesh, plus optional material and texture referencesPrusa notes PrusaSlicer ignores OBJ material and texture data on import
STEP (.step, .stp)Exact CAD geometry from engineering softwareSlicers convert it to triangles on import
G-code (.gcode)Line-by-line machine commands for one printer and one set of settingsThe original model; you cannot sensibly re-slice it

STL: the common denominator

STL is the format almost every model site and slicer handles. Prusa describes it as storing only the geometry of an object as a series of surface triangles, and PrusaSlicer accepts both the binary and ASCII versions. Its weaknesses all come from that simplicity:

  • No units. Prusa calls STL objects "proportionless". The file holds numbers, not millimeters or inches, so the slicer assumes millimeters. A model drawn in inches arrives too small by the factor below.
  • No color or material. A multi-color model has to be split into several STL files and the colors assigned again by hand.
  • No validation. Prusa points out that STL is just a set of triangles, so holes, flipped faces and other mesh errors can be saved without complaint.
  • No settings. Supports, modifiers and print settings are lost when you share an STL.
FormulaInches to millimeters
size in mm = size in inches × 25.4

If an imported model is far too small and its designer worked in inches, scale it by 2540 percent. Check one known dimension in the slicer afterward rather than trusting the factor blindly.

3MF: when it beats STL

3MF is an open format kept by the 3MF Consortium. Its core specification puts a unit on every model, with allowed values from micron to meter and a default of millimeter Maker spec, so the size question that trips up STL is answered inside the file. Prusa lists what a 3MF can carry beyond the mesh: scene units, color and texture, several objects, a thumbnail, the printer profile, manually placed supports, modifiers and variable layer height settings. Prusa also notes the archive uses the same compression as a zip file.

Use 3MF when:

  • The model is multi-part or multi-color and the parts must stay aligned with their colors assigned.
  • Units matter, for example a part drawn in inches or a model you will hand to someone else.
  • You want to keep your setup. PrusaSlicer's Save Project writes a 3MF containing all objects, settings, modifiers and their parameters. Prusa says opening that project on another computer should still produce the same G-code.

One caution from the specification: the display color stored in a 3MF is for on-screen rendering only, and a program must not assume it changes the printed part. Printed color still comes from the filament or material you assign in the slicer.

OBJ and AMF

OBJ is common from 3D scanning and art software. For printing it behaves much like STL: PrusaSlicer imports the mesh and ignores the material and texture information. AMF was an earlier attempt at a richer format; Prusa still loads it but recommends 3MF instead.

STEP: CAD geometry

STEP files come from engineering CAD and describe exact curved surfaces rather than triangles. Slicers that accept STEP convert it on import: Prusa states the STEP file is triangulated during import. The conversion happens in the slicer, and some slicers let you control how finely curves are turned into triangles: Formlabs' PreForm, for example, offers chordal and angle tolerance settings for CAD imports. If your slicer does not accept STEP, export a mesh from your CAD program instead.

G-code: the print file

G-code is the output of slicing, not a model. It is a sequence of machine commands the printer runs in order. A G-code file is written for one printer, nozzle, material and set of settings, so a file sliced for someone else's machine may not suit yours. Always slice the model yourself for your printer unless the file comes from your printer's maker for your exact model.

Some printers read a compressed or packaged form of G-code instead of the plain text file. Your printer's documentation says which form it reads, and the slicer profile for your printer normally picks it for you.

Resin print files

Resin slicers also turn a model into a job file the printer reads, and the format is set by the printer maker. Formlabs' PreForm, for example, opens STL, OBJ, 3MF and STEP models and saves its own .form job, which holds the whole build scene. Use the slicer and output format your resin printer's documentation names, and keep the original model file so you can re-slice when you change resin or settings.

Which to keep

  1. Keep the original: the CAD file or STEP for your own designs, or the downloaded model.
  2. Save your slicer work as a 3MF project so supports, modifiers and settings survive.
  3. Treat G-code as disposable. Re-slice from the model or project whenever settings change.

Printing a relief model made for CNC carving raises its own scale and orientation questions; see Printing a CNC Relief STL.

Sources

Last reviewed 2026-11-05