AccountTry Pro free

3D File Formats Explained: Which One Should You Use?

Every 3D file format was designed for a specific job, and choosing the right one comes down to what the file must carry: exact geometry, colour and texture, animation, or machine instructions.

Updated 20 October 2026 · 7 min read

This guide explains the common 3D file formats – STL, OBJ, 3MF, STEP, IGES, glTF/GLB, FBX, PLY, USDZ and G-code – in practical terms: what data each one stores, which software and industries rely on it, and which format to choose for 3D printing, CAD, the web, augmented reality, animation and 3D scanning. A comparison table sits in the middle if you just need the overview.

Mesh vs CAD vs scene: the three families

Almost every 3D format falls into one of three groups, and that matters more than the extension:

  • Mesh formats (STL, OBJ, PLY, 3MF) describe a surface as many small flat polygons, usually triangles. Curves are approximated. Easy to read, universally supported, but not editable as a design.
  • CAD (B-rep) formats (STEP, IGES) store exact mathematical surfaces – planes, cylinders, NURBS – and how they connect into solids. A 10 mm hole stays a perfect 10 mm hole.
  • Scene formats (glTF/GLB, FBX, USDZ) carry meshes plus materials, textures, cameras, lights, hierarchies and often animation. Built for rendering, games, web and AR.

G-code is the odd one out: it is not a model at all but a list of machine instructions.

STL: the 3D printing baseline

STL dates from 1987 and the first commercial stereolithography systems. It stores a list of triangles, each with three vertices and a normal. That is all: no units, no colour (apart from non-standard extensions), no object names, no shared vertices. Binary STL uses 50 bytes per triangle plus an 84-byte header, so a 1-million-triangle model is about 50 MB. ASCII STL stores the same data as text and is several times larger.

Use it for: sharing printable parts, maximum compatibility with slicers and online services. Watch out for: unit ambiguity (millimetres are assumed by most slicers) and mesh errors. Open one in the STL viewer to check size and shape.

OBJ: the simple interchange mesh

Wavefront OBJ is a plain-text format from the late 1980s. Unlike STL, it supports shared (indexed) vertices, polygons with more than three sides, UV texture coordinates and vertex normals. Materials and texture references live in a companion .mtl file, with textures as separate images. OBJ has no units and no animation.

Use it for: moving textured static models between 3D programs, photogrammetry outputs, and as a fallback when nothing else is accepted. Keep the .obj, .mtl and image files together, or textures will be missing.

3MF: the modern printing format

3MF (3D Manufacturing Format) is maintained by the 3MF Consortium, whose members include Microsoft, HP, Autodesk and other industry companies. A .3mf file is a ZIP package containing XML. It stores an indexed mesh with explicit units, multiple objects with positions, colours and materials, thumbnails, and – in PrusaSlicer, Bambu Studio, OrcaSlicer and others – complete project settings. Thanks to indexing and compression, it is usually much smaller than the equivalent STL.

Use it for: anything you print yourself, multi-part and multi-colour jobs, and archiving slicer projects. Our STL vs 3MF guide covers the differences in detail.

STEP and IGES: exact CAD geometry

STEP (ISO 10303, .step/.stp) is the standard neutral format for exchanging solid models between CAD systems such as SolidWorks, Fusion, Inventor, Creo, CATIA and FreeCAD. It holds exact B-rep geometry, units, part names, assembly structure and, depending on the protocol, colours and manufacturing annotations. It does not hold the feature history.

IGES (.igs/.iges) is the older predecessor from 1980. Its last version, 5.3, was published in 1996. It is strongest at surfaces and curves; solids often arrive as loose surfaces that need sewing. Today it survives mainly in legacy workflows and some surface-modelling and tooling contexts. When you have a choice, request STEP.

Use them for: engineering, machining, injection moulding and any design that will be edited further. View them without CAD in the STEP viewer.

glTF and GLB: 3D for the web

glTF 2.0 is a royalty-free Khronos Group standard designed for efficient transmission and loading. It stores meshes, physically based (PBR) materials, textures, scene hierarchy, cameras, skins and animations. The .gltf variant is a JSON file with separate binary and image files; .glb packs everything into one binary file. Extensions add mesh compression (Draco, meshopt) and GPU-friendly textures (KTX2).

Use it for: web viewers, e-commerce product views, Android AR, and real-time engines.

FBX: animation and game pipelines

