ABSTRACT

EVALUATION OF VRML FOR MODELING VIRTUAL WORLDS

By Chen Zhao

The purpose of this study is to experience creating 3D virtual scenes in using

Virtual Reality Modeling Language (VRML), to explore the status of VRML development, and to research the applicability and potential of VRML. This thesis introduces the VRML language basics, reviews

VRML development and supporting tools, and discusses the advantages and disadvantages of VRML and its future.

VRML allows the users to control the interactions between the user and a 3D graphic model. It can be used in applications such as recreating a historical site or constructing chemistry molecules.

However a lack of wide spread efficient business use of VRML has slowed its development. At the present stage, more sophisticated authoring tools along with high-speed computer and high-speed network resources are needed before VRML will become more widely used on the .

EVALUATION OF VRML FOR MODELING VIRTUAL WORLDS

A Thesis

Submitted to the

Faculty of Miami University

in partial fulfillment of

the requirements for the degree of

Master of Sciences

Department of Computer Sciences and System Analysis

by

Chen Zhao

Miami University

Oxford, Ohio

2000

Advisor ______Dr. Douglas Troy

Reader ______Dr. Stanley Toops

Reader ______Dr. Mike Zmuda

Table of Contents 1. Introduction 1 1.1 Definitions of VRML 1 1.2 Description of VRML 1 1.3 History of VRML 2 2. VRML Related Technologies 5 2.1 Requirements For Viewing a VRML World 6 2.2 Tools For Creating VRML Scenes 7 3. VRML Language Specifications 8 3.1 Major Features of VRML 97 8 3.2 VRML 97 Language Basic Structure 9 4. Project Constructions 16 4.1 Front Gate of A Famous Xinjiang Muslim Mosque – 17 FRONTGATE.wrl 4.2 Mean Building of The Mosque -- NewMain.wrl 18

4.3 A Tree Graphic -- Tree-Proto.wrl 20 4.4 A Modeling Temple -- ANItemple.wrl 21 4.5 Using VRML Authoring Tool V-Realm Builder 22 4.6 Improving the Worlds’ Performance 24 5. VRML Analysis 25 5.1 Expectations of VRML 26 5.2 The Potential of VRML 26 5.3 Limitations of VRML 28 5.4 Current VRML applications 29 5.5 Author’s Experience and Evaluation 31 5.6 The Future Improvements of VRML 32 6. Summary 33 References 35

ii 1. Introduction

1.1 Definitions of VRML

