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