VRML Book Reviews
by Tiby Kantrowitz
Rewriting the story of the birth of VRML as analogous to a Creation
myth is a serpentine task, even though there are so many myths from
which to choose. But you could say instead that, despite VRML's youth,
a body of techno-religous literature, authored by its Creators no
less, has begun to ooze from the primordial ether, complete with
commentary and discussion.
This is a good thing, because not only is VRML, the fabric of the
Universe as we know it, expanding quickly but, except for a few gaps,
the Authors' cosmogonies fit more or less snugly. And since there are
still so few of them, it makes the choice of which one to bring home
relatively painless for VRML acolytes.
Java for 3D and VRML Worlds and The Annotated VRML 2.0 Reference
Manual are two new books that just may become the two new books that
will surely form the basis VRML study from now on.
Java for 3D and VRML Worlds
Java for 3D and VRML Worlds, by Rodger Lea, Kouichi Matsuda, and Ken
Miyashita published by New Riders, is already on the market. Lea is
responsible for the multi-user architecture of Sony's VRML 2.0
browser, Community Place. Matsuda was lead author of the Java binding
appendix of VRML 2.0 and is responsible for the team developing Sony's
VRML 2.0 browser. Miyashita is also a member of the development team.
The book is primarily targeted towards experienced users already
comfortable with Java programming and presumably familiar with either
VRML or 3D design. However, it is suited for advanced beginners, as
well. Careful study of the Chapter Introductions and Chapter Roundups
provided will enable beginners to catch on quickly.
Catching on is important, because the authors waste no time
travelling from the basics to advanced material. The book
explains the behavioural and scripting aspects of VRML 2.0 well,
but it is not a beginner's guide to either VRML 2.0 or Java. That
said, reading through Appendix A, "VRML and 3D Principles" written by Janet
MacAndless, John DeCuir, Christopher Janney, Joseph Munkeby, Jai
Natarajan, Nick Bali and Karen Eppinger, should give most
beginners the idea of what they need to know in order to get started.
The book covers the range of issues pertinent to
using Java in VRML worlds, from why the behavioural capacities of the
specification are inadequate for building multi-user systems to
dynamically writing VRML. As the authors observe, VRML was
intentionally designed without support for such features as decision
logic, user-defined types, flexible data management, and file I/O. The
idea was to create a scene description language the capabilities of
which could be augmented using scripting languages such as Java. Given
the authors' areas of expertise, you would expect them to discuss
these aforementioned features in detail, and they do. If there were
not so much enticing code to try out, the book would make a decent
read in itself. Clear language, plenty of charts showing the flow of
events in and out of the various fields, plus occasional screenshots
make it easy to get the logic in the can.
One laudable thing the authors of this book did that I have not
seen in other VRML 2.0 books so far, is devote an entire chapter to
techniques which improve the efficiency of VRML worlds,
regardless of whether or not they include Java. Also, the authors provide brief
descriptions of the proposals that competed to become VRML 2.0, and
explain how the specification evolved into its present incarnation.
The concluding chapter talks about the future of VRML and provides
background on topics such as external authoring interfaces and
scripting languages, which appear in vrml mailing list discussions.
While it hardly teaches enough to begin participating
in the Java/VRML rows, with this book, neophytes will at least learn
enough to keep to the bread trail. It's not "Barney Presents
Computer Fun," but it's easier than Prospero's Books.
The CD-ROM also includes the 1.02 Java SDK, Community Place, and
extensive HTML tutorials on how to use and design worlds for it. Not
surprisingly, the examples on the CD perform well in it. But, in a
test, CosmoPlayer choked on some of the very same files. Even
if authors choose neither to provide files for multiple browsers,
nor to make their files work cross-platform, I think they ought least
inform their readers that they are aware glitches may occur. Along the same
vein, considering how few VRML-related books there are, I do not understand why
Appendix C includes only one VRML 2.0 book in its list of recommended reading.
Yet, they include URLs to other sites and to the competing proposals. It seems to
me that it is in everyone's interest to make it as simple and attractive as possible to
learn and begin producing VRML.
The Annotated VRML 2.0 Reference Manual
The Annotated VRML 2.0 Reference Manual sets out to become the
VRML 2.0 manual sine qua non, and
it comes close. As of press time, this book's projected release date
was the beginning of May. Considering the discussion on the www-vrml list
of specification revisions to be released soon, it seems strange to be
so close to finishing the publication of a book which perhaps could be even more
timely if production were held off just a bit longer.
In any event, Rikk Carey and Gavin Bell are two of
the principle architects who wrote the VRML 2.0 specification, so it
makes sense they would write the specification's Cliff Notes, too.
Handle this book gently, because whether a new user or an
experienced world builder, you are going to thumb through its pages
constantly in search of answers. The all-around usefulness of
this book sets it apart - something like a VRML Leatherman. This
is a book for the hard-core VRML adventurer, or someone who
wants to become one. Chapter Two, for example,
descriptively entitled "Key Concepts," is best attacked first by the
technically well-accoutered. What the section on "Node References"
does not explain, Chapter Two does. Here the authors cover anything
related to the "definition and use" of the Specification.
This is not really the kind of book with which to relax
over a decaf double latte. This is a book to use. But I have to
admit; it's dry. Martini extra dry.
In Chapter Three the authors detail in alphabetical order, every node
in the specification, each accompanied by examples in the form of
whole VRML 2.0 files. Each one moves from simple examples of how to
use a given node to advanced ones. Consequently, the book gives
readers a huge library of pre-written VRML bricks with which to
engineer their own, more complex worlds. If the .wrls prove
insufficient to get a reader started, Appendix B contains more
examples to prove how easy it can be to construct interesting, dynamic
worlds. According to the publisher, most of these examples should
appear on the CD-ROM.
While the true audience for this book is highly experienced and
technically acute, this book should be a wonderful resource for world
builders of all levels. Even people who want to author their own
browsers will find what they need explained in detail. Chapter Three's
node descriptions also contain pointers to the appropriate sections in
Chapter Two where the discussion is more technical. The authors point
out sensitive issues, include design notes, tips and give the history
behind some of the nodes, as well. Although Chapter Two can, of
course, be read straight through, it seems that it would be more
appropriate to start with Chapter Three, since one points to the
Appendix C and D are respectively, a Java Scripting Reference and a
of Chapter Two. They include includes which are just as effective,
and the commentary is equally precise. In a Design Note, the authors comment
that the appendix was initially spearheaded by Chris Marrin, and
enhanced and evolved by Kouichi Matsuda, Hiroyuki Sugino, Ben Wing and
As a final note, I must say I appreciate that the authors provide and explain both Java
is less powerful, as they observe, some users will choose it over
Java. And, it is much easier to refer to the book, rather than having
to look things up on a CD-ROM.
As stated, the chapter on "Conformance & Minimum
Support Requirements" targets browser authors.
It specifies the smallest set of features that all VRML applications
must support. It is just as important for content authors, however
since content providers need to understand which features may be
peculiar to their favorite browsers. Then, they can choose whether or
not they want to provide alternative versions. Better sites lead to
more users, and a strengthened VRML industry. And that should make
everyone - browser authors, content providers, and users happy.
Tiby Kantrowitz (firstname.lastname@example.org)is the writer/director
of Brave New Films' _Not_It_,
shown in the 1995 International Arizona Film Festival and at (not in)
the 1996 Sundance Film Festival. After the fall of the USSR and the
end of the Cold War made her research position redundant, the
search for professional stability led Tiby to the independent film
industry. Currently, she is producing an interactive multimedia
comic book incorporating 3d animation and VRML.