X3D COLLADA SmackDown! - a contrived spectacle?
Recently there has been a lot of conversation on the public mailing lists about COLLADA and X3D. As is usual with standards discussions, there is an attempt to create a “which is better” division - kind of a World Wrestling Entertainment SmackDown between COLLADA and X3D. But I think that spectacle is artificially contrived and created in part by confusion about what goals X3D and COLLADA actually target.
The key word here is “target”. Both solutions can be stretched to handle innumerable 3D markets and solutions, but they have specific targets and specific purposes.
The biggest misunderstanding around COLLADA is that it is not intended as an interchange format, but rather COLLADA is an intermediate format, designed to facilitate the creation of game pipelines. What this really means is three things:
- COLLADA is not focused on preserving assets. As an intermediate format the goal is simply to make it easy to move data along a production pipeline to end up with a final file that can be re-assembled into your playback application. You might start with raw data model in any proprietary format, convert it to COLLADA (original data may be lost in the process) and then move that data to another program where it can be further massaged and transformed. In fact COLLADA is specifically designed so that you can break up a file into components and then send those components on for transformation in programs that specifically handle the kinds of information in those components. You might refine modeling in one program, add physics and special effects in another. A third might simply optimize geometry for a particular playback device. Then at the end of the process you re-assemble the components for your playback device or application (very likely converting it to the devices proprietary format). The resulting file may or may not be restorable back to the original data (e.g. no interchange).
- COLLADA is not specifically designed for web services and vertical market inter-application communication
- COLLADA is not targeted to web deployment
X3D on the other hand is designed as an interchange format. The goal really is to preserve assets and the 3D scenegraphs using a non-proprietary open format. This is a much more difficult task then acting as an intermediate format. But for preserving assets, interchange is essential.
X3D is heavily about communication and web services. It is the ability of X3D to communicate with other applications of any type via XML and real-time scripting that makes it powerful. X3D is intended for developing composite rich internet applications for diverse vertical markets. Some X3D application may be stand alone, but others are designed to access databases, interact with elements on a web page, or communicate with real-time data feeds.
And of course, X3D has a rich history of being deployed on the web.
Sure COLLADA could be used as an interchange format or even as the format used by a runtime engine (as in Google Earth), and you could even use it for web simulation with inter-application communication. But that is not it’s goal or focus and not what application developers are embracing. And sure, X3D could be used as format for gaming. But it’s real strength is as an interchange format (as in preserving assets in the long term), industrial strength visualization/simulation, playback over the Web or any networked device, and communication between applications.
X3D likely won’t be used to develop content for the Sony Playstation. COLLADA likely won’t be used to develop web-based simulations of NASA moon landings. The technologies are comlimentary but their targets are different. Both are valid and valuable, both can steal features from each other, but both are necessary and will continue to grow large and distinct markets. And of course there is no reason the two standards can’t be interoperable.
