3D File Formats Explained — STL, STEP, OBJ, FBX, GLTF, 3MF

The 3D industry never settled on a single file format. Different tools, different workflows, and different eras each produced their own format. The result is a landscape where a file from a CAD program can't go directly to a game engine, a scan from a photogrammetry tool needs conversion before printing, and a format that works perfectly in one context is useless in another. This guide covers the formats you'll actually encounter.

Formats at a Glance

FormatTypeEditableMaterialsBest For
STLMeshNoNo3D printing
STEPBREPYesNoCAD exchange, machining
OBJMeshNoSeparate .mtl fileRendering, asset exchange
FBXMesh + rigNoYesGame engines, animation
GLTF / GLBMesh + PBRNoYes (embedded)Web, AR/VR, game engines
3MFMeshNoYes3D printing (modern)
PLYMesh / Point cloudNoVertex colorsScan data, research

STL — The 3D Printing Standard

STL (Stereolithography) is the oldest and most universally supported 3D printing format. It stores geometry as a list of triangles — no materials, no colors, no hierarchy. Every triangle has three vertices and an outward-facing normal. That's it. Every slicer supports it. Every mesh tool supports it. It's the lowest common denominator of 3D formats.

The format's main weakness is its simplicity. With no color or material data, what you see is what you get — a naked mesh. It also has no compression, so high-resolution scans produce enormous files. 3MF was designed to replace it, but STL remains dominant simply because it works everywhere.

STEP — Engineering Exchange Format

STEP (ISO 10303) is not a mesh format — it's a CAD exchange format. It stores geometry using BREP (Boundary Representation): mathematical descriptions of surfaces, edges, and vertices. A hole in a STEP file is a cylinder with a diameter. A fillet is a surface of revolution with a radius. This makes STEP files editable in any CAD program, unlike mesh formats where the design intent is encoded in triangles and lost.

STEP is the format engineers use to share designs between companies and between different CAD systems. When you get a model from a supplier, it's usually a STEP. When you send one out for machining, you send a STEP. Every professional CAD system — SolidWorks, Fusion 360, CATIA, NX, Creo — can read and write STEP natively.

OBJ — The Asset Exchange Standard

OBJ is a plain-text mesh format from Wavefront Technologies, developed in the 1980s. It stores vertex positions, texture coordinates (UVs), normals, and face definitions. Material properties live in a companion .mtl file that references texture images. OBJ is widely supported across rendering software, game engines, and 3D tools.

The format is verbose (it's plain text) and lacks animation support, but it's the most portable mesh format for visual assets. If you need to move a static mesh with UV maps between two pieces of software and nothing else works, OBJ usually does.

FBX — Film and Game Animation

FBX (Filmbox) is Autodesk's format for animated 3D content. It carries mesh geometry, bone rigs (skeletons), skinning weights, animation keyframes, materials, cameras, and lights — everything needed to bring a character or scene from a 3D tool to a game engine or film renderer. Unity, Unreal, and most real-time engines import FBX directly.

The format is binary (though a text variant exists), compact for its complexity, and widely supported. Its main drawback is that it's proprietary — Autodesk controls the specification and doesn't publish it fully, which can cause compatibility issues between versions and across tools. GLTF is the open alternative for game engines.

GLTF / GLB — The Web 3D Standard

GLTF (GL Transmission Format) is an open standard from the Khronos Group designed for real-time 3D on the web and in game engines. It stores geometry, PBR (physically-based rendering) materials, animations, rigs, and scene hierarchy in a JSON-based format. GLB is the binary-packed single-file version — everything in one file instead of separate .gltf, .bin, and texture files.

GLTF is increasingly the default for web 3D (Three.js, Babylon.js, model-viewer), AR/VR (WebXR), and modern game engines. If you're shipping a 3D asset for the web or for AR, GLTF/GLB is the right format. Blender exports GLTF natively. Sketchfab uses GLTF internally.

3MF — Modern 3D Printing

3MF (3D Manufacturing Format) was created by Microsoft and a consortium of 3D printing companies to replace STL for printing workflows. Unlike STL, 3MF supports color, materials, multiple objects in one file, print settings, and support structures. It's a ZIP archive containing an XML model and associated textures.

PrusaSlicer, Bambu Studio, and Cura all support 3MF. It's particularly useful for multi-material or multi-color prints where STL's lack of color data is a hard limit. Adoption is growing, but STL still dominates in raw numbers because of installed base.

PLY — Point Clouds and Scan Data

PLY (Polygon File Format, or Stanford Triangle Format) comes from academia and is commonly used for storing 3D scan data and point clouds. It supports arbitrary per-vertex and per-face properties — not just position, but also color, intensity, normal, and custom attributes. This makes it the preferred format for research tools, LiDAR data, and photogrammetry output.

PLY is not widely supported in commercial tools but is the default in MeshLab, CloudCompare, Open3D, and academic pipelines. If you receive scan data from a research system, it's probably PLY.

How to Choose

The right format depends entirely on what you need to do next with the file. Printing a part? STL or 3MF. Editing a design in CAD? STEP. Shipping a game character? FBX or GLTF. Putting a 3D model on a website? GLTF/GLB. Processing scan data? PLY. Rendering a scene with custom materials? OBJ or FBX. When in doubt, STEP preserves the most information for mechanical geometry; GLTF preserves the most information for visual assets.

Need to convert between formats? Our converters handle all the common pairs.

Browse Converters