====== 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 | -> [[http://www.khronos.org/collada/|Website]]\\ -> [[http://en.wikipedia.org/wiki/Collada|Wikipedia]]\\ -> [[http://www.khronos.org/files/collada_spec_1_4.pdf|Specification (v1.4.1, PDF)]]\\ -> [[https://collada.org/|Collada information page (Wiki)]] | -> [[http://www.solosnake.com/main/ase.htm|Inofficial specification]] | -> [[http://www.web3d.org/|Website]]\\ -> [[http://en.wikipedia.org/wiki/X3D|Wikipedia]]\\ -> [[http://www.web3d.org/x3d/specifications/|Specifications]] | -> [[http://en.wikipedia.org/wiki/U3D|Wikipedia]]\\ -> [[http://www.ecma-international.org/publications/standards/Ecma-363.htm|Specification]] | -> [[http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=2418019|Website]]\\ -> [[http://en.wikipedia.org/wiki/DWF|Wikipedia]]\\ -> [[http://usa.autodesk.com/adsk/servlet/index?id=823771&siteID=123112|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 | -> [[http://www.feelingsoftware.com/content/view/62/76/lang,en/|FCollada]], C++, open source, supposedly good\\ -> [[http://sourceforge.net/projects/collada-dom|COLLADA DOM]], C++, open source, not very flexible, file must be known at compile time\\ -> [[http://www.jmonkeyengine.com/|jMonkeyEngine]], Java, open source, actually a game engine/scenegraph which also imports Collada files\\ -> [[http://www.100town.com/web/public/products/colladaonjogl/intro|Collada on JOGL]], Java, open source, import, experimental\\ -> [[http://sourceforge.net/projects/whoola/|Whoola]], Java, open source, import (/export?) into [[http://xith.org/|Xith3D]], doesn't seem to be supported much more | -> [[http://www.solosnake.com/main/aseparser.htm|ASE lexx/yacc parser]], C++, free, no guarantees | -> CyberX3D for [[http://www.cybergarage.org/vrml/cx3d/cx3dcc/index.html|C++]] and [[http://www.cybergarage.org/vrml/cx3d/cx3djava/index.html|Java]], open source, import/export, drawing functions\\ -> [[http://sourceforge.net/projects/x3dtoolkit|X3D Tool Kit]], C++, GPL, import, drawing functions\\ -> [[http://www.xj3d.org/|Xj3D]], Java, GPL, import, official, very current (used to test specification) | -> [[http://sourceforge.net/projects/u3d|U3D Sample Software]], C++, open source, import, export, extend, render, interact, official tool | -> Autodesk DWF Toolkit, C++ ([[http://download.autodesk.com/esdr/dwftoolkit/DWFToolkit-7.3.1-bin-win32.zip|Win]]/[[http://download.autodesk.com/esdr/dwftoolkit/DWFToolkit-7.3.1-bin-linux24-x86-gcc323.tar.gz|Linux:Gentoo-RedHat-GNU]]/[[http://download.autodesk.com/esdr/dwftoolkit/DWFToolkit-7.3.1-src.tar.gz|Source]]), complete, open source, straight from the source\\ -> [[http://www.cadviewer.com/products/cvclasslib.htm|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 | -> [[http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=8446698|Website]]\\ -> [[http://en.wikipedia.org/wiki/Dxf|Wikipedia]]\\ -> [[http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=8446698|Specification]] | -> Specifications: [[http://the-labs.com/Blender/3DS-details.html|1]], [[http://www.jalix.org/ressources/graphics/3DS/_unofficials/3ds-info.txt|2]], [[http://www.martinreddy.net/gfx/3d/3DS.spec|3]] | -> [[http://en.wikipedia.org/wiki/Obj|Wikipedia]]\\ -> [[http://people.scs.fsu.edu/%7Eburkardt/txt/obj_format.txt|Specification]] | -> [[http://en.wikipedia.org/wiki/STL_%28file_format%29|Wikipedia]]\\ -> [[http://www.ennex.com/%7Efabbers/StL.asp|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 | -> [[http://www.opendesign.com/guestfiles|Open Design Alliance]], C++, not free, all operations\\ -> [[http://sourceforge.net/projects/dxf/|DXF Viewer and Editor]], Java, import, export, view, manipulate\\ -> [[http://www.ribbonsoft.com/dxflib.html|dxflib]], C++, open source, import, limited\\ -> [[http://www.coin3d.org/lib/dime|Dime]], C++, open source, import, export | -> [[http://c3ds.sourceforge.net/|C3ds]], C++, LGPL, import, reads only basic information\\ -> [[http://www.programmersheaven.com/download/6336/download.aspx|3DS loader/converter]], C++, open source, import, reads only basic information\\ -> [[http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=506|3DS loader and viewer]], C++, open source, import, objects and material\\ -> [[http://java.sun.com/javase/technologies/desktop/java3d/|Java3D]], Java, open source, official support for 3DS files, import\\ -> [[http://www.multi.fi/%7Embc/v3ds/Decode3dsApplet.html|mri.v3ds]], Java, open source, import, fairly extensive | -> [[http://www.cs.kuleuven.ac.be/%7Eares/libobj/index.html|libobj]], C++, open source, simple parser (import)\\ -> [[http://www.dfki.uni-kl.de/%7Edannen/HTW_Vis_2006/installers/glm.zip|Nate Robin OBJ Reader/Manipulator]], C++, open source, basic, import, manipulate\\ -> [[http://java.sun.com/javase/technologies/desktop/java3d/|Java3D]], Java, free, official support for OBJ files, import | -> [[http://www.varlog.com/products/admesh/|ADMesh]], C++, GPL, import, export, fix mesh\\ -> [[http://people.scs.fsu.edu/%7Eburkardt/cpp_src/stla_io/stla_io.html|STLA_IO]], C++, open, import, export, ASCII format only\\ -> [[http://www.codeproject.com/KB/openGL/stlviewer.aspx|STL viewer]], C++, no license, import, view, ASCII format only\\ -> [[http://java.sun.com/javase/technologies/desktop/java3d/|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 |