Universal3D vs. Real Open Standards
viveka writes "Back in April, Slashdot reported the announcement of a Universal 3D File Format by Intel, Microsoft & others - to be "as open as MP3". Of course, that's not all that open. And this turns out to be the sneaky part. There is a real open standard already - X3D is ISO-ratified, royalty-free, and has multiple open source implementations. U3D is "going to be submitted to ISO" - one day - but right now they're talking to ECMA, which allows royalty-bearing patents.
I found this article by Tony Parisi, co-chair of the X3D Working Group a fascinating insider's picture of the standards wars, along with insights into what it takes to release an online game, what really killed VRML, and why open standards do (and don't) matter.
I mean, a royalty-bearing, pseudo-open universal 3D format from Intel and Microsoft? Sorry, guys. That trick doesn't work anymore ;)"
MS isn't interested in helping the competition, they're trying to push down the competition. As long as they have a monopoly and they ignore standards, it can make it even easier for them to retain their monopoly. We hear all the time about how people don't want to use non-MS products due to incompatabilities. I would be very surprised if MS ever actually does conform to web standards and such.
Hi there
Ok seriously there are too many hyperlinks. Which one is the article. You don't need to hyperlink every single word to get your point across!
Maybe that is why VRML and X3D were not successful. Storing binary data like 3D vector data and texture data in a text file and then compressing the text file to get acceptable file sizes is just plain stupid.
Binary storage for 3D data makes a lot more sense since it is more compact and easier to parse, and there are also standards such as the IEEE float and double standard.
But nowadays everything has got to be XML, even if it does not make any sense at all. XML is fine for configuration files and office documents, but for image and vector data it is just not the right tool.
Private property is the central institution of a free society (David Friedman)
Remember, the MP3 standard is covered by patents owned by the Fraunhofer Institute and THOMSON, and they enforce their patents.
Unfortunately, with Microsoft's money and monopoly of the desktop, that trick might work. In fact it probably will work, unless some of us put together good ideas and good software using the open standard X3D before the bad guys get their bandwagon rolling.
A binary format for X3D is being defined. X3D supports multiple file encodings describing the same abstract model.
But nowadays everything has got to be XML, even if it does not make any sense at all
The XML encoding enables smooth integration with web services and cross-platform inter-application file and data transfer. An excellent idea, surely. See the X3D FAQ for more details.
I disagree. Storing vector data in text files has tha advantage that in extreme case, I can always edit the file with just a text editor.
"Long run is a misleading guide to current affairs. In the long run we are all dead." (John Maynard Keynes)
While the size of some 3D data sets is a concern with XML, XML is otherwise very well suited for such data. It is often irregular (which makes relational databases tough) and hierarchical (with elements sitting at different places in a scene graph). So it fits XML almost perfectly.
Furthermore, with XSLT, or any of the bindings that enable XML structures to be reflected as objects in a programming language, processing the data becomes easy.
Finally, you can always edit it manually.
Binary descriptions are nice, usually compact (not always). But with binary descriptions you always have to worry about floating point formats, endianness and how to represent the data in your program - so for every binary data description you have to write a reader for the data, a writer and a new converter for every output format you might choose. With XML, libraries for reading, writing and converting (XSL is very powerful for that) are being written for most languages so you can use one of those that is already there, or if you do have to write one, you can reuse it for other types of data in the future.
I've written programs to read and write binary data of more types than I'd care to admit, and I've stared at hex dumps of the data files for way too long. I've had to look at un-documented or under-documented binary formatted files and puzzle out what every bit did more than a few times. (Of course since the DMCA I would never puzzle out undocumented binary data files.)
Finally you say, "XML is fine for configuration files and office documents" but there are those who say that XML is precisely wrong for those kinds of files. In fact, every time someone mentions XML as being used for "Purpose X" on slashdot, you can expect the immediate response "XML is completely inappropriate for Purpose X" comments.
I'm also a bit curious - for the 3D descriptions, how does bzipped XML compare to an equivalent binary file for size?
The point that you have completely missed is that X3D is published to the website. Thus, it costs nothing (unlike most other ISO standards). The ISO spec got ratified just under a month ago and we have to go through one more round of editing (typos only) and we have to wait for ISO to formally publish it before it can be seen on the Web3d.org website. Prior to that, if you're a member of the consortium, you have access to it right now.
On your second paragraph, that's a matter of opinion, of which I vehemently disagree with you. Many large organisations will not touch something unless it is an ISO standard. This is particularly true with both the European companies and the US military complex. To give you an idea of just how that works - as soon as we had the announcement in hand, we had 2 different branches of the US military formally announce that they require it as their one and only 3D interchange standard. By not going to ISO, we end up with the same problem as before - a psuedo standard with multiple incompatible implementations thereof. This solves the problem up front.
Where Tony and I disagree is that X3D nor VRML has any use being a "Web" standard. Where VRML has been hugely successful is out in industry in places that don't care about the web. If you'd walked around the floor at any show where they do modelling and scanning data, you'll find every single scanner manufacturer uses VRML as their output file format. All the tools that take that raw data in and process it, use VRML etc etc. None of the success stories even use a web browser in the system. In the future, that is less and less likely to happen too. It's all about the back-end and integration work. X3D has been succeeding for a couple of years in there and will continue to succeed.
Life is complete only for brief intervals in between toys or projects -- John Dalton
There'll never be a universal standard for 3D because it's so application-specific. Some applications work with polygons and some work with parametric objects. It's the reason why only 3ds max can read .max files - objects and modifiers are represented parametrically, and only the plugins that generated them know how to create them.
Then of course, the rendering applications like to have their own formatting of data for speed and efficiency issues. A DirectX game will have data stored in an optimal format that's different from say how a PS2 game will.
Using XML is ridiculous, it's a terrible waste of space and introduces a large processing overhead before the data is ready for rendering. There's a reason games often store 3D data in the format the platform directly processes - so it can be read off disk and immediately blasted to the screen.