Comparison of 3D File Formats
I don’t guarantee that any information listed here is accurate. (It’s probably old by now, too.)
Collada, ASE, X3D, U3D, and DWF
Collada | ASE | X3D | U3D | DWF | |
---|---|---|---|---|---|
Links | Website Wikipedia Specification (v1.4.1, PDF) Collada information page (Wiki) | Inofficial specification | Website Wikipedia Specifications | Wikipedia Specification | Website Wikipedia Specification |
Basics | Format: XML Extension: .dae (Digital Asset Exchange) Copyright: Khronos Group / Sony Contributors: Sony, Alias, Criterion, Autodesk, Avid Usage: Open | Format: ASCII (no standard) Extension: .ase (ASCII Scene Exporter) Copyright: Autodesk Contributors: Autodesk Usage: Proprietary, reverse-engineered | Format: XML or Open Inventor style Extension: Copyright: Web3D Consortium Contributors: Various Usage: Open, ISO-Standard (formerly VRML) | Format: Binary Extension: .u3d (Universal 3D) Copyright: Ecma Contributors: Intel, Boeing, HP, Adobe, Bentley Usage: Open, Ecma standard | Format: Binary (XML for v6.0) Extension: .dwf (Design Web Format) Copyright: Autodesk Contributors: Autodesk Usage: Open |
Support | Papervision Maya (via plugin) 3DS Max (via plugin) Lightwave SoftImage Houdini MeshLab SketchUp Blender Photoshop Google Earth Unreal game engine | 3D Studio Max Papervision Maya (via plugin) Doom 3 engine Unreal Editor | Blender (via plugin) 3DS Max (via plugin) | Acrobat/Reader (PDF) Photoshop Poser MeshLab | AutoCAD and other Autodesk products |
Source Code | FCollada, C++, open source, supposedly good COLLADA DOM, C++, open source, not very flexible, file must be known at compile time jMonkeyEngine, Java, open source, actually a game engine/scenegraph which also imports Collada files Collada on JOGL, Java, open source, import, experimental Whoola, Java, open source, import (/export?) into Xith3D, doesn’t seem to be supported much more | ASE lexx/yacc parser, C++, free, no guarantees | CyberX3D for C++ and Java, open source, import/export, drawing functions X3D Tool Kit, C++, GPL, import, drawing functions Xj3D, Java, GPL, import, official, very current (used to test specification) | U3D Sample Software, C++, open source, import, export, extend, render, interact, official tool | Autodesk DWF Toolkit, C++ (Win/Linux:Gentoo-RedHat-GNU/Source), complete, open source, straight from the source Java DWF Class Library, Java, viewer, 2D only?, not free |
Notes | Very extensive Input files can become very complex Widespread Java support only in beginning stages | Tied to the internal 3DS representation Basic but covers most required attributes | Very extensive Files can be complex ISO-standard but little prominent support Good library support Focus on 3D browsers | Not widespread except PDF support Binary, complicated structure No official Java support yet Future of format uncertain | Very Autodesk focused Good C++ support but Java only for money Not just made for 3D |
DXF, 3DS, OBJ, and STL
DXF | 3DS | OBJ | STL | |
---|---|---|---|---|
Links | Website Wikipedia Specification | Specifications: 1, 2, 3 | Wikipedia Specification | Wikipedia Specification |
Basics | Format: ASCII and binary Extension: .dxf (Drawing Exchange Format) Copyright: Autodesk Contributors: Autodesk Usage: Open | Format: Binary Extension: .3ds (3D Studio) Copyright: Autodesk Contributors: Autodesk Usage: Proprietary, reverse-engineered | Format: ASCII Extension: .obj Copyright: Wavefront Contributors: Wavefront Usage: Open | Format: ASCII or binary Extension: .stl (Standard Tessellation Language/Stereolitography) Copyright: 3D Systems Contributors: 3D Systems Usage: Open |
Support | Illustrator Blender (via script) CorelDraw AutoCAD | 3D Studio (MAX) Various tools/repositories | Poser Maya Avid SoftImage MeshLab 3DS Max Lightwave Art of Illusion Blender | All 3D printers and their accompanying software |
Source Code | Open Design Alliance, C++, not free, all operations DXF Viewer and Editor, Java, import, export, view, manipulate dxflib, C++, open source, import, limited Dime, C++, open source, import, export | C3ds, C++, LGPL, import, reads only basic information 3DS loader/converter, C++, open source, import, reads only basic information 3DS loader and viewer, C++, open source, import, objects and material Java3D, Java, open source, official support for 3DS files, import mri.v3ds, Java, open source, import, fairly extensive | libobj, C++, open source, simple parser (import) Nate Robin OBJ Reader/Manipulator, C++, open source, basic, import, manipulate Java3D, Java, free, official support for OBJ files, import | ADMesh, C++, GPL, import, export, fix mesh STLA_IO, C++, open, import, export, ASCII format only STL viewer, C++, no license, import, view, ASCII format only Java3D, Java, free, official support for STL files, import |
Notes | Not too widespread 3D faces seem to be inefficient, functions missing (normals?) | Proprietary, not fully explored Many 3D repositories use this format | Very widespread Very basic but sufficient, material information in external .mtl file No output libraries but simple enough to implement by oneself | Very very simple Colour information per face One normal per face Standard for 3D printers |