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.
Don't foget Collada This format, headed up by sony and supported by all the major 3d modelling packages, was first released at SIGGPAPH, and it has a lot of promise.
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)
I mean, a royalty-bearing, pseudo-open universal 3D format from Intel and Microsoft? Sorry, guys. That trick doesn't work anymore ;)
Why not? Microsoft still has 95% of the browser market, if you think "that trick doesn't work anymore", you're a moron. They're still in a position to dictate standards, and they've shown that they have no qualms about doing so.
Of course, this is yet another area where there is simply nothing that is truly patentable, but I'm sure they can sucker the idiots at the patent office to give them a few, anyway.
Do you have ESP?
Tony Parisi doesn't seem to get it--the best way to kill off X3D from getting mindshare was to make it an ISO standard, because almost all ISO standards cannot be freely shared in electronic form and the process takes too long to revise deficiencies. What is really pathetic is with all of his experience Parisi still wasn't able to see that the best way to spread a software technology and overthrow the existing order is to make the standard as freely accessible as RFCs or W3C standards.
For software ISO standards only "work" with already existing market leaders. And even market leaders can be eventually dragged down by the restrictions of being an ISO standard, such as the deficiencies of C++ leading to the creation of Java and C#. Making a software technology such as X3D an ISO standard before it had any market share was simply madness, and Parisi should have known better.
Both of which are proprietary formats.
Just because a company chooses to make certain applications that use their format open source doesn't make their format a standard. Furthermore, neither of these companies have enough spin to make their proprietary format a de facto standard.
X3D is being put through the ISO standards process, and U3D is being designed by huge industry players.
Show me on the doll where his noodly appendage touched you.
One of my gripes with vrml is that angles are specified in radians, and it looks like x3d is the same. Maybe it makes the transform math simpler, but Arghhh! Who in the world decided that radians were more intuitive to work with than degrees? Do they think no one will ever write 3d models by hand? I like to have "turn this a quarter turn" work out to a rational number.
Maybe there's some way to set the default input mode to degrees, and someone will enlighten me.
-jim
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?
OK, I don't normally respond to "WildTangent is Spyware" -- among other reasons, because it's not my job. It's D----'s job. My job is employee number 10, Wild Tangent. I'm a programmer, specializing in whatever we need to fill our customer needs. And I'm irritated enough to want to write about three Wild Tangent related points, but I won't. I'm going to talk about the business of 3D.
In the beginning, nobody quite knew what the 3D market was going to be. E-greeting cards that sing and dance? 3D Banner ads? Audio visualizers? Data visualization? And what was the business: who is going to buy? what do they buy? Does a web-3D company sell tools and make the "player" free? Or make the tools free, and the player free, but make a "technology license"? Or have the content cost money? Who pays to develop the content?
Wild Tangent, like all of the 3D companies, tried a bunch of things. I've seen companies that made very, very simple tools that tried to fix the "3d is hard" problem (dead), and companies that made mini-movies to solve the "what sort of content" and "3d art is expensive" pro(dead) and companies that make tool sets (dead) and companies that make 3D community spaces (dead) and companies that make data visualizers (dead) and a lot of other things.
Turns out, the right path is:
- complex tools. Simple tools don't make for very interesting content, and people care a lot about interesting content
- free player. Noone has made any real money by selling their player, even if it was a pain to develop. And believe me, they ARE a pain. I have the scars to prove it.
- good content.
One of the many wrong paths is the "datamining" path. Nobody really _cares_ about any of the data you could possibly collect from a user's machine (note: except for things that are grossly illegal like bank PIN numbers, of course). Suppose some web company could co-ordinate your DOOM-3 habbits, your email address, and the last three movies you saw: would it help LL Bean sell you slippers? Or GM sell you a Cadilac? Answer: no. And so they don't pay for it.
And it's not just a pet theory, either. I get asked to add features to our products all the time; the features are never "let's get the user's email address" or "can you find out people's slipper sizes?". Instead I get questions like, "can we reduce the size of our 3d geometry" and "can we interface to the XYZ framework". And, by an enterprising-but-clueless sales person, can I make it work with PowerPoint because our 3D engine doesn't work on the Mac, but if it worked in PowerPoint it would because PowerPoint works on the Mac and it would be nice to work on the Mac.
To summarize: Wild Tangent makes games. People buy games, and that makes us money. Games a re big business with enormous potential becoming very large and successful. Wild Tangent doesn't do yucky data mining because people don't pay for that and we wouldn't make money. Companies that do the sleazy things tend to be small and stay that way: it's just not a big business. And the Wild Tangent boss -- Alex St. John -- really, really wants to run a big company.
Want a sig like mine? Join ACM's SigSig today!
The issue is the decompressed size. Fact is, you are going to have to decompress the data before you can parse it. Something like X3D is going to be HUGE compared to a binary 3D format. So, that leaves you one of three options when dealing with it:
1) Decompress just as needed and render. Ok, but bzip2 requires a non-trivial amount of processor power to execute, and in any srot of high performance situation, you'll be doing a lot of decompression. You'll end up slowing way down wating on that.
2) Decompress all objects for a scene to memory. That'll work but require a massive amount of memory comparitivley. Not going to find too many takers on an engine that needs a GB to deal with a scene that normal engines can handle in 128MB or less.
3) Decompress all objects for a scene to disk. Better, but still going to use a lot more memory as the objects are loaded. Also will be slower, because of more disk access, and slower loading times for a scene because of the decompression process.
Look, a text based markup works well for something like the web because the size of files is not significant compared to the result, and most of the data in the document is text to be displayed anyhow. The same is not true of graphics, espically not in any modren context like a game's 3D engine. You need to be able to get the data into memory fast, and it needs to be as small as possible and still be usable. With UT2004 occupying 6 CDs, and Doom 3 occupying 3 (and being faster when it's data is decompressed, though most of it is binary) you do not want a file format that is going to drasitcally increase the space requirements.
Notice that there are good open formats that are binary, and for good reason, like PNG and OGG. With good documentation and standardization, they are easy to deal with in a program, yet they occupy little space in disk or memory and parse quickly. Try and reimplement a graphics format like OGG in XML and see what you get. It'll either be huge, or well compressed, necessitating a decompression step.
It's a nice thought that all file be human readable, but it's just not realistic for deceant performance. After all, why not take it a step further, have all program work from source, have the comptuer interpret them on the fly. Well, there's a good reason that's not done for many programs. Even Java compiles to a bytecode, and doesn't run straight from source.
What is easy to use for a human is not the same as what is easy to use for a computer.
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.