3D file formats, explained

All 75 formats below can be read here; 19 of them can also be written. Each has a page of its own saying what it holds and what it converts to. If you are not sure what to convert to, the answer is almost always GLB.

Everyday interchange

The formats most pipelines already speak. If you are choosing a target, choose from here.

CAD and engineering

Solid models, drawings and building information. Mostly boundary representations rather than triangles.

Digital content creation

Native and semi-native scene files from the big authoring packages.

Games and engines

Model and animation formats that shipped inside a game or an engine.

Scanning, voxels and point clouds

Formats that describe measured or sampled geometry rather than modelled surfaces.

Motion, toolpaths and the rest

Everything that is not a static mesh: skeletal capture, machine instructions, packaging.

Also here

What each format can hold

The one table worth keeping open while you decide. 75 readable, 19 writable.

FormatExtensionReadWriteMaterialsTexturesAnimation
OBJ.objYesYesYesYesNo
FBX.fbxYesYesYesYesYes
glTF.gltfYesYesYesYesYes
GLB.glbYesYesYesYesYes
STL.stlYesYesNoNoNo
PLY.plyYesYesNoNoNo
DAE.daeYesYesYesYesYes
3DS.3dsYesYesYesYesNo
3MF.3mfYesYesYesYesNo
AMF.amfYesYesYesNoNo
VRML.wrlYesYesYesYesNo
USDZ.usdzYesYesYesYesYes
VOX.voxYesNoYesNoNo
PCD.pcdYesYesNoNoNo
XYZ.xyzYesYesNoNoNo
LWO.lwoYesNoYesYesNo
VTK.vtkYesNoNoNoNo
KMZ.kmzYesNoYesYesNo
DRC.drcYesNoNoNoNo
USD.usdYesNoYesYesYes
USDA.usdaYesYesYesYesYes
USDC.usdcYesNoYesYesYes
G-code.gcodeYesNoNoNoNo
NC.ncYesNoNoNoNo
X.xYesNoYesYesYes
OFF.offYesYesNoNoNo
ASE.aseYesNoYesYesYes
AC3D.acYesNoYesYesNo
MS3D.ms3dYesNoYesYesYes
MD2.md2YesNoYesYesYes
MD3.md3YesNoYesYesYes
MD5.md5meshYesNoYesYesYes
MDC.mdcYesNoYesYesYes
MDL.mdlYesNoYesYesYes
NFF.nffYesNoYesNoNo
BLEND.blendYesNoYesYesNo
DXF.dxfYesYesYesNoNo
LWS.lwsYesNoYesYesYes
LXO.lxoYesNoYesYesNo
SMD.smdYesNoYesYesYes
COB.cobYesNoYesYesNo
B3D.b3dYesNoYesYesYes
IQM.iqmYesNoYesYesYes
OpenGEX.ogexYesNoYesYesYes
PMX.pmxYesNoYesYesYes
BVH.bvhYesNoNoNoYes
CSM.csmYesNoNoNoYes
NDO.ndoYesNoNoNoNo
SIB.sibYesNoYesNoNo
Q3O.q3oYesNoYesYesNo
XGL.xglYesNoYesNoNo
HMP.hmpYesNoNoNoNo
UC.ucYesNoYesYesNo
Ogre XML.mesh.xmlYesNoYesYesYes
3DM.3dmYesNoYesYesNo
STEP.stepYesNoYesNoNo
STP.stpYesNoYesNoNo
IGES.igesYesNoYesNoNo
IGS.igsYesNoYesNoNo
BREP.brepYesNoNoNoNo
IFC.ifcYesNoYesNoNo
SKP.skpYesNoYesYesNo
DWG.dwgYesNoNoNoNo
MAX.maxYesNoYesYesNo
RAW.rawYesYesNoNoNo
TER.terYesNoNoNoNo
X3D.x3dYesYesYesYesNo
IRRMESH.irrmeshYesNoYesYesNo
IRR.irrYesNoYesYesNo
M3D.m3dYesNoYesYesNo
SLDPRT.sldprtYesNoNoNoNo
SLDASM.sldasmYesNoNoNoNo
SLDDRW.slddrwYesNoNoNoNo
RBXM.rbxmYesNoYesNoNo
RBXL.rbxlYesNoYesNoNo

How to choose one

For anything that will be looked at on the web or in a viewer, use GLB. It is one file, it carries PBR materials, textures and animation, and every modern engine reads it. For 3D printing use 3MF rather than STL, because it records units, colour and the arrangement on the build plate that STL has no field for. For handing a solid model to another CAD package use STEP, which keeps the exact surfaces rather than a triangulation of them. For Apple's AR Quick Look use USDZ.

Everything else on this list exists because some program wrote it. That is a good enough reason to be able to read it, and a poor reason to convert into it.

Once you have picked, the converter does the work in your browser. You can also inspect a model before converting it, compress it, or render it to an image. Some of the reverse engineering behind these readers is written up on the blog.