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!
Are Real Open Standards anything like Real Ultimate Power?
Game... blouses.
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.
Here is stuff straight from their standards page:
* Open source, so no licensing issues.
* Has been officially incorporated within the MPEG-4 multimedia standard.
* XML support makes it easy to expose 3D data to Web Services and distributed applications.
* Compatible with the next generation of graphics files - e.g. Scalable Vector Graphics.
* 3D objects can be manipulated in C or C++, as well as Java.
Sure looks like everything VRML attempted to be an then some, guaranteed to be another crash and burn.
"Hats off to WildTangent, the only one of the bunch who ever had a working business model". I know a few programmers that worked at WildTangent and I've play tested a few of their games. All of them were awful. The only people I've seen get realtime 3d right is Linden Lab, but that requires way too much infastructure.
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)
X3D isn't a file format standard. It's some lame web 3D, lets resurrect VRML with a new name, specification.
/ v36/
There are at least two opensource 3d file format standards that I know of developed by actual companies in the industry:
http://www.softimage.com/products/pipeline/dotxsi
http://www.tweakfilms.com/main/gto.html
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.
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?
...it's opt-in targeted e-marketing!
To summarize: if your code is slipped into another product and not clearly mentioned in the license and listed in the installer, or if it phones home without telling the user that it's going to do it, IMHO it is spyware. WildTangent (as it was bundled with AIM) fits both those conditions.
Maybe you're not selling spyware anymore, but you did in the past, and on slashdot that reputation takes a *long* time to live down. Just look at any thread about Realplayer...
0 1 - just my two bits
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.
Who in the world decided that radians were more intuitive to work with than degrees?
Well, given that radians are based on the actual mathamatics of angles (i.e., one radian is a "straight angle"), I guess God did. Or whatever deity you believe in. Athiests will have to blame it on random chance, and I'm not sure about agnostics.
Seriously, degrees (and minutes and seconds) are just like other "traditional" units of measure (like yards and feet and inches), in that some humans in the past cooked them up based on something pretty arbitrary. Working with them is a pain. The SI units make much more sense.
Only people who grew up with non-SI units prefer non-SI units. That's why I sometimes use inches rather then centimeters, and still think of temperatures in Fahrenheit and not Celsius. It's not that the non-SI units are "more intuitive"; they're simply what I'm used to.
Obviously, you're used to degrees. I am too. However, you and I and everyone else here at Slashdot today will not be around forever. As the time passes, more and more people will grow up on SI. Better that this standard use units based on something relevant to the subject, rather then the arbitrary decisions of old.
dragonhawk@iname.microsoft.com
I do not like Microsoft. Remove them from my email address.
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.
MP3 is open "The Open Group" way. Think of early Unix advertising before the free Unix-likes got popular. =)
"Open" in Ancient Computer Marketing Vocabulary means roughly "if you have a little bit of money to cover our expenses and the holiday trips for our executives, you can get a specification from us - and if you pay even more, you can actually use the thing for making money."
Yes, it was "open" - because you had a chance of getting the specification and license somehow.
"Closed" was defined as "oh, damn, I don't think we have specs for this thing for sale, even looking at the format makes my head ache", or "Don't even ask about the spec, and we'll sue if you reverse-engineer this thing."
The meanings have fluctuated a bit, especially regarding "open" - you see, back in the day, people thought that stuff that was merely a bit open was "open". Nowadays, there's open... and then there's Open. =)
2D graphics data expressed as XML can be highly efficiently gzipped.
You can see from these examples of Scalable Vector Graphics (SVG). The same documents in any other available 2D format are generally larger.
And yet, when ungzipped, these SVG files are verbose XML text. You can see that by right-clicking when you view any of those examples with Adobe viewer and selecting View Source.
SVG is a good example of how XML can be implemented efficiently over the wire (gzipped into efficient filesize) and yet accessed by the programmer at either end with no more than a text editor.