Smart Objects: Constraints and Behaviors in a Collaborative Design Environment. Dustin Eggink thesis proposal. 11/20/00 Thesis Statement. Architectural design problems presented to designers are usually complex. Can an interactive medium be used to effectively communicate the careful characteristics of a solution to designers, collaborators, consultants and clients in the design process? Common to the architectural process is the use of drawings, models and other visual media to communicate ideas about design to others. These artifacts of the design process utilize a language of graphic representation in order to efficiently convey ideas about formal and spatial relationships within, for an example, a handful of lines on a piece of paper. This thesis uses this notion of graphic representation as it seeks to embed the ideas about formal and spatial relationships, and the constraints which dictate the relationships, into a computer-based interactive three-dimensional environment. Thesis Concept design and complexity. 1 “Architecture is necessarily complex and contradictory in its very inclusion of the traditional Vitruvian elements of commodity, firmness, and delight. And today the wants of program, structure, mechanical equipment, and expression, even in single buildings in simple contexts, are diverse and unimaginable. The increasing dimension and scale of architecture in urban and regional planning add to the difficulties. By embracing contradiction as well as complexity, I aim for a vitality as well as validity.“ (Venturi, 1966.) Through my experiences as a designer and in my work with other designers, I have found Robert Venturi’s statement about the inherent complexity and contradictions of architecture to be true. Each new design problem presents a new set of programmatic requirements, and represents an often varied, but sometimes similar set of conventions and rules given to the general field of architecture. All of these factors contribute to affect the course of the design process in any given project which will influence the form of a building. In architecture, a common goal is to meet the functional elements of a building program while striving toward a higher level of design that may delight or stir the user in some way. On the part of the architect, mental agility is essential to meet these two very different requirements. Whether or not one chooses, as Venturi does, to embrace the “contradiction as well as complexity,” it is necessary for architects to recognize the variety of factors inherent in a design problem. These factors read as a matrix; alteration of a single item can ripple change through the breadth of a design: the depth of a room affects the spacing of columns, which changes the size of a beam. Beam depth directly affects the total height of a building which controls the amount of needed exterior cladding. Architecture is a process of balancing actions and reactions. In order to judge the value of any one move and its impacts, hierarchies and priorities relating the many facets of a design must be set. Such a standard, whether set by the architect, client or other party, can suggest a sense of direction to take during the design process and justify the decisions that have been made. In the end, it enables one to judge the successes and failures of any design solution. collaboration and design Even though the design process may often be perceived as a solo event, this is rarely true. Design, especially in the case of architecture, is more often a collaborative process. It involves many people serving in different roles towards the completion of a design solution. This list may include clients, contractors, consultants, and users. Therefore, communication becomes essential in order for architects to explain their formal solutions to design problems. Typically architects use drawings and scale-models to visually explain the physical elements of a design resolution. These visual aids provide a focus for which discussion about concepts, problems and solutions to a design take place. However, the drawings and models at their surface only address the formal relationships of a solution. It is only with the benefit of explanation from the designer can drawings and models express the more intricate solutions that 2 have been developed in response to the complexities of design. Without explanation, the audience is left to either take the formal representation at face value and nothing more, or to make an educated guess at the implied meaning of a drawing or model. In the design collaboration process, neither of the above alternatives is completely reliable or acceptable. Without specific communication of the nature of the design problem, collaboration could easily result in solving a complication of a design while undermining the conceptual theme of the project. The repercussions a move will have upon the overall design should always be kept in consideration at any stage of the design process. This thesis proposes a method of collaboration that keeps the standards set for a design ever present by taking advantage of the possibilities enabled by computing technology. It does so by imbedding the complexities that accompany any design problem within the forms of its solution. working with smart objects The forms that compose a building are defined by a set of attributes. For an example, a wall has a height, width, depth, material and color. In a design problem, the set hierarchies and priorities are manifested as rules and constraints informing the physical attributes of forms within the solution; if a priority is that a building have a low visual impact, then a constraint on an exterior wall may be a height limit of thirty feet. In the environment I propose, the forms of a design are defined by not only their physical attributes, but also their constraints and rules These forms, which I call “smart objects” are constructed and presented in a computer generated three-dimensional environment. In this environment, users can directly interact with the objects that compose a design solution. Objects can be moved, distorted and otherwise altered to allow design collaborators (consultants, clients and design team members) to explore and express their concerns over a design resolution. What makes these objects “smart” is that they are imbedded with behaviors that represent the constraints in a design problem. When manipulated, (moved or reshaped) objects can be preprogrammed to signal a preferred or absolute formal relationship with the environment and other objects. Constraints are determined by designers based on their experience, necessities dictated by the program or natural law. For an example, if a designer has defined a sight line, an object that is moved in that path may change color to alert the user a constraint has been broken. Implemented and used in this manner, smart objects can thus help collaborators (both designers and non-designers) be more cognizant of the implications of the changes they make to a design. Methodology. how do objects become smart? 3 Smart objects are the formal components of an architectural design. When manipulated, smart objects behave in a manner that reflects the constraints and rules of the design problem. For an object to become smart requires a three-step process: building, programming and use. Building is the initial form making of three-dimensional models. Because this thesis’s focus is collaboration, I will accept current modeling programs, such as Form-Z and 3D Studio Max to fulfill this component of the process and concentrate on the creation of the last two steps. Programming is where the forms built in step are imbedded with behaviors. These behaviors represent whatever rules or constraints the designer may have used to derive the initial form making and wishes to express to his or her collaborators. The rules and constraints may relate to fire-codes, square footage requirements, general aesthetic principles, or anything else. The behaviors relate to the physical attributes of an object’s, size, color, scale, or location. A computer program I propose to write for this thesis will accomplish this. In such a program, designers may select pieces of a building and attach to them “if, then” statements. The “if” is the condition of action upon an object. The “then” is the behavior of reaction. For an example, an architect may wish that two rooms remain lined up relative to each other along the east-west axis. This statement would then be, “if Room A is moved X distance north, then move Room B that same distance north.” The final step to smart objects is an environment in which those involved in a design project can view and interact with the model of a building. This environment is a second computer program I propose to write for this thesis. Interactivity means to be able change the model. Collaborators could move, scale and change the shape of forms. When the alterations made by a collaborator violates or meets a design constraint or preference would signal the user of the condition. This signal would come in the form of an object behavior predetermined by the designer. Users may then either resolve or ignore the conflict and keep physically editing the model. At the end of the session, the altered model would be saved as a new file and available for view by the designer or others. Scope of Investigation. The section that follows below is a description of the computer technology factors that will influence the progress of this thesis. The analysis starts with a brief overview of the advantages 4 and disadvantages of computer generated three-dimensional modeling. Next is a description of how the user interface would work. User interface is the most important piece to the presentation and success of this thesis, and is therefore described in the most detail. The final section describes what examples may be used to demonstrate the collaborative design environment during the time of presentation. current technology in computer generated three-dimensional modeling Three-dimensional computer modeling is quickly becoming a standard in both the academic and professional practice of architecture. An advantage of this design environment is that it can, like physical models, closely simulate the spatial and material qualities of architecture. Unlike its physical counterparts though, computer generated models are rarely interactive and must be viewed over someone’s shoulder or through a pre-rendered animation. A necessary part of a collaborative design environment though, is that the technology used not be a barrier in terms of skill or software price. This negates most computer modeling programs. Over the Internet, computer modeled environments often take form through the Virtual Reality Modeling Language. Virtual Reality Modeling Language (VRML) is a file format that is recognized as an Internet standard for the presentation of computer generated three-dimensional (3D) spaces. VRML is a navigable and interactive environment, and allows access to 3D models and spaces through a simple and intuitive interface to anyone with access to a web browser. For the designer, VRML is a common file format that can be created by many 3D modeling programs such as Form-Z and 3D Studio Max. VRML, smart objects and Java For the purposes of this study, VRML provides a good environment for smart objects to exist within because files written in this language can be accessed over the Internet. The Internet is increasingly becoming a ubiquitous part of people’s lives and a powerful tool to gather information and communicate with others. Through my studies in previous courses, I have gained a fairly fluent understanding of the Virtual Reality Modeling Language. However, VRML is a limited programming language that only allows objects to be moved or rotated relative to their virtual world. With the addition of a second programming language though, objects can be programmed to react and change their physical properties according to the spatial conditions it meets while being moved relative to the environment. Because the carrier for VRML and smart objects will be the Internet, I will use a language that is also native to the web, Java. Java is a programming language with which one can write small application programs (applets) that add to the functionality of the Internet. In the case of smart objects, applets are used to contain the intelligence of the object. The way this works is as follows: A VRML file contains the coordinate positions and material properties of every object within the 3D model. When an object is moved by a user, a Java applet observes the change to the model and checks 5 to see if any of the “if” statements written in its program have been met. If so, the applet implements the “then” statement by altering either the coordinate or material properties of the moved object. When the conditions of the “if” statement are no longer true, the properties of the object are returned to normal. smart object demonstration Because the collaborative design environment I propose to build is a piece of software, an appropriate example, or scenario, will be used to demonstrate the environment’s capabilities. The selection of a design scenario must be carefully done in order to highlight the environment that presents it, and not the scenario itself. There are a few elemental qualities a scenario must have: An architectural design solution must be presented. This solution should be composed of separate, discreet forms (objects). The visual resolution should not be so complete that moving an object from its original position would render the 3D model unbelievable. A spatial relationship between objects and their environment should be expressed. Possible scenarios that will be considered are an urban building that is constrained by a set of urban design codes, and a house that is dictated by fengshui principles. Preparatory Study. Arch 498, Web Weaving: Professor: Brian Johnson Introduction to web page building and networking capabilities available through the Internet. Arch 498, Virtual Environments: Professor: Mark Gross 6 Introduced the Virtual Reality Modeling Language (VRML) as a method to represent and explore a three-dimensional virtual environment or as a virtual representation of a built environment. This course also provided a format for the discussion of the representation of the environment in a digital form. Arch 502, Urban Design Studio: Professors: George Rolfe and Daniel Winterbottom Final solution was used as an example to exhibit moving objects in VRML. Arch 498, Advanced Computing Projects: Professors: Mark Gross and Brian Johnson A further investigation into the potential of VRML and an introduction to the Java programming language’s interface capabilities with the former 3D language. Arch 505, Digital Design Studio: Professor: Ellen Do A practical application of computer based architectural design and presentation through a VRML format. Arch 498, Java Design Programming: Professor: Mark Gross A formal introduction to the Java programming language. This course better familiarized me with the syntax and capabilities of the programming language that will be elemental to the success of the thesis. Arch 498, Digital Dreams: Provided an environment of discussion and presentation to those pursuing computer based or influenced research and design projects. During work for this course, I was able to first develop 3D objects embedded with a rule that dictated an object’s color based on its location within the virtual environment. Arch 498, Design Computing Theory: Professor: Mark Gross Enabled the discussion of the science of design and the design process. Readings, research and discussions from the course provided the theoretical and conceptual framework for the design and development of smart objects and their architectural predecessors. References books and articles. Ames, A.L., Nadeau D.R., and Moreland, J.L.. VRML 2.0 Sourcebook. New York, New York. John Wiley & Sons, Inc., 1997. A guide to the VRML 3D language. Alexander, Christopher. Notes on the Synthesis of Form. Cambridge, Massachusetts: Harvard University Press, 1964. 7 An early study on how the complexities in a design problem can be broken into manageable groups. Gosling, J., Joy, B., Steele, G., and Bracha, G.. The Java Language Specificication. San Fransisco, California. Addison-Wesley, 2000. A resource for the Java programming language. Gross, Mark. Design as Exploring Constraints. Cambridge, Massachusetts: Massachusetts Institute of Technology, 1986. A doctoral dissertation using computer programming to define and explore design constraints. Kilkelly, Michael. Off the Page: Object-Oriented Construction Drawings. Proceedings ACADIA National Conference 2000, Washington D.C. A description of a computer program that allows elements in construction drawings to respond to changes between each other. Venturi, Robert. Complexity and Contradiction in Architecture. New York, New York. Museum of Modern Art, 1966. A defense for acknowledging and embracing the disparate elements of architecture. web sites. Java Language Specification: http://java.sun.com/j2se/1.3/docs/api/index.html A resource for the Java programming language. Smart Forest: http://www.imlab.uiuc.edu/smartforest/index.html An example of a “smart landscape” that has a behavior when acted upon. Web 3D listing: http://depts.washington.edu/dmachine/Web3D A compilation of Internet based 3D applications. Supporting Material. Proposals from two courses intimately related to this thesis can be found on the following pages. Internet links displaying the progress from these courses can be found at the bottom of each page. Proposal for the Digital Crafts Seminar. Spring 2000. In the professional practice, physical models are often used as a starting point for discussion within a design team and between designers and clients. These models are often manipulated and altered throughout a discussion and over the period of design development. A unique aspect of this process is that the same elements of a model are placed in various locations and used in different ways. This is due to the nature of the model. Models represents 8 more than the physical properties of itself, they represent entire elements of a physical building. Thus, there is a certain level of intelligence given to models by the designer. I want to imbed that same kind of intelligence into computer generated 3-D objects in VRML (virtual reality modeling language) worlds. 3-D modeling, like physical modeling, is a great tool visualizing spatial and massing qualities of architectural projects. However, as it stands, 3-D models are often perceived as stagnant and fixed, only able to be changed by the designer, and less willing to be altered in discussions. This may be due to the nature by which they are created, by a specialized designer user a high-end software package. The advantage of VRML, or any other web-based 3-D viewer, is that it is comparatively easier to access (often times free), and easier to navigate within. Therefore, VRML can be used as a common field for collaboration between designers and clients. The kind of intelligence I want to imbed in VRML objects is a level of relativity between objects and the user and objects between one another. To illustrate this, I1ll use a few examples: When one downloads a VRML world of building parts, one can take an object that represents a window and move it toward an object that represents a wall. When the window objects comes in close proximity to the wall object, the wall would create a hole within itself to accommodate the window. As the window is moved to different locations within the wall, the hole moves with it, filling in the previous holes, and is left hole again after the window is moved elsewhere. Another example is in an urban design model, which illustrates a street with high pedestrian traffic. Anything that is placed on the ground level facing that street has to be highly visible and pedestrian oriented. By this rule, when one moves a mass, which represents retail, or any other building type use on the ground level, it takes on a highly fenestrated facade to accommodate the pedestrian traffic. However, when one moves it up to the second story level, it loses the fenestration. Currently, VRML only allows for objects to be moved within the world and in relation to each other. I have been able to construct 3-D models using Form-Z, export the file into a VRML format, and then give objects the ability to be moved within a VRML viewer by adding a few lines of code to the object definition. I1ve been limited to allowing the objects to be moved within a single plane of my own definition, and allowing the objects to be spun around an external center point, or around its own center point. Unfortunately, I can only allow for one of these conditions to exist within an object at a time. I believe this may be limitation of the VRML format, or the VRML viewers I have been using, or both. So there could be work to be done with the programming language and the interface technology. My first objective is to solve the 3-D language issue. Among that, I want to first be able to save altered VRML worlds as separate files apart from the original. This would allow for a series of different massing options to be developed by design collaborators. Next, is the issue of intelligent objects. For this purpose, I am currently considering imbedding the VRML code within a 9 Java 3-D file format that would have the desired rules of behavior identified. Therefore, when a VRML object is altered, it would call upon a Java instruction for the behavior that it may adopt. The next objective would then allow for the user to alter the shape and sizes within the VRML world. This may be accomplished through straightforward VRML coding, but I can1t say for sure right now. The final step would allow for an altered VRML world to be converted back into the high-end 3-D modeling program, from which it was originally created. Currently, the Archicad software program has been dealing with intelligent objects for some time. I have only recently been told about the program and have had some trouble getting to the specifics of what or how it works. I should continue to research how this program works, to learn in what ways it imbeds behaviors within objects. (Trouble in finding a way to test the program illustrates the need for a common and accessible format for viewing and manipulating 3D objects.) What I intend to leave behind is at least a method for accomplishing these features in VRML worlds. Ultimately, it would be a full program in order to make the process easier and quicker than hand manipulating code. results from this course can be found at: http://students.washington.edu/eggink/acp/acp.html Proposal for Digital Dreams Arch 498, Fall 2000 Digital Dreams is a course taught by Professor Ellen Do at the University of Washington. The intent of the class is to explore the realm of opportunities enabled by computer technology within the world of research and thesis undertakings. The course starts with a student and a project idea, and ends with a clear process, method, understanding, and possibly a start of how to turn these dreams into reality. My dream is based around what smart objects in a web-based 3D environment. I believe that current conventional 3D objects modeled in many software applications misrepresent the amount of information and meaning involved in design. By this, I mean that, as designers know, a 10 line is more than a line. It represents something. It may be a roof, a barrier, a connection, or many other things. It may combine with other lines to form something else. There is often a whole story of thought behind any line or modeled object. Designers know this, clients may realize this, but computer applications still see it as just an object or line; a set of coordinates within a space and a color. It is my dream to imbed some of the intelligence related to the objects designers build directly into those very objects, to make smart objects. Smart objects are capable of acting and taking on the properties of what ideas, theories, uses, and objectives they represent. They are interactive with the designer, client, and each other in order to simulate and put use the objectives given to them by the designer, technician or client. For an example, in a building mass model in which different components of the model represented different program uses, the block representing retail would be only allowed to move only slightly away from the street edge and never stray from the ground level. Residential however, could be placed anywhere within the building, but must have a certain amount of space from the busy street. Office space on the other hand could be placed anywhere on the site or within the building, but preferably close to retail. Listed above are several instances of rules and circumstances, some flexible others firm, which are projected onto an object that represents a certain building use, and if considered, can affect the design and success of a building. It is my goal to instead implant these rules and properties that range in nature from building code, urban design principle, sound movement, to economic potential, into the very 3D objects that comprise the model so that when reviewed and manipulated by designers, clients, and consultants, these carefully considered factors are not lost in the process. I propose to do this in a web-based environment because the web is a powerful instrument communication. I see this as a tool for collaboration among all those involved with the design and construction of a building. The web uses technologies that are available to all. They are either free or very inexpensive, and can provide an adequate 3D, real-time environment ideal for collaboration that is available to most and not limited to the few machines equipped with the appropriate and expensive high-end software. It is also my goal to someday better explain my goal. This is a somewhat aged dream. My work on this project started with the Virtual Environments course I took during the winter of 2000 and expanded into the Digital Crafts course I took the following quarter. My work from these quarters explains the progress and understanding of the technology involved with the project objective. 11 Right now, I'm assessing where I should go and how I should get there. It seems that I've taken the possibilities of VRML to its limit. This means that I need to find a new technology or language to get me where I want to go. results from this course can be found at: http://students.washington.edu/eggink/did/did.html Outline of Tasks. Through research work and the courses above, I have already cleared some of the technological hurdles presented in this thesis. I have programmed objects to change both in scale and color according to their spatial relationships with their environment and other objects. These are small pieces of the whole proposed in this thesis. However, the method in which I will accomplish the rest is clearer from these first steps. By the end of this fall quarter I hope to: enable users to move objects on a grid line, which would simplify the user interface, and develop a rough method that enables users to save altered models as new files. Prior to the Winter Quarter of 2001, reading and research into constraint-based design will be conducted to more completely grasp the applications the thesis work may be used toward. 12 An element of continual research and search for precedent and future use will remain present as the thesis process progresses through the Winter and Spring quarters. The first issue that must be approached during the thesis process is the search for a suitable example to express and demonstrate the functional uses of the smart object environment. Once a suitable example is determined, the rules and constraints of the scenario would be identified and subsequently programmed as behaviors into a Java applet. After completion of the design scenario, testing would be necessary to determine the success of the collaborative environment. Refinement and re-testing would follow this stage. Finally an interface would be built that allows users to interact with 3D smart objects and affect the example design scenario. Simultaneous to building a demonstration example would be the building of the programming application described in the Methodology section. Upon completion, this program and the user interface would be brought together to demonstrate the collaborative design environment during thesis presentation. Schedule. Week of January 2: set an example for demonstration and define associated rules and constraints Week of January 8: build 3D model for example and determine object behaviors to be programmed. Week of January 15 through week of February 5: program constraints and behaviors into a Java applet. Week of February 12 through week of March 12: write programming application. Week of March 26 through week of March April 16: write user interface application. Week of April 23 through week of April 30: prepare thesis presentation. Week of May 7: thesis presentation. 13 Week of May 11 through week of June 4: prepare thesis report. Resources and Space Support. Supervisory committee: Mark Gross and Ellen Do. I have been allotted a space in the Design Machine Group lab in Architecture Hall. In addition to a computer with all the needed software, the DMG lab also provides an environment that will prove to be an invaluable resource to complete this thesis. 14