2 . 4 3D Interfaces (VRML)
"Reality is whatever refuses to go away when I stop believing in it." - Philip K. Dick
One of the most compelling ways to look at the Web is through a threedimensional interface. Virtual Reality Modeling Language (VRML) allows authors to build 3D worlds. Eventually, you will be able to interact with other people, see their avatars, (their visual stand-in), and collaborate on work, or just chat.
2 . 4 . 1 VRML
VRML is the Web's answer to adding 3D user interfaces to your browsing experience. A 3D graphical environment representing a store, shopping mall, house, museum, library, human body, or anything else you can imagine can become a user interface. Through it you can potentially access Webs of information about topics that match the various environments in intuitive spatial ways.
How it all started.
One of the strengths of VRML, and one reason it emerged and became popular so quickly, was the wise decision not to reinvent everything. VRML 1.0 is based on Silicon Graphics Open Inventor. The decision to use a subset of Open Inventor was quite controversial. Ultimately, pragmatics and the willingness of Silicon Graphics to contribute a parser and the specification to the public won the day. In the words of Mark Pesce the principal VRML cheerleader concerning Open Inventor, "it was already debugged." Pesce managed to promulgate compelling visions of a 3D Web, and, quite simply VRML caught fire.(7)
What it is and what it isn't
VRML is really not all that complicated... yet. It is simply another 3D modeling language, but with one crucial difference: it associates URLs with those objects. In some sense, this is not all that major a development. There are probably dozens of ways of representing 3D models. But 3D Web interfaces are important. They bring the full potential of complex, realistic computer graphics into an intimate relationship with the Web and the information available there. This stuff isn't just cool (which it is) and fun (which it also is); it's useful and intuitive. A VRML world, of a "museum" through which you could wander and get information, is a simple yet powerful user interface.
VRML also has clever mechanisms of referring to files via URLs to create worlds, something "normal" 3D modeling languages also lack. The WWWinline statement, part of VRML, is like a C language #include statement or macro expansion, and lets you create worlds by referring to other files that are included in the main world. The reference to a file, however, can be a URL pointing to a file on any Webaccessible machine. Therefore, complex worlds created with files distributed all over the globe are realistic.
Another novel use of VRML is to help visualize the statistics of activity on a Web site. The vrstat perl program, developed by Denis Leconte, can produce 3D bar charts that can be spun around in real time using a VRML browser such as Live3D. While it's unclear how useful this is yet, it makes a great demo, and extensions will clearly make it useful.
![]()
Two views of the VRML output of vrstat, Web site statistics.2 . 4 . 2 VRML 2.0 Moving Worlds
Now it's time for VRML The Next Generation, actually called VRML 2.0. After a frenzied year activity, more extreme hyperfrenzy took place because of the VRML community's desire to put behaviors into the models. One proposal the "Moving Worlds" specification, led by Silicon Graphics, Sony and a several others, garnered so much support that Netscape decided to endorse it and buy the leading VRML browser company, Paper Software Inc., makers of WebFX. Politics aside VRML 2.0 is a quantum leap beyond 1.0.
VRML 2.0 has many new features. The most significant change is the addition of behavior. With VRML 1.0 you can travel around in a cyberspace world, but it's a dead world. Nothing moves or reacts to you. With VRML 2.0, objects can execute scripts that cause them or other objects to take some programmed action. The Moving Worlds proposal(8) explains:
VRML 1.0 provided a means of creating and viewing static 3D worlds; VRML 2.0 will provide much more. The overarching goal of the Moving Worlds proposal for VRML 2.0 is to provide a richer, more exciting, more interactive user experience than is possible within the static boundaries of VRML 1.0. The secondary goals of the proposal are to provide a solid foundation that future VRML expansion can grow out of, and to keep things as simple and as fast as possible for everyone from browser developers to world designers to end users given the other goals.
Moving Worlds provides these extensions and enhancements to VRML 1.0:
- Enhanced static worlds
- Interaction
- Animation
- Prototyping
Enhanced Static Worlds
You can add realism to the static geometry of your world using new features of Moving Worlds:
New nodes allow you to create ground-and-sky backdrops to scenes, add distant mountains and clouds, and dim distant objects with fog. Another new node lets you easily create irregular terrain instead of using flat planes for ground surfaces.
Moving Worlds provides sound-generating nodes to further enhance realism -- you can put crickets, breaking glass, ringing telephones, or any other sound into a scene.
If you're writing a browser, you'll be happy to see that optimizing and parsing files are easier than in VRML 1.0, thanks to a new simplified scene graph structure.
Interaction
No more moving like a ghost through cold, dead worlds: now you can directly interact with objects and creatures you encounter. New sensor nodes set off events when you move in certain areas of a world and when you click certain objects. They even let you drag objects or controls from one place to another. Another kind of sensor keeps track of the passage of time, providing a basis for everything from alarm clocks to repetitive animations.
And no more walking through walls. Collision detection ensures that solid objects react like solid objects; you bounce off them (or simply stop moving) when you run into them. Terrain following allows you to travel up and down steps or ramps.
Animation
Moving Worlds wouldn't be able to move without the new Script nodes. Using Scripts, you can not only animate creatures and objects in a world, but give them a semblance of intelligence. Animated dogs can fetch newspapers or frisbees; clock hands can move; birds can fly; robots can juggle.
These effects are achieved by means of events; a script takes input from sensors and generates events based on that input which can change other nodes in the world. Events are passed around among nodes by way of special statements called routes.
Prototyping
Have an idea for a new kind of geometry node that you want everyone to be able to use? Got a nifty script that you want to turn into part of the next version of VRML? In Moving Worlds, you can encapsulate a group of nodes together as a new node type, a prototype, and then make that node type available to anyone who wants to use it. You can then create instances of the new type, each with different field values -- for instance, you could create a Robot prototype with a robotColor field, and then create as many individual different-colored Robot nodes as you like.
The scripts associated with Moving World Nodes can be in several languages, particularly Java. Also note that Paper Software Inc., now owned by Netscape, is the developer of Live3D, the Netscape VRML plug-in, which will follow the Moving Worlds proposal.
Finally one area being delayed a little for standardization is that of multi-user interaction. Everyone in the VRML community wants to be able to create worlds in which people can meet and share an environment. This is being left for further addendums to VRML 2.0 but the possibilities are wide open such as networked games. This is one area to watch closely.
2 . 4 . 3 Authoring VRML
Creating a VRML world is not as simple as creating a Web page. You need an authoring tool. Although readable, VRML files, are generally pretty nasty, filled with lots of polygons and lighting definitions. Modifying VRML with a text editor is doable but it is not a pleasant experience.
VRML authoring tools are popping up all over. Worldbuilding systems such as Virtus Walkthrough and Caligari, have been around for a few years and are adding VRML as a file format they can create.
If you happen to have a Silicon Graphics workstation you can use WebSpaceAuthor. This tool is as close as you can get to WYSIWYG VRML authoring. It has controls for specialized VRML constructs such as levels of detail (LOD), links, and inlines.
Using these tools, you create the world visually and associate the URLs easily. As these tools mature they will provide more support for VRML features, such as file references via URL and the definition of predefined viewpoints. The result will undoubtedly be more creative integration of VRML worlds with the Web.
2 . 4 . 4 Integration with other Net Technologies
The integration of chat services and VRML worlds offers another host of possibilities. Imagine the touring capability of Ubique taking you along on a VRML ride. You will talk to store clerks, in cyber malls. Tour guides will show you around their cyber museum.
Worlds Chat from Worlds Inc. is a fascinating social 3D environment. It offers users the ability to pick a persona, an avatar, and wander around, chatting with other people in the environment. The environment has numerous clever dimensions and designs, plus sounds effects to complete the ambiance. Worlds Inc. also offer another more complex environment called AlphaWorld, where you can claim land and build structures. As time goes by, more and more complex architectures and spaces are being created.
![]()
A scene from Worlds Chat, a VRML based, social chat environment.One of the most robust, new environments, is CyberGate from Black Sun Interactive. The folks at Black Sun have teamed with Point Communications, which rates Web sites to create an environment with lots of useful links.
![]()
CyberGate a VRML based information space with hundreds of URL linksAs this book went to press, VRML was undergoing major changes. In a oneyear period, VRML went from an interesting but pie-in-the-sky Web format to a mainstream application. Sun, Silicon Graphics, and Microsoft are all putting significant investments and marketing resources into the concept of 3D graphics for the Web. All these players, quite naturally, have different perspectives on the direction of the specification. Only time will tell how it will all play out. Several things are clear, however. First and foremost, VRML will become not merely another 3D graphics specification, but one which allows networked interaction. Objects can be imbued with behavior and users can interact with these objects which often will be standins, or avatars, for their human counterparts.
One example of the true potential of these integrated technologies comes from Starbright World. The Starbright Pediatric Network is an experiment at connecting seriously ill children, in hospitals, with an avatarbased virtual world. In this world the children can talk to other seriously ill children and play games with each other in the virtual world. These types of distractions and interactions can lessen the boredom and isolation felt by children experiencing long hospital stays.
![]()
The Starbright World home page, a pediatric network for sick children.The two major approaches to adding behavior are epitomized by the SGI-Sun approach and the Microsoft approach. SGI, Sun and Netscape have all agreed to use Sun's Java as a language to program behaviors and embed them in 3D objects. Microsoft has come up with its own proposal, known as ActiveVRML, based on a functional programming language called ML. All these parties will battle it out in the marketplace.
With Netscape's release of Live3D integrated applications are starting to appear. One demo shows the lunar lander on the moon. Clicking on the astronaut of the lander causes a connection, via RealAudio to play back, out of NASA archives, actual audio from Apollo 11.
2 . 4 . 5 Microsoft's ActiveVRML
Microsoft's entry into the 3D Web world comes via a technology called ActiveVRML. ActiveVRML is part of a suite of "Active" Internet technologies called ActiveX. It appears that ActiveX is really Microsoft's answer to Java, but we'll have to wait and see who wins that battle.
ActiveVRML is based on a functional programming language. It is elegant, but not the successor to VRML 1.0. Another proposal, "Moving Worlds," was selected as the one upon which to "standardize". From the Microsoft document "A Brief Introduction to ActiveVRML":(9)
To allow the creation of interactive animations to be as natural as possible, ActiveVRML is based on a simple and intuitively familiar view of the world; that is, as a hybrid of continuous variations and discrete events. For example, the behavior of a bouncing ball consists of continuous trajectories and discrete collisions. Trajectories cause collision events, and collision events cause new trajectories.
Using ActiveVRML, one can create simple or sophisticated animations without programming in the usual sense of the word. For example:
- Although many frames are generated in presenting an animation, the author is freed from any notion of sampling or frame generation, but rather describes how various animation parameters vary continuously with time, user input, and other parameters.
- An author describes events influencing an animation and the effects of these events on the animation. The author is freed from the programming mechanics of checking for events and causing the effects to happen.
- Although animations involve an extremely high degree of simultaneity (concurrency), the author is freed from such programming issues as multi-threading.
- Linguistically, there are no statements (commands) that are executed for their effect, but rather expressions that are analyzed for their value. ActiveVRML uses this approach to make specifying animations as natural as possible, while simultaneously retaining maximal opportunities for optimization.(10)
Here's a sample fragment of ActiveVRML code:(11)
So in AVRML we will create a transformation that changes with time, and attach that transformation to a new copy of the ball. The result is a new ball with the inherent property (just like color or texture) that it has a position at all times specified by the transformation applied to it, which is itself dependent on time. Here's the code fragment...:
// read in a ball from disk Ball = readGeometry("sphere.wrl"); // create something that moves objects Motion = translate(time, 0, 9 - (time - 3)^2); // make a new ball that moves over time FlyingBall = transformGeometry(Motion, Ball);The second line creates a thing called Motion. You can think of this as a property, as yet unattached to anything, that describes a 3D path in space; it can be sampled at any time. The value of Motion is some thing that can translate 3D geometry. The three arguments specify how that geometry should be moved along the X, Y, and Z axes respectively. In AVRML, time is a special system-supplied value it's the current time of the simulation (we'll say more about this later). So Motion is now a free-running little entity, which is constantly changing as the moments pass. The third line connects Motion together with Ball, creating a new, composite 3D thing called FlyingBall. Thus, FlyingBall inherits the dynamic quality of Motion, so FlyingBall is itself a thing that is moving as time progresses, with no further help from us.
The concept of time is built into ActiveVRML. It also provides an elegant functional programming language framework. Given that Microsoft now employs many of the greatest computer graphics minds, I doubt that ActiveVRML will fade into the sunset.
2 . 4 . 6 Apple's QuickTime VR
QuickTime VR (QTVR) is Apple's technology for creating an imagebased virtual environment. Instead of using polygons to construct a space geometrically you use images. The image appearing on the computer screen is that of a photo, but you can look anywhere you want. Imagine that your head is on top of a tripod and you could spin it around with complete freedom. That's the type of view you get with QTVR. Actually, you can hop from one tripod position to another, but you can't walk smoothly. You can integrate this environment with your Web pages as yet another data type, used with a helper application.
To create this type of environment, you take photographs using an ordinary 35mm camera. The easiest thing to do (and the authoring software expects this) is to have the pictures processed and placed onto a Kodak PhotoCD. The photos are taken by placing the camera on a tripod and rotating the camera 360 degrees, taking each picture when there is approximately 50% overlap with the previous image. Depending on the lens, it takes anywhere from 12 to 18 images to complete the 360 degrees. The images, from the PhotoCD are stitched together seamlessly by a magical tool called the "stitcher," which is part of Apple's QTVR authoring kit.
The resulting panorama image is processed further into a QuickTime VR movie, which is a single QTVR "node." You can allow the user to move from one node to another by repeating the same photography and processing steps with the tripods in different locations. The closer together the tripod positions are the smoother the travel appears. In addition the user can zoom in on any section of the image, giving a reasonably effective illusion of moving closer to parts of the scene.
One novel use of QTVR was created by Honda. On their Web site (http://www.honda.com ) they let you virtually sit inside their new Odyssey minivan. You can see what the view looks like if you were on top of a hill, in a forest, by the sea shore, or by a lake!
OK I'm a computer geek; I admit it. During a vacation in Israel, I shot several QTVR nodes. I photographed them using a handheld camera (no tripod). This caused a number of anomalies. The QTVR authoring allows adjustments for some problems; using the stitcher program in an "interactive" mode, I was able to get reasonable QTVR nodes. Check `em out on the CD that comes with this book.
![]()
The "stitched" panoramic 360degree image.![]()
Normalized QTVR view in which you can "turn your head".The other type of image QTVR can present is a "navigable object." In this method the object is photographed from all points of a sphere surrounding the object. The object is placed on a turntable and photographed every 10 degrees or so, the camera is moved 10 degrees and so on. When the separation is 10 degrees, the result is 36 x 36 photos. The images are processed through the QTVR authoring kit, and another type of QTVR movie, a navigable movie, is created. The user can interact with the object by spinning it around or up and down. It's an extremely intuitive and effective user interface for examining objects. Usually a video camera is used to grab still frames for this technique since image quality is not as critical as it is in the panoramas.
Currently, QTVR is used on the Web as just another type of data. Clearly, it could be used in ways similar to VRML, where clicking on a particular portion of the image would link you to another part of the Web. We'll just have to wait and see.
If fact just before this book went to print Apple announced the features for QTVR Version 2.0. The new version will allow direct embedding of URLs as the hot spots in QTVR nodes, opening up a clear path to highly integrated image based virtual environments and the Web. A much anticipated programmers API will allow simpler applications to use this technology. Sounds can also be associated with particular locations. QTVR nodes embedded in Web pages, via Apple's QuickTime plug-ins can dramatically present "real" spaces such as museums, malls, cities and so on with compelling and intuitive interfaces. This is a major development, keep an eye open for this truly exciting stuff!
Skip to chapter[1][2][3][4][5][6][7][8][9]
| © Prentice-Hall, Inc. A Simon & Schuster Company Upper Saddle River, New Jersey 07458 |