FBX is a proprietary Autodesk format, common in Maya, 3ds Max, MotionBuilder, Blender, Unity and Unreal. It handles meshes, materials, skeletons, skinning, blend shapes, cameras, lights and animation curves. The specification is not openly published and versions differ, so files from one program occasionally import incorrectly into another.

Use it for: rigged characters and animation transfer between DCC tools and game engines. For delivery to the web, convert to GLB.

PLY: scans and point clouds

PLY (Polygon File Format, also called the Stanford Triangle Format) was created at Stanford in the 1990s. It has ASCII and binary forms and a flexible header that declares arbitrary per-vertex properties, which is why it is popular for per-vertex colour, confidence values and normals. It can store a mesh or just a point cloud with no faces.

Use it for: 3D scanner and photogrammetry output, research data, coloured point clouds. For printing, convert with PLY to STL (vertex colours are dropped; point clouds need meshing first).

USDZ: AR on Apple devices

USD (Universal Scene Description) was developed by Pixar. USDZ is a single-file, uncompressed ZIP package of USD data and textures, chosen by Apple for AR Quick Look on iPhone and iPad. It supports PBR materials and animation. Outside Apple's ecosystem, support is growing but still less consistent than glTF.

Use it for: "View in AR" on iOS, Safari and Apple's Reality tools. Typical workflow: author or export GLB, then convert with GLB to USDZ.

G-code: instructions, not a model

G-code is what a slicer produces: line-by-line commands such as move to X/Y/Z, extrude this much filament, set temperature. It is specific to a printer, nozzle, material and slicer profile. You cannot meaningfully turn G-code back into an editable model, and a G-code file sliced for one printer can damage or crash another. Bambu printers use a .gcode.3mf package; resin printers use their own sliced formats instead of G-code.

Rule of thumb: share models (STL/3MF/STEP), not G-code, unless the recipient has the identical machine and material.

Comparison table

FormatGeometryUnitsColour / textureMultiple objectsAnimationMain users
STLTrianglesNoNo (non-standard only)NoNo3D printing
OBJPolygonsNoYes (via .mtl + images)GroupsNo3D graphics interchange
3MFTriangles, indexedYesYesYesNo3D printing, slicer projects
STEPExact B-repYesAP214/AP242AssembliesNoMechanical CAD
IGESExact surfacesYesLimitedYesNoLegacy CAD, surfacing
glTF / GLBTriangles, indexedMetres by specPBR materialsScene graphYesWeb, real-time, Android AR
FBXPolygonsYesYesScene graphYesAnimation, games
PLYTriangles or pointsNoPer-vertex colourNoNoScanning, research
USDZPolygonsYesPBR materialsScene graphYesApple AR
G-codeToolpathsYesNoNoNoPrinter firmware

Which 3D file format should you choose?

For 3D printing

Use 3MF for your own prints, multi-part plates and colour jobs. Use STL when publishing or sending to a print service, because everything accepts it. Keep a STEP master for functional parts you may need to change. Convert between them with STL to 3MF as needed.

For CAD and engineering

STEP, ideally AP242 or AP214. Mesh formats lose the exact geometry that machining and further design depend on. Converting a mesh to STEP wraps triangles in a STEP container but does not recreate true surfaces.

For the web and e-commerce

GLB: one file, fast to load, supported by three.js, Babylon.js and the model-viewer web component. Compress meshes and resize textures before publishing.

For AR

USDZ for iPhone and iPad, GLB for Android and the web. Many product pages ship both.

For animation and games

FBX between authoring tools and engines; glTF/GLB where an open format is accepted, which includes Blender, Godot and web engines.

For 3D scanning

PLY for raw scans with vertex colour, OBJ for textured photogrammetry meshes, then STL or 3MF once cleaned up for printing.

FAQ

What is the most common 3D file format?

For 3D printing, STL is still the most widely shared format. For CAD exchange it is STEP, and for web and real-time 3D it is glTF/GLB.

Can I convert a mesh (STL, OBJ) into an editable CAD model?

You can wrap a mesh in a STEP file, but it remains a collection of flat faces. Recreating true cylinders and planes needs reverse engineering in CAD software.

Which format keeps colours and textures?

OBJ (with .mtl and images), 3MF, glTF/GLB, FBX and USDZ keep colour and texture data. PLY keeps per-vertex colour. STL and G-code do not.

Is 3MF better than STL?

For your own printing work, usually yes: it stores units, multiple objects, colours and settings, and is smaller. STL remains the safer choice when you do not know what software the recipient uses.