|Extensible 3D- The X3D Initiative - by N. Polys
An overview and technically-oriented exploration of the Web3D Consortium and the W3C's emerging standard for the Next Generation of Web 3D. Features an in-depth interview with Don Brutzman, VP of Technology for the Consortium and Chairman of the X3D Task Group. Covers issues of the new 'componentized' architecture and access, as well as resources for authoring X3D.
The new XML-compliant specification will open the floodgates for increased 3D Media Integration as well as seamless viewing, better hardware acceleration support, and extensible 3D functionalities.
2. ARCHITECTURE AND ACCESS
3. EVENTS AND INTEGRATION
5. XTENSIBLE FUTURE
6. URLS TO WATCH
Last year, the Web3D Consortium announced the formation of a significant coalition with the W3C (World Wide Web Consortium) whose purpose over the last year has been to enable a new generation of XML (Extensible Markup Language)-compliant 3D standards for the web. The results of this cross-fertilized effort is the recently-released draft specification and deliverables which detail a new architecture of great promise: X3D. In the Web3D Consortium's X3D FAQ, we will find that "X3D stands for Extensible 3D. It is a next-generation, extensible, 3D graphics specification that extends the capabilities of VRML 97. (VRML-NG, for VRML Next Generation, was an early name for what is now X3D.) The name X3D was chosen to indicate the integration of XML.". As its name and circumstance suggest, the chief distinguishing factor of this technology is that it is an EXTENSIBLE architecture- meaning that the processing of documents and 3D elements for display can take place under various "Profiles" (software components) depending on the level and domain of functionality needed.
This clever realization has a number of positive implications beginning with the fact that such a scheme allows one to streamline the minimum functionality needed for the viewing of 3D on the web and in web pages. In X3D, this minimum functionality is termed "The Core Profile". Necessarily following such a design is a re-assessment of the ontology of software components needed to view and experience various 3D content. With these additional profiles media designers can leverage the full potential of X3D's extensible architecture. For example, if one wanted to serve web-visitors VRML 97 content, the user would download the "VRML 97 Profile"; if they wanted to serve content with Multi-texturing or Multi-tracked audio or NURBS, the user would be required to download the appropriate profile. The ultimate benefit is that there is no monolithic plug-in that is expected to do it all- a familiar impediment for VRML developers and Working Groups looking to implement their improvements to the spec. Additional functionality can be designed as another profile and plugged right into the open X3D architecture; and the user only employs the profiles needed to view the specific content.
The Web3D Consortium has clearly defined a set of goals for X3D technology and is producing tangible results in their development of this technology.
(see the Consortium's X3D FAQs for these and other issues clearly explicated)
- That its file syntax be compatible with the emerging World Wide Web Consortium's XML specification thus ensuring the tight integration of 3D into next-generation web browsers
- That it is backwards compatible and able to run all existing VRML content
- That its Core Profile is lightweight, able to be extended to provide new functionality
- That it is Extensible and able to use components (profiles) to add fundamentally new nodes and corresponding implementation code to the core
The principles behind the open development of X3D are surely beginning to yield as numerous companies and individuals collaborate on designing and implementing this exciting new industry specification which may change the web forever.
This article covers the progress of this technology to date through my own research, attendance of X3D Working Group meetings, and an in-depth interview with Don Brutzman, current VP of Technology for the Web3D Consortium and Chairman of the X3D Task Group. We will also look at tools to author X3D though for an in-depth look on building X3D content, please refer to our forthcoming "X3D Update". There are a number of technology acronyms that you will come across in our interview. If you are not familiar with them, check out our Alphabet soup page.
ARCHITECTURE AND ACCESS
So Don, what is the motivation behind this new componentized architecture for Web 3D?
Don: We want 3D graphics to be a first-class citizen in the Next generation web; not yet another warmed-over plug-in that's not very high-performance, not very interoperable. It doesn't give people the next generation functionality that XHTML and XML are expected to provide. We are an open standards body and we do everything in the open, we meet monthly, all of our meeting minutes are online, all of our progress and code is online· we want to ramp up exposure for 3D to exponential growth.
A recent thread on the VRML mailing list asked this question which web developers are constantly faced from their management or clients:
IS VRML DEAD? and Why?
If it isn't dead, surely you acknowledge that it has gotten a bad reputation·
Don: These are interesting questions and we should look at what's in the marketplace- many little technologies and little companies each trying to push their new 3D products. They always have a few things in common: one is they solve a small piece of the puzzle very well; two, they have gotten a large infusion of cash from investors for this great idea, and three, they need to make a name for themselves. Given these forces and the fact that only one file format is even trying to be interchangeable right now, I think VRML is a natural target.
If VRML was dead, I mean really dead, this story would have become old over a year ago. Yet the story keeps coming back and it is amusing that everybody keeps pointing to VRML as what they're better than, but they come, they go, VRML stays. We're continuing to make it stronger. This comes with being the de facto interchange. It's unfortunate that this climate of competition among small companies still continues to exist. It's unfortunate because they think their competition is an open interchange such as VRML or each other·but...
The challenge they all face is: how do we get 3D out of the box? How do we get 3D on everybody's desktop, working everywhere across the web? I don't think the expected audience for these products is the hundred thousand people who have been to a SIGGRAPH. The expected audience we want to shoot for is the 100 million people on the web. Can we make 3D accessible to them; not just some technology they only see in movies or in computer games. Can we make it a media they can see and use- they can make part of their own way of doing business. This is no small mission. Yet there were 100 million PC with hardware 3D graphics acceleration shipped in 1999! This, in light of the fact that the grand total of UNIX graphics-accelerated workstations ever constucted was only 3 million, means there is a huge existing infrastructure for this media that most developers are still unaware of.
What we are doing is 2 fold: we have structured X3D to scale in that direction and to support all the small companies. We are trying to break out of that mode of competition and say "you all have good pieces, but they are small pieces, and no one wants to do all of it. So use X3D- it is a cross-platform, extensible technology." Then these smaller, excellent pieces have a place to land· and then these companies are able to show off their technology to best advantage (added to all the other interoperable pieces). So engage together rather than senselessly competing- A rising tide lifts all the boats·
We were highly dependent on companies to behave well in implementing VRML and the distributing software. This time around we have insisted upon open source and community source as an essential part of the development. We have already seen a lot of benefits from that. X3D is not dependent on the economic success or failure of a couple big companies.
We are building on the successes of VRML, and learning from the lessons of VRML and we've put a lot of thought into how to improve.
Profiles: the Core a lightweight , rapid initial download for compelling content. This is our approach to overcoming the slow modem, initial download problem. Some great exemplars of this are Shout, blaxxun, and DraW.
Now that we have shown that a good core is possible, our next step is to show that we can compontentize from the small profile to the full VRML97 profile. This is our area of current work. We are applying Mark Rudolph's Jamal architecture as a demonstration of that capability. Next will be to add extension nodes, new nodes that don't exist in VRML, to show that this approach is scale-able to new technologies. The new nodes we are applying are multi-textures, particle sets, and NURBS. This will show that we can go past VRML technology in a chunk by chunk fashion. So this means for example, when a software company wants to add nodes to the spec. they can do so in a way that everybody can use them. Or if a hardware company like nVidia wants to add hardware-specific functionality. This is perhaps the first time that software and hardware companies have collaborated in such a way for a general solution.
SO with this new architecture, we are going to see a real difference in the quality of rendered worlds if we can use these kind of functionalities.
Don: Yes, X3D is not trying to be the final resting place-it is an extensible, an open ended architecture that will allow these things to co-exist and build off each other.
Seamless 3D viewing for the end-user is a main goal of this new format.
What happens if, while they are interacting with the core 3D profile, they link to a file that is X3D-VRML97?
How about profiles above that?
Will their machine automatically download the software to view that profile?
Don: A typical course of events: a content author could prepare lightweight, compelling content as the initial user experience, and then after an initial install, or perhaps in response to actions by the user, more content gets pulled down and added on a node by node basis. We expect that even with a slow phone line, a well crafted series of scenes could basically install the whole 3D profile without the user even noticing or being bothered. It could just be part of the experience going on in the background.
The idea is that you download a component once, then have it, and don't have to download it again. A new user gets rapid download, immediate engagement. As they interact with the world, going further, incremental downloads are repeated which gives them more and more nodes in the content. This process is invisible to users, their modem is busy but they are having fun· and voila, the components are installed without painful waiting.
Right now the core is 23 nodes out of 57 VRML nodes that sounds like a lot but it's a nice palette to work from and its actually pretty lightweight and we can get 50-80k Cores, much less than a 3 meg download. This is a good opportunity for developers- we welcome people to join us to develop such cool exemplars of how it can start light and scale to whatever degree of sophistication the author wants. There are great opportunities for content authors.
Are these applet viewers all Java?
Don: Well this is where it gets extremely interesting. We have not fully demonstrated this yet, but it appears that we can have a componentization model that works compatibly in both C++ and Java. This is part of the X3D Task Group's current work with blaxxun, DraW, and Lucid Actual (Mark Rudolph). We are going for a componentization win that would either allow interoperability piece by piece, or perhaps a Shout core (Java) could pull in behind it a C++ browser. There are a lot of interesting possibilities right now and we are trying to maximize all the wins at once.
In standard VRML browsers, there a number of user preferences where one can choose how the browser renders.
What rendering layers are you targeting with X3D?
Open GL?, DirectX?, Fahrenheit?
Don: DRaW uses Fahrenheit based core and browser· but
X3D is similar to VRML in that we are talking about scene graphs. So the content that authors create does not have to be dependent on the render layer.
Most exciting though, is that our efforts with the hardware companies have led them to develop open-source software for a cross-rendering engine layer, a wrapper layer for browsers. They have a vested interest in making our stuff look good on their cards, so they are providing software to help X3D viewers take advantage of whatever hardware and rendering layer sits underneath. We may see some source announcements by this February .
We have already posted all our initial deliverables for X3D in December, so we have met our goal for 1999-a major accomplishment that shows that we are tracking.
Don: Thank you. We have actually exceeded our goal since we laid out 4 deliverables:
- sample implementation
- exemplar content
- conformance suite and
- authoring tools.
In February, we will be ready for public use and companies to duplicate our success. Right now they are available for public review.
Is the conformance suite a NIST effort?
Don: That's correct. This has been particularly impressive, they have taken the already-solid VRML suite and they've augmented it with a larger XML conformance suite that they already work on. Mike Kass is the lead on that and we are working on making it very easy for software companies to use and evaluate.
I noticed you didn't use the word "browser companies". Is the notion of a 3D browser swept aside now?
Don: It's curious. Some of us are wondering if there may be a better word. Bob Crispen has proposed to use the word Îviewer'; I sort of like that· success takes you to new places and we have to find a new word. It's definitely not your father's browser anymore.
Is X3D parameterized?
Don: This is getting into the ragged edges of XML, but yes we are parameterized and this is a piece of work we are doing in combination with W3C. XHTML has an approach they call "modularization" which is very close to our "componentization". So we want to make sure that our XML parameters are compatible and maximize our interoperability.
How about binary encoding formats or streaming X3D?
Don: It is the group's intention to draft and post both a requirements document and a Request For Proposals. I expect this to be very fast track and I was impressed and surprised at how eager the group is to proceed now on binary. With their level of confidence in all the other work stabilizing, now they want to start the wheels turning on binary, since we now have a handle on how to define the problems and have people to propose solutions.
Will content authors have to pay to license X3D viewer software?
Don: There will be none for X3D, since we now have Intellectual Property Release forms signed by every company that has contributed technology to X3D. There are 0 IPR encumbrances on X3D. There are still a few minor ones left over from VRML like the use of Java, ECMA Script, GIF images; these are well understood issues and X3D's job is not to solve religious of problems of yesteryear, but to go forward. So we are adding a bunch of new technology; it is visible, in the open and its use will not require a license.
EVENTS AND INTEGRATION
Will X3D revise the current VRML97 event model?
Don: Yes, but compatibly both forward and backward. We have agreement on this and are testing implementation on what I like to call the "Grand Unified Event Model", where what you have is "field". It's called field and it has the functionality of exposed fields, meaning that it combines the functionality of eventIn , eventOut, field, and exposed field. You can read it and you can write to it.
Here I might say that in retrospect, this is one area we may have over-engineered VRML. On that piece, we made it harder than it needed to be, but the good news is that all existing VRML content can work with this new GUEM.
This also has the upside that it works with XHTML events and with web-based streaming, maximizing our interoperability with the new DOM.
In this new event model, will nodes inside an inlined file be
accessible to/from the parent world?
Don: Possibly. We need to see it and show that it would not hinder our paramount goal which is backwards/forwards compatibility for all existing VRML content. Whenever we have a design decision to make, the first thing we ask is "Does this work with existing VRML content?" We are totally sensitive to the needs of developers and our desire to maximize the use of all VRML content out there.
It seems that there is no Script Node included in the Core Profile. Is this a problem to make complex behaviors in X3D?
Don: If you need to use scripting you will need to pull a profile with such a node. Scripting is not lightweight and thus we left it out of the Core.
GREAT! This will be fabulous!
Don: Yes, but remember it is a work-in progress. We are always happy to have more code-mongers in to help us make this stuff work. We've now caught up with the leading edge of the W3C and making this work is the next challenge. Technically, it appears there are no show-stoppers but implementation is always the rub, so we are not going to claim victory on that one until we can show people. The Script Authoring Interface portion of the spec was drafted by Rick Goldberg of Sun and Avo Severinkangas of Cybelius and it is online for inspection so people can see what direction they are going and hopefully help.
What about the 5th Deliverable?
Don: Right now there is actually a freeware X3D scene-graph editor based on Xeena which is software that is unrestricted by IBM. What we've done is we've used the defined XML tags for X3D -the DTD (Document Type Definition) and use that to make a validating scene-graph editor. We want quickly enable exporters for principle authoring tools. We are also putting together a Software Development Kit CD at the Symposium in Monterey to make it easier to author and convert 3D content for various profiles in X3D.
Any other Media formats supported in the Core or the VRML Profile?
Don: I don't expect this. We want to keep the Core core. Every time you add a Îwant-to-have' there it gets bigger. Nevertheless, with extensibility, you can add whatever you want whether it is in the spec or not. We have completely changed the dynamic of the question, "Can I have MP3?". The answer is "Sure. Just do it. Write the source, post your solution, people can copy it if they like it and use it, then boom- we're done."
This is much different than asking the marketing manager from one or two large companies, "What does your company think about this?".
Right!· So we are no longer reliant on the browser companies to implement improvements or extended media support!
Don: If people want to add extensions to what we are doing, we are very happy to support that - whether they are free or licensed extensions. That is the choice of the implementer. We are trying to change the whole industry dynamic from competition over crumbs to cooperation, and growing the pie 10-100 times.
So what is possible by extending the 'X3D Profiles'? Object-to-Object Collision?
Don: Yes, but people will probably want to do that integral to browsers for performance reasons. You can do that now with componentization and open/community source· I don't think you'll download an Object-to-Object Collision plug-in. I think this will be a capability added to the viewer.
Don: There are at least 4 possibilities I can think of; each one could work as an extension and we are interested in enabling as many as we can.
Embedded Applications Screens (HTML, Flash, Java) in 3D Worlds?
This could really be a "killer app" for multi-user collaborative environments!
Don: This remains to be seen as it is very difficult to implement, and it would have to be application-specific. Chris Marrin's Blendo Proposal (SONY) has an inroad for this sort of functionality in the notion of Surfaces and the ApplicationTexture Node.
Physics and Math behaviors?
How about Geometry and Rendering
(NURBS, Particles, Multi-texturing, Hardware acceleration?)
Don: YES. We are trying to enable all the companies to succeed. It's hard work to work together out in the open, but it's possible. People can choose. They can sit and wait for the product that beats all other products, or they can help put 3D in the hands of anybody.
In the August issue of 3D (gate) magazine, Neil Trevett predicted that:
"In two years' time, our desktops will be all 3D. In another year or so, with the exception of data that's better done in 2D, the web could go all 3D."
Could you comment on that further?
What is 3D ubiquity?
Are we really on target for his prediction?
Don: It's very interesting. As a scientist, I like to see the results first. We are very careful not to over-claim anything about X3D. We are working on hard problems and we are getting excellent solutions. We don't need to overstate; the results will speak for themselves. We are actually trying to avoid hype, and intentionally keep a low profile right now even though we are completely public because we don't want to create a myth or false impressions. We are trying to create results.
My hope is that X3D is getting us to the threshold where the kind of ubiquity Neil described is possible. Nobody knew where HTML was going when it first came out. Nobody was quite sure where VRML was going when it first came out. We've gone to some interesting places; we are poised to go to some new interesting places. Will it go all the way? We'll know when we 're there. Until then, there is plenty of good work to do.
I hope you will encourage your readers to come to the Symposium in February. We'll have the X3D Software Development Kit (SDK), tutorials, the Web 3D Round-up, papers and panels, and the vendor show-floor. If they want to get engaged, this is where to do it!
Thank you Don for your time and expertise. I am fascinated by these great developments and I'm sure our readers will give kudos to the Task Group and all your amazing work- keep it up! Look forward to seeing you in Monterey.
Don: Thank you for exploring these issues so thoroughly. It's going to be an exciting year!