Book Review

VRML: Browsing and Building Cyberspace

Author: Mark Pesce

Publisher: New Riders Publishing

ISBN: 1-56205-498-8

Price: USD$40.00

Reviewed by: Dave Dittrich

Having heard very little about VRML, I was eager to read this book to get both an overview of the technology itself and some practical knowledge of how it will augment the World Wide Web. Mark Pesce's book, VRML: Browsing and Building Cyberspace, does a good job of providing background on the development of virtual reality and the VRML language, and also managed to stimulate my thoughts about the artistic, spiritual, and psychological aspects of building cyberspace (something not often accomplished in technical books I've read).

The book is divided into five parts, with chapters in each part covering various levels of detail. The author suggests three ``paths'' by which you may traverse its chapters--Novice, Hacker, and Designer--and aims to fit the needs of this wide ranging audience.

The Novice path (which makes up about a third of the book, and provides the foundation for the other two paths) requires of the reader very little in the way of networking or programming knowledge, and introduces some very thought-provoking concepts. The author provides a brief tour of the history of human communication and media from cuneiform tablets through the Internet, World Wide Web, and development of virtual reality and VRML. He presents three types of VRML browsers--``Helper'', ``Stand-Alone'', and ``Integrated'' applications--and one example of each (also included as programs on the accompanying CD-ROM). There is also an excellent primer on 3D graphics concepts.

The Hacker path avoids the 3D graphics primer and Cyberspace design concepts, but includes more detail on VRML (such as server scripting, optimization and publishing issues, basics of writing a VRML browser, and hints as to where VRML is headed). While not part of the path, also interesting to the hacker is the VRML 1.0 specification, included as Appendix A, and various VRML references and sites, which form Appendix B.

The Designer path also takes the Novice path, but goes two steps further with VRML optimization and publishing issues and the Cyberspace Style Guide.

I found that chapter 12, The Cyberspace Style Guide, left me wanting more. While brief, the chapter is still quite interesting (and the author does include a recommended reading list at the end of the book). Touched on in this chapter are the failure of virtual reality to meet the differing needs of males and females for sensual feedback (predominantly tactile and aural), and the need for emotional, spiritual and aesthetic aspects in cyberspace design. It ends with the thoughts of three individuals that have had an impact on the author and on VRML development in general: virtual architect Clay Graham, professional architect Michael Gough, and artist/designer Mark Meadows. I think this chapter could be--and probably should be--an entire book in and of itself, if the cyberspaces envisioned by the author are to come about. (Anyone who has seen some of the ``worst of the Web'' might imagine the results of adding a third dimension to a poorly designed, if ``designed'' at all, Web page.)

Throughout, the author mentions the roles that artistry, aesthetics, and indirectly, sociology and psychology must play in the design of 3-dimensional spaces that are recognizable and natural for people to interact with and traverse. I feel lucky that I can count myself among the few people the author mentions that have actually ``visited'' virtual worlds (I work at the University of Washington, where the Human Interface Technology Lab researches and develops virtual reality technologies). In the handful of virtual worlds I've visited, I noticed that I did carry some expectations regarding the way the ``world'' should react to my input. Unless designers of cyberspace take the time to study these expectations about how objects behave and how spaces are expressed, I think the author is correct that the result will be confused, lost, or bored users (who may be very eager to leave your cyberspace and not look back).

There were a few minor annoyances I found with the book itself, which I hope will be corrected in future editions or pressings.

The biggest problem I had was with the examples. The book itself is typeset with a wide indentation from the edge of the page. This leaves very little room for the actual text columns (and probably adds an extra hundred or so pages). VRML code examples throughout the book are then further indented and have a bold arrow symbol at the beginning of each line that must wrap. I found this to make the code extremely difficult to read and I often simply gave up on trying to read some examples knowing I could see the code on the CD-ROM with a wider window.

Furthermore, some of the examples span several pages (one of them consumes nine and a half pages, mostly in the form of three columns of real and integer numbers!) Since the complete code is included on the CD-ROM, many of these examples could be shortened (some of them already are), and should be formatted with the available column space in mind to avoid line wrapping at all cost. This would improve readability dramatically.

