Table of Contents

Comparison of 3D File Formats

I don't guarantee that any information listed here is accurate.

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