Netscape Network ad

VRML 2.0 Update: What are the issues, and where do we go from here?

A peek at Netscape's new VRML 2.0 implementation of Live3D

By Adrian Scott
NetscapeWorld
has become
[Netscape Enterprise Developer Table of Contents]

September 1996
[September 1996 Table of Contents]Table of Contents
[Archives]Topical Index
[Search]Search
Summary
With the VRML 2.0 (Virtual Reality Modeling Language) specification approved and several VRML 2.0 browsers released, new features and capabilities now enable savvy Webmasters to create low-bandwidth virtual environments combining interactivity, sound and multi-user worlds. Java and JavaScript are the scripting languages of choice for VRML 2.0, though no scripting languages are yet required to be supported by a VRML 2.0 browser. Netscape's VRML 2.0 Live3D browser will arrive in the next month or two. (4,300 words)

VRML 2.0--the specification for creating three-dimensional worlds on the Internet--is now here. The general form of VRML 2.0 was determined in March when the VRML community embraced the "Moving Worlds" proposal, which was supported by Netscape, Silicon Graphics (SGI), Sony and 50 other Internet companies. (See storyNetscapeWorld: VRML 2.0: The Earth Moved, and So Will Everything Else,April 1996) Now, the final version of the VRML 2.0 specification is approved, spurring the development of new software and 3D Web sites.

The release occurred in a festive and whirlwind VRML Birds of a Feather session at SIGGRAPH, a conference on graphics. And just as important, VRML 2.0 browsers are now available for the masses. Beta versions of Silicon Graphics's Cosmo Player and Sony's Community Place VRML 2.0 browsers are available on the Web.

The most recent version of VRML brings new capabilities to immersive 3D worlds on the Web that previously seemed static. VRML 2.0 worlds can include sound, interactive behaviors, robots, and even multi-user interaction. VRML 2.0 opens up as many new questions as it answers old ones. How do Webmasters choose between VRML 1.0 and 2.0? Will Java, JavaScript or another language become the preferred scripting language of choice for VRML 2.0 behaviors? Will there be a standard for multi-user support, so that users can transition seamlessly between worlds? And what will Microsoft, which had submitted a different VRML 2.0 proposal, do in the VRML arena?

When to Use VRML
But first, when is it appropriate to use VRML and how much will it cost? According to Alex Chafee, director of software engineering at Web developer EarthWeb, creators of the Gamelan Java Directory, "VRML provides a standardized language to visualize data. That's really valuable. The Java connection will allow for the calculations of real-time data visualizations for both business and scientific applications. Once Java and VRML meet, it's going to be amazing!"

Data visualization can be used to understand large databases of information, such as in financial trading, Web traffic analysis, database marketing analysis, and scientific research. A marketer could look at a 3-D representation of customer demographics and interests to discern untapped markets. A scientist could look at a 3-D representation of a protein and click on part of the protein to get information on the protein segment's function, as well as data on links to other protein databases on the Web.

Besides information visualization, multi-user VRML spaces are possible. "This is an enabling product for doing business and forming relationships," says Dawn Drake, product marketing manager at Black Sun Interactive, developers of multi-user VRML software. "The costs for VRML are going to be higher than HTML initially," she says. "Over time, the prices and costs will come down. Right now most of the people doing Web design are still ramping up for VRML."

Besides data visualization and multi-user worlds, VRML can be used for product design and marketing, entertainment, and education. Customers might select the color, size and features of an automobile in a VRML 2.0 world, and see their preferences updated dynamically in the 3D model of the automobile before purchasing their personalized car over the Internet. Manufacturers can display 3D demos of their parts for potential customers to examine. Entertainment companies can appeal to audiences at a deep emotional level using personal involvement and elegant camera angles in a 3D movie/scenario. Customers who purchased a CD-ROM installation kit can practice installing the drive using a VRML 2.0 world before they try installing the real thing.

While there are many applications of VRML, Web developers still need to demonstrate that VRML will add value. "Customers need to see it will make money or generate great Web traffic," says Eli Sagiv, Internet identity designer at Web Design Group in San Francisco. Sagiv finds that Japanese clients are more aggressive in using VRML than their U.S. counterparts. "The point of view in Japan on VRML is 'How can I use it to represent data internationally without text?' Recently we found that in a meeting the best way for us to communicate with a Japanese client was by looking at a VRML world. I didn't need to use the translator. They look at it as an interface for navigating through large sites with thousands of pages of information."