The Modeling Language (VRML) is a for describing interactive 3-D objects and worlds. VRML is designed to be used on the Internet, intranets, and local client systems. VRML is also intended to be a universal interchange format for integrated 3-D and multimedia. (VRML97 Specifications -- http://www.web3d.org/Specifications/ RML97/part1/ introduction.html) According to Silicon Graphic Inc. (SGI), VRML is pronounced vur'mel (Silicon Graphic, Linda Von Schweber and Erick Von Schweber).

1.2 Description of VRML

VRML defines the layout and content of a 3-D world with links to more information. VRML is not a general purpose programming language like C++, a script language like JavaScript or a markup language like HTML. It is a modeling language (scene description language) that demonstrates the geometry and behavior of a 3-D scene. A VRML file does not have to be compiled from source code, linked into an object module, and then run. Instead, VRML files are parsed, rendered, and finally displayed by a (Walter Goralske, Matthew Poli and Peter Vogel, 1996; Jed Hartman, Josie Wernecke, 1996). A 3-D object created using the VRML format or a group of such objects is generally called a world or a scene. A VRML file is a plain ASCII text file. It can be created, viewed, and edited in any editor.

VRML files usually reside on a Web server. They are transferred to a browser for viewing via the Hypertext Transfer Protocol (HTTP) on the Web. VRML worlds usually end with the file extension .wrl. When a web user accesses a URL ("Uniform Resource Locator") which contains a VRML world, the ASCII text file containing the VRML codes is downloaded into the user’s Web browser. The MIME (Multipurpose Internet Mail Extensions) type for VRML documents is model/vrml. Alternatively, it can be x-

1 world/x-vrml (Floppy’s VRML Guide, http://www.vapourtech.com/vrmlguide/index.html). One must have a VRML browser or a plug-in to view the VRML worlds on the Web. When an VRML-enabled browser contacts the file extension of .wrl, it displays the world that is described by the file on the screen. On the server side, a VRML world may be distributed across different servers at different locations.

Besides polygons and 3-D items, a VRML node can contain images or sound data. A VRML page can also include links (which are called anchors) to other VRML documents or HTML documents. A VRML object (or part of an object) can link to any other item on the Internet or in conjunction with many other languages and file formats (Udo Flohr, 1996).

VRML files use a nested-object representation, sending the overall picture information first and the details later. The VRML scenes and objects are first displayed as a rectangle with the detail increasing as more information arrives. Therefore, the user can start navigating (read the text/go through the available links) while the browser is loading the details. When the object is completely loaded, a VRML world viewer can zoom close to the object, turn the object over, or explore the world from any angle he/she wants.

1.3 History of VRML

Work on VRML began in 1994 and continues today. This section presents the history of VRML and the organizations that have promoted it.

• First International Conference: In May 1994 in Geneva, Mark Pesce and Tony Parisi were invited by Web creator Tim Berners-Lee to present a paper at the First International Conference on the World Wide Web. They brought their ideas, a virtual-reality interface to the Web, to a scheduled Birds-of-a-Feather (BOF) session and found an enthusiastic audience. The BOF group decided to develop a scene-

2 description language that could be used in conjunction with the Web. The term VRML, determined at the BOF meeting, originally stood for “Virtual Reality Markup Language”. The word “Markup” was later changed to “Modeling” for accuracy (Jed Hartman and Josie Wernecke 1996, VRML Consortium). Mark Pesce’s book, VRML---- Browsing and Building Cyberspace (New Riders Publishing), was described as a “definitive book on the state of VRML today (David E. Y. Sarna and George J. Febish, 1996) and a ground-breaking book (Udo Flohr, 1996)”.

• Electronic Mailing List: Mark Pesce and Brian Behlendorf of Wired magazine set up an electronic mailing list to facilitate discussion of the specification for VRML right after the conference. During its first week of life, the list grew to include over a thousand members. The list membership quickly agreed upon a set of requirements for VRML: platform independence; extensibility; and the ability to work over low- bandwidth (14.4 kBps modem) connections (Jed Hartman and Josie Wernecke 1996, VRML Consortium).

• VRML 1.0: There was general agreement that adapting an existing modeling language would be easier than creating an entirely new one. Silicon Graphics’ proposal won the vote, which meant that VRML would be based on a modified subset of the Open Inventor 3-D Metafile format, with appropriate additions to handle networking. At the 2nd WWW conference in October 1994, the VRML 1.0 draft specification was unveiled. This version allowed a user to create static 3-D worlds. Objects in the world could be hyperlinked to other worlds, as well as the HTML documents (Jed Hartman and Josie Wernecke, 1996).

• VRML Architecture Group: Some of the leading technical experts on the VRML mail list then formed the VRML Architecture Group (VAG)(http://vag.vrml.org/) around the summer of 1995. The VAG's goal was to continue the technical evolution of the specification according to the consensus-based requirements of the VRML community (Rikk Carey, George S. Carson and Richard F. Puk).

3 • SGI Moving Worlds Proposal: In December 1995, the VAG decided to issue a request-for-proposals for VRML 2.0. A number of proposals for VRML 2.0, including the Moving Worlds proposal from SGI, HoloWeb from , ActiveVRML from , Out of This World from Apple, and others were reviewed by the VRML community. Moving Worlds from SGI had received over 70 percent of the votes in February. In March of 1996, the VAG decided that the Moving Worlds proposal would officially become the working document for VRML 2.0 (VRML Consortium, Jed Hartman and Josie Wernecke, 1996).

• VRML 2.0: The release of the VRML 2.0 specification was announced at Siggraph ’96, the preeminent 3-D graphics technical conference, in New Orleans. This event marked the beginning of focusing on content rather than further improvements to the specification (Chris Marrin, Bruce Campbell, 1997). In this version, objects inside a world can move and can respond to both time-based and user-initiated events. New features included enhanced static worlds, interaction, animation and behavior scripting, and prototyping new VRML objects (Jed Hartman and Josie Wernecke, 1996).

• VRML Consortium: The Consortium Working Group (CWG) was formed following the VRML Consortium meeting at Siggraph in August 1996. Thirty-five leading Internet companies formed the VRML Consortium, Inc. as a nonprofit corporation at the end of 1996. The VRML Consortium took over the responsibilities of promoting VRML technology from the VRML Architecture Group. The consortium was formed with the charter to make three-dimensional technology an essential component of the Web. Rikk Carey, co-author of the VRML 2.0 specification, acted as the new group's interim president (Joe McGarvey, VRML consortium).

• VRML 97: Cooperation between CVG and Joint Technical Committee 1 (JTC 1) began in late 1995. The two sides jointly worked on the International Standard version of VRML and made the changes that were necessary to create a document of sufficient quality to serve as an Committee Draft (CD) of International Organization

4 for Standardization and the International Electrotechnical Commission (ISO/IEC). The ISO/IEC CD ballot closed in December of 1996. The Draft International Standard (DIS) was posted on the Web on April 6, 1997. By the end of 1997, the VRML 97, the final International Standard (IS) text was published by both the VRML Consortium and ISO/IEC. The IS document is known as VRML 97 specification and part 1 of ISO/IEC 14772- 1:1997. The full title of this part of the International Standard is: Information technology -- Computer graphics and image processing -- The Virtual Reality Modeling Language (VRML) -- Part 1: Functional specification and UTF-8 encoding (http://www.web3d.org/Specifications/VRML97/part1/introduction.html).

: Web3D Consortium is the former VRML consortium. In 1999, the group changed to its current name (History of the Web3D Consortium, http://web3d.org/fs_aboutus.htm). The Web3D Consortium represents all aspects of 3D technologies on the Internet today.

• VRML Today: VRML 97 is the current version of VRML specification. Web3D Consortium is developing Extensible 3-D () specification, which is extending VRML 97, using the Extensible Markup Language (XML). The compatibility of X3D with VRML 97 will be achieved by having a VRML 97 profile for X3D that provides all the functionality of a standard VRML 97 browser. Web3D Consortium’s road map for X3D is to merge VRML 97 and X3D in year 2002 (Extensible 3-D (X3D) FAQ, http://www.web3d.org/TaskGroups/x3d/faq).

2. VRML Related Technologies This section describes the hardware/software requirements for viewing VRML 3- D images, and the tools for creating VRML files.

5 2.1 Requirements for Viewing a VRML World

Hardware: • 100-MHz Pentium machine with 32 MB of memory and Windows acceleration hardware or a Power Mac (Udo Flohr, 1996). • Win95, WinNT, IRIX(SGI) capable computer, 16 Megabytes of memory are the Minimum Requirements. Since VRML 2.0 is scaleable, the more powerful a computer, the better the display (Silicon Graphic, Inc.). Network Connection: • Bandwidth: A 28.8-Kbps modem is the minimum, while some experts suggest that ISDN is the minimum to explore the 3-D Web seriously (Udo Flohr, 1996, Silicon Graphic).

Software: A VRML enabled web browser or Plug-in needs to be installed on a computer for viewing VRML worlds.

There are some stand-alone VRML browsers that can view and manipulate VRML worlds with development kits such as Open Worlds, JVerge, WorldView for Developers, and Open Inventor. While different browsers may support some particular VRML features, there are not many discussions from experts about which browser is the best for viewing VRML so far. A list of VRML browsers and the platforms they can run on is available at VRML repository (http://www.web3d.org/vrml/browpi.htm). About.com's VRML97 Browser Datasheet (http://vrml.about.com/compute/vrml/library/weekly/aa070698.htm) provides comparative analysis on some VRML borwsers.

However, instead of having special VRML runable web browers, it is more common to use VRML plug-ins to view VRML on the most commonly used web browsers. Plug- ins use the facilities provided by web browsers to display VRML worlds. Many versions of web browsers come with a VRML plug-in pre-installed. The most commonly used

6 browsers are Navigator (2.0 or above) and Microsoft (3.0 or above). The two most popular VRML plug-ins that go with these two browsers are WorldView, also called Microsoft VRML, for Microsoft Internet Explorer and Cosmo Player for Netscape (Oliver Rist, Aug. 1999).

2.2 Tools for Creating VRML Worlds Although a simple VRML file can be created using a text editor or word processor, VRML authoring tools are practical. A suggested site for these resources is: http://www.sdsc.edu/vrml/software/modelers.html (Jed Hartman and Josie Wernecke, 1996). There are also many free modelers at http://home.hiwaay.net/~crispen/vrmlworks/model_obj.html#Free

VRML authoring tools allow users to create worlds and visualize information in more intuitive and exciting ways. The authoring packages provide special support for VRML files, including support for level_of_detail (LOD) nodes, anchor nodes, and inline node.

Editors' Choice of PC Magazine identified the following world builders in 1997 (PC Magazine PC Magazine Editors' Choice, 1997): • V*Realm Builder. Of the products that PC Magazine reviewed, V*Realm Builder from Integrated Data Systems best met the purpose of facilitating the production of attractive worlds that will download quickly and render faithfully. V*Realm allows developers direct control over the scene graph to optimize the world and take full advantage of all the features in VRML 1.0.

• Virtus 3-D Website Builder. Virtus 3-D Website Builder was honored by PC Magazine’s editor. The builder makes a great introduction to VRML for anyone, and it provides the most fun and created the least frustration of any builder (ZDNet 3-D, 1997 ).

7 3. VRML Language Specifications

VRML worlds are constructed using nodes, events, sensors, colors, and other VRML techniques. The basic VRML language features and world constructions will be described below.

3.1 Major Features of VRML 97

3.1.1 Hierarchy of Nodes: VRML files describe 3-D worlds using a hierarchical structure. Entities in VRML worlds are nodes. VRML 97 defines 54 different node types, including geometry primitives, appearance properties, sound and sound properties, and various types of grouping nodes. Nodes store their data in fields, and VRML 97 defines 20 different types of fields that can be used to store everything from a single number (the SFFloat field type) to an array of 3-D rotations (the MFRotation field type). Nodes can be nested inside one another. A hierarchy of nodes sometimes is referred to as the Scene Graph (Rikk Carey, Gavin Belll, 1997).

3.1.2 Event: The event mechanism defined in VRML 97 enables nodes in the scene graph to communicate with one another. Each node type defines the names and types of events that instances of that type may generate or receive. ROUTE statements define event paths between event generators and receivers.

3.1.3 Sensors: The TimeSensor node generates events as time passes and is the basis for all animated behaviors. Other sensors are the foundation for all user interactions, generating events as the viewer moves through the world or when the user interacts with some input device. Sensors only generate events; they must be combined with other nodes via ROUTE statements to have any visible effect on the scene.

3.1.4 Colors and measurements: The color model in VRML is RGB. In order to define a color three values are needed: Red, Green, and Blue. These values are between 0.0 and 1.0. For instance 0.0 0.0 0.0 is Black, 0.0 0.0 1.0 is Blue, and 1.0 1.0 1.0 is White.

8 The units in VRML are assumed to be meters. The angles in VRML are measured in radians, as opposed to degrees.

3.1.5 Scripts: Script nodes can be inserted between event generators and event receivers. Scripts allow the world creator to define arbitrary behaviors, defined in any supported scripting language. The VRML 97 specification defines Script node bindings for the Java and JavaScript languages. The Interpolator node is essentially a built-in Script that performs simple animation calculations.

3.1.6 Prototyping: The PROTO statement provides a mechanism for encapsulating and reusing a scene graph. Prototyping allows the definition of a new node type in terms of a combination of existing node types, which can make VRML easier to use and can reduce the size of VRML files.

3.1.7 Distributed Scenes: The Inline node allows the inclusion of another VRML file stored anywhere on the Web and the EXTERNPROTO statement allows new node definitions to be fetched from anywhere on the Web.

3.1.8 Object Oriented Language: VRML is an object-oriented language. Each node is an object, and VRML files allow for any number of instances of the nodes (i.e. Shape nodes). Nodes can be nested. Each child node shares the properties of its parents’. For instance, a group of shape nodes share the same location and scales as the Transform parent node. DEF and USE statements make the reuse of the named objects (any type of node) very easy.

3.2 VRML 97 Language Structure

VRML files are ASCII texts that consist of VRML code. This section presents an over view of that code.

3.2.1 Comments and Version: All VRML files start with the header line:

9 #VRML V2.0 utf8 Any line that starts with a # character in a VRML file is a comment, and is ignored by the VRML enabled browser. The first line is an exception, and is read by a browser. V2.0 indicates the version and UTF8 is an encoding scheme to enable international character display (text string standard). VRML 1.0 had either ASCII or UTF8, but version 2 has only UTF8.

3.2.2 Nodes and Fields: A VRML world is made up of nodes, which are types of objects. The fields inside these nodes are properties of the object. Fields can be anything from a size of a box to another node inside the first. VRML has the following major node types: shape, grouping, appearance, billboard, collision, LOD, light, Inline, Anchor, and PROTO.

All visible objects are defined inside a Shape node. This node has two fields: appearance and geometry. The appearance field specifies an Appearance node, which is used to define color, textures and so on to be applied to the geometry. Defining the appearance field is optional. If nothing is specified in this field, the default values will be used. The texture field of the Appearance node can be texture-map objects. The geometry field indicates which shape is to be drawn. The value for the geometry field may be any of the following nodes: Box , Cone , Cylinder, ElevationGrid, Extrusion, IndexedFaceSet, IndexedLineSet, PointSet, Sphere, and Text. A Material node can contain any of the following six fields: diffuseColor , specularColor , emissiveColor , ambientIntensity, shininess, transparency. Example 1 shows a simple Shape node definition for a glowing semi-transparent green colored box.

10 Example 1. Defining a glowing semi-transparent green colored box Shape { appearance Appearance { material Material { emissiveColor 0 0.8 0 transparency 0.5 } } geometry Box { } }

A group node can be placed inside groups, which will create a hierarchical structure of nodes. A group node can have any number of child nodes inside the children field. VRML provides the following grouping nodes: Anchor, Billboard, Collision , Group, Switch, and Transform.

The Transform node defines a new coordinate system so that an object can be placed in locations other than the origin. The shape nodes are placed at their default (x=0, y=0, z=0, or world origin). Placing a Shape node into a Transform node and defining the translation field in the node will translate the Shape node to a certain position in a VRML scene. The children field can contain any number of nodes. All the nodes under the children field will move along with the parent Transform node. Example 2 is a box moved 5 units to the right from the origin.

Example 2. A box moved 5 units to the right from the origin

Transform { translation 5 0 0 children [ Shape { appearance Appearance { material Material { } } geometry Box { } } ] }

11 A Group node merely groups other nodes together. It has a children field, which can contain other nodes. Therefore, nodes can be nested inside one another in this way. Example 3 shows a scene with a ball, and square on the right side of the ball in a Group node. Example 3. A scene with a ball, and a square on the fight side of the ball in a Group node

Group { children [ Transform { translation 5 0 0 children [ Shape { ... geometry Box { } } ] } Transform { translation 0 0 0 children [ Shape { ... geometry Sphere { } } ] } ] # end of Group children }

A Billboard node modifies its coordinate system so that it can face any direction along an axis at all times. This allows all the objects grouped in the billboard to be visible to the viewer at all times.

A Collision node allows browsers to detect geometric collisions between the user’s movement and the scene’s geometry. It can prevent the user from entering the geometry.

A Level of Detail (LOD) node defines various levels of detail or complexity for an object, so that the browsers can automatically select the appropriate version of the object based on the distance from the user. Browsers only display detailed objects when a user browses within a specified range.

The Inline node takes the data from an external file and inserts it into a VRML file.

12 An Anchor node enables people to navigate between pages as in HTML (VRML is intended to be used in a distributed environment such as the World Wide Web). The Anchor node is activated whenever one of its children is clicked, and opens up the page specified in URL. The description field of the node contains a piece of text that appears in the browser when the mouse is over the hyperlink.

There are several light nodes in VRML such as DirectionalLight, PointLight, and SpotLight. A DirectionalLight node shines from a uniform direction like a set of parallel rays. This light has no defined location, only a direction. It gives an effect like the sun. The DirectionalLight node is a point-light, which brightens everything around it, with the light spreading equally in all directions. The SpotLight defines a spotlight. All light nodes have the fields of color, ambientIntensity, and intensity. The DirectionalLight node has both location and direction fields. The SpotLight node also has a location field.

A PROTO node allows VRML authors to specify their own nodes. Like any other node, a PROTO can have all the regular fields.

3.2.3 Object Reuse in VRML: DEF / USE -- In VRML, there are oftentimes many identical objects. To avoid writing in many objects of exactly the same type, VRML use DEF and USE command to reuse previous definitions. For instance, if the box definition “Shape { ... geometry Box { } }” in previous Example 6 is changed to “DEF BOX1 Shape { ... geometry Box { } }”, then a VRML constructor would be able to instantiate

BOX1 (creates a same type of box as defined in BOX1) by using “USE BOX1”. The DEF / USE pair can be applied to any type of Nodes in VRML.

3.2.4 An Illustration of Basic VRML Structures: The case study in this thesis, temple world, uses a pillar, as shown in Figure 3.1. Figure 3.1 A pillar used in the temple world.

13 The code for this scene is:

st #VRML V2.0 utf8 Standard header: # -- comment in VRML file. The 1 line is an exception. It’s for browsers to read. VRML – tell browser that it is reading a VRML file V2.0 – VRML version utf8 – allows use of international characters

A Group Node: DEF Pillar Group { Group – a node type for grouping nodes Pillar – the name of the Group Node DEF – define a name for the group node for reusing the node in the future { -- everything included in the matching “}” will be treated as one entity

children DEF PILLARXFORM Transform { A Transform node – allowing a group of nodes (everything translation 0 1.3407 0 in children [] ) to move together 1.3407 units along Y axis children [ DEF SHAFT Shape { A Shape node contains geometry descriptions / definitions.

appearance Appearance { Material node contains 4 fields to describe material Material { the surface appearance of geometry.

ambientIntensity 0.2 transparency 0 shininess 0.2 diffuseColor 0.61 0.441377 0.240494 } } geometry Cylinder { A geometry node with 4 fields to define the shape height 6 of the geometry. Cylinder is a VRML keyword. radius 0.5 top FALSE bottom FALSE Define the top and the bottom of the cylinder to } be empty to saving the rendering time. } DEF PilarTopBoxXFORM Transform { translation 0 3.2 0 The center point of the box will move children Shape { to 3.2 unit place on the Y-axis appearance Appearance { established by the Cylinder. material Material { ambientIntensity 0.2 transparency 0 shininess 0.2 diffuseColor 0.61 0.441377 0.240494 } } geometry Box { A geometry node with 1 array field. size 2 0.35 2 } } } DEF PilarBtmBoxXFORM Transform { Use a Transform node to move the bottom box. The translation field makes the box move down to -6.2 translation 0 -6.2 0 units’ place on Y-axis.

Children – the following is a child of the children USE PilarTopBoxXFORM PilarBtmBoxXFORM Transform node. } USE – a node indicates reuse of an existing node PilarTopBoxXFORM – exactly same definition of it will be used in this transform node.

] All the nodes above this line are the children of the Pillar Group. }

} Closing the Pillar Group node – complete the whole entity.

14 3.2.5 VRML 1.0 vs. VRML 2.0 / VRML 97

VRML 1.0 worlds are static. The file starts with #VRML v1.0 ASCII. VRML 2.0 worlds can move and interact with the visitor to those worlds. The file starts with #VRML v2.0 utf8. Table 3.1 is the summary of basic differences between the two.

Table 3.1 Summary of VRML 1.0 and 2.0 Features.

Versions Features

VRML 1.0 • Standard objects (cube, sphere, cone, cylinder, text)

• Arbitrary objects (surfaces, linesets, pointsets)

• Ability to fly through, walk through, examine scenes

• Lights

• Cameras (viewpoints)

• Textures on objects

• Clickable links

• Define and reuse objects

VRML 2.0 All VRML 1.0 features plus

• Animated objects

• Switches

• Sensors

• Scripts (Java or JavaScript) for behaviors

• Interpolators (color, position, orientation, etc)

• Extrusions

• Background colors and textures

• Sound (.wav and MIDI)

• Animated textures

• Event routing

• Define and reuse objects and behaviors and effectively add new nodes to the language with PROTO and EXTERNPROTO

15 VRML 97 is an international specification approved by the International Organization for Standards, while VRML 1.0 is not. VRML97 is practically identical to VRML 2.0. But there were several working draft specs developed between 1995 and the end of 1997. Some of those drafts have small differences from the final spec. (VRMLWorks, comp.lang.vrml FAQ Answers (Http://fly.hiwaay.net/~crispen/vrmlworks/ faq/faq1.html)

3.2.6 VRML language specification web sites: The following sites describe the three VRML versions. • VRML 1.0 specification: http://www.web3d.org/Specifications/VRML1.0/#Language Specification • VRML 2.0 specification: http://vrml.sgi.com/moving-worlds/index.html • VRML 97 specification: http://www.vrml.org/Specifications/VRML97

4. Project Constructions

To learn about the potential and limitations of VRML, A web site (http://unix01.eas.muohio.edu/~zhaoc/) based on the topic of the geographical, economical and ethnic information in the Xinjiang1 Uyguer Autonomous Region (located in North-west China) was created. This web site is used to assist teaching in the Department of Geography at Miami University. The contents of this web site include geographical, economical, cultural data of Xinjiang Autonomous Region. The data formats presented on the Web includes text, digital map, 2-D images and 3-D worlds. There were several VRML worlds constructed in this project for experimenting with different features in VRML (http://unix01.eas.muohio.edu/~zhaoc/html/vrml_site.html). Some experiments with different methods of programming VRML were also conducted. The following section describes these worlds, which include the various aspects of a Xinjiang Muslin Mosque.

1 Xinjiang is a very unique region in China. It contains more than 13 officially recognized ethnic groups. There are many mysterious stories in Xinjiang’s past. The Xinjiang Autonomous Region used to be one of the most important trading paths between Asia and Europe, the so called The Silk Road. Today, it is still a place that plays a critical role on China’s border trading with the neighboring countries. The beautiful environment, rich history, and various culture groups make this area a very attractive region to anthropologists, historians, economists, geographers, and tourists.

16 4.1 Front Gate of A Famous XinJiang Muslim Mosque – FRONTGATE.wrl Major VRML features applied in this world are: a. VRML color b. structure orientation c. construction precision d. complex shape nodes -- Extrusions e. lights f. Group g. Transform h. Navigation Headlight

In the world is the Front gate, shown in Figure 4.1. Transaction nodes are used to align the geometry precisely for constructing the gate. The Headlight attribute in Navigation node is set to TRUE to utilize the default headlight in browser. The extrusion node is used for constructing most parts of the tower. Using a browser and a plug-in, a user can view the gate from different angles at predefined viewpoints, which are programmed in FRONTGATE.wrl. A user can also browse anywhere of the gate using the tools provided by the plug-in. Figure 4.2 shows an example of viewing VRML world in Cosmo player.

Figure 4.1 Top view of the gate. Figure 4.2 The tower

17

Figure 4.3 View FRONTGATE.WRL in Cosmo player plug-in

4.2 Mean Building of the Mosque -- NewMain.wrl Additional (to the previous one) major VRML features applied in this world are: i. Relatively larger construction skills j. object reuse (DEF/USE pair)

Figures 4.4 and 4.5 show the mosque and illustrate some of the possible views available to users as they move around in a browser. A user can use plug-in tools to “walk” into the front, back, or side doors to view the main room of the mosque. This world shows that object oriented design in VRML is achieved by using DEF/USE pair commands. The USE command allows the programmer to use a previously defined (by DEF command) object without rewriting the detailed codes. The pillars are designed using Extrusion nodes. All the individual pillars in the left front line (defined as LEFTFRONTPILARS) are instances of the SINGLEPILAR1 object. Then, all the pillar lines are positioned by using Transform nodes and the USE command.

18

Figure 4.4 Front and side views of the mosque.

Walk in the front door Right-front door

Pillar design Pillar bottom / top design Figure 4.5 Rooms and pillar designs of the mosque.

19 4.3 A Tree Graphic – Tree-Proto.wrl Additional (to the previous one) major VRML features applied: k. Complex shape nodes – IndexedFaceSet l. Complex grouping nodes – Collision, Billboard, LOD, Anchor. m. LOD -- Changing image look with the change of the distance n. Anchor – link to http://www.1stresource.com/t/treadoc/ web site o. Proto -- Create a tree object that can be stored as a graphical object node

Figuer 4.6 presents a group of 3-D trees created by using some special grouping nodes in VRML (Collision, Billboard, LOD, Anchor). In this VRML world, a single tree is created and is transformed into a user defined primary geometry node by utilizing Porto. The tree object is created under a Collision node to prevent users from entering the geometry during navigation. A high-resolution version of tree for a close look of the tree and a low-resolution version for a distanced view (beyond 20 units) are constructed using LOD (Level of Detail). A browser will render the different version of the tree according to the distance when a user views the tree. The high-resolution version of the tree is constructed under an Anchor grouping node, which allows the children object of the Anchor to be hyperlinked to web site http://www.1stresource.com/t/treadoc/. The low-resolution version of the tree is built under a Billboard grouping node, which makes the tree image always to spin around the Y-axis and face the viewer on the ground. The whole tree object is transformed into a Proto node. Proto allows programmer to extend VRML beyond what is explicitly written in the specification. In this world, a size field is created for this Proto node. Therefore, the tree object becomes a new primitive geometry node that allows programmer to generate a forest by defining the tree sizes.

20

Multiple trees created from Simple appearance Complete appearance -- Prototyping the tree – 20 unites away Close view with all the details

Figure 4.6 3-D tree images created using prototyping and complex grouping nodes.

4.4 A Modeling Temple -- ANItemple.wrl Additional (to the previous one) major VRML features applied: p. Touch Sensor q. Animation r. Background s. Apply texture to shape node t. Complex shape nodes – ElevationGrid Figure 4.7 shows a modeling temple. The temple is built on a green valley that is constructed using ElevationGrid node. The pillars are mapped with textures. The fountain is created using Extrusion node, and the water is created using Indexed face set geometry node. A touch sensor and animation is applied to the water. Therefore, when mouse moved over the water, a user will see a touch sensor icon on the water. If the user click on the water, the sensor will trigger the animation – the water will move up and down.

Front view Fountain view

21

Right view Left view

Figure 4.7 A modeling temple with an animated water fountain triggered by a sensor.

4.5 Using VRML Authoring Tool V-Realm Builder After comparing several authoring tool demos, V-Realm Builder 2.1 produced by Integrated Data Systems, Inc. was used in this project.

From my experience, V-Realm is a user friendly, easy to learn, and easy to control software tool. It makes VRML scenes construction much faster, and makes some difficult jobs easy. It is a good tool to use to create mid /small size VRML worlds. A user of V-Realm Builder does not have to know the exact VRML syntax before starting to build a world. However, knowing VRML programming syntax would help in some complex constructions and debugging.

Figure 4.8 shows a screen shot from building a simple pillar that was used in temple.wrl. This example illustrates how a pillar is created using the builder. The top box and cylinder were dropped on the View Pane by double clicking on the geometry buttons on the Toolbars. For making the objects reusable, a user can DEF any nodes by modifying the default node names to a meaningful one on the Node Tree window, which is the left pane on the screen. Then, the user can click on the USE button from the Tool- bars to reuse the objects that has a user-defined name.

22

Figure 4.8 Creating the pillar in V-Realm builder.

A user can expand the Node Tree to modify any field (attribute) of any node (object). When a user clicks on a field, an edit window will pop up. Figure 4.9 illustrates how the bottom box of the pillar got moved down to the correct position. Since the bottom box of the pillar is an instance of the top box geometry, the location of the box is –6.2 units away from the original top box on the Y-axis.

Figure 4.9 Define the box location.

Figure 4.10 illustrates adjusting lights in the builder for the mosque. The figure shows that V-Realm Builder allows a user to view an object from different angles on the screen at the same time, which makes the work much easier. V-Realm Builder also

23 provides a visualized environment for animation constructing and testing. Figure 4.11 shows the working environment for creating fountain animation in ANItemple.wrl.

Figure 4.10 Viewing an object from different angles and adjusting lights in V-Realm

Figure 4.11 Using Rout to create fountain animation in ANItemple.wrl

4.6 Improving the Worlds’ Performance 4.6.1 Using DEF / USE Pairs to Reduce File Size During the constructions, all the objects that can be used in the future were defined with a unique name, so that the USE command can be used as much as possible to simplify the constructing process and to reduce the size of the file. An experimental test

24 was done during the pillar line construction in the mosque scene. With a little USE command in creating pillars, the file size of NewMain.wrl was 95.2 KB. The file size was reduced to 48.4 KB when using a single pillar and instancing it for the rest of the pillars. Figure 4.12 shows the construction of multiple instances of the pillars.

Figure 4.12 The construction screen for creating multiple instances of the pillars

4.6.2 Using Gzip File to Reduce Internet Download Time

Many VRML developers try to use gzip to compress VRML files before it is delivered over Internet. The Gzipped files reduce file size, and therefore, reduce download time and not the quality of the worlds. A free program for Win9x/NT/2k called Win-GZ is available at http://home.hiwaay.net/~crispen/src/#wingz. A free console application is available at http://www.gzip.org/

I used Win-GZ to zip the mosque VRML scene (NewMain), and the file size ranged from 49 KB down to 6.02 KB. According to some expert’s advice, I renamed the zipped file NewMain.wrl.gz to NewMainGzip.wrl. This was necessary because some browsers wouldn’t work well when accessing a file with an extension of .gz. The NewMainGzip.wrl was displayed nicely in Netscape browser using the Cosmo Player.

5. VRML Analysis

Experts in the field of VRML development were initially very excited about VRML, and thought, “VRML represents the seeds of a new Web”(Silicon Graphic, Inc.

25 1997). The following predictions were made about the future of VRML several years ago: David E. Y. Sarna and George J. Febish (1996) believed that VRML could prove to be the most compelling Internet technology within the next few years. VRML would have a profound impact on business and an even greater impact on Cyberspace than even the World Wide Web. Walter Goralske, Matthew Poli and Peter Vogel (1996) predicted that eventually, all Web sites would include some degree of 3-D content. There is an important role to play for virtual 3-D worlds in almost every Web site.

However, after several years have passed, VRML did not make it into all the Web sites. Instead, to some people, VRML is considered dying. What limited the adoption of VRML? I will look into the questions such as “is VRML important”, “what are VRML’s advantages and limitations”, and “what kind of applications VRML fits in the best”.

5.1 Expectations of VRML

The article written by Rikk Carey, George S. Carson and Richard F. Puk in 1997 stated the perceived importance of VRML. The authors pointed out that while HTML provides a document-based interface for WWW, VRML “enables the next level of interaction, by moving the web beyond the document-oriented paradigm into virtual worlds based on 3-D interactive computer graphics.” According to the authors, the major accomplishments of VRML are a) the ability to take graphics from 2-D to 3-D geometric graphics suitable for both 2-D and 3-D interaction and b) VRML is not only a file format that is capable of describing 3-D shape information, but also of describing the interactive behaviors that can be applied to 3-D objects (Rikk Carey, George S. Carson and Richard F. Puk , 1997)

5.2 The Potential of VRML

The following are potential features that have been claimed for VRML.

26 • 3-D graphics: VRML is a revolution on the Web because VRML “incorporates the important human ideas of location, place, and architecture into the Web and the Internet.” A 3-D world created from VRML is closer to human nature than the 2-D pages (Walter Goralske, Matthew Poli and Peter Vogel, 1996). The VRML world can contain light sources, object materials, effects such as fog, animated images, sounds, and movies to further enrich viewers’ experience. A VRML world blends 2- D and 3-D objects, animation, and multimedia effects into a single medium (Udo Flohr, 1996, Jed Hartman and Josie Wernecke, 1996)

• Interactive: Objects in a VRML world can respond to one another as well as to external events caused by the user. The user can “reach in” to the scene and change elements in it (Jed Hartman and Josie Wernecke, 1996).

• Different experience: As people explore a part of the real world, each person can have a different experience through a same VRML world. The browser allows the user to explore the VRML world in any way he/she decides. The computer dose not provide a fixed set of choices or prescribe which path to follow. The possibilities are unlimited (Jed Hartman and Josie Wernecke, 1996).

• It is more exciting. VRML puts the user in control. More important, it’s a technique for relating information in an exploratory rather than a fixed fashion. Enter a room; explore what’s behind each element. It combines an element of surprise with expectancy (David E. Y. Sarna and George J. Febish, 1996, Jed Hartman and Josie Wernecke, 1996).

• Infinite screen accesses: When a 2-D image loads on a screen, there are only so many pixels to go around. With 3-D if you need more space you simply move forward, or turn your head. In 3-D you get infinite screen real estate for a finite number of pixels on the monitor (Silicon Graphic, Jed Hartman and Josie Wernecke, 1996).

• Platform Independent: VRML is not tied to any one hardware or software company.

27 5.3 Limitations of VRML

VRML has not yet widely spread out on the Web as people expected several years ago. Many experts agree that performance is a big issue that VRML technology is facing. (Diana P. Mahoney, May, 1999, Eric Beck, July, 1999, John Goddard, June, 1999). As Alan Joch stated, “Hardware and chip manufacturers have to do a better job delivering low-cost 3-D enabled products, software developers need to design more 3-D business applications, and IT professionals must overcome some negative preconceptions about 3-D interfaces” (Alan Joch, Nov. 1999). Finding business needs is another issue relates to VRML development: “There aren’t any killer business applications for the technology” (VRML). “Until someone figures out how businesses could benefit from virtual 3-D world, this technology will never grow beyond a toy” (Multimedia Week, 1999). Some limitations of VRML are summarized in this section.

• High CPU computing power: VRML is definitely not for the fainthearted CPU. Animated 3-D scenes are heavy computing applications. Insufficient computing power will result in sluggish navigation, stuttering frames, and artifacts (e.g., jagged edges). The reason for this is that a complex scene has many polygons, textures, light, and sounds that require much data and therefore requiring high CPU computing power to process it (Udo Flohr, 1996).

• Massive data passing through the Internet: Unlike HTML, VRML model may requires massive text files. Though, the straight VRML files are actually small, many VRML files are large. This is because of motion capturing data, animation, sound, light, or video that are implemented in the worlds. Therefore, VRML is limited by the speed at which the line can move the massive number of bits to client (Jed Hartman and Josie Wernecke, 1996). VRML file download times can be long, and 100K-300K for a complete download is not unusual (http://mudhole.spodnet.uk.com/~imp/authoring/vrml/advdis.html).

28 • Special software for viewing VRML: Special software is required to view VRML worlds. New users can find the interfaces overwhelming. Also, significant variations between browsers can lead to problems in development.

• High effort in development: VRML technology is far more complex than HTML. “A usable 3-D interface requires millions of lines of code and hundreds of man-hours to create. So far, with 3-D technology still in a niche market, the pool of programming talent capable of eye-popping 3-D graphics is small” (Alan Joch, Nov. 1999).

5.4 Current VRML Applications

VRML has been used in many fields, such as advertising, e-commerce, education/museums, entertainment, news, military/government, movie promotion, page enhancement, technical training, architecture and industrial-design, and science (http://www.frerichs.net/whowherewhat.html, Aug, 1998, http://hiwaay.net/~crispen/vrml/building.html, Bob Crispen, May, 1999). A few interesting examples of VRML worlds are the following:

• Mars Pathfinder – Virtural Reality Models and Animations of the Pathfinder Mission http://mpfwww.jpl.nasa.gov/vrml/vrml.html Allows visitors to view the Mars Pathfinder lander and rover in a realistic environment.

• Stocksmart – Stock chart grapher. http://www.stocksmart.com/ows-bin/owa/vpv. Displays price/volume graph in VRML scenes.

• CNN - Multimedia page. http://www.cnn.com/SPECIALS/multimedia/. Provides 3- D objects such as a hurricane, space shuttle, and crafts from the space race.

• SportsLine USA – SportsLine USA creates applications that combine Java, Shockwave, streaming video and a little VRML to provide interactive sports

29 information on its Web site. Fans can visit SportsLine’s VRML-driven 3-D Soccer World. However, the VRML world in this Web site only reaches limited viewers (Andrew Mariatt, June 1999).

• Lockheed Martin – Virtual Environments for Shipboard Training. http://vet.parl.com/~vet/iships/iships_ToC.html Provides a virtual environment training (VET) system for engineering models. The developers of the system used some tools to translate CAD to VRML.

• NCSA - Astronomical Digital Image Library. http://adil.ncsa.uiuc.edu/VRMLHighlights.html. The Astronomy Digital Image Library is experimenting with VRML previews of 3-D images. It helps to visualize the activities in galaxies.

• VRML in Biology -- http://verbena.fe.uni-lj.si/~tomaz/VRML/. Visualizations of biological structures and processes, concentrates on cell structures and physiology.

• Jane Vadnall's and Jeffrey Jacobson's Tomb of Lady Hao -- http://www.sis.pitt.edu/~goshen/Net-Hao/. Displays and describes archaeological remains from 3000 years ago well.

• The British Museum of Natural History's fossils – http://www.nhm.ac.uk/museum/tempexhib/VRML/index.html

Some VRML applications demonstrated business value. For instance, Siemins Power Generation Group (KWU) devised a way to convert 3-D CAD nuclear power plant models to VRML files that can be read with a Web browser. “The project could shave a year off the usual power-plant design time. It saves millions of dollars in the cost of drawings alone,” according to the article VRML Lets CAD Users Share. (Ellen Messmer, April 1999).

30 5.5 Author’s Experience and Evaluation

The author’s experiences are consistent with the cited descriptions above from other people in this field. The advantages of 3-D graphics, interactive, and infinite screen access, made VRML more applicable to the fields such as science, history, archeology, and education when some specific demonstrations are needed. Examples of these applications include building long lost historical sites, or demonstrate the structures and movements of chemistry molecules.

There are also limitations associated with VRML. For example, VRML works well on small-scale designs such as a 3-D logo or a small fun 3-D scene, which increases the attractiveness of a web site. However, not all the web users can view it because they may or may not have the required plug-in or the web browsers that supports VRML. The use of VRML is restricted, when used in a larger project, by the network transfer and the speed of the PC because of the size of the files for a large project is usually huge. In addition, writing the program for VRML worlds, although not difficult technically in comparison to most of the programming languages, is tedious and time consuming, especially when there are many details in the VRML world. While VRML authoring tools can make complex geometry programming in VRML much easier and can save a considerable amount of coding time, they may produce some unnecessary codes and therefore request extra rendering times in a browser.

In order for VRML to be more commonly used, having significantly improved authoring tools is a necessity in addition to faster computers and speedy Internet transitions. Finding business values for VRML application is another challenge for pushing the VRML technology forward.

31 5.6 Future Improvements of VRML

As more people install browsers and use higher specification machines with higher bandwidth connections, which will reduce download times VRML will become more accessible.

Sun is engaged in a collaborative effort with the Web3D Consortium (formerly the VRML consortium) to build an efficient Java 3-D renderer for VRML97 scenes. The Java 3-D API is now available for programmers of various skill levels who wish to blend rich graphics architecture with the Java platform without sacrificing performance (Travis Bryson, Apeil 1999).

The Web3D consortium will issue a fast-tracked series of X3D specifications to ensure the technology’s rapid adoption. X3D will culminate with the specification’s incorporation into the next-generation open, nonproprietary VRML ISO standard, VRML 2002. X3D has evolved from, and retains compatibility with, VRML 97 (Nicolas Mokhoff, Aug. 1999).

Many authors discuss how to make VRML programs more efficient in their books and articles. Bob Crispen’s article “VRML Post-Production the secret of the best VRML worlds on the Web” is a typical one. Bob Crispen introduced many tips that a VRML programmer can use to make a file more efficient. The tips include: strip the unnecessary code generated from a modeler, DEF / USE appearance node, compress file, speeding up animations, light it right, use textures instead of geometry, control window size, etc. (Bob Crispen, July, 1998).

Compress VRML files for faster download. Since VRML scenes have a lot of color, texture, lights, and complex geometry, the large file size is a big challenge for client / server communication on the Internet. Without color, lights and other interesting 3-D display features, VRML wouldn’t be so attractive to many people. Gzip is a common solution to providing faster download at the present time. For example, in VRML 2.0,

32 the scene graph file can be Gzipped and the file will automatically decompress for rendering on the client machine (http://coverage.cnet.com/Resources/Info/Glossary/Terms/gzip.html). Some of the regular zip programs, like WinZip, will unzip files, but will only create PKZip format files, which most VRML browsers will not handle properly. Gzip (GNU zip) is a compression utility. It has been adopted by the GNU project and is now relatively popular on the Internet. Gzip was written by Jean-loup Gailly ([email protected]), and Mark Adler for the decompression code (http://home.HiWAAY.net/~crispen/vrmlworks/faq/faq4.html#q15).

6. Summary

As a case study, this project produced a web site, which reflects the cultures, economy, and geography in Xinjiang region. The web site aimed to assist teaching in Department of Geography at Miami University. The web site contains text data, digital map, 2-D image and 3-D scenes. The VRML language, which was used to create the 3-D scenes, was the focus of this study.

A total of four VRML scenes were constructed for experimenting with VRML technology. The four VRML worlds that include most of the basic language features in VRML were produced using the V-Realm Builder.

VRML is a language that defines the layout and content of a 3-D world with links to more information. Unlike a general purpose programming language or a page specification language, VRML is a scene description language that demonstrates the geometry and behavior of a 3-D scene. VRML is an object-oriented language. The basic VRML language structures were described in this article.

VRML is designed to display 3-D images on browsers on the Internet. VRML moved the web from document-oriented paradigm into virtual worlds, which allows a

33 much higher level of user interaction. The 3-D worlds created from VRML provide a virtual reality that is closer to human nature than the 2-D web pages. VRML worlds provide individual viewers with different experiences. Viewers are in the control of how they want to see the worlds. VRML provides an interesting tool for sharing business related 3-D resources via Internet. However, complicated VRML scenes request high CPU computing power, long transition time on the Internet and high efforts in development.

Some techniques were used in this project for achieving user interaction, information display in Internet, and programming/networking efficiency. These techniques include program reuse, prototyping, animation, linking an external web site with VRML scenes, and sending compressed VRML files through Internet. The author has found that VRML scenes provide interesting 3-D experience for web users. It allows users to have more control on viewing experiences. Compared to HTML, VRML programming requires much more effort, skill, and time. Larger VRML projects require long networking transmission time, and high-speed computers to display the 3-D images properly. While VRML Authoring tools can save a lot of programming effort and time, they need further improvement to produce more efficient VRML worlds.

VRML is still in the early stage of development. VRML professionals are seeking ways to make it more efficient on Internet, and trying to apply it to business uses. Many attractive VRML applications in all types of fields have been created in the recent years. When more people install browsers and use more powerful computers with higher bandwidth connections, along with improvements in VRML technology, people will see more VRML worlds on the Internet.

34 References

1. Oliver Rist, VRML: Still Alive And Doing Better Than Ever, InternetWeek, August 9, 1999. 2. David E. Y. Sarna and George J. Febish, Paradigm Shift --- Developing Smarter, DATAMATION, May, 1996, pp. 27-28. 3. Jed Hartman and Josie Wernecke, The VRML 2.0 Handbook – Building Moving Worlds on the Web. Silicon Graphics, Inc. 1996. 4. Joe McGarvey VRML Community Forms Consortium, December 20, 1996. http://www4.zdnet.com/intweek/daily/961220c.html#TOP. 5. Linda Von Schweber and Erick Von Schweber VRML builders and browsers open up exciting new three-dimensional worlds on the Web, http://www8.zdnet.com/pcmag/iu/features/1519/_open.htm. 6. San Diego Supercomputer Center (SDSC) The VRML Repository, http://www.sdsc.edu/vrml/. 7. San Diego Supercomputer Center (SDSC) World Builders, http://www.sdsc.edu/vrml/cgi-bin/display.cgi?category=Content+Development+- +World+Builders. 8. Silicon Graphic, Inc. VRML Basics, http://vrml.sgi.com/basics/, 1997. 9. PC Magazine PC Magazine Editors' Choice, http://www8.zdnet.com/pcmag/features/software/1519/3d-s3.htm, May, 1997. 10. Udo Flohr, Put the Space in Cyberspace. BYTE March, 1996, pp. 61-64. 11. VRML Consortium History of the VRML Consortium, http://www.vrml.org/consort/History.html. 12. VRML Consortium History of the VRML Specification, http://www.vrml.org/consort/History.html. 13. Walter Goralske, Matthew Poli and Peter Vogel VRML Exploring Virtual Worlds on the Internet, Prentice Hall PTR. 1996. 14. ZDNet 3-D Terms: A Visual Glossary, http://www8.zdnet.com/products/content/pcmg/1521/pcmg0216.html, 1997.

35 15. Ellen Messmer VRML Lets CAD Users Share. Network World, April12, 1999, p. 29(1). 16. Bob Crispen VRML Post-Production: The Secret of the Best VRAL Worlds on the Web. Interactive Magazine, July 1998, pp. 20-21. 17. Andrew Marlatt Team of ‘Multimedia Statisticans’ Experiments with Sports Content. Internet World, June 14, 1999, v. 5 122, p. 15. 18. Nicolas Mokhoff Consortium Puts 3D-Capable Browser on Fast Track. Electronic Engineering Times, August 16, 1999, p. 4. 19. Travis Bryson Exploring the JAVA 3DAPI. Unix Review’s Performance Computing. April 1999, v. 17 14 p. 28 (1). 20. Ben Z. Gottesman Does the PIII Improve Surfing? PC Magazine. September 21, 1999, p. 28. 21. John Goddard Brave New Bryce 4 Worlds. PC World. June 1999 v. 17 16 p. 112B. 22. Eric Beck Calling for 3-D Web Delivery. Computer Shopper. July 1999 v. 19 p. 309. 23. VRML Never Dies, It Just Changes Its Name. Multimedia Week. August 16, 1999 v. 8131. 24. Alan Joch Enterprise Now Donning 3-D Glasses: 3-D Interfaces Move to Handle Corporate E-Biz PC World. November 8, 1999 p. 59. 25. Rikk Carey, George S. Carson and Richard F. Puk The Development of the VRML 97 International Standard. 26. Diana Phillips Mahoney All Eyes on CAD. Computer Graphics World. May 1999 v. 22 15 . p38(1). 27. Chris Marrin, Bruce Campbell Teach Yourself Vrml 2 in 21 Days. January 1997

Useful On-line Sources 1. The VRMLworks -- http://home.hiwaay.net/~crispen/vrmlworks/ 2. The VRML Consortium -- http://www.vrml.org/ 3. The VRML Repository -- http://www.web3d.org/vrml/vrml.htm 4. The Mining Company -- http://vrml.miningco.com/compute/vrml/

36