Developing Web Applications with COLLADA and X3D
A Whitepaper
Dr. Rémi Arnaud
Sony Computer Entertainment
Tony Parisi
Media Machines, Inc.
March 25, 2007
COLLADA and X3D are two royalty-free open standards that use XML schema technology to
represent 3D content. With the growing pressure for tool vendors and content providers to use
open standards rather than closed proprietary formats, many are wondering which standard they
should implement.
This whitepaper is intended to assist developers in understanding the similarities and differences
between COLLADA and X3D, the design goals that informed their development, and how and
where the two standards are used in practical applications. Rather than making a decision
between the two technologies, many implementers will find that COLLADA and X3D can be
used together as a powerful tool set for developing their Web and enterprise applications.
The authors– Rémi Arnaud, founder of the COLLADA initiative, and Tony Parisi, co-creator and
editor of the X3D specification– share a deep conviction that open standards play a critical role
in the development of modern software applications. It is our mutual goal that, taken together,
COLLADA and X3D comprise the foundation for creating rich 3D applications and content that
pass the test of time.
Comparing COLLADA and X3D
COLLADA and X3D have developed along parallel tracks over the last several years. While the
two standards have superficial similarities—both are technologies for representing structured 3D
data in XML—they are quite different in their design goals and intended use.
COLLADA focuses on the toolchain that brings content and assets from diverse authoring tools
to an application, currently targeting principally the game industry. COLLADA is an
intermediate format whose primary goal is to represent rich data in multiple forms, to enable the
transformation of assets as they journey from content tools that use higher level description
paradigms to applications that require platform-specific optimized descriptions.
X3D focuses on the visualization of 3D assets within applications. X3D has principally been
targeted for the Web (thus the name and focus of the Web3D Consortium). X3D is a delivery
format intended to contain the information needed for interactive applications. X3D specifies
behaviors and interaction, and it includes both a specific run-time model that enables picking,
viewing, navigation, and scripting, and an API to manipulate the scene graph at run-time.
COLLADA is the format of choice for Digital Content Creation (DCC) tools, for conditioning
tools, and for archiving rich content. COLLADA enables the free exchange of asset data,
enabling developers to construct an authoring pipeline from multiple tools. COLLADA can
provide the content required for compelling X3D applications, in much the same way that it can
carry and process the content for game applications. X3D is a lingua franca for delivering
interactive 3D Web and enterprise applications that require real-time delivery of 3D data,
ranging from online advertising and gaming, to virtual worlds and social networks, GIS and
mapping, CAD, military simulation and medical visualization.
Figure 1. Comparison between COLLADA and X3D
COLLADA
Conditioners
Viewer
X3D
DCC
tools
Publishing Tools
X3D Players
Editors
Game
Applications
COLLADA: Intermediate Format of Choice
X3D: Universal Delivery Format for Web Applications
The comparison between COLLADA and X3D is illustrated in Figure 1. X3D occupies a
position in the production pipeline much farther downstream than COLLADA. Also, X3D picks
up where COLLADA leaves off: COLLADA defines the format for 3D assets but not their
runtime semantics, leaving that job to the application writer.
In the game industry, that would be the end of the standards story - where assets are imported
into a proprietary engine used to deliver a specific game. In other domains, this is where the
story just begins. For many applications, writing a new engine from scratch is not only wasteful,
but cost-prohibitive. X3D provides flexible run-time power out of the box, together with the
programmability required to build serious applications. X3D is also ideal for the Web, because it
has complete integration with web-based data formats, supports DOM and Ajax programming,
and was designed with streaming web delivery in mind.
Using COLLADA For X3D Web Applications
The following figure illustrates a typical COLLADA toolchain, used to provide content to X3D
applications. COLLADA is feature rich and contains most of what is needed by X3D
applications, but it is necessary to use X3D specific tools to create the specific application
behavior. If for some reason it is necessary to convert X3D back to COLLADA, it is even
possible to keep this additional information as <extra> information within COLLADA using the
built-in extension mechanism for application-specific data.
Figure 2. A Typical Web Pipeline Using COLLADA and X3D
Ma
y
3dsMax
XSI
COLLADA
Physics
Refiner
FXCom
p
ose
X3D
… DCC tools
Flux
Flux
SwirlX3D
Publishin
g
WireFusio
X
j
3D
X3D
Asset Creation
Application
Development
to Game Engine
to Google Earth
to X3D
Thanks to the existence of quality COLLADA-to-X3D converters, COLLADA is already being
used in this manner for Web3D applications today, such as the novel “mashup” between Google
Maps and 3D models depicted in Figure 3.
Media Machines developed this mapping demonstration using the COLLADA importer built into
its Flux Studio authoring software. The models used in this application were originally authored
in Google Sketchup, exported to COLLADA KML (Google Earth format), and then uploaded to
the Google 3D Warehouse. From there, the COLLADA models were imported into Flux Studio,
where animation and interactivity were added, and then published to an X3D application that
uses client-side Ajax programming and runs in Flux Player. The result is an application that can
view COLLADA models originally created for Google Earth, but running within a standard Web
page.
Figure 3. A Sample 3D Web Application Using COLLADA
Image Courtesy Media Machines, Inc.
COLLADA or X3D – Which Should I Use?
The information in this paper should help you to choose which standard—COLLADA or X3D—
to use for your application. Your application might need only one of the two; some may need
both. The following examples illustrate some typical scenarios.
Example 1. Your application is a content-creation tool and you want your users to be able to
develop assets for many markets. In this case, COLLADA is the appropriate choice. If in
addition you want to target X3D run-time systems with value-added features such as interactivity,
you may also want to implement support for X3D standards directly rather than going through an
additional conversion. Typical applications include DCC tool such as 3dsMax, Maya, and
Softimage.
Example 2. Your application is a content-editing tool targeting 3D Web publishing. In this case
you would implement only the X3D format. Typical applications include Flux Studio,
WireFusion, and SwirlX3D.
Example 3. Your application is a run-time application that can take advantage of the X3D run-
time model. You use X3D directly, and use an X3D player as your application engine. Typical
players include Flux Player, FreeWrl, and Xj3D. These applications can also directly load
COLLADA content, if it makes sense to display content on the Web without any run-time
interactivity, or use the COLLADA asset as an embedded object within a larger application (an
X3D object type known as an “Inline”).
Example 4. Your application is a run-time application that requires its own specific run-time. In
this case, use COLLADA in your toolchain, and create a COLLADA -> “Your Format”
converter at the end of the toolchain. Typical applications include video games.
Example 5. Your application is a run-time application that does not need to support X3D run-
time specifics, but needs to be able to accept content from a variety of sources. In this case,
directly load COLLADA in your application; you do not provide an off-line converter. Typical
applications include Google Earth.
COLLADA and X3D – An Ongoing Collaboration
COLLADA and X3D are industry standards with broad support that leverage thousands of man-
hours of expertise and experience in a range of fields including Computer-Aided Design, Visual
Simulation, Animation, Virtual Reality, the Web and the Internet. This whitepaper was prepared
by two of the thought leaders in these technologies, as part of an ongoing effort to ensure that
COLLADA and X3D not only interoperate, but provide significant long-term value to content
and application developers world wide.
The COLLADA effort is focused on the quality and the completeness of support from the DCC
tools, as well as on increasing the number of tools accepting this standard. The X3D
development community can now take advantage of all this technology, and save considerable
effort by focusing on good quality COLLADA-to-X3D converters such as CX2 from Pinecoast
Software and DAE2X3D from Media Machines.
The COLLADA toolchain is used in more and more domains, and its feature set is growing
accordingly. To improve this content pipeline, it will be advantageous to avoid any cosmetic
conversion between COLLADA and X3D for any data that is mainly identical. To that end, the
COLLADA and X3D teams have begun to identify areas where entire parts of one standard
might be adopted for use directly within the other. For instance, because COLLADA has already
added Physics to its specification, and several tools are already capable of providing such content
(Maya, Max, AGEIA, Bullet), the X3D and COLLADA groups are now collaborating so that
physics specifications are almost identical. Ideally, in the future, since both COLLADA and X3D
are based upon XML, X3D might be able to directly accept COLLADA content without any
conversion.
For More Information
For information on COLLADA and the Khronos Group, please visit the COLLADA and
Khronos Web sites at www.collada.org
and www.khronos.org.
For information on X3D, please visit the Web3D Consortium Web site at www.web3d.org
.
The authors may be contacted at the following email addresses:
remi@collada.org
tparisi@mediamachines.com
The authors encourage questions and feedback on this whitepaper.
Trademarks:
COLLADA is a Khronos Group standard. Khronos is the home of OpenGL and many other
media-related APIs. COLLADA was created by Sony Computer Entertainment as an open
technology to help game developers’ content creation needs. Control of COLLADA was
transferred to Khronos in January 2006 after two years of development.
X3D is a standard created and promoted by the Web3D Consortium. X3D was born of the need
to create a modern evolution of the VRML standard. As part of that evolution, X3D incorporates
an XML-based representation, making it an ideal system for deploying 3D applications for the
Web and in the enterprise. VRML was ratified as an International Standard by ISO in 1998, and
is fully compatible with X3D. X3D was ratified as an International Standard by ISO in 2004.
COLLADA is a trademark of Sony Computer Entertainment Inc.
VRML and X3D are registered trademarks of the Web3D Consortium.
3dsMax and Maya are registered trademark of Autodesk, Inc.
AGEIA and PhysX are trademarks of AGEIA Technologies, Inc.
FX Composer is a trademark of NVIDIA Corporation.
Google and Google Earth are trademarks of Google, Inc.
OpenGL and OpenGL ES are registered trademarks of SGI, Inc.
Softimage|XSI is a registered trademark of Avid Technology, Inc.
Flux Player and Flux Studio are trademarks of Media Machines, Inc.
All other trademarks are the property of their respective owners.