"Clients are sometimes afraid of it," Sagiv says. "We see it as Icarus' wings. There's a fine line between seeing the whole landscape and flying too close to the sun. Yet, seeing the whole landscape is where the adrenaline is for the users."

Putting VRML on a Web server only requires adding the VRML MIME type, x-world/x-vrml, to the Web server software configuration for filenames with the extension ".wrl." The servers also should be configured to transmit the gzip content encoding header for compressed VRML worlds. VRML worlds that are compressed with gzip compression are approximately 10 percent of the original VRML file size. VRML 2.0 will soon have a binary format for even smaller file sizes.

VRML 1.0 versus 2.0
Now that users can have their choice of VRML browsers, Webmasters will need to choose between creating VRML 1.0 or 2.0 for their sites. Though VRML 2.0 adds many new capabilities, almost all of the installed base of VRML browsers is only VRML 1.0-compliant. The most popular VRML browser, Netscape's Live3D, has not yet been released in a VRML 2.0 version. Thus, Webmasters targeting users who already have VRML software will still develop content in VRML 1.0.

The advantages of creating VRML 2.0 include interactivity, sound, dynamic modifications and the ability to create more sophisticated applications. For instance, at my company, Aereal Inc., we created a world with a frog in a blender for Goldberg Moser O'Neill Advertising's Web campaign for Symantec Café. Since no VRML 2.0 browsers were available at the time, the only option was 1.0. We created buttons on the blender that led to different viewpoints in the world. Pressing one button would give you a close up view of the frog. Pressing another button would give you an overhead view of the frog in the blender.The frog was spinning in the blender using Live3D VRML 1.0 extensions, though the spinning would not be visible in other VRML 1.0 browsers.

Had VRML 2.0 been used to create the world, the buttons on the blender would have started the frog spinning at different speeds. The buttons would be an example of interactivity in the world, since the user's actions (clicking on the buttons) change the world. In addition, the blender could be audible, with different sounds at different speeds. Taking it a step further, a Java class written with the VRML 2.0 Java API (application programming interface) could morph the frog into various poses or expressions. This dynamic modification could change the frog's 3D appearance without reloading the whole VRML world.

In another example, a financial institution's Web site could use VRML 2.0 for financial visualizations and marketing. A bank's Web site might encourage a customer to try out new accounts and show dynamic 3D graphs of how the customer's account value can rise in different account configurations. With VRML 2.0, the graphs don't have to look sterile, but rather can include 3D sound, engaging camera angles and 3D robots, so that it's also a marketing tool as well as an information service.

Another benefit of VRML 2.0 is that it is object-oriented. "We think that the real benefit of 2.0 is in the so-called PROTOs, the re-usable objects with behaviors," says Tony Parisi, founder and chief technology officer of Intervista and co-creator of VRML. PROTO is a prototyping mechanism in VRML 2.0 that lets content developers or browser writers create new nodes, which are defined in terms of other nodes. These can be defined in external files and re-used in other worlds, reducing VRML development costs. Parisi looks forward to seeing PROTOs applied to commercial applications, such as multi-user conferencing.

VRML 2.0 browsers such as SGI's Cosmo Player and Sony's Community Place include converters that will change 1.0 code into 2.0 code, so that the browsers can read VRML 1.0 files. There is a more significant penetration of VRML 1.0 browsers at this point. Indeed, Netscape Navigator 3.0 Standard Edition for Windows includes the Live3D VRML 1.0 browser built into it.

Netscape and Live3D
At SIGGRAPH, Jan Hardenbergh, VRML practitioner in Netscape's Live3D team, demonstrated a preview of the company's VRML 2.0 version of Live3D, code-named "D2," pictured below.


A preview of Netscape's VRML 2.0 version of Live3D

Netscape started almost from scratch to create its VRML 2.0 version of Live3D, encorporating the lessons learned from Ver.1.0. "We re-architected Live3D from 1.0, and built it closely around VRML 2.0," says Jim Dunn, member of Netscape's Live3D technical team. VRML 2.0 Live3D is in alpha now and is expected to be in beta by September. Dunn says that the beta product should be from 90 to 95 percent VRML 2.0 compliant.