Lastly, there is a central section of color figures, some of which are duplicates of the black and white figures that accompany the text. Unfortunately, there is no indication in the text where a duplicate color figure exists, so I wasted some time in repeatedly paging through the color section only to find the figure in question was not included. (A simple icon accompanying the black and white figure annotation would be great).

As for VRML itself, the author mentions several times that current technology limits the useful size of cyberspaces to about 10,000 polygons, that there is wide incompatibility in accepted file formats (e.g., Unix ``compress''vs. GNU ``gzip'' for file compression, JPEG vs. GIF vs. SGI ``RGB'' for graphics formats), and that various mistakes in VRML code can crash your browser. This is a far cry from the current state of the art in HTML, where most browsers are quite stable, more compatible in dealing with graphics formats. He also points out that existing computing power will limit the usefulness and widespread availability of virtual reality technology.

The biggest ``gotcha'' about virtual reality is performance. The author mentions that, ``when the number of frames per second falls below two or three, the user begins to experience frustration.'' He states that Project 188, described in Chapter 9, was designed with a 486/100 PC with 24MB of RAM running Windows 3.11. This is more horsepower than most people have in their home PCs today. I ran the various Windows based demo programs on my own 486 DX2/66 with 16MB of RAM. The simple models produces fairly snappy response, even with more advanced shading schemes. Even the fairly large (5042 polygons) New College vrmLab model could be rendered with Gouraud shading at the rate of about two to three frames per second. Using the VRweb scene viewer, an X Window System VRML browser, running on the same machine under the Linux operating system, the rendering time for this complex model slowed to 8 seconds per frame with flat shading.

The author predicts that accelerated 3D rendering hardware is about to come on the market which will make even the lowliest PC capable of rendering cyberspace in real-time like a $100,000 Silicon Graphics workstation. In fact, while reading the book I got an ad in the mail from a company that just started shipping an Alpha AXP based system supporting OpenGL--part of SGI's technology in 3D modeling that formed the basis for VRML--that is comparable in price to a Windows workstation (about $6000), but is up to 60 times faster at 3D rendering. I also noticed that the October issue of Computer Graphics World magazine includes an article on PC accelerated cards titled, ``Accelerating 3D Graphics.'' Most of these new cards support OpenGL (the 3D graphics language mentioned frequently in the book) and have prices ranging from $595 to an average of about $2000; a bit higher than the $300 the author predicts. This difference means that affordable hardware capable of supporting meaningfully large cyberspaces is still perhaps a year or two off.

Sun's Java language (mentioned briefly in the chapter 13 when discussing VRML 2.0) seems to hold more immediate promise for augmenting the Web as it exists today, and for adding the necessary interactivity to the currently static VRML 1.x, but the long term prospects for VRML seem promising and exciting. The most recent beta version of the Netscape browser includes facilities for simplifying the interaction with in-line viewers, which includes VRML viewers like WebFX, WebSpace and World View.

The book comes with a CD-ROM that includes the VRML examples from the book, an HTML version of the VRML 1.0 specification, and several VRML applications. While not explicitly described as such, the CD is mostly geared towards Microsoft Windows users. The included demo programs, many of which still have a few ``bleeding edge'' bugs, only run under Microsoft's operating environment. The VRMLREAD.TXT file suggests that SGI, Sun, and Linux applications will probably be included in future pressings. There is source code included for parsing VRML files, rendering support code for OpenGL, and CERN code libraries for building clients and servers. Unfortunately, the book only covers the highest levels of design detail in it's 9-page chapter on ``How to write a VRML Browser''. For the implementation details, you'll need to read the code of the various libraries that are referenced.

For those who want to use non-Windows platforms for exploring VRML, or for the latest releases of the included demo programs, I suggest starting with The VRML Repository at: http://www.sdsc.edu/vrml/.

All in all, I think this book provides enough of a foundation (both in information and tools) for beginning to explore designing cyberspaces, but left me feeling like VRML still has a lot of growing pains to work through.

Dave Dittrich is a software engineer and consultant for the University of Washington in Seattle. He consults and/or teaches courses in the areas of UNIX system administration and security, World Wide Web services, and the X Windows System. His e-mail address is dittrich@cac.washington.edu and home page is http://www.washington.edu/People/dad/