Extensible 3D: XML Meets VRML
by Len Bullard
|
Pages: 1, 2, 3, 4
Why Binary?
Binary formats have been debated hotly among XML developers list for years. It can be said that the requirement for a binary comes down to the application itself. Some need them, others don't. The work on the binary for X3D is not complete as of this writing. Alan Hudson suggests why one is necessary for X3D:
- Parsing Speed. I routinely process 20 to 30 MB VRML files. CAD users are pushing around 100+ MB. My desire is to push VRML into the simulation space where they routinely have databases representing the world or a very detailed region. I think a lack of binary format is a big issue. The combination of XML plus binary formats gives us both answers they need. But they must be 1:1 convertible, that's a key issue.
- Delivery Size. A big chunk of the VRML applications I've written have been local, so delivery size has not been that big of an issue. But I'd like to move the training applications I do to the a web delivery strategy. For an application I did 3 years ago the VRML file was 16 MB uncompressed, gzipped it's 3.5 MB. In my prototype binary work I've gotten it down to 1.5 MB binary gzipped. I've seen other work which has gotten the same type of file down to 300K with unpatented technology. At 300K it becomes feasible to deliver a full training application (this one involved 300 parts, 2 rooms, about 2.5 hours of training time). No streaming needed, just deliver the whole thing and run.
MIME Type Support
VRML97 files use the "wrl" (uncompressed) and "wrl.gz" (gzip-compressed) extensions to identify their MIME types. To prevent confusing the users and interfering with the installed base of VRML97 tools, the following MIME type extensions have been selected for X3D given the multiple encodings as of this writing:
| Classic VRML | XML | Binary |
|---|---|---|
| x3dv | x3d | x3db |
| x3dvz | x3dz | x3dbz |
| model/x3d+vrml | model/x3d+xml | model/x3d+binary |
X3D Resources
It is common for application languages to be tossed over the transom to authors and developers without the resources needed to get started quickly. The Web3D community is not doing that for X3D. Because of the existing legacy of VRML97, and because the standards development team and others have been working hard to create the necessary resources, X3D users start with a treasure trove.
X3D Browsers and Toolkits
There are three outstanding browsers that support the XML-encoding now. First, Xj3D is a Java browser. The second, Flux, is an Active-X plugin for use inside Internet Explorer. The third is Contact, an OCX for Internet Explorer from Bitmanagement Software GmbH.
Xj3D
Xj3D is an open source Web3D Consortium project. It is a Java toolkit for VRML97 and X3D content and provides a browser that can handle VRML97 and X3D in both the XML-encoding and VRML Classic. Development of Xj3D has been financially supported by various institutes and companies. Developers interested in the project, the product, or the source code can start at the Xj3D homepage.
Stephen Matsuba, at Yumetech, the Seattle-based company that is the prime developer of the Xj3D toolkit, cites the two projects where the XML encoding feature of X3D could or did represent a significant factor.
The first example is...an application that taught and tested maintenance personnel for an encapsulation machine that produced 100,000 to 200,000 pills per hour...Users could be shown the various steps in the standard operating procedure for the encapsulation machine and then be tested on what they learned. It would also track and record their progress through the tutorials. The system required links between the 3D viewer and a database that could track the user inputs and return the appropriate response.
This system was developed using VRML and Java 3D. The user inputs within the VRML environment utilized scripts to send and receive information from the database. There was no direct way for the visualization software to communicate with the database, and so the development team needed to create various methods to facilitate this task. It was the not most efficient method for linking a database with a 3D real-time graphics system. Indeed, the training application was...'held together with baling wire and Perl'.
|
|
|
|
The other project is the Digital Rare Book Library System (DiRBS): a project developed by the UNC's School of Library and Information Science and Yumetech. DiRBS is designed to reintroduce the experience of viewing a book into the digital form. It consists of two components. The first is a system for viewing rare books and historically significant material in a form that provides users with the sense that they are "handling" an actual book. This experience is not limited to individual items, but also includes a 3D system for viewing an entire collection. The second component is a set of procedures and software tools for scanning, converting and distributing all this material online.
Unlike the training application, DiRBS was able to utilize the X3D standard for its graphics format and incorporate its XML encodings into the system. The XML encodings greatly improved the interaction between the database and the 3D graphics system. Information about the books, the 3D models, behaviors and other elements were stored in XML and could be dynamically send to the X3D viewer. Moreover, the availability of Xj3D allowed the Yumetech team to incorporate new graphic overlays directly in the browser code.
|
|
|
|
Flux
For high level development on the Direct X platform, the Flux Media Player is ideal. For the end user, there is the ActiveX plugin to view and navigate X3D and VRML97. For the professional application programmer, there is the Flux Engine and Flux Web. Flux supports XML and VRML97 file loaders; GIF, JPEG, and PNG texture readers; and integration with ActiveX and XML/DOM within IE and Netscape. Developers interested in the patented MPEG-4/BIFS technology can license the Flux library for this work. You can download the Active-X Flux browser here. Media Machines is sponsoring an active beta program and provides examples of content to get the author started with X3D.
Contact
Bitmanagment Software supports and improves the industry standard Contact player. The new 6.1 version supports X3D XML encoding with a flexible MSXML/IE DOM Integration model. The engine offers highly optimized OpenGL and Direct X rendering support. Scenes can be composed in real-time out of 2D, 3D, audio, video objects and other subscenes. Due to a flexible COM API the player is used in several industrial applications. Bitmanagement products for 3D include other tools such as exporters and optimizers and the SDK Package for integration in third party products and applications.
Many new concepts like Multitexturing and NURBS Primitives have been brought by Bitmanagement's key engineers to the X3D specification. Bitmanagement also showed the world's first realtime integrated MPEG-4 2D/3D Player with live-streamed MPEG-4 video.
Here are images of two high-end sophisticated VRML applications produced using BitManagement tools for the Web.
|
|
|
|
Linux Browsers
For the Linux community, there are three well known browsers for VRML and X3D:
Xj3D supports the XML encoding. John Stewart promises support in FreeWRL soon. OpenVRML only supports VRML97 today.
X3D Editors, Exporters and Converters
While VRML has good editor support from editors such as Spazz3D and exporters for professional systems such as Maya, XML support is only now being adopted. An open source project for an exporter from 3DStudio Max is underway. The basics of an exporter are available from the Web3D Consortium's source group. Qiming Wang developed a VRML97 to X3D convertor to ease the pain for those who already have a substantial amount of VRML97 content. You can get that here. Bitmanagement provides the BS Exporter Converter for 3ds max to VRML as well as BS Internet Optimizer for reduction of VRML data.
X3D-Edit
X3D-Edit provides XML-encoded X3D editing support for scenegraphs; it's freeware with good I18N support. It incorporates authoring and validation. This editor was developed by the specification team under Don Brutzman to support development of the X3D language. It is available for multiple platforms including Windows and the Mac.
Brutzman's work at the Naval Postgraduate School q combines VRML with Distributed Interactive Simulation (DIS) has produced some of the most technically sophisticated, elegant, and forward looking work in 3D on the Web. A DIS component set is part of the standard ensuring that X3D can be used in forward looking distributed simulation projects.