The new architecture separates Live3D into various modules for quicker development and for portability to new platforms. "We've created components to integrate Live3D more closely with Netscape Navigator," says Dunn. Live3D's "D2" architecture separates the overall browser code from dependence on hardware platform and rendering engines. Therefore, in the future, Live3D will be able to run on top of other graphic APIs, such as Microsoft's Reality Labs, SGI's OpenGL, and hardware-independent APIs. (The original Live3D was built using Criterion's Renderware graphics API.)

Dunn says that the initial platform will be Windows 95/NT, with a a Windows 3.1 version planned. The Macintosh port probably will be a month or two behind that and Unix platforms should follow.

For Unix and other platforms, ports will be created by other companies, such as hardware companies that license Live3D for porting purposes. This will be important for making VRML and Live3D ubiquitous and suitable for serious applications. The companies (whose names have not been released) will be working on the VRML 2.0 version of Live3D, rather than porting the VRML 1.0 version.

However, Netscape will continue to support VRML 1.0 in the new version of Live3D. "Our plan is to support 1.0 without converting it--it'll be supported natively," says Dunn.

In the meantime Netscape has been integrating Live3D with Java and JavaScript through its LiveConnect architecture. LiveConnect lets developers use special Java and JavaScript APIs to access the Live3D plug-in, affecting the virtual world and objects inside the virtual world dynamically--without reloading the world.

Netscape plans to extend this API further, according to Michael Plitkins, virtual engineer in Netscape's Live3D team. "In addition to the standard VRML 2.0 API we're preparing our own API which makes access to the scene graph easier for content developers and less VRML-centric. It's going to be closely related to the existing API we have for Live3D 1.0." (The scene graph is the hierarchy of positional information in VRML. The VRML 2.0 Java API might be considered VRML-centric since developers need a significant understanding of VRML 2.0 to use it.)

Bandwidth
Many Webmasters have been worried about the bandwidth requirements of VRML. However, according to Web developer Jeff Sonstein of Sonstein & Associates in San Francisco, "Well-designed VRML scenes require no more bandwidth than well-designed HTML documents. With the advent of the extrusion node and a good prototype node in VRML 2.0, we now have powerful tools for creating very complex objects that require very little bandwidth." (Experiencing terminology overload? See our explanation of VRML syntax and terms.)

"I see a lot of attention paid needlessly to bandwidth at this point. VRML files are usually smaller than comparable GIFs," says Barry Fox, technical editor of 3D Design Magazine in San Francisco.

Java and JavaScript as VRML 2.0 Scripting Languages
The biggest controversy in the months before the finalization of VRML 2.0 was deciding on the scripting language to be used for behaviors. The VRML community--voting on the VRML Architecture Group Web site--split evenly between Java and JavaScript as the required internal scripting language, thus there is no official designated language.

In order to reach a consensus, the community decided to have no required scripting language supported by VRML 2.0 browsers. However, the specification defines application programming interfaces for using Java and JavaScript as scripting languages in VRML 2.0. This means that if a browser allows JavaScript to be used as a scripting language, it must implement the JavaScript API as defined in the specification. The JavaScript API is also referred to as VRMLScript, since the legal restrictions on the word JavaScript are not clear at this point. Yet, any other language can theoretically be used as a VRML 2.0 scripting language. For instance, Perl, TCL, C, or other languages can be used to write behaviors that are VRML 2.0 Specification-compliant. However, finding a VRML 2.0 browser that will support languages other than Java and JavaScript is a different matter!

Developers are still figuring out the merits of the Java and JavaScript APIs. Their concerns include portability and ease of use. "When I write code to use a formula to control the extrusion of a shape while the audience watches, I want it to work the same no matter what hardware is being used to view the scene," says Sonstein. "My opinion is that VRMLScript is decent as a lightweight scripting language for VRML, and that Java would be the best heavyweight scripting language to use."

There is also concern about whether scripting information should be contained in the VRML file at all. According to Brian Behlendorf, chief technology officer of Organic Online, "Behavior is really external to an object, and should be defined externally, with references between the two. VRML doesn't have to define a scripting language, just define an interface for addressing and modifying variables, and creating and destroying nodes in the scene graph."

