Copyright 1998 © by ACM, Inc. Permission to copy and distribute this document is hereby granted provided that this notice is retained on all copies, that copies are not altered, and that ACM is credited when the material is used to form other copyright policies.
Architectures for a Shared Virtual World
Paul Schwartz1, Lauren Bricker1, Bruce Campbell1, Tom Furness1, Kori Inkpen3, Lydia Matheson1, Nobutatsu Nakamura4, Li-Sheng Shen2, Susan Tanney1, Shihming Yen2
1Human Interface Technology Lab
2Computer & Communications Research Labs
3School of Computing Science
4Human Media Research Labs
This paper describes a shared virtual world with four key goals: a reasonable economic model; low latency for world synchronization; a hospitable environment for users; and affordances for social interaction. The first goal is supported by examining economic issues related to the design of commercially viable 3D virtual environments including issues such as allowing use of currently developed Web based content. The second goal is supported by underlying network support that combines a mixed set of Internet protocols and a mixed model of a central server for universal resource management and multicast based transaction distribution. The final two goals are supported through architectural design patterns and a literature review of social issues and personal representation in virtual worlds.Keywords: Virtual environments, shared virtual worlds, GreenSpace.
The Virtual Playground (VP) is a shared virtual world, developed to demonstrate and evaluate how people learn, perform cooperative work, and engage in entertaining activity within three dimensional (3D), distributed virtual environments (VEs). The Virtual Playground project is part of a multi-year effort to develop a distributed virtual medium that allows participants to interact and employ tools in cooperative work and play settings. The initial focus of the project is to build distributed VEs that can be deployed on inexpensive PC workstations with graphics accelerators. The Virtual Playground project, sponsored by the Industrial Technology Research Institute (ITRI) of Taiwan, is a continuation of the GreenSpace project  from the Human Interface Technology (HIT) Laboratory at the University of Washington.Virtual communities have been growing steadily over the past 10 years. From bulletin board systems to Multi-User Domains (MUDs) to virtual environments such as AlphaWorld, the sophistication and realism of shared virtual worlds has grown. Multi-user worlds have been able to establish themselves as viable commercial entities. Some experimental, shared-world architectures, such as DIVE  and DIS++ , have been incorporated into commercial systems. Although the average computer user may not have had exposure to shared virtual environments, the presence of these environments on the Internet is growing rapidly. For example, the virtual world AlphaWorld is built and inhabited by over 170,000 people . Despite this considerable growth, much still needs to be done in order for these worlds to evolve into true virtual communities. We believe there are four key goals for shared virtual world vitality: economic validity, technical validity, spatial validity and social validity. Economic Validity refers to an underlying economic model that includes a revenue-generating business plan to ensure the economic viability of a virtual world. Technical Validity emphasizes the importance of providing a technically feasible implementation that ensures reasonable performance for interactions within the virtual world. Spatial Validity refers to the appropriateness of the digitally built environment, or spatial architecture, with respect to the user, the task, and the tools. Social Validity requires that a shared virtual environment be designed for the user and the task, and support social interactions between people at distant locations. This paper addresses how these four goals impact the design of shared virtual worlds. We also present our current implementation of the Virtual Playground along with initial user reactions to the environment.
Through the design process of the Virtual Playground we maintained focus on the four precepts of economic validity, technical validity, spatial validity, and social validity. We developed a design methodology  to explore these issues early in the design process, then addressed these issues with traditional tools such as the Uniform Modeling Language (UML) . This section discusses conceptual design of the Virtual Playground and specific issues related to one application of the Virtual Playgroundóthe Netgate Mall.
As with any enduring enterprise, an ongoing virtual world must have an underlying economic model. The development and support of a virtual world is labor intensive and therefore must have an economic component to ensure long-term stability. The degree and manner in which economic considerations are addressed is an open question. The correct economic model for network applications in general is not yet apparent, but current trends indicate that the revenue stream will not be to directly charge the end user.For example, portals (such as Yahoo ) or search engines (such as www.metacrawler.com ) do not charge the end user for the use of their service. Instead, other companies are charged for placing advertising banners on relevant pages of these web sites. The recent web browser battles between Netscape and Microsoft is another prime example. Microsoft entered the browser war by bundling its software free with Windows operating systems while Netscape countered by providing the source code for their core Communicator browser. In both of these cases, the end user was not charged. Economic considerations of the Virtual Playground include the cost associated with designing and implementing the worlds; acquiring, maintaining, and upgrading servers for the worlds; and the costs incurred by participants within the worlds. The design of the Virtual Playground reduces cost by reducing the role of servers in the system. The server in this system is used only for obtaining and querying system wide resources and is not involved in the majority of transactions needed to keep worlds synchronized across participating hosts, thus reducing economic and latency requirements. Direct costs for participants in the Virtual Playground consist primarily of hardware costs. To reduce these costs, we designed the Virtual Playground for inexpensive PC workstations and used Java as the main development language to ensure platform independence. Economic consideration of the design and implementation of virtual worlds can also be addressed through specific applications. We will use as an example the economic model associated with the design of our Netgate Mall application. One of the most enduring of human economic structures is the market place, which can manifest itself as a village square, flea market, stock market or a modern shopping mall. Any place that buyers and sellers gather together can serve as a place for commerce. We chose to model the shopping mall as the modern manifestation of the market place. Shopping malls also serve as social gathering places, thus we believe an electronic shopping mall would serve as a place to visit, as well as a natural place for a user to get involved in activities. The revenue stream for a mall owner is the rent that merchants pay for storefront space. The cost for the merchant is both the rent and the cost of maintaining the space they are paying for. The higher the combination of those two items is, the less likely a merchant will choose to participate. The mall owner would like to maximize the portion of the money the merchant is willing to put into the endeavor. Our solution is to decrease the amount of investment a merchant must spend to build 3D content for the mall. We wish to present a means for potential mall tenants to participate in the Virtual Playground by supporting an embedded sharable World Wide Web (WWW) browser that is accessible from within a 3D world. This embedded browser gives a merchant the ability to have a presence in an electronic 3D world with low development costs. We recognize that many companies who have an interest in the Internet already have invested a considerable amount of resources in HTML based Web content. In order to protect that investment and to encourage them to view the Virtual Playground as the shared 3D environment of choice for their foray into the 3D world, we have provided a low cost pathway to participation in the Virtual Playground.
On the surface, the case for technical validity is the easiest to make. If the world does not perform technically then all other aspects become irrelevant as no one will use a technically deficient virtual world. Beyond the need for a base level of performance, the characteristics to consider and improve upon are latency, coherency, scalability, reliability, robustness, and effective resource allocation. Of all the technical variables, latency is the most difficult to design for because it is heavily dependent on factors outside of the designer's control. Low latency is highly dependent on the system as a whole rather than the behavior of a single portion of it. The usability of a collaborative system is particularly sensitive to latency. While high latency can be frustrating to an individual user, in a collaborative environment it may completely interfere with the ability for two users to work together. Problems such as this defeat the purpose for which the system was built .The latency between an action on one host and the reflection of that change on other hosts is a function the latency within each host and the latency between the hosts. While internal latency can be subject to code optimization, network latency is a matter of design choices. Two basic choices were considered for the Virtual Playground: a distributed architecture with no central reference model and a server based architecture. There are many benefits to the central server approach: the design of the system is simpler; management is at central location and the sponsor of the virtual world has more control over the world. However, the inclusion of a server in each transaction means that a message may not be able to take the shortest path between hosts from source to destination. In addition, the messages must spend time within the server itself, which adds to the total transmission time. This additional time could range from being very short, if the message is simply echoed, to quite lengthy, if database transactions must be performed prior to distributing the message. In order to reduce the latency of message passing between hosts, we chose to use a distributed architecture with no central server and three different forms of message passing schemes: multicasting, reliable multicasting and peer-to-peer protocols. The Virtual Playground predominately uses multicasting to pass transitional messages from host to host. An example of a transitional message is when a user is moving within the virtual world. As this user is moving, his or her system sends out a series of positional messages. If one of those positional messages is lost, other systems can pick up subsequent messages and ignore the dropped message. If necessary, the system could even interpolate between the old and new information. Messages that involve a change of state may be more critical, and thus we specify that those messages are sent using a reliable multicasting protocol. Finally, for the most reliable communication, such as conversations between two specific hosts, we use a peer-to-peer, TCP/IP connection. This type of connection is also necessary to send initialization data when a user first enters the Virtual Playground.
The architecture of a digital space is an important consideration in the design of inhabitable virtual worlds. Most virtual environments focus on how to support the user actively, by dynamically responding to user needs. We feel is it equally important to support a user passively, by providing a comfortable, or valid, space in which to operate. As information spaces, virtual architecture must address the same concerns as two dimensional graphical user interfaces, such as visual and cognitive human factors, with the complexity of movement through space over time. Spatial validity is achieved when the spatial configuration and formal representation fit the user, the task, and the motivation. In order to achieve spatial validity, designers should address human factors and usability, as well as fundamental design principles from architecture, technical communication, fine art, and theater set design. We will focus on the use of architectural metaphor, since has been demonstrated as a successful way to anticipate a userís expectations and take advantage of the virtual medium .Although digital media affords spatial representation limited only to computing power and the designer's imagination, users carry expectations from real world experiences to the virtual environment. Often architectural terms like floor, ceiling, doors, and walls are used as metaphors to imply functionality within the virtual realm. However, as human computer interaction research has shown, the symbolic use of metaphors offer novice users an initial understanding of the functionality, but may also prevent experts from seeing the potential for customization or other creative uses. New styles of interacting with and within the space may evolve and create the need to re-conceptualize notions of space and place to reflect the relationship between the physical and the virtual setting. Independent of the specific application, spatial architecture consists of digital geometry, aesthetic, and functionality that attributes to the usability and overall "sense of place." A sense of place is a quality perceived through a userís significant experiences. People identify places through physical processes, such as urban rhythm and historical significance. A sense of place is also achieved in society through roles and degrees of involvement . Place making is an art in it's own right and has extreme value in application to virtual worlds. The conceptual design of the Virtual Playground focussed on the broad concerns of usability and achieving sense of place. Our design for the Virtual Playground is based on sketches of hybrid patterns for virtual architecture; patterns that encourage creative use of electronic space and consider usersí prior knowledge of spatial relations. The initial design of the Virtual Playground employs a loose interpretation of urban and architectural metaphor, applying spatial relationships common to both physical and virtual worlds. One goal of the Virtual Playground is to foster a sense of community and create a sense of place by offering a consistent theme reflected in a variety of inhabitable spaces. We consider the Virtual Playground a success if users are able to operate within the environment. The users should be able to see and perceive objects and depth, understand symbolic spatial relationships, navigate through the space, and recognize, recall, and make reference to specific features in the environment.
Designing for social issues is one goal that may have the greatest impact on whether or not a virtual world evolves into a virtual community. The Virtual Playground is a place built for people Ė people and their needs are the single invariant in the world. We may choose to ignore gravity, conservation of volume, or even spatial consistency as artifacts of the real world that have no meaning in virtual worlds, but for human usability, we cannot just implement and insist on radical changes in how people interact with each other in a virtual world. There are many social issues to consider in building a virtual world. We have chosen to focus on the personal representation of the user in the environment, support for effective communication, allowing the evolution of a culture in the environment, and support for people of diverse age, gender, ethnicity and skill level.
In the design of avatars for personal representation of the user in a shared virtual environment, two points of view must be considered: how users see each other and how users see themselves. Avatar design has paralleled issues of body politics and self-representation in post-modern art and critical theory. Just as artists have questioned how to force viewers to 'see' traditionally misrepresented groups and theoreticians have struggled with the notion of self and authenticity, designers of virtual worlds now deal with how to represent a self in a non-physical space. The avatar indicates a participant's presence and gives them a unique identity to be recognized by other participants. The designer of the avatar controls how participants show and see what they and their fellow participants are looking at, where their focus lies, and what they are doing. After imposing a number of behaviors and actions upon the users, designers can begin to offer further options for customization. Avatars now allow users to express or create new virtual identities. Not only does this free the user from his or her own physical or cultural limitations, but it also creates new avenues for a culture to evolve strictly through interaction within the virtual environment.
Communication is a very important issue in a shared virtual environment. People convey information in the real world through symbolic (such as writing), verbal, and gestural communication. For example, we make judgements about what another person is saying based on their tone of voice and the speed of their reply. We also receive a great deal of information through many subtle actions and gestures, such as the shrug of a shoulder, a glance or a yawn. Virtual worlds can mirror the real world in their support of audio or text based communication, but it is difficult to mirror subtle actions and gestures to another person in computer-mediated environments. The loss of this communication channel is one of the largest impediments to social validity in shared virtual worlds. For example, it is a difficult problem to give a user a direct way to gesture, such as a wink, in a shared virtual world. If we see an avatar close then open an eye, was it a twitch or did the user really intend a wink? We feel one side effect of computer mediated interactions might be that a new, different, and perhaps straightforward interactions develop between users. Another aspect of communication is that there is a limit to the number of people that anyone can effectively communicate with at any time. In a crowded mall an individual is "with" certain people and not with others. However, there is no limit to the size of a group communicating in a virtual environment because physical proximity no longer separates people. It is important to provide functionality to spontaneously create and modify groups to help manage the complexity of worlds with hundreds, thousands or even millions of people.
Peopleís behaviors reflect who they are. Users carry with them their culture, personal habits, life experiences, and expectations for how things should work. Symbols and conventions in the virtual world drive users to expect certain reactions from the environment. For example, people expect to enter and exit from doors even when they can walk through walls. In virtual worlds, doors have lost their utility and are simply symbols to indicate passage. Over time the style of interactions may change in a virtual world to reflect a virtual world culture that is radically different than the culture of the real world. In the mean time, virtual world designers must provide a bridge between the types of interactions in the real and virtual worlds.
Participants in virtual worlds include people of diverse ages, genders, ethnicity and skill levels. It is important to take these individual differences into account and to be sensitive to all of the many social issues to ensure a strong, viable, shared virtual community. For example, an interface that works for an expert user who visits a world daily is not necessarily the best interface that will work for a novice user visiting a world for the first time. This problem is not unique to virtual world design, all designers of highly interactive systems must deal with similar issues. However, the issues can be more significant in a shared virtual world because the actions of one user can affect others. If system failures and poor interfaces alter a userís behavior that is intended to be visible to other participants, it may affect their ability to project themselves in the desired manner. Gender is another important social issue for virtual environments. Computer-mediated communication research has shown that men and women have different styles and different ethics when it comes to interacting "on-line" . Herring goes on to state that the "masculine net culture, Ö conflict with those of the female culture in ways that render cyberspace Ė or at least many neighborhoods in cyberspace Ė inhospitable to women." Although historically, primarily men have inhabited virtual worlds, the percentage of computer users who are female is growing rapidly . Research has shown steady increases in the number of women interacting on the Internet and predicts that women will comprise 60% of the market by the year 2005. Marketing reports currently emphasize products involving "relationships" and "interactivity" (, ). The technology must support both menís and womenís needs in order not to alienate people base on gender. Finally, users of a virtual environment may have different reasons for being in the virtual world. Some users may want to meet old friends from far away, others may want to strike up new relationships, and others may have a specific goal related activity in mind, such as asking for advice or purchasing a specific item. A virtual environment should support these varying needs, although not necessarily at the same time. Additionally, design decisions made to accommodate one set of requirements should not adversely affect other usersí requirements.
The Virtual Playground is a multi-year project. The first year involved designing the world and implementing a subset of essential features. A large component of the Virtual Playground implementation involved development of the underlying structure to enable distributed worlds to connect together over the network. Without this framework, it would not be possible to support higher level behaviors. This structure included a framework for handling user-input events in a device independent manner, rendering the world, propagating changes to other hosts and message passing between hosts.
The Virtual Playground is written in Java, including the use of the Java 3D as the renderer. We chose to develop in Java for its platform independence and the extensibility of the existing applications program interface (API). Furthermore, the Java Development Kit (JDK) version 1.2 will provide state-of the art technology. Because the latest versions of the JDK and Java 3D APIs are currently in alpha and beta development stages, we are able to take advantage of new advances in functionality and performance. This project can also help direct the developments of these tools to more effectively support the goals of shared 3D virtual environments.One common problem associated with fully distributed virtual environments is that changing worlds are continually being updated. Using Javaís object serialization we can transfer new information about a world when it is requested rather than relying on an outdated, static version. This allows for worlds to dynamically evolve over time. Using the Java serialization mechanism, we can also send behaviors and other entities from one host to another that would otherwise be difficult to express using a static file format.
Figure 1. Layering and connection of two Virtual Playgrounds and the lightweight server through the Internet.The overall network architecture of the Virtual Playground is shown in Figure 1. The Virtual Playground is built on top of network code that has been split into two modules, GSClient and GSNet (where GS stands for GreenSpace). We divided the network code into two modules that can either run in the same process space, two separate process spaces on the same host, or may exist on two separate hosts. We chose this configuration for the following reasons:
Figure 2. Parallel universes allow multiple groups to inhabit the same virtual world without being aware of other group's actions.
The spatial form of the first prototype of the Virtual Playground is based on an urban architectural metaphor. Simple spatial patterns attempt to draw on users' prior knowledge of inhabitable spaces and symbolic artifacts, such as size, scale, inside, outside, landmark, barrier, and other common visual, cognitive and perceptual cues. We strove to increase the usability and "sense of place" of through the use of common spatial patterns and a consistent look and feel. The following discussion highlights the use of urban and architectural patterns in program layout, circulation, landmarks, and aesthetics.To bridge the physical with the virtual, we made conservative design decisions for the initial prototype. While varying gravity and orientation are interesting concepts to explore, we chose to maintain consistency with users' real world experience and focus on architectural features and activities to give variety. We did not assume the existence of a sun to give a sense of time through light and seasons, but we are exploring alternative ways to implement cycles. As virtual environments become more common, there will be opportunities to expand on traditional notions of space and time.
Figure 3. Axon View of the Netgate Mall application.Drawing on an urban metaphor, the Netgate Mall application is modeled after a city square block with three main nodes of commercial activity. As seen in Figure 3, varying heights in commercial structure and open terrain, create an identifiable skyline for approaching visitors. By changing avatar viewpoint, the user can examine the mall as a 3D map to target certain destinations. Signage fins extend from the store locations to the outskirts of the environment to index locations within the mall. The urban metaphor allows commercial and public spaces to exist within a logical, visually consistent framework.
Figure 4. Plan View of the Netgate Mall application.In order to get from point A to point B in virtual space, it is important to have proper navigational tools and to designate or suggest areas for circulation. The plan view (Figure 4) shows the main circulation spine connects the three main nodes of commercial activity. The circulation path is slightly curved and elevated allowing users to always have a view of upcoming stores and access to open spaces.
Figure 5. The wind tunnel, a common point of reference within the environment.Feature activities, such as the Wind Tunnel (Figure 5), help to make the virtual world a more interesting and memorable place. These features serve as recognizable landmarks and common points of reference for participants. Color, lighting, and texture contribute to the aesthetic. While the city square metaphor and circulation paths suggest spatial symmetry, color was used to distinguish between similar geometries. For example, users can refer to the blue columns or the yellow path to make reference to specific places in the absence of a mall directory or textual identification. Lighting patterns draw attention to storefronts and identify decision points along the main circulation path. Textures add richness and character to flat geometry, contributing to the perception of comfort and safety in the environment. Many design tools were used to construct the environment including storyboards, sketches, 2D floor plans and elevations, spline modeling, and polygonal modeling. Each of these methods contributed to the discovery of how best to design the geometry. The geometry was modeled in Alias|Wavefront 8.5, converted to polygons, and edited in AutoCAD 13 for efficiency. The wind tunnel and related ground geometry were modeled with 3D Studio Max version 2.5. Both Alias and 3D Studio Max offered quick 3D sketches for team review, and AutoCAD provided precision and control in reworking the geometry to convert to VRML and Java 3D. Radiosity lighting solutions were created with Lightscape 3.0. Both the modeling and texturing technique were chosen to generate the greatest effect at the optimal processing speed. AutoCAD and Lightscape are also affordable, common tools found in most architectural design offices. Other worlds created with these tools can be easily converted and imported into the environment.
People are represented in the Virtual Playground by colored avatars. Users can specify their avatar color as a way to personalize themselves in the world. The avatars are animated when they walk in the virtual world to provide more realism and visual feedback during movement within the environment.The users of the Virtual Playground are also given the option to change the camera position relative to the avatar. The users can explore the world through different views, including the "eyes" of the avatar, or from a third-person view. In the third-person view, the user can view his or her avatar from "space", capturing the broad scope of the environment, or from a "wingman" position, capturing a more local and detailed context. We provided support for both audio and text chat communication within the Virtual Playground. Audio is innately more expressive although more subject to problems of network instability. Users will lose the capacity to communicate effectively with each other if the network drops too many packets. Although the same can be said for text chat, it is less time critical and packet loss is less likely due to the limited use of bandwidth.
The Virtual Playground has used by groups of three and four participants at a time to date. While no formal user testing has been conducted, some interesting informal observations merit elaboration here.Economically, the Virtual Playground is able to cheaply support a shopping mall model by reusing existing distributed WWW pages, thus reducing the burden on the content developers. Users enter a store in the mall through an integrated 2D web browser, then can navigate the web site in a traditional way. Users appear to easily accept and use this feature of the Virtual Playground because of the familiar 2D interface. Additionally, the Virtual Playground has performed adequately on inexpensive (US $1500) PC's with additional graphics accelerators (US $200), another feature that makes the environment easily accepted by users. Technically, the virtual playground is able to reach frame rates in excess of 30 frames per second when all participants are local. Without the graphics accelerator, the Virtual Playground appears to be raster bound and the size of the Virtual Playground window significantly affects frame rate. Using graphics accelerator boards, the Virtual Playground is bound earlier in the graphics pipeline and frame rates are not affected by the application window size. We have been pleased with the early alpha releases of the Java 3D API and see great opportunities for advancements with the compressed geometry specification and graphic file loaders on the horizon. We have just recently started to experiment with the VRML loader classes that have become a part of the Java 3D API. These classes will greatly accelerate the future incorporation of models into the virtual playground. The networking of multiple participants has been successful both within our laboratory and between the US and Taiwan. We have been consistently able to achieve frame rates of approximately 10-20 frames per second across the Pacific Ocean with participants in the US and Taiwan. Higher frame rates can be obtained depending on the number of participants, the location of the participants and the capabilities of the hardware used. We encountered a few networking difficulties related to multicasting and security when we connected to sites outside of the University of Washington. One problem with using multicasting for message passing is that many sites, including ITRI, do not yet support this protocol. Furthermore, many sites use a firewall to provide security, which does not allow packets, sent with the current multicasting protocol, to pass through to their local area network (LAN). Finally, we found that there was a high rate of multicast packets loss between the US and Taiwan. To alleviate these problems, it was necessary to place a computer outside the firewall at ITRI and construct a networking "tunnel" between the two domains. Spatially, the Virtual Playground is successful in creating an appealing alternative to placeless virtual worlds. The usability and place-making concepts outlined in earlier sections were evident in the latest prototype. In testing, the first walkthrough revealed problems with avatar scale and motion with respect to the world geometry. We have found that most users experience themselves as much bigger than their avatarís scale when they place their camera viewpoint at the eyes of the avatar. Yet, when the camera is positioned for a third person perspective, they experience their avatarís size quite comfortably although they are less apt to associate themselves with their representation. We also succeeded in delivering different scenery at every turn, however we found that this scenery enclosed the users a bit more than we expected. Socially, the Virtual Playground has met the basic requirements for people connecting with each other in a virtual environment. People have been able to gather in the world, walk around and explore the space with others, and communicate using either audio or text chat. The audio works well locally at the HIT lab, but the higher network latency of transcontinental message passing caused this mode of communication to be less than reliable. Observations also indicate that the users are comfortable with this environment. Spontaneous activities such as flying through the wind tunnel, and playing follow-the-leader or hide-and-go-seek have transpired.
We have presented the Virtual Playground, a unique shared virtual environment based on the GreenSpace project. The design and implementation of the Virtual Playground was based on four basic principals: economic validity, technical validity, spatial validity, and social validity. Based on our initial user reactions, we feel we were able to achieve our goals in both content and software. Furthermore, the design concepts set forth in this project have been robust enough to withstand major revisions during the development process.The implementation of the Virtual Playground uses a lightweight server only for initialization, and different message passing protocols (including multicasting) depending on the needed reliability of the communication. Another feature of the Virtual Playground is implemented in Java and uses the Java 3D class library. We chose Java as our development platform largely for its platform independence and the extensibility of the existing API. We expect that other developers will help us expand the Virtual Playground by adding to the existing Netgate Mall application or by building their own worlds. The most important aspect of the Virtual Playground project is not the sharing of a virtual space as an end unto itself. Instead we are truly interested in enabling users to communicate and experiment with new ideas in a real-time, shared virtual workspace. We expect that this new kind of space may change how people behave and interact in virtual worlds.
We gratefully acknowledge the Industrial Technology Research Institute (Taiwan) for their support of this project.