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.
| Format | Extension | Read | Write | Materials | Textures | Animation |
|---|---|---|---|---|---|---|
| OBJ | .obj | Yes | Yes | Yes | Yes | No |
| FBX | .fbx | Yes | Yes | Yes | Yes | Yes |
| glTF | .gltf | Yes | Yes | Yes | Yes | Yes |
| GLB | .glb | Yes | Yes | Yes | Yes | Yes |
| STL | .stl | Yes | Yes | No | No | No |
| PLY | .ply | Yes | Yes | No | No | No |
| DAE | .dae | Yes | Yes | Yes | Yes | Yes |
| 3DS | .3ds | Yes | Yes | Yes | Yes | No |
| 3MF | .3mf | Yes | Yes | Yes | Yes | No |
| AMF | .amf | Yes | Yes | Yes | No | No |
| VRML | .wrl | Yes | Yes | Yes | Yes | No |
| USDZ | .usdz | Yes | Yes | Yes | Yes | Yes |
| VOX | .vox | Yes | No | Yes | No | No |
| PCD | .pcd | Yes | Yes | No | No | No |
| XYZ | .xyz | Yes | Yes | No | No | No |
| LWO | .lwo | Yes | No | Yes | Yes | No |
| VTK | .vtk | Yes | No | No | No | No |
| KMZ | .kmz | Yes | No | Yes | Yes | No |
| DRC | .drc | Yes | No | No | No | No |
| USD | .usd | Yes | No | Yes | Yes | Yes |
| USDA | .usda | Yes | Yes | Yes | Yes | Yes |
| USDC | .usdc | Yes | No | Yes | Yes | Yes |
| G-code | .gcode | Yes | No | No | No | No |
| NC | .nc | Yes | No | No | No | No |
| X | .x | Yes | No | Yes | Yes | Yes |
| OFF | .off | Yes | Yes | No | No | No |
| ASE | .ase | Yes | No | Yes | Yes | Yes |
| AC3D | .ac | Yes | No | Yes | Yes | No |
| MS3D | .ms3d | Yes | No | Yes | Yes | Yes |
| MD2 | .md2 | Yes | No | Yes | Yes | Yes |
| MD3 | .md3 | Yes | No | Yes | Yes | Yes |
| MD5 | .md5mesh | Yes | No | Yes | Yes | Yes |
| MDC | .mdc | Yes | No | Yes | Yes | Yes |
| MDL | .mdl | Yes | No | Yes | Yes | Yes |
| NFF | .nff | Yes | No | Yes | No | No |
| BLEND | .blend | Yes | No | Yes | Yes | No |
| DXF | .dxf | Yes | Yes | Yes | No | No |
| LWS | .lws | Yes | No | Yes | Yes | Yes |
| LXO | .lxo | Yes | No | Yes | Yes | No |
| SMD | .smd | Yes | No | Yes | Yes | Yes |
| COB | .cob | Yes | No | Yes | Yes | No |
| B3D | .b3d | Yes | No | Yes | Yes | Yes |
| IQM | .iqm | Yes | No | Yes | Yes | Yes |
| OpenGEX | .ogex | Yes | No | Yes | Yes | Yes |
| PMX | .pmx | Yes | No | Yes | Yes | Yes |
| BVH | .bvh | Yes | No | No | No | Yes |
| CSM | .csm | Yes | No | No | No | Yes |
| NDO | .ndo | Yes | No | No | No | No |
| SIB | .sib | Yes | No | Yes | No | No |
| Q3O | .q3o | Yes | No | Yes | Yes | No |
| XGL | .xgl | Yes | No | Yes | No | No |
| HMP | .hmp | Yes | No | No | No | No |
| UC | .uc | Yes | No | Yes | Yes | No |
| Ogre XML | .mesh.xml | Yes | No | Yes | Yes | Yes |
| 3DM | .3dm | Yes | No | Yes | Yes | No |
| STEP | .step | Yes | No | Yes | No | No |
| STP | .stp | Yes | No | Yes | No | No |
| IGES | .iges | Yes | No | Yes | No | No |
| IGS | .igs | Yes | No | Yes | No | No |
| BREP | .brep | Yes | No | No | No | No |
| IFC | .ifc | Yes | No | Yes | No | No |
| SKP | .skp | Yes | No | Yes | Yes | No |
| DWG | .dwg | Yes | No | No | No | No |
| MAX | .max | Yes | No | Yes | Yes | No |
| RAW | .raw | Yes | Yes | No | No | No |
| TER | .ter | Yes | No | No | No | No |
| X3D | .x3d | Yes | Yes | Yes | Yes | No |
| IRRMESH | .irrmesh | Yes | No | Yes | Yes | No |
| IRR | .irr | Yes | No | Yes | Yes | No |
| M3D | .m3d | Yes | No | Yes | Yes | No |
| SLDPRT | .sldprt | Yes | No | No | No | No |
| SLDASM | .sldasm | Yes | No | No | No | No |
| SLDDRW | .slddrw | Yes | No | No | No | No |
| RBXM | .rbxm | Yes | No | Yes | No | No |
| RBXL | .rbxl | Yes | No | Yes | No | No |
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.