Though the APIs for Java and JavaScript are defined in the 2.0 specification, some are still worried. Intervista's Parisi says, "There are a lot of companies that will try to fight API wars as a result of the new spec. VRML 2.0 will be much harder to test for specification conformance, because much more is possible than in 1.0." To help with conformance testing, there are moves underway for the start of a VRML Consortium. In addition, the U.S. Government's National Institute of Standards and Technology is leading a move to develop conformance tests for VRML 2.0.

Multi-user Avatars
The VRML 2.0 specification provides support for multi-user worlds, so that developers can create multi-user worlds without needing separate plug-ins. These can be developed using VRMLScript nodes with Java as the scripting language, or using the Java API for VRML 2.0.

Though it is possible to create multi-user VRML 2.0 worlds, there is no defined standard for multi-user avatars across different VRML 2.0 worlds. Avatars are the 3D representations of people in virtual worlds. Avatars can include 3D geometry definitions, personal information such as names and e-mail addresses, plus behaviors, such as the way the 3D geometry moves.

"It's the tower of Babel all over again," says Mark Pesce, author and VRML co-founder with Parisi. "We have a framework for interactivity in the virtual world but we have no common framework."

Into this void comes a new proposal. At SIGGRAPH, a number of companies with a stake in multi-user VRML environments--Chaco Communications, IBM, Velocity and Worlds--announced a proposal for a standard for avatars, including 3-D plus inter-object communication, such as behaviors and carrying around objects such money.

Behaviors are the movements of objects. For instance, a robot can walk around with the "walk" behavior attached to the robot. Behaviors can also be tied to avatars, such as a person dancing in a multi-user world.

"The hard problems are any kind of interaction between an avatar and another avatar or the world. If you want to have social reality on the Internet, you need to have a mechanism for avatars to interact," says Dan Greening, president of VRML/MUD software developer Chaco Communications in Cupertino, Calif. There is more to multi-user functionality than transmitting 3D coordinates. "Code signatures are something that's missing and is needed. Let's say that I create a dog avatar. Once the dog interacts with the world, you better be able to trust it. That can be done with RSA authentication or a central server that stores objects," says Greening.

"One problem is the standard VRML 'one unit equals one meter rule,'" says David Colleen of VRML content developer Planet9 Studios. "It's not good for cities, and standard heights for avatars need to translate. I really applaud the avatar proposal, since we currently have to do different versions of multi-user worlds for different browsers."

Bob Rockwell, founder and chief technology officer, Black Sun Interactive, adds: "We knew from the beginning that you had to make things look right, make them move, and let people be with each other. There are a set of semantics still needed for that, such as how people know you are you. We need a better means for user identification. We need the concept of an avatar in VRML, without which VRML is incomplete."

The avatar proposal may become a part of VRML 3.0 in a year's time.

Microsoft and VRML
Microsoft submitted a proposal called ActiveVRML to the VRML community as part of the VRML 2.0 Request For Proposals process earlier this year. Though the community was worried that the company would try to position ActiveVRML as a competitor to VRML 2.0, Microsoft is embracing the VRML 2.0 specification. Even as the company is doing that it continues to promote its own approach, ActiveVRML , which has been renamed ActiveAnimation.

"ActiveVRML is being repurposed," says Mitra, VRML 2.0 specification co-author. "Think of it as being a competitor to Shockwave, not VRML." Mitra is chief networking architect at ParaGraph, one of the leading VRML authoring tool vendors.

Perhaps of even more important is the news from Microsoft that it has licensed a part of Liquid Reality, Dimension X's VRML 2.0 toolkit written in Java using native methods for graphics rendering. In essence, Microsoft has licensed the Liquid Reality portion that has the native methods for Microsoft's operating systems.

Microsoft will provide VRML 2.0 support in Internet Explorer as a downloadable ActiveX component. Intervista and Chaco are among the companies planning to release VRML 2.0 plug-in browsers for Microsoft's Internet Explorer browser.

VRML 2.0 and Beyond
In the next few months, VRML 2.0 browsers are expected to become available to the masses, and are expected to develop an installed base large enough for Web developers to invest resources into the new standard. In addition, tool developers are releasing VRML 2.0 tools to bring authoring capability to the average Web developer. VRML 2.0's new capabilities for interaction and dynamic change will spur new levels of excitement and investments in content development.

