Web-based Collaborative Design Environment by Hai Ning Bachelor of Architecture Tsinghua University, 1997 Bachelor of Engineering in Computer Science Tsinghua University, 1997 Submitted to the Department of Architecture in Partial Fulfillment of the Requirements for the Degree of Master of Science in Architecture Studies at the Massachusetts Institute of Technology June 1999 @ 1999 Hai Ning. All rights reserved. The author hereby grants to MIT permission to reproduce and publicly distribute, including via electronic copies, all or any of this thesis. Signature of Author taP~N~ng Architecture D partment of arv 1999 Certified by William I itchell Professor of Architecture and Media Arts and Science Thesis Advisor. Accepted by Roy Strickland Associate Professor of Architecture Chairman, Departmental Committee on Graduate Students L7~ 71011 LRoAchE Thesis Readers: William L. Porter Norman B. and Muriel Leventhal Professor of Architecture and Planning Department of Architecture and Planning, Massachusetts Institute of Technology John R. Williams Associate Professor of Civil and Environmental Engineering Department of Civil and Environment Engineering, Massachusetts Institute of Technology Web-based Collaborative Design Environment by Hai Ning Submitted in the Department of Architecture on May 1999 in PartialFulfillment of the Requirementsfor the Degree of Master of Science in Architecture Studies. Abstract This thesis explores the collaborative design process facing the challenge of the new era of information technology. Architecture design is often a tremendous collaboration process participated by multi-professions. Successful communication of requirement and intent are critical factors that could determine the overall success of the project both in concept and detailed design. In the information technology revolution, communication becomes the center of this new movement. We now possess much more powerful communication tools and methods than ever before. Computer is not just about computation anymore. It is about communication and interaction. Many CAD software packages have appeared to be very helpful in architecture drafting, documentation and even representation. However, we demand more in design thinking, in idea sharing, and in collaboration. Thus, it is natural to bring up the issue of effective communication within the context of architecture design process. This thesis anticipates the emergence of virtual reality modeling language (VRML) as an economical alternative not just to architectural presentation as many have already demonstrated, but also as an effective tool in architectural design process to help designers express their own idea, and understand other's as well. As a major practice of this thesis project, I will describe a prototype system VirtualBlock that I have built to illustrate the possibility to allow designers interact with each other mediated by computer network easily and efficiently. Thesis Advisor: William J. Mitchell Title: Dean, School of Architecture and Planning, Professor of Architecture and Media Arts and Science Acknowledgement Dedication To Bing, for the years and years of love and support. Many thanks to Bill Mitchell, Bill Porter, John Williams, for your insight and encouragement in this adventure. All my SMArchS colleagues, for your friendship and resourceful help. My friends in I.E.S.L., for your inspiration and friendship making these two years special. Last but not least, my parents Yuanzhong Ning and Zhanglin Zeng, for your faith and support. Table of Content Abstract Chapter I Introduction and Background Chapter || Computer Mediated Collaborative Architectural Design 1. Collaboration in traditional social science 2. Collaboration in Architectural Design 3. Computer Mediated Collaborative Design 4. Communication in CSCW Chapter III Architectural Representation and Virtual Reality 1. Graphic Architectural Representations. 2. Architectural design in virtual environments. Chapter IV Collaborative Design System Implementation 1. VRML Introduction 2. Java: an ideal tool for collaborative design system. 3. implementation of multi-user VRML world Chapter V VirtualBlock 1. Overview 2. Related Collaborative Web Research 3. VirtualBlock System Architecture 4. Runtime Environment Issues Chapter VI Conclusions Bibliography Chapter I Introduction and Background Architectural design is a complicated process that involves input from various professionals: architects, structure engineers, mechanical engineers, urban designers, developers, interior designers, and more. Even if we narrow the scope to "pure architectural design," which may only include shape and space design, there is a huge amount of information going back and forth to help designers coordinate the decision making process. Since the communication of ideas is of critical importance to designers, many methods have been explored to achieve more efficient information exchange. Drawings and models are probably the oldest, and some say still the most effective, bridges to get ideas across to brains. Figure I-1 A typical architectural model Figure 1-2 A typical architctural section drawing Some architecture schools list "fair to good" drawing skills as one of the major prerequisites for admitting new students. Many architecture schools provide drawing and sculpture courses to help students present their ideas in design studio. And almost all architecture schools assess their students' design work based on their drawings and physical models. When architects present their work to clients, they often resort to these traditional media, such as presentation drawings and realistic models, to convey their ideas and concepts to people who may not understand, and may not have to understand, site plans or detail drawings. Again, when they consult structure engineers, architects will present another set of drawings or models with only the information necessary to provide the engineer with a clear understanding. Figure 1-3 Presentation drawing Figure 1-4 Construction documentation However, things are now changing rapidly in the world of architecture design. With the overwhelming arrival of information technology, the computer is transforming, or has already transformed in many cases, the way we do things. Communication in design, which plays such an important role in the collaborative design process, is no exception to the rule of fast-paced technological change. The new Information Technology wave is at heart a revolution in the field of communication. Everything is de-materialized, digitized, or "bit"-ized for more efficient transportation and easy sharing. Many offices have by now achieved "paperless" operation. Architects are not sitting on the sidelines, by any means. Since the invention of Computer Graphics, technological innovators have been trying to make the computer play the traditional role of pencil and clay. In many present-day architectural practices, drawings and models are produced in digital format using Computer-aided Design (CAD) tools. Needless to say, the computer has proved invaluable in a fairly large number of daily routines carried out by architecture firms. Inthe field of construction documentation, where imagination and creation are dominated by exactness and precision, it's amazing what a computer can perform when compared to human hands. Computers excel at graphic representation: they possess the ability to render a realistic image of a building, or to carve a precise plastic model based on a computer-generated model, out of certain special materials using a "Rapid Prototype Machine." Figure 1-6 Plastic model produced by Rapid Prototype Machine Figure 1-5 Realistic rendering However, CAD systems have been of little use, and in some cases a downright hindrance, in situations where creative thoughts need to be generated by exchanging ideas among co-workers, as in the early stage of a design project. This is somehow selfcontradictory when considering that improved communication is basically what the information revolution is all about. While we have been trying our very best to exhaust the graphics ability of computers by designing various construction documentation, rendering and image processing software, it seems we have all ignored that the one great thing about computer, the dumb metal box with a heart made out of chips and wires, and can only understand language as simple as 0 and 1, is its communication ability. Today, at least in the academic area, it is next to impossible to find anyone who has not heard of email, the World Wide Web, etc. At the height of information highway mania, people are now more interconnected than ever before. You can email your friends, host a web site about yourself, and chat online with people you do not know and probably will never meet physically. Jargon words like telepresence and videoconferencing have quickly entered the popular vocabulary. Negroponte says, "Computing is not about the computer any more. It is about living."1 I would like to add that it is also about communicating and interacting. After being digitized, in no time your ideas or thoughts could be sent to the other side of the globe in the clear form of Os and 1s, suffering minimal or even no loss or tampering. Thus, the issue of applying this wonderful usage of computing to the field of architectural design seems inevitable. In fact, one would be surprised and also shamed that our current exploration of CAD largely remains at the level of CAP - Computer-aided Presentation, rather than helping in the actual design process, as the acronym suggests. Under this circumstance, it is natural that the idea of maximizing the computer's communication abilities inthe context of architectural design comes to our consideration. Before we start out to design such a system, it is critical to understand the essential role played by collaboration in the whole procedure of a design project. The following Chapter Il focuses on the nature of collaboration, and various collaborative design models. I will discuss the traditional architecture representation and the new Virtual Reality technology in Chapter Ill. Chapter IV introduces the major cutting-edge technology on which the VirtualBlock system was built - the Virtual Reality Modeling Language (VRML) and Java programming language. In Chapter V, we will look into the details of the VirtualBlock system design, its architecture, and run-time environment. The conclusion, Chapter VI, will offer some final thoughts on the assessment and possible extension of this prototype. 'P6, Being Digital,Nicholas Negroponte,Alfred A. Knofp, Inc., 1992 Chapter II Computer Mediated Collaborative Architectural Design 1. Collaboration in traditional social science Architectural professionals have been studying design activity and the design process for a long time. Most of this type of research is carried out based on the experiences of individual designers. Teamwork in the context of architectural design has been studied relatively little. However, with the development of product design evolving increasingly towards integrated activity and multi-disciplinary participation, collaboration becomes of even greater importance in the normal professional design process. People have tried to define collaboration in many ways. Interpretations range from "just working together" to a "synergistic collaboration of like minds". MerriamWebster defines collaboration as "to work jointly with others or together especially in an intellectual endeavor." Here, the keywords are "jointly" and "together," which reflect the essence of collaboration - a group of people working together in some kind of intellectual manner to achieve a shared goal. Kvan noted, "It can be thought as joint problem solving. It means working with others to find solutions that are satisfying to all concerned. This consists of all parties agreeing on the problem's definition, sharing concerns as valid and digging into issues to find innovative possibilities. It means being open and exploratory. It implies a deep level of trust and acceptance". Easy as it might be to define, successful collaboration is often difficult to achieve. The root of the collaboration "problem" is the fact that there's often tension between individual and collective rationality. The famous case is the social dilemma of "tragedy of the commons" illustrated by Hardin in 19682. He described a group of herders having open access to a common parcel of land on which they could let their cows graze. It is in each herder's interest to put as many cows as possible onto the land, even if the commons is damaged as a result. The herder receives all the benefits from the additional cows and the damage to the commons is shared by the entire group. Yet if all herders make this individually reasonable decision, the commons would be destroyed and all would suffer. 1Thomas Kvan. But is it collaboraton?ECAADE. This is a perfect example to show that, in many cases, behavior that is reasonable and justifiable for the individual may lead to a poorer outcome for the group. Public good is apparently the decisive factor in effective collaboration. Related research shows that if individuals cannot be excluded from the public good in teamwork, there would be motivation for everyone to "free-ride" on other people's efforts. To explore the efficiency of such teamwork, Ostrom (1990) studied a wide range of communities that had a long history of successfully producing and maintaining collective goods. She also studied a number of communities which had failed partially or completely in meeting this challenge. In comparing the communities, Ostrom found that groups which were able to organize and govern themselves are marked by the following design principles': 1. Group boundaries are clearly defined. 2. Rules governing the use of collective goods are well matched to local needs and conditions. 3. Most individuals affected by these rules can participate in modifying the rules 4. The rights of community members to devise their own rules is respected by external authorities 5. A system for monitoring member's behavior exists; this monitoring is undertaken by the community members themselves. 6. A graduated system of sanctions is used. 7. Community members have access to low-cost conflict resolution mechanisms Inthe context of the design field, the public good is to achieve the shared goal that everyone commits to from the outset, which is often some sort of creation of innovative artifacts. Here artifacts have a broader scope, including not only tangible objects, but also abstract theory, creative thoughts, process approaching a problem, or resolution of a problem, etc. We can regard the whole team as a small community where the goal, or in other words the public good, requires individual's effort and the rejection of the temptation of "free riding." Based upon Ostrom's analysis, it is not too difficult to organize the 2Hardin, Garrett. 1974. "Living on a Lifeboat." BioScience 24. Reprinted in Managing the Commons, edited by Garret Hardin and John Baden (1977, pp. 16-30). San Francisco: Freeman. 3 Ostrom, Elinor. 1990. Governing the Commons: The Evolution of Institutions for Collective Action. New York: Cambridge University Press. team in such a way that everyone is clear about his (her) own responsibility and the atmosphere around the whole team is healthy. However, while such a system may suggest that there would be no "tragedy of the commons", it does not necessarily secure a constructive and efficient way collaborative work, or shall we say the "happiness of the commons". We have seen too many examples where even though every member in the group works industrially, and no one seems to just want to lie down and enjoy the freeride, the whole project eventually turns out to be a disaster because of various reasons, such as lack of communication or mutual-understanding. Good collaboration alone cannot be regarded as motivating individuals trying their best to help the group. It has more to do with the skill and strategy to orchestra the action of group members in such a way that the productivity as a whole entity is maximized. In short, make one plus one greater than two. Most design projects encountered today cannot be accomplished by a single professional working alone. What's often required is the participation of multiple domains and disciplines. For example, a typical information infrastructure design project, such as building an e-commerce web site, would include specialists from software engineering, Artifact Context New artifact Scientifc Knowledge Past Current Future Figure II-1 Knowledge exploration during the design process. project management, database design and implementation, human-computer interface design, documentation and training, telecommunication and end-user domains. During the design process, these specialists draw upon their past experiences within the contexts of the artifact, the context of the design, and the technical and scientific knowledge they possess.4 The procedure of the design requires the experts to dedicate their individual specialty on different aspect of the problem and integrate them together to find the solution. As has been pointed out before, the expected outcome not only includes the end product but also the creation process of the product, the technical and scientific knowledge evolved from the process, which can enter a new cycle of the knowledge exploration, and thus be applied to new design experience. However, it is often painstaking for the design participants to achieve a high level of integration and collaboration. The reality is that while we do need specialists from various disciplines, it 's only natural to experience frustrations related to the co-operation of these co-workers. The reason is simple: each of them has his (her) own unique past experience, specialized work language, differences in work patterns, perceptions of quality and success, organizational priorities, etc. The shared final target, and the constraints of existing technology, may lead to challenges from one against the others' contribution. This "contested collaboration" can cause conflict and has a negative impact on the quality of the design process and design outcomes. While it's suggested that conflict is inevitable, it can also have a positive side. Syer addressed this in his article How Teamwork Works: "Conflict is not so much something to be resolved as an experience to be explored. Conflicting views on direction and change within a team never totally unrelated and have great value when considered as different parts of one story. Most exercise in conflict resolution aim at compromise, yet real difficulties arise if conflict cannot be expressed. Avoidance of conflict either drains interest, enthusiasm and eventually trust from the team experience or results in concealed tension, political infighting and the impaired performance of certain relationships within the team. Far from diminishing, resistance will then increase."5 Conflicts often force team members to work out a compromised plan that benefits all. The end product may not be the best solution for each individual, but it can be the best for the group as 4 Rasmussen, J, Pejtersen, A and Goodstein, L, Cognitive systems engineering Wiley, New York (1994). 5 Syer, J and C. Connolly, How Teamwork Works: The Dynamics of Effective Team Development, London, McGraw-Hill, 1996. an integral entity. Also, the emergence of conflict enforces the mutual understanding of group members, which will facilitate future co-operation. 2. Collaboration in Architectural Design To address the collaboration issue in the architectural design process, it's necessary to first clarify what architectural design is.There are many interpretations of architecture and architectural design. There also have been numerous studies concerning architectural design methods since the 1960s. Nonetheless, the meaning of architectural design still remains elusive. Most of the researchers tried to reflect their theoretical concern on the development of design conceptions and thus studied design methods from their academic point of view. However, architectural design as an exercise built upon the tools and methods used in architectural practices, i.e. construction of a building, has been largely overlooked. Consequently, these theoretical interpretations have been only partial in developing our understanding of architectural design. Roderick Lawrence6 suggested that architectural design can be interpreted as a tripartite concept that includes: 1) The ordering of the built environment, both spatially and temporally 2) A process of decision making based on human communication, negotiation and simulation in order to define a shared goal 3) The scheme of activities, actions and plans to achieve defined goals From this tripartite analysis, it is easy to see that, except for the common knowledge that architectural design deals with regarding aesthetical innovation and technical implementation, there is more about the process which is explicitly "political," if by politics we mean the intentions and activities of two or more parties to define and attain defined goals. In other words, Lawrence is describing the art of collaboration. Charles Moore criticized the isolated genius depicted by Ayn Rand in The Fountainhead- "Rejecting any sorts of attitudes of secrecy or doing work in isolation is important. And 6Lawrence, R, Architectural Design Tools: Simulation, Communication and Negotiation,Design Studies, 14/3, p.2 9 9 . speaking out against the attitudes in The Fountainhead every chance one gets is important." 7 Architecture is an activity to create innovative artifacts, which often requires the exploration and integration of dynamic and diverse knowledge from multiple domains, disciplines and contexts among specialists. Collaborative architectural design has been studied on and off, at least since the 1960s. The architectural design collaboration involves two dimensions. The vertical one is the so-called participatory design where deStart Finish Figure 11-2 A model of design collaboration (from Kvan, West, Vera 1997) 7 Quoted in K. H. Anthony, Design Juries on Trial, New York: Van Nostrand Reinhold, 1991. sign professionals work with end-users on the project, as oppose to the horizontal one which consists of the co-operation between designers from different disciplines. Inthis paper, I will address the issue of the latter, interdisciplinary type of collaboration, in particular I will focus on the co-operation between architects, basically including function consideration, shape and space manipulation, material selection and so forth. For most architects, their collaboration experiences start from group projects in the design studio at the school where they acquire their architectural education. Within the context of architectural design, the consensus is that effective collaboration plays a central role in a successful design practice. However, collaboration is often ignored in traditional architectural education. To most architects, it is only after they've started their career practice when they learn that co-operation and negotiation sometimes may not guarantee success, but lacking them will almost certainly determine failure. "The social art of design is significant in architectural practice, yet it is so poorly understood that it is hardly considered in architectural education. Practitioners gather the necessary skills only after years of experience in vitally important design negotiations." 8 We denote collaboration in a design task as the activity where more than one person works on a single design problem. When a successful collaboration project is expected, four critical elements must be shared appropriately by the team members: design task, communication, representation and documentation. * Design tasks. The consensus of the "public good" of the operation has to be committed to by each member before anything can be done. Communication. Asynchronous and synchronous communication will be adopted simultaneously as the project goes on. This is the most significant factor of the whole process and will be discussed in detail in following text. * Representation. Drawings and models are the oldest and most popular media to convey designer's ideas in a traditional design studio. With the development of CAAD, more and more intention is drawn upon the electronic media. VRML as one of them will be discussed in Chapter VI. * 8 Dana Cuff, 1989, 189 * Documentation. While shared representation determines the way in which information is presented, shared documentation refers to how the information gets organized and stored. These are briefly the principles that stand behind the collaborative architectural design process. However, as we mentioned earlier, regulations and rules do not guarantee a healthy collaborative atmosphere. Design professionals are humans, not machines. Good design does not arise from quiescent collaboration, nor is it a serial exchange of ideas in which layers are sequentially added by participants. Analysis of successful design outcomes suggests that successful collaboration thrive on "warm, almost familiar relations among the actors, as well as conflict and, at times, tension."(Cuff, p234). When it works, as is pointed out by Cuff, it's due to "a team-like sensibility [which] bonded the central players who struggled together to create the excellent outcome, but these individuals did not necessarily participate equally or collaboratively. Instead, key participants played key roles; their talent and authority was reported to be essential to the building's success."9 In 1989, the American Institute of Architects organized a series of roundtable discussions, workshops, and conferences on the subject of "excellence in design". Although it is futile to attempt to define what excellence is and how to achieve it, there is general agreement that certain apparent but easily ignored conditions are critical in achieving excellence. Generally speaking, excellence is achieved when the designer knows the participants and the problem well, and when this leads to a shared definition of the problem with the other participants. Other than the four elements listed above, it is also essential for design participants to work both individually and collectively in understanding the issues and exploring solutions. In the "pre-design" phase, spending substantial time on the processes of exploration and gaining the mutual trust of those involved in the project proves to be critical in determining the success of the collaboration. 9 D. Cuff, Architecture: The Story of Practice, Cambridge: MIT Press, 1991. 3. Computer Mediated Collaborative Design While much computer support for design has been developed to aid the individual designer, the industrial reality is that designers work in teams. With the development of the Internet, which brought revolutionary change to conventional information communication and sharing, there has been greater interest in using computer network as a powerful constructive environment for collaborative design. The term computer supported co-operation work (CSCW) denotes the recently established field of study concerned with the development of systems that support multiple individuals working together with computer systems. The technologies, concerns and ideas of CSCW are not new, and have been around for many years. Rather, the emergence of CSCW as a subject of study reflects a shift in viewpoint that combines an understanding of the way people work in groups with enabling technologies of computer networking and the associated hardware, software, services and techniques. 10 The field is developing quickly and has seen a series of dedicated conferences both in the United States and Europe. The idea here is that the wide-scale introduction of personal computing was followed closely by the trend to network these systems together, allowing users access to a variety of services. Finally, the information that can be transferred and shared by users has been enriched by improved display and multi-media technology, making information technology media a much more powerful competitor against traditional media. Although it's become widely accepted that information technology will be integrated into traditional design, and will greatly facilitate the design process, in real architectural practice very little response has been heard -- probably because of both the still limitation of technological bottlenecks and the conservative attitude from zealous tradition defenders who claim that "only hand-made drawings can be considered as architectural drawing". However, most architectural schools are now undertaking a great move towards the Virtual Design Studio to experiment with the impact of new technology and to experience the fundamental transformation it makes to design. 10Willson, P, An introductionto CSCW, Kluwer Academic Publishers, 1991. A Virtual Design Studio is distributed across space and time, with information being represented electronically. And what's more, sharing of information is made possible across space and time by computer-mediation and computer-support. The networked VDS allows geographically dispersed designers to generate, communicate, and implement design ideas through their desktop computers. The physical location of designers becomes irrelevant to the design process. They can work interactively as well as non-interactively, synchronously as well as asynchronously. The technology utilized in a VDS system includes World Wide Web, CAAD, Email, Video Conference, etc. One of the earliest experiments includes the two-week Shanghai Urban Housing Redevelopment Project carried out by six schools of architecture (Barcelona, British Columbia, Cornell, Harvard, Hong Kong, MIT, and Washington in St. Louis) in five different time zones and three continents joined together in 1994. As of today, if we take MIT as an example, there are at least one or two VDS offered by the architecture department each school year. It is helpful to differentiate the two layers lying behind the notion of "Computer Mediated Collaborative Design". One would be the decades-old "Computer-aided Design," while the other one, "Computer-mediated Collaboration" is a relatively new concept. From the perspective of design participants and the software engineers who create the computer-aided design software, the result of efforts in the CAAD field is somewhat disappointing. It is frustrating to admit that the majority of architectural practice simply regards CAAD tools as an automation of manual routine tasks, or as a more precise alternative to the tedious construction documentation process which requires nothing but patience and exactness. Some even refer to CAAD, somewhat derisively, as Computer-Aided Architectural Drafting. For instance, the most used CAAD package AutoCAD® from AutoDesk forces you to think in terms of geometric objects such as point, line, face and so on, rather than letting you work in a more advanced manner to think about wall, window or roof. Instead of making two walls meet in the corner, you "EXTEND" one line and "TRIM" it from the other one; instead of making an opening in the fagade, you "SUBTRACT' a box from the solid entity representing the exterior wall. Of course you can write a "macro" to automate this process and thus be able to create tens of even hundreds of windows in a snap. However, this temptation to over-simplify the design, and being forced to think about design in a much lower level, could damage the creative process and obstruct the flow of a designer's thoughts. This is not because AutoCAD is not a good system, but more that the assumptions made during the design Figure 11-3 AutoCAD working window of the software about the ways of working favor particular kinds of operation. While we have to admit that computers do show superior ability in most tiring repetitive tasks, they have the potential to be trained to be smarter and more creative design assistants. Not long ago, thanks for object-oriented programming theory, objectoriented CAAD package appeared on the stage. Object-oriented Programming has attracted a lot of attention since it came into being. Traditional programming is organized into a collection of functions, (also known as procedures or subroutines), which will be executed in a defined order to produce the desired result. By contrast, object-oriented programming focuses on the organization of software into a collection of components, called objects, that group together a. Related items of data, known as properties. b. Operations that are to be performed on the data, which are known as methods. In other words, an object is a model of a real world concept, which possesses both state and behavior. It does not take a computer guru to quickly realize that this is a perfect tool to develop CAAD software, for what traditional CAAD package lacks is exactly what object-oriented software solidly possesses - the ability to abstract objects and their behavior from meaningless geometry. Therefore, a number of object-oriented CAAD software came out as the result, among which including ArchiCAD, MiniCAD, MicroStation and so on. Figure 11-4 ArchiCAD interface As I mentioned before, this is a two-fold story. However, the other side is not as encouraging as the one discussed above. Although remote communication and cooperation have been explored very extensively in those VDS experiments, a lot of questions still remain unresolved. When we consider building up a computer system to facilitate the collaboration across space and time, among issues like performance, behaviors, specifications and implementations, the most fundamental obstacles appear to be encountered on the issues of interaction and communication. 4. Communication in CSCW Two layers of interaction seem to occur here: the interaction between participants and computer system, and the interaction between participants. What is the interaction to be provided in terms of both situations? What type of communication can afford which interaction? Not only do the participants need to share data but, how are they going to communicate with one another? One of the hot topics in recent study of the CSCW field is video conferencing, which can be taken as a typical example. How important is it? How does it contribute to the interaction between participants? And how wide does the bandwidth have to be to support it? These issues are raised when considering other aspects of collaborative systems - data exchange; participant interactions with digital models; audio links; among others. Network Comnmication F. .l _________ ||iiIiI 11111111111||IIIII|I = Hmunan-conputer HMunan-computer Interaction Intwaction Computow Mediated Inteaction Figure-II---------------------- Figure 11-5 Two layers of interaction Communication is a key aspect of knowledge exploration and collaboration. The definition of communication used in this research is "human behavior that facilitates the sharing of meaning and which takes place in a particular social context."1 In a typical CSCW process, basically two types of communication occur: synchronous communication and asynchronous communication. Each has distinctive properties that are worth discussing respectively. In synchronous collaboration, the analog is often drawn between computermediated collaboration and conventional face-to-face collaboration because these two types of collaboration share many features. The term "in the same space/time" which can be applied in both cases, implies that team members are working simultaneously, are generally working on the same thing, are in continuous, real-time communication and are aware of each other's existence and activities. However, in the virtual design environment, participants do not have to be in the same physical location. Instead, they share a computer workspace in which the work of entire group is presented to each team member with continuous, real-time update. Typically, such systems are developed using the "what you see is what I see" concept, known by the acronym "WYSIWIS",12 where each group member sees the same view of the data on their local workstation. However, in the design practice, "WYSIWIS" can not always fulfill all requirements. A large construction would need to be presented in various ways, or through various filters for the specialty in different discipline to observe. Structure engineer wants to see the height of the truss and would obviously not be interested in the post-modern style of the door trim. Architects would only care about the comfort of the space created by surrounding walls and show no curiosity on issues like how to wire the power cable for the lamp on the wall. While a central monster database containing all the information of the project would definitely help to preserve the consistency of the documentation, it is absolutely indispensable to create different views for different group members favoring their own interest. Even in the early phase of the design, when architects co-operate to work out the basic geometric shape and space of the building, it would be wonderful if the system could provide different scales and directions of the view of the same model " Lievrouw, L and Finn, T Identifying the Common Dimensions of Communication: the Communication systems model, in B D Ruben and L A Lievrouw Mediation, information and communication: Information and behavior Vol. 3, Transaction Publishers, New Brunswick, NJ (1990) p4 9 . 12Stefik, M, Bowbrow, D G, Foster, G, Lanning, S and Tatar D and allow every participating architect to observe at their own preference. This would maximize the democratic participation and reduces the risk of misleading individual opinion, which is one of essential values of collaborative design. The technologies used to support synchronous communication include video conference software, shared electronic whiteboards and specific groupware. For realtime on-line co-operation, a large amount of raw information has to be transmitted back and forth between participants in real-time. Currently, this mode of communication is limited by the need for high bandwidth networks and a common platform at each of the nodes of the distributed workplace. Asynchronous Conuniudcation Desigtier A Desipler C Desister B Time line Phase I Phase II -- -- Phase II Desip project Synchronous Coininnication Designer A Desister B Desixtier C Tine line Plhase X Design project Figure 11-6 Asynchronous Communication and Synchronous Communication in Design process Asynchronous collaboration on the other hand, suggests that designers may work at different times, often on different parts of the design and do not require the simultaneous presence of all team members. As a consequence, they do not need to be connected to the network simultaneously or continuously. This mode does not impose critical bandwidth requirements. A central data locker is still needed here for participants to check out and check in data they have been working on and keep the data updated and consistent. We have discussed conflicts and tensions in collaborative design previously. It is easy for attentions to be caught when conflict is bursting out in the middle of a synchronous communication, and each party could start right there to work out an acceptable plan for everyone. In asynchronous communication, when one designer finds out something he (she) just cannot agree on the documents checked out from the central database, he (she) is basically on his (her) own at that very moment. This designer would either have to call upon attentions of other co-workers which in some extent, breaks the asynchronous communication code, and discuss it in real time, or try his (her) very best to guess why the previous decision got made in such a way. And after that, he (she) can decide to follow the same idea or challenge it with something in his (her) mind. Thus, it would be extremely helpful if the system could give a clue on the design process to help the poor guy to grasp the idea behind the current status of the data. To achieve this level of mutual understanding, it requires the system to have the ability to record designer's ideas along the design process in an appropriate format (text, audio, video...) and store that information with the final product. When another participant comes to check out the previous work, he (she) can also check out the previous design process to obtain a much clearer understanding before continuing. Many believe that to help all parities to understand the conflict is the first and the most important step in solving the disagreement. That makes this system feature even more valuable. Up to this point, there is no widely accepted integrated software package to support asynchronous collaboration. Although some software engineers are trying hard to come up with an integrated system, most of the experiments like VDS are carried out with the help of a variety of IT solutions combined together. Among them there are E- mail (including multimedia mailers), FTP, DBMS, WWW etc, VRML, which has much lower requirements of bandwidth than the synchronous communication. Chapter III Architectural Representation and Virtual Reality 1. Graphic Architectural Representations. Though architecture did not receive widespread recognition as a liberal profession until 1 9th Century, graphic representations can be dated back to the time when murals were painted by our cave-dwelling ancestors. Rendered drawings, sketches, and small-scale models have traditionally been used for the representation and communication of architectural design projects. Even today, as we are entering the information era and "being digital", drawings and models still remains the essential methods of expressing an architect's ideas. They continue to play a major, if not entirely decisive, role in the creation and development of architectural ideas. They have provided a way for architects to explore their concepts about built form, free from the constraints of construction. Two-dimensional architectural representation Drawings have been criticized and defended as an appropriate way to simulate design projects'. Generally speaking, architectural drawing includes a variety of representation media. Pattern books, sketches, rendered presentation drawings, construction documentation, cognitive maps, just to name a few. By looking at the common feature behind their different usage in different contexts, it's not too hard to figure out their inherent characteristics: static, two-dimensional simulations generally at a small-scale with respect to a real-life situation. Analysis of this inherent characteristic enables us to identify the strengths and weakness of these representations as architectural design tools. From the experience of architects, or any design professional, drawings are not just tools to record their thought, but are also a way to stimulate the creative process. Perhaps that is the reason that drawing, through thousands of years, has been the most basic skill for architectural idea expression and exploration. Most architectural schools provide drawing training courses to help new architecture students speak this new, graphic language fluently in order to communicate their ideas efficiently later on in their 1 Cuff, D "Design by drawing: a process of image creation and negotiation in Optimizing Environments": Research, Practiceand Policy: Proceedings of the Eleventh Annual Conference, Environmental Design Research Association, Washington DC, 1980. studio work. In a broader sense, if we look at drawing as graphical symbol representation, we would have to admit that written description also belongs to this category of communication methods. In principle, symbolic communication between people is grounded on words and visual representations. Drawings have been often used to represent the final product of the design process whereas written materials are particularly convenient to document decision making throughout the process. On the other hand, two-dimensional representation partially fails in describing the three-dimensional real world because of its intrinsic shortcomings. For non-design pro- Figure III-1 Architectural sketch fessionals, in this case the clients who want to understand the 2D simulation made by architects, it sometimes can be very frustrating to interpret 2D drawings and create 3D representations in their minds. The various scales of each construction details, the mysterious elevations and sections, the arcane jargon of the program specification, and most importantly, the difficulties of simulating the ambience of architecture all suggest that interpretation is not simple. Carrying with it various values and defects, two-dimensional architectural representation survives the not-so-short history of architecture, and walks along to the new high tech era. "It enables architects to control, promote or undervalue specific characteristics of design projects. It becomes a professional language that enables artistic temperament and subjective judgements to be the basis of decision, whereas interpersonal dialogue is underplayed or ignored." 2 Three-dimensional architectural representation: To avoid this common frustration, 3D representation has obvious advantages over 2D. It simulates the real world in a much more coherent way, one that can be quickly envisioned by lay people. Instead of constructing the artifact in the mind through different plan view, people get to see and feel a smaller version of the real thing. 2D representation only utilizes one of five human sensibilities, i.e. the sight, whereas 3D representation requires both sight and feel, and even sound sometimes. Figure III-2 Small scale wooden architectural model 2 Roderick J Lawrence, Architectural design tools: simulation, communication and negotiation, Design Studies 14/3. phone lines as well as faster ISDN or T1 lines, and since the computers used for viewing the files ranges from low-end PCs to top-of-the-line supercomputers. The power of VRML becomes apparent if you compare viewing 2D images to exploring a VRML world. Suppose, for example, that you have six images of a certain area in San Francisco and a VRML file containing data describing the same general area. The images are flat rectangles showing a particular view of the city. All you can do with Figure IV-3 VRML world of San Francisco Bay area them is look at them. Each pixel in each image has a fixed, unchanging value. With a VRML file, however, you can view the scene from an infinite number of viewpoints. The browser (the software that displays a VRML file) has navigation tools that allow you to travel through the scene, taking as many different paths as you desire, repeating your journey, or exploring new territory according to your whim. The VRML world can also contain animated images, sounds, and movies to further enrich the experience. Sometimes, a 2D image simply doesn't convey the same amount of information as a 3D model. For example, consider the diagram shown in the right static web page (next page), which illustrates how to assemble a desk. The left VRML scene shows a 3D presentation of the same object. The added depth dimension makes it much easier to relate the illustration to the real-world desk pieces lying in the carton. What happens mote interpersonal dialogue and decision making during the architectural design process. Full-scale models show the capacity to overcome many of the limitations related to the interpretation of traditional architectural drawings and models, especially the overwhelming domination of the eyes. It invites people to step inside the simulation, going through the experience cycle of observing, using, modifying and re-appraising which potentially gives a more accurate justification criteria for design. Figure I1I-4 A full-scale model Of course, drawing and model making cannot be viewed as separate processes. There's an intimate relationship between the production of a drawing and making a model. Sometimes, models are made after drawings have been produced; and sometimes drawing are produced on the basis of constructed models. Most of the time, architects work in a mixed manner. Drawings are produced to develop or elaborate design solutions suggested during model construction, and models are made to better inform architects of the consequences of associating or disassociating design ideas explored in drawings. 2. Architectural design in virtual environments. Virtual Reality is a term that has been used in the media to describe a number of different technologies. Most people will immediately connect this to an image where people wear a head-mounted display and digital gloves, wave their arms up and down Figure 111-6 VR headset Figure 111-5 Movie Lawnmower Man reaching out to touch virtual objects in their virtual world, or spinning the virtual steering wheel of their virtual vehicle. This is a typical example of how Hollywood distorts technology through movies like Lawnmower Man only to create misunderstanding among people. It is Virtual Reality for sure, but just part of it. Infact, any technology that deals with the presentation of three dimensional data in a non-linear format can be declared Virtual Reality. Sherman and Judkins 4 have identified five key elements that can be used to describe the feature of a Virtual Reality system: * Intensive: in Virtual Reality the user should be concentrating on multiple, vital information, to which the user will respond. Kate McMillan, Virtual Reality: Architecture and the Broader Community (Sydney, Australia, The University of New South Wales, ARCH 5915 Special Research Program 2, May 1994). 4 " Interactive: in Virtual Reality, the user and the computer act reciprocally through the computer interface. * Immersive: Virtual Reality should deeply involve or absorb the use. Immersion can be illustrated by Myron Krueger's "duck test". If someone ducks away from a "virtual stone" aimed at his or her head, even while knowing the stone is not real, then the world is believable. This is also known as "immersion". * Illustratrative: Virtual Reality should offer information in a clear, descriptive and illuminating way. * Intuitive: virtual information should be easily perceived. Virtual tools should be used in a "human" way. The most popular application of Virtual Reality system nowadays is perhaps the video game. Doom, Quake, Tomb Raider, you name it. Although it seems to break into kids' life (and even adults' in some cases) not long ago, Virtual Reality has progressed from manual simulation techniques up to present computer simulations since the 1920s. Kate McMillian also constructed a timeline that traces the development of Virtual Reality. * Late 1920s: Edwin Link worked on vehicle simulation, arguably the first forerunner of Virtual Reality technology. e 1940s: Teleoperation technology began. * 1954: "Cinerama" was developed using 3-sided screen. 0 Early 1960s: Development of teleoperation displays using head-mounted, closed-circuit television system by Philco and Argonne National Laboratory. Morton Heilig's ill-fated "Sensorama". * 1966: Flight Simulations, NASA. 0 Late 1960s: Development of synthetic computer-generated displays used for virtual environments, pioneered by Ivan Sutherland. * Mid 1970s: Krueger coined the term "Artificial Reality". * 1984: William Gibson published the term "cyberspace" in his novel "Neuromancer". * 1989: Jaron Lanier, founder of VPL research, coined the term "Virtual Reality" to encompass all of the "virtual" project e.g. "virtual worlds", "virtual cockpits", "virtual environments" and "virtual workstations". * 1990 to present: Continued research for the specific use of Virtual Reality in modeling, communication, information control, arts and entertainment. One key advantage of Virtual Reality lies in the fact that people navigate through three-dimensional space on a daily basis. Therefore it would take no time for them to acquaint themselves in a similar computer space with minimum disorientation. Naturally, people began to think about integrating this technology into architectural design. There is actually a two-way relationship between architectural design and Virtual Reality technology. * Architectural design can employ Virtual Reality techniques for evaluation, communication and documentation purposes. There have been a number of experiments carried out and some even put into real architectural practice. A "walk through" animation played for clients to envision the ambience of the building to be built is not unusual at the final presentation stage. A threedimensional computer model is also commonly built and sent out through a network to co-designers for collaboration. Figure 111-7 3D architectural model e On the other hand, Virtual Reality can employ architectural design, as one of the disciplines, which may contribute to the design of virtual environments. If you ever played video games like Doom or Quack, you would be shocked by the complicated labyrinth, and quickly realize that the only reasonable expla- nation for such an amazing and attractive space design in the game is the game designer being an experienced architect. Figure 111-8 Typical scene in a VR game Hexen 2 Inthis research, we're concerned with how to employ this technology to help architectural design. As we discussed in the first section of this chapter, architectural drawings and small-scale to full-scale models are major tools for architects to explore ideas and manipulate design. Full-scale models, although ideal to create the built ambience, are rarely used in practice due to the difficulty of producing them, modifying them, and transporting them for collaboration purposes. Bearing these drawbacks in mind, if we look at Virtual Reality in the background of architectural design, we would find that Virtual Reality has the potential of responding to the problems raised by physical models. It is easy to construct a VR "model" with the appropriate software package, very easy to modify after being built, and can be transferred practically at the speed of light through a computer network. What prevents Virtual Reality from prevailing in the design field is its expensiveness in terms of both equipment and computation. To provide the ambience of a real building up to the same level that a physical model can provide, and to simulate the sensibility one can experience from a real building, requires high-end computers with monster size memory and special sensors which are right now not affordable to ordinary designers. The enormous amount of data necessary to describe the senses would also need super-broad bandwidth to com- mute back and forth. Alan Bridges and Dimitrios Charitos summarize the limitation of current Virtual Reality systems in terms of providing a realistic experience:5 * Poor resolution and lack of complexity in the simulated experience * Feedback provided for only three of the five senses * Users do not receive enough visual, auditory or tactile kinesthetic information from their "avatars" inthe virtual environments and as a result their sense of presence and their overall sense of space is limited low0 1975 1985 1low 1ees l"WO 0.1 10K 001 Figure 111-9 Moores' Law Nonetheless, the barriers largely consist of limitations on the technical side, and these limitations will likely be resolved in near future. The Intel's legendary co-founder and chairman emeritus Gordon Moore promulgated the famous "Moore's Law" which states that silicon-based computing speeds will double every 18 months for the foreseeable future. Based on the development of the microchip industry after his declaration, most experts, including Moore himself, expect Moore's Law to hold for at least another two decades. From this credible assumption, hardware limitations cannot impede the development of Virtual Reality in the foreseeable future. Before long, we would each have our own high-end Virtual Reality equipment set. We'll be able to design the virtual building, modify the virtual building, transport the virtual building, even actually live in the virtual building. These are not day dreams, but the future of architectural design. 5 Alan Bridges, Dimitrios Charitos, On architecturaldesign in virtual environments, Design Studies, 18/2. Chapter IV Collaborative Design System Implementation 1. VRML Introduction The Internet has given rise to an increasingly wide variety of new technologies and standards. One of the most prominent of these is HTML. Easy-to-use browsers led to the rise of the World Wide Web, and popularized the Internet, eradicating its former status as an ivory tower academic tool. At the time HTML was starting to become popular, a group of people realized that there was only so much that you could do with 2D graphics. In a meeting at the First International Conference on the World Wide Web, Mark Pesce and Tony Parisi had developed a demo program called Labyrinth that showed the use of a platform-independent graphics format. At this same conference, Tim Berners-Lee and David Ragget (the inventors of HTML and HTTP) held a discussion forum about what they termed the Virtual Reality Modeling Language, or just VRML for short. VRML's designers wanted to create a platform-independent way to send 3D models across the Internet. To make it possible, the file format had to describe where objects were placed in 3D space and what their attributes were, such as color, texture, etc. VRML browsers would be running on everything from powerful UNIX workstations to humble desktop PCs. Silicon Graphics offered the Open Inventor file format for use, which was widely accepted. A number of changes were made to make it compatible with the Internet and WWW. This was released in May 1995. Following a number of different interpretations, a clarified version called 1.0c was issued in January of 1996. Figure IV-1 An example of VRML world In December 1995 it was proposed that the next version of VRML incorporate simple behaviors. Like everything else in the development of VRML, new pieces were being done bits at a time. VRML 1.0 described only static scenes. VRML 2.0 was to include programmable behavior but not the multi-user virtual environments of Gibson's cyberspace. They could be built on top of VRML 2.0, but multi-user virtual environments are not part of language specification. The official VRML 2.0 specification was released on August 4,1996 - the opening day of SIGGRAPH, one of the most important conferences for the international graphics community. The Virtual Reality Modeling Language (VRML) allows you to describe 3D objects and combine them into scenes and worlds. You can use VRML to create interactive simulations that incorporate animation, motion physics, and real-time, multi-user participation. The virtual landscapes you create can be distributed using the World Wide Web, displayed on another user's computer screen, and explored interactively by remote users. The VRML standard is defined by an advisory committee, the VRML Architecture Group (VAG), which continues to expand the language. 'TouchSensor"tums on a"PointLight #VRML V2.0 utf8 Transform ( translation 0 0 0 childxrn I DEF TOUCHSENSOR TouchSensor ( }, Shape I geometry Box I size 1 1 1 } DEF LIGHT PointLight { on FALSE } ROUTE TOUCHENSOR.isActive TO LIGHT.set on Figure IV-2 A simple VRML file VRML provides a highly efficient format for describing simple and complex 3D objects and worlds. It needs to be efficient, since VRML files are sent through slow tele- phone lines as well as faster ISDN or T1 lines, and since the computers used for viewing the files ranges from low-end PCs to top-of-the-line supercomputers. The power of VRML becomes apparent if you compare viewing 2D images to exploring a VRML world. Suppose, for example, that you have six images of a certain area in San Francisco and a VRML file containing data describing the same general area. The images are flat rectangles showing a particular view of the city. All you can do with Figure IV-3 VRML world of San Francisco Bay area them is look at them. Each pixel in each image has a fixed, unchanging value. With a VRML file, however, you can view the scene from an infinite number of viewpoints. The browser (the software that displays a VRML file) has navigation tools that allow you to travel through the scene, taking as many different paths as you desire, repeating your journey, or exploring new territory according to your whim. The VRML world can also contain animated images, sounds, and movies to further enrich the experience. Sometimes, a 2D image simply doesn't convey the same amount of information as a 3D model. For example, consider the diagram shown in the right static web page (next page), which illustrates how to assemble a desk. The left VRML scene shows a 3D presentation of the same object. The added depth dimension makes it much easier to relate the illustration to the real-world desk pieces lying in the carton. What happens when it is time to put the desk together? With the animation features provided by VRML 2.0, you could create an application that would allow the user to click a part shown on the screen, then watch it snap together with the adjoining pieces. If the user did not un- Figure IV-4 Animated VRML assembling instruction versus conventional static graphical instruction derstand what was happening, he or she could click again to separate the pieces, then repeat the process until it made sense. To see how the pieces fit together at the back, users could turn the part around and view it from the desired angle. Whether the final goal is educational, commercial, or technical, most compelling VRML worlds have certain characteristics in common: * A VRML world is immersive. The user enters this 3D world on the computer screen and explores it as he or she would explore part of the real world. Each person can chart a different course through this world. * The user, not the computer, controls the experience. The local browser allows the user to explore the VRML world in any way he or she chooses. The computer does not provide a fixed set of choices or prescribe which path must be followed, although the VRML author can make recommendations. The possibilities are unlimited. * A VRML world is interactive. Objects in the world can respond to one another and to external events caused by the user. The user can "reach into" the scene and change elements within it. * A VRML world blends 3D and 3D objects, animation, and multimedia effects into a single medium. However, VRML also has its limitations. Probably the most challenging aspect of working in 3D is trying to manipulate a 3D model in 2D. Input devices like the mouse are two-dimensional, so moving them in 3D can by difficult. Even with 3D-based interfaces like Caligari's Pioneer', or the split view approach of 3D MAX 2, it is still difficult to keep track of exactly how things look until you get to see them in the final environment. Figure IV-6 Caligari's Pioneer Pro Figure IV-5 AutoDesk's 3D Max Not only are computer input devices 2D, so are output devices, such as the monitor. Moving around the world helps the viewer understand the relative positions of objects, but it is still difficult to determine depth on 2D monitors. In the future, 3D monitors or head-mounted displays will become more and more affordable. The main disadvantage to working with real-time 3D is the computing time involved. The poor little processor really has to work hard to calculate how the scene looks 1Pioneer, a VRML modeling software derived from Caligari's trueSpace, a 3D modeling software. as you move through it. The more complex the scene, the more it taxes the processor. Because of the huge calculations involved, the details of VRML worlds are purposely kept simple. That is why most VRML worlds on the WWW today can not compete with fine static 2D scenes in terms of the image quality. Complex pre-rendered animation can take days and nights to produce. Once it is finished, you can play it as fast as you want. On the other hand, VRML worlds have less than a second to compute and render the scene before your eyes detect that the motion is not smooth. Despite the existing shortcomings mentioned above, VRML is still by far the best candidate for assisting collaborative design, if we push this technology to the limit. As a simplified Virtual Reality application, VRML has most of the advanced benefits we can obtain from a full-featured Virtual Reality system to facilitate remote collaboration: VRML is intensive, interactive, immersive, illustrative, and intuitive. It lacks one thing -- supporting multiple users. As we discussed earlier, VRML 2.0 does not provide explicit support for multiple users interacting in a single world. Handling multi-user environments is scheduled to be part of the VRML 3.0 specification. Unfortunately, in order to explore the possibility of utilizing VRML in collaborative architectural design, multi-user working in a shared space is exactly what we are looking for. Therefore, we have to resort to fairly extensive programming with the language of the network era, Java. 2. Java: an ideal tool for collaborative design system. Java has become the hottest programming language since late 1995, when it was introduced. Sun described Java as follows: Java: A simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language. Sun acknowledges that this is quite a string of buzzwords, but the fact is, they aptly describe the language. An extensive discussion about the advanced features of the Java language is obviously beyond the scope of this paper. But at least some of the buzzwords boasted by Sun do look familiar to us: object-oriented, distributed, portable, and multithreaded. These words have appeared several times before in our chapters 2 3D Studio MAX, a popular modeling software by AutoDesk. discussing the characteristic of collaborative design, the advanced CAD package, the feature of VRML, etc. Finally they all come together. Let's take a look at the benefits of developing a computer mediated collaborative design system based on the Java language. pen X y statis base class set status set location coloredpen status derived class color set status set-location set color Figure IV-7 Example of object model and inheritance Java is an object-oriented programming language. As a programmer, this means that you focus on the data in your application and methods that manipulate that data, rather than thinking strictly in terms of procedures. Suppose that we define a conceptual architectural element such as "window" as a class. Then we can add all kinds of properties to the window: color, texture, height, and width etc. Meanwhile, we define methods for manipulating the window: open, move, change color, change dimension, and etc. A sub class like gothic window, Chicago window, or international style window can also be derived from door class. They inherit all the properties and methods their super class has, but also possess their own particular properties and methods. Without doubt, object-oriented CAD will become the final product. Java is a portable language. Because Java programs are compiled to an architecture neutral byte-code format, a Java application can run on any system, as long as that system implements the Java Virtual Machine. This is particularly important for applications distributed over the Internet or other heterogeneous networks, which is often the case of collaborative design environments. When developing a system that facilitates teamwork, design always wants the system to be able to run on each team member's computer, no matter if it's a Mac, PC or UNIX box. As Sun's trademarked motto "Write Once, Run Anywhere", "a 100% pure Java" program would eliminate the worry about system incompatibility and native codes. I Web Server the Internet Client Computers Applet class file Applet class file Native machine code Native machine code PC MAC Applet Sclass file Native machine code Unix Applet class file Native machine code Linux Figure IV-8 Java runtime model Java is a distributed language, which means it provides a lot of high-level support for networking. Together with its dynamic running ability, it can be downloaded from a server and run locally on a user's computer. This is how Web page embedded Java applet works, which makes collaboration even easier. The user does not have to carry around a computer pre-loaded with a software package like AutoCAD in order to process data. Instead, all the user needs is a networked computer. The Java program can be transferred through a network and run on a local machine. Java also provides API of database connection. Add all these up, and a distributed collaborative design system could easily be built in a central server and be transported effortlessly across a network. 3. implementation of multi-user VRML world Multi-user functionality is one of the vital issues for a collaborative design system. VRML 2.0, the latest release, does not explicitly support the multi-user world functionality. However, with the help of powerful Java, we can implement server-client architecture to build a multi-user environment. broadcast process 4 3 broadcist Figure IV-9 Server-client architecture A multi-user environment can be treated essentially as a kind of shared objectoriented database. The instance variables of objects in the World Model database correspond to what we would think of as "entity state" information, and updating those instance variables (using appropriate methods on the objects) is the mechanism for updating an object's state, both locally and throughout the world defined by the multi-user technology. However, this is only half the picture. There is more to an entity in a virtual world than simply an entry in a database. The most obvious example of this is speech. If you speak into a microphone on your system, you want your speech to emanate from your drones on all the other systems in the same virtual world. This is clearly not a database operation. Ifyou have a video camera connected to your computer, and you use it to send images of your face that are then applied as an animated texture map onto the face of your avatar, you are again sending streaming data. From these examples, it is clear that a multi-user system has two basic aspects: a database of entities in the environment and some sort of mechanism for distributing streams of data that are emitted by those entities. If we examine the kind of operations we typically perform in constructing, maintaining, and exploring a virtual environment, we find that many of those operations are identical to those involved in a database system. For example, if you create a new object in the environment (a table or chair, for example), you are basically adding a new record to the database that describes the world. Even if there is no "database manager" involved, it is conceptually an "add" operation. Treating the world as a shared database also allows us to deal with issues of ownership in a very natural way. It is up to the owner of the database to decide who is permitted to do what. In addition, every object has to have a trackable owner associated with it in order to prevent virtual vandalism. Create Object Destrov Object Database System Modify OI[bject Figure IV-10 the World database Retrieve Object The other way to view a virtual multi-user environment is to think of it as a collection of entities that are continuously emitting all kinds of data: audio, video, body positions, motion data, text, and more. To process all this streaming data, we have to break the data into frames of information, then compress each frame, and send it to the server. The server gets the streamed data, then based on a pre-programmed judgement, broadcasts it to nodes related to this information in order to update every user's view of the world. Audio Data Motion Data streaming streaming Entity s tre a streaming in ig ' Video Data Text Data Figure IV-11 Streaming Data Model From the preceding discussion, we can see that a number of specialized processes are needed to fully implement a multi-user system. These include: * A database system * A spatial partitioning system " A filtering mechanism * A controlling process for each entity * One or more interaction processors * And of course, the individual host that actually renders the virtual world for the users. In the following chapter, we will look at a simple collaborative design system I have written for this thesis project, VirtualBlock. This multi-user system will be built around a central motion control server and a database server. The design is flexible enough so that it could be adapted to a multi-server topology; the host would present the same interface to their clients, but would communicate with one another using multicasting. Chapter V VirtualBlock 1. Overview VirtualBlock is a prototype application focusing on multi-user collaborative geometric design. It is an environment that streamlines the creation, experimentation, and testing of Web based collaborative applications. The application exploits VRML scene programming, Java applet programming, Java Database connection, and SQL programming of the Oracle database. At its core is a powerful collaboration substrate - to support synchronous multi-user applications, and a distribution substrate - which emphasizes distributed problem solving. 2. Related Collaborative Web Research Several projects are underway to extend the capabilities of the Web to support collaborative activity: Proxy Server Collaboration, Modified Servers and CGI executables, and special purposed dedicated helper applications. Habenero is a Java based collaboration development environment. The Obliq system developed powerful migratory Web applications and systems. Brown and Najork have developed a system for implementing distributed active objects to support Web based algorithm animation. Their system uses Collaborative Active Textbooks (CAT) a system developed in Obliq to provide the necessary collaborative support needed to extend the Web. Bentley listed several areas of needed improvement in the current implementation of the HTTP protocol: client PUT, superior MIME support, improved access control, better server customization, and improved user interfaces. Examples of collaborative virtual environments being developed include DIVE, MASSIVE, SONY Virtual Society, and NPSNET. The Swedish Institute for Computer Science (SICS) Distributed Interactive Virtual Environment (DIVE) is a fully distributed heterogeneous VR system where users navigate in 3D space, see, meet and interact with other users and applications in the environment. DIVE is a loosely coupled heterogeneous distributed system based on Unix and Internet Networking Protocols within local and wide-area networks. Consistency and concurrency control of common data is achieved by active replication, reliable multicast protocols and distributed locking methods. DIVE supports Web access when coupled with a Browser. MASSIVE (Model, Architecture and System for Spatial Interaction in Virtual Environments) is a VR conferencing system built by Chris Greenhalgh. It is a multi-user, multi-media distributed VR system built on top of an underlying implementation of the Spatial Model of Communication. Development of MASSIVE has stopped, and work has begun on ASSIVE2 which will include more general-purpose VR functionality and will also address issues of scalability. Honda propose an architecture and the necessary protocols for supporting multi-user interactive shared 3D environments based upon the existing Web and current VRML definition. They call such an environment a Virtual Society. They list technical requirements for a Web based Virtual Society, a possible global architecture that fulfills the requirements, and a set of protocols that supports the global architecture. The protocol set includes enhanced versions of VRML and VSCP, a Virtual Society server-client communication protocol for VRML applications. The paper also reports on their initial experimental implementation of Virtual Society. NPSNET is a real-time virtual environment simulation package from the NPSNET Research Group at the Naval Postgraduate School. NPSNET currently is capable of simulating articulated humans, ground and air vehicles, and seagoing vessels in the DIS (Distributed Interactive Simulation standard) networked virtual environment. NPSNET can support about 250-300 players. NPSNET is capable of playing across the multicast backbone (MBONE) of the Internet. 3. VirtualBlock System Architecture 3.1 Overview The VirtualBlock project is designed to simulate the process in which architects construct models with building blocks. The focus of this project is on the collaborative design process features, rather than a full-fledged 3D CAD package. For the sake of simplifying the construction and concentrating on the communication, it only provides minimum operations to place and move the blocks. However, since this type of operation has been explored very extensively in other conventional CAD software, it would not be difficult to add those functions into VirtualBlock. Figure V-1 VirtualBlock interface 3.2 Static Architecture The static architecture of VirtualBlock is separated into three broad layers with functional interdependency among them. * The Application Support Layer provides methods and operations for users to interface with the system. It exploits the Java AWT object library to implement a Java applet with a standard windows graphic user interface. * The Control Server Layer explores the Java server socket classes. It actually consists of four different servers: VRML action server, chat server, drawing board server, and a database connection request server. * The Database Server Layer uses the most popular enterprise database server - Oracle 7 for Windows NT. It records the design product as well as the design process. * The Communication Layer consists of two sub-layers: communication between the application support layer and the control server layer, and communication between the control server layer and the database server layer. Application Support L ayer C.omnmunication Laye Control Server Layer CoLmbun catn Layer Database Serv\;er Layer Figure V-2 System architecture 3.3.1 VirtualBlock Implementation The VirtualBlock project is written in pure Java language. The initial scene of the working space is written in VRML. The database initial part contains some SQL programming segments. At runtime, the Java applet feeds VRML browser with VRML string to construct VRML model. Meanwhile, it also sends SQL statement to manipulate the Oracle database. Eoracle Database SQL statement :i Textual data Standard GUTI VRML Strin Cun ent status VRM\L Scene Figure V-3 VirtualBlock system implementation 3.3.2 Application Support The application support layer requires minimal client-side environment setup. All they need is a popular Web browser (Netscape or Internet Explorer) with a VRML plugin, which in this case, we adopt Cosmo Player 2.1 from SGl. A user from anywhere in the world, sitting on a computer of any platform (PC, Mac, or UNIX) can launch the Web browser. Through a simple HTTP connection, by merely pointing their browser to the given URL, they would be able to download the Java applet class file. The class file would then be translated by the local Java Virtual Machine to local code that can be understood by the user's computer. Thus, a standard Graphics User Interface (GUI) would be constructed in the user's browser window. The initial scene VRML code would also be transferred through HTTP protocol and downloaded to the user's computer. With the help of the VRML plug-in installed in the local browser, the VRML world will appear in the user's browser window. By clicking a few buttons, the user can construct VRML code or SQL code to interact with VRML scene and the Oracle database. A chat box is also provided for users to discuss design issues in a word medium. To further facilitate the design, a shared drawing board is embedded in the applet, which provides another method of idea communication. User Interface Initialized by web server VINLf Window VRhN User to VR1ML server -- C1ontrols to chat server Chat box tWhitenboard server board Java Applet Wbpg Figure V-4 Application front structure 3.3.3 Control Server The control server layer is the heart of VirtualBlock. Written in Java, it exploits the to database server listen to incominm VRML info. broadcast VRML info. to client listen to incoming chat info. broadcast chat info. to client listen to incoming drawing board info. broadcast drawing board info. to client IN Java Control Server Figure V-5 Control server structure Server Socket technique. There are actually three servers contained in the control server layer - the VRML server, the chat server and the drawing board server. When the server starts, each server creates a socket to listen to incoming messages. Every movement that the user triggers from the front application layer that would need to update everyone's VRML scene, chat box, or drawing board will be coded into message and sent back to the respective server socket. The server socket intercepts this message, decodes it, and does what the message requires. Most of the time, it will broadcast the message to every client that is connecting to the server to update the display of each one of them. When the message calls for database connection, it will connect to database server, retrieve the necessary information, and then broadcast back to clients. 3.3.4 Database Server The database server VirtualBlock uses is the most popular enterprise SQL database server - Oracle 7 for Windows NT. When users interactively design the model through collaboration, every move of the block, every word that they write in the chat box and every stroke that they make on the drawing board is recorded in different arrays and kept in the memory of the control server layer. When the design achieves a certain level of satisfaction, the design would click on the save button. That triggers the control server to dump the contents of those arrays into the Oracle database through SQL statements. The reversed process happens when a user clicks to retrieve a previously recorded design. The controls server layer sends SQL statement to the Oracle database and re- Scene table SQLstatemen Block table Movement table Drawing table Chat table Oracle Database Server Figure V-6 Database server layer retrieved data trieves data out, then rebuilds the relative arrays and broadcasts to each client, thus replaying the process of the previous design. The relational database contains 5 tables: scene table, block table, block movement table, conversation table, and drawing table. Each table consists of respective data necessary to record the design process. Through the relations of primary keys and foreign keys of each table, it is easy to identify the action the designer performs for each model, each block, and even each movement of the block. 3.3.5 Communication The communication layer also consists of two sub-layers - the communication A between the control server and the front application layer, and the communication B between the control server and the database server. TCP/IP takes charge in this process. When a client downloads the Java Applet and runs it on his (or her) own computer, the Applet creates three client sockets: a VRML socket, a chat socket, and a drawing board socket. Each socket will talk to the respective server socket in the control server normiial transaction Database connection involved transaction 0 H 4 I\ .,/ 1~~~ I (\2/ / H 3 I\ ~ / Database Figure V-7 Communication layer structure layer through TCP/IP protocol. For example, user A clicks a button to generate a new block. The client Java Applet sends the information of the block that is going to be created to the server VRML socket through the TCP/IP protocol. The control server receives the message, examines it, and then broadcasts it out to all clients. The client socket in user B's computer hears the announced message, analyses it, and then translates it through the VRML External Authoring Interface to the VRML generating library. Finally a new VRML block will appear to B's screen in the exact same location, size and color of A's intention. If a request for database connection is received by the control server, it calls the JDBC driver and connects to the Oracle database. Then, depending upon the content of the request, the control server will generate a different SQL statement, sending it to the database. The Oracle database gets the statement, processes it, and then returns the query result. The control server receives the result, and finally broadcasts it back to clients. 4. Runtime Environment Issues To further understand the structure of VirtualBlock system, there are a few technical issues worth looking at in the runtime environment. 4.1 EAI External Authoring Interface is a technique presented by the SGI. It allows developers to easily extend the functionality of the Cosmo Player VRML 2.0 browser and thereby build applications incorporating 3D, dynamic content. In essence, the EAI provides a method for developing custom applications that interact with, and dynamically update, a 3D scene. These outside applications "talk" to the VRML scene. For example, the user could enter a stock ticker into a Java applet which retrieves a real-time quote which would then be sent to the Cosmo Player. This real-time information can be sent through the EAI into the 3D scene, and generate visually compelling and intuitive market information. The EAI also allows the user to trigger events such as animations from outside the 3D world. The EAI is in the process of adoption into the VRML 2.0 specification. Currently, it is considered an "Informative Annex", meaning browsers may include the EAI into their functionality and remain specification compliant. In the VirtualBlock system, EAI is the mediator between the Java applet and the shared VRML world designers are working on. When the Java client receives a message from the Control Server broadcasting, the message comes with specifications of the size, position, and color of the block to be created. Through the EAI provided by the local VRML plug-in viewer, the Java applet would then be able to send the corresponding VRML sentence to construct the model in the VRML window. A clear understanding of how the EAI dynamically builds VRML files based on data received via Java applets and how, in turn, the application's data can be dynamically updated through the VRML interface, is of vital importance to the whole process. Java Applet EAI (External Authoring Interface) VRML Scene Figure V-8 EAT diagram 4.2 Network Protocol: TCP/IP vs. UDP Figure V-9 Data packet wrapped by protocol To exchange data between computers, the set of rules that both ends agree upon in order to understand each other is called a protocol. TCP/IP, standing for Transmission Control Protocol and Internet Protocol, is the common thread that ties the enormous Internet together. Most network software speaks TCP/IP, which could enable them to send information back and forth without a "language barrier" getting in the way. Java, as a highly network-support language, provides ability network connections through TCP/IP. Data is broken into small packets, also called datagrams, and then wrapped up by network protocols before it is sent across the network. Since there are multiple routes between the beginning and the end point, the packets that make up a particular data stream may not all take the same route. Thus, they may not arrive at the same time or even in the same order. Some of them could even get lost along way. TCP/IP has the feature to acknowledge receipt of data packets and request retransmission of lost packets. Moreover, TCP/IP allows the packets to be put back together on the receiving end in the same order they were sent on the sending end. We call TCP/IP a reliable protocol. However, TCP/IP carries a fair amount of overhead. Therefore, if the order is not particularly important, and if the loss of individual packets will not completely corrupt the data stream, packets are sometimes sent without the guarantees that TCP/IP provides. This is accomplished through the use of the UDP protocol. The application of UDP is focused on AudioNideo streaming where the fluency of the transmission overweighs the completeness of the stream. Take audio for example, if one or two packets gets lost in the transmission process, it will sound like the voice is a little jangled, but you can still catch the meaning. However, if the system tries to request the re-transmission of the lost packets, which may merely take several seconds, you will immediately find that the conversation is frustrating. In the VirtualBlock system, I adopted the TCP/IP protocol for the exchange messages between client and server. The reason is obvious: collaborative designers simply cannot afford the loss of the accuracy of a model while it's OK to wait for a few seconds. However, in the next stage of this project, it would be necessary to introduce audio and video conferencing on top of the shared VRML world. Then the UDP will have to be exploited in order to keep up the fluency of the real-time communication. Also, the bandwidth requirement will be much higher since literally "a picture is worth thousands of words" (in fact it is usually millions in terms of the bits that need transmitting). 4.3 Java Server and Client Socket The communication between Java applet downloaded to a client's computer and the Java server program running on the control server layer is done with the help of Java socket technique. As we mentioned earlier, data is transmitted across the Internet in packets of finite size called datagrams. Each datagram contains a header and a payload. The header contains the address and port the packet is going to, the address and port the packet came from, and various other housekeeping information used to ensure reliable transmission. The payload contains the data itself. However, since datagrams have a finite length, it is often necessary to split the data across multiple packets and reassemble it at the destination. It is also possible that one or more packets may be lost or corrupted while in transit, and will need to be retransmitted, or that packets will arrive out of order. Keeping track of all this - splitting the data into packets, generating headers, parsing the headers of incoming packets, keeping track of what packets you have and have not received, readjusting the order of the incoming packet to recover its sequence, etc. - is a lot of work, and requires a lot of intricate software. Fortunately, here come the sockets. Sockets allow the programmer to treat a network connection as another stream that bytes can be written onto or read from. A socket can perform seven basic operations: * Connect to a remote machine * Send data " Receive data * Close a connection " Bind to a port " Listen for incoming data " Accept connections from remote machines on the bound port Java's socket class, which is used here by both front application client applet and control server, has methods that correspond to the first four operations. The last three operations are only needed by a server that needs to wait for clients to connect to it. In the VirtualBlock system, the control server layer has a Java server program running constantly on the server computer. It creates a server socket that listens to the client connection request. After the client downloads the Java applet to their local machine, a client socket will be created and then attempt to contact the server. When the server program receives the socket connection request of the client, an information channel is established between the server and the client. This is how data get moved around across the VirtualBlock system. The main type of data here being sent out and received are ASCII text messages. These describe the features of the VRML block to be created, the textual conversation from the chat box, the X and Y coordination of each stroke made in the shared drawing board, etc. Ifaudio and video information is added into the system, it would also be transmitted in virtually the same way. 4.4 JDBC and SQL Database JDBC, which stands for Java Database Connection technique, plays a significant role in the VirtualBlock system architecture. The JDBC API defines Java classes to represent database connections, SQL statements, result sets, database metadata, etc. It allows a programmer writing in the Java programming language to issue SQL statements and process the results. JDBC is the primary API for database access in the Java programming language. The JDBC API is implemented via a driver manager that can support multiple drivers connecting to different databases. JDBC drivers can be either entirely written in the Java programming language so that they can be downloaded as part of an applet, or else they can be implemented using native methods to bridge to existing database access libraries. JDBC drivers fit into one of four categories: 1. The JDBC-ODBC bridge provides JDBC access via most ODBC drivers. Note that some ODBC binary code, and in many cases database client code, must be loaded on each client machine that uses this driver. So this kind of driver is most appropriate on a corporate network, or for application server code written in the Java programming language in a 3-tier architecture. 2. A native-API partly-Java technology-based driver converts JDBC calls into calls on the client API for Oracle, Sybase, Informix, DB2, or other DBMS. Note that, like the bridge driver, this style of driver requires that some binary code be loaded on each client machine. 3. A net-protocol all-Java technology-based driver translates JDBC calls into a DBMS-independent net protocol which is then translated to a DBMS protocol by a server. This net server middle-ware is able to connect its entirely Java technology-based clients to many different databases. The specific protocol used depends on the vendor. In general, this is the most flexible JDBC alternative. It is likely that all vendors of this solution will provide products suitable for Intranet use. In order for these products to also support Internet access, they must handle the additional requirements for security, access through firewalls, etc., that the Web imposes. Several vendors are adding JDBC drivers to their existing database middle-ware products. 4. A native-protocol all-Java technology-based driver converts JDBC calls into the network protocol used by DBMS directly. This allows a direct call from the client machine to the DBMS server, and is a practical solution for Intranet access. Since many of these protocols are proprietary, the database vendors themselves will be the primary source for this style of driver. Several database vendors have these in progress. In the VirtualBlock system, the database I adopted is Oracle 7 for Windows NT. The JDBC driver provided by Oracle, Oracle's JDBC Thin Driver, is a type four driver that uses Java sockets to connect directly to Oracle. It provides its own implementation of a TCP/IP version of Oracle's SQL*Net. Because it is written entirely in Java, this driver is platform-independent, which also ensures the platform independence of the applet. When the control server receives the request of database connection from the client, it calls the given JDBC driver, makes the connection to the Oracle database, sends out SQL queries, and retrieves the result. The internal structure of the VirtualBlock database structure in Oracle contains five related entities: the VRML scene, the blocks, the movement of the blocks, the conversation texts, and the drawings. Every VRML scene can be viewed as a model project which consists of certain number of blocks. Each movement of each block, and the discussion and drawing associated with the move, is also recorded independently. Thus, to traverse the tree from the top node of a VRML scene, which could be seen as the design product, down to the bottom node of activities happened during the decision making of each piece of the model, one would have a clear understanding of the design. And that is the starting point of collaborative design. Figure V-10 VirtualBlock database Entity-Relationship diagram Chapter VI Conclusions I believe that this thesis is a first step toward a new direction for collaborative design in the context of computer networks. The use of digital tools to facilitate design has great potential, and needs to be explored further. There are two aspects in the computer-mediated design process that need to be studied in order to make it a more effective means of sharing design ideas and project development. The first aspect is on the technical side: the development of technology should follow the needs of the design professions to further fit itself into the design context. The second aspect involves a fundamental change in the way the design information is shared and communicated. On the technology side, it seems we are already equipped with enough knowledge and practice on a basic level, including widespread CAD programs, growing Internet use, WWW and cross-platform programming languages, Virtual Reality techniques, etc. In fact, many projects have been done to explore the potential of existing tools in the computer mediated collaborative design process. Inthe next stage, there should be efforts to put the existing technology together and come up with an integrated system to support collaborative design. VirtualBlock is one of these explorations, and I see it as the prototype of the future application. Obviously, it needs improvements in almost every aspect of the system. The geometric modeling tools it provides are insufficient for complex design requirements. The limitation of a two-dimensional screen to represent threedimensional objects must be overcome by a completely new interface design between humans and computers. Besides chat boxes and shared drawing boards, audio streaming and video conferencing would add more clarity in the communication process given ample network bandwidth and enough powerful computing ability. The second aspect has to do with the use of technology in trying to formalize the way design information is represented and communicated. The traditional medium for designers to express their ideas has been to adapt to the new context in which digital media comes to play a central role inthe whole game. Many have expressed their frustration when they try to work with computer technology, like CAD software, in design. The annoying fact that "we are being forced to think in the computer's way" shows the failure of the software engineers, who do not understand the way designers work, or even the conflict between the characteristics such as rigidity and exactness featured by computer technology, and the mysterious sub-consciousness and sometimes even irrationality carried by design profession into the decision making process. While some design professionals are painstakingly adapting technology to the design context, shouldn't we designers also ask ourselves about changing our design formality and convention in response to the rapidly changing world of technology? My personal opinion is that we are facing the challenge of new tasks, new environments, and new tools. It is not simply at matter of "having to think like a computer". It is a matter of remodeling our way of thinking to better harness these new tools, to better understand the new environment, and as a result, to better deal with the new design tasks. Bibliography A. Stamides, Developing Architectural Visualization Using Virtual Environments, Massachusetts Institute of Technology, 1996. A. Bridges, Dimitrios Charitos, On architectural design in virtual environments, Design Studies, 1995. B. Roehl, J. Couch, C. Reed-Ballreich, T. Rohaly, G. Brown, Late Night VRML 2.0 with Java, Ziff-Davis Press, 1997. C. Hunt, TCP/IP Network Administration, O'Reilly & Associates, Inc., 1992. D. Cuff, "Design by drawing: a process of image creation and negotiation in Optimizing Environments": Research, Practice and Policy Proceedings of the Eleventh Annual Conference, Environmental Design Research Association, Washington DC, 1980. D. Cuff, Architecture: The Story of Practice, Cambridge: MIT Press, 1991. E. Branda, Drawing Interfaces, Massachusetts Institute of Technology, 1998 E. Harold, Java Network Programming, O'Reilly & Associates, Inc., 1997. G. Reese, Database Programming with JDBC and Java, O'Reilly & Associates, Inc., 1997. Hardin, Garrett, Living on a Lifeboat. BioScience 24. Reprinted in Managing the Commons, edited by Garret Hardin and John Baden, San Francisco: Freeman, 1974 J. Crudden, Learning to Collaborate: Lessons from the Design Studio, Massachusetts Institute of Technology, 1997. J. Hartman, J. Wernecke, The VRML 2.0 Handbook, Silicon Graphics, Inc. Addison-Welsley Publishing Company, 1997. J. Krause, Interactive Agent Generated Architecture, Massachusetts Institute of Technology, 1996 K. H. Anthony, Design Juries on Trial, New York: Van Nostrand Reinhold, 1991. Kate McMillan, Virtual Reality: Architecture and the Broader Community, Sydney, Australia, The University of New South Wales, ARCH 5915 Special Research Program 2,1994. L. Lemay, K. Murdock, J. Couch, 3D Graphics and VRML 2, Sams.net Publishing, 1996. Lawrence, R, Architectural Design Tools: Simulation, Communication and Negotiation, Design Studies, 1993. Lievrouw, L and Finn, T, Identifying the Common Dimensions of Communication: the Communication systems model, in B D Ruben and L A Lievrouw Mediation, information and communication: Information and behavior Vol. 3, Transaction Publishers, New Brunswick, NJ, 1990. M. Sich, Articulating Architectural Design through Computational Media, Massachusetts Institute of Technology, 1997. Nicholas Negroponte, Being Digital, Alfred A. Knofp, Inc., 1992 Ostrom, Elinor, Governing the Commons: The Evolution of Institutions for Collective Action, New York: Cambridge University Press, 1990. P. Rowe, Design Thinking, Cambridge, MA, MIT Press, 1987 R. Johnsonbaugh, M. Kalin, Object-Oriented Programming in C++, Prentice-Hall, Inc., 1995. Rasmussen, J, Pejtersen, A and Goodstein, L, Cognitive systems engineering, Wiley, New York, 1994. Roderick J Lawrence, Architectural design tools: simulation, communication and negotiation, Design Studies, 1993. Sonnenwald, D, Communication roles that support collaboration during the design process, Design Studies, 1994. Syer, J and C. Connolly, How Teamwork Works: The Dynamics of Effective Team Development, London, McGraw-Hill, 1996. Thomas Kvan. But is it collaboraton? 15th ECAADE Conference, 1997. W. Mitchell, M. McCulough, Digital Design Media, Van Nostrand Reinhold, 1995. Willson, P, An introduction to CSCW, Kluwer Academic Publishers, 1991. All illustrations by author except those credited in the illustration title.