As the 2.0 technology stabilizes, developers will take advantage of VRML's networking capabilities to build the cyberspace they have been dreaming about: a visualization of the World Wide Web and the Internet as a seamless, engaging virtual world. Whereas today people surf the Web by clicking, tomorrow they will surf the Web by swimming through a 3D cyberspace. []


Screenshots of VRML 2.0 browsers from SGI and Sony

VRML 2.0 Syntax and Terms
VRML is Virtual Reality Modeling Language, the open standard for virtual reality on the Internet. VRML is a modeling language -- like a file format -- not a programming or scripting language. VRML does not get compiled. VRML can be created using a text editor, just like HTML. VRML 2.0 files are made up of nodes and ROUTEs. Nodes are the building blocks of VRML worlds. Nodes can be:

  • geometric pieces, like boxes and cylinders,
  • properties of 3D objects, like colors and textured images (like wallpapers),
  • sensors, which react to actions like mouse-clicks,
  • sounds and lights,
  • grouping nodes, which organize other nodes within them.

Nodes are arranged in a structure called a scene-graph. In this structure, nodes have properties associated with them, called fields. Fields have various types of values. For instance, the Box node has a field called height. The field height is of field type SFFLoat, which means that it can have the value of a float number (like 1.03). In addition, several nodes can have children, nodes within nodes. Children of a node are affected by the properties of the parent node, such as its position.

In addition to fields, VRML 2.0 nodes also have Events. Events are messages that get transmitted when a specified action takes place, or that are received from another node. For instance, a TouchSensor node transmits an Event when the mouse is over certain geometry.

There is a combination of one field and two Events that is called an exposedField. For instance, translation is an exposedField of the Transform node. This means that there is a field of the Transform node called translation, an EventOut called translation_changed, and an EventIn called set_translation that make up the exposedField. If the value of the translation field changes, the Transform node will transmit an EventOut message with the new value of the translation field. If the node receives a set_translation EventIn message, the translation field will take on the value given in the set_translation EventIn.

If nodes are building blocks, then ROUTEs are the glue that bind them together. When an EventOut is transmitted, where does it go? And how do EventIns receive messages? What happens is that two events are connected together with a ROUTE statement in the VRML file. For instance a TouchSensor can generate an isActive EventOut that could be connected to a set_on EventIn of a SpotLight node with a ROUTE statement. Then if you clicked on the geometry related to the TouchSensor and held down the mouse button, the light would turn on. When you released the mouse button, the light would turn off.

VRML 2.0 also has a prototyping capability called PROTO. With PROTO, you can create definitions of new nodes that you can use later in the VRML file. For instance, you could create a House node which has fields like height, width, and roofStyle, and use the House node later in the file to build houses.

Back to story

Resources
Software and Information Companies

About the author
Adrian Scott, Ph.D. is a pioneer in the development of dynamically-generated VRML sites, such as Instant VRML Home World. Scott is the founder and CEO of Aereal Inc., a Java/VRML Internet marketing company based in San Francisco. He is also the publisher of VRMLSite Magazine. Reach him at http://www.netscapeworld.com/netscapeworld/cgi-bin/nw-mailto.cgi?adrian.scott@netscapeworld.com+/netscapeworld/nw-09-1996/nw-09-vrmlupdate.html+author.

What did you think of this article?
-Excellent! -Okay -Poor ----- -Too long -Just right -Too short
-Too technical -Just right -Not technical enough

Comments:


[September 1996 Table of Contents]September 1996 Table of Contents    [Current Table of Contents]Current Table of Contents
[Archives]Topical Index    [Site Map]Site Map

[(c) Copyright 1996 Web Publishing Inc., an IDG Communications company] Feedback: http://www.netscapeworld.com/netscapeworld/cgi-bin/nw-mailto.cgi?editors@netscapeworld.com+/netscapeworld/nw-09-1996/nw-09-vrmlupdate.html+feedback
Technical difficulties: http://www.netscapeworld.com/netscapeworld/cgi-bin/nw-mailto.cgi?webmaster@netscapeworld.com+/netscapeworld/nw-09-1996/nw-09-vrmlupdate.html+webmaster
URL: http://www.netscapeworld.com/netscapeworld/nw-09-1996/nw-09-vrmlupdate.html
Last updated: 1 September 1996