Using Shape Grammars for Master Planning Jan Halatsch, Antje Kunze, Gerhard Schmitt Chair for Information Architecture, Switzerland This paper describes the application of procedural modeling methods to automatically derive 3D models of high visual quality for a highly detailed and quick visualization of complex city models. We discuss the applicability of a procedural modeling pipeline of shape grammars in urban planning to derive meaningful 3D city models. Therefore we analyze CGA shape, a novel shape grammar for the procedural modeling of CG architecture, for its usage in architectural planning processes. Our system gives rise to three exciting applications in the field of city modeling and city visualization enabling a quick decision making and iterative design workflow: modeling of master plans, evaluation of built environments and planning of urban open spaces. It is capable to produce building shells with high visual quality and geometric detail. Context sensitive shape rules allow the user to specify interactions between the entities of the hierarchical shape descriptions. Selected examples demonstrate solutions to previously noted challenges. Introduction A shape grammar for master planning will be important for a) the quick and detailed visualization of urban designs including buildings, roads, locations and associated vegetation, b) the visualization of planning laws, c) the use of natural energy resources (solar and wind) and its effects on the visual appearance of cities. Grammar-based 3D modelers applied to an urban scale could be of great help for planning of future cities with an extremely reduced energy consumption due to its semantic system. One main advantage of recent shape grammar systems is the increase of possible design variations, which would result in time-consuming tasks if done with common planning methods. Manual tasks are difficult to handle in largescale landscape and urban planning projects especially when a large portion of interdisciplinary expert knowledge is involved. To ensure the reliability and the quality of plans it takes a lot of human resources to manually J.S. Gero and A.K. Goel (eds.), Design Computing and Cognition ’08, © Springer Science + Business Media B.V. 2008 655 656 J. Halatsch, A. Kunze, G. Schmitt model detailed 3D land- and cityscapes. In other industries beyond the field of architecture next generation applications are already used in that manner. If integrated in the architects‘ processes they could also dramatically raise design quality through (1) the added predictability of the aimed urban design, (2) the possibility to simulate certain key measures for the city‘s planning, like enhanced airflow through skillfully placed city layouts along with flow optimized building facades, and (3) the opportunity to redesign large drafted urban models within seconds of what before could have required months of work. Additionally, more sustainable designs can be achieved if associated attributes would be included into the semantics of such a system. This paper explores how shape grammars can be integrated into the urban design process. We introduce a recently published system that can be used to visualize master planning scenarios in high polygonal resolution. We contributed to this system the ability to describe urban design patterns in the form of hierarchical patterns. This system can be applied (1) to the curriculum in education as a systematic learning tool to understand and encode architecture, (2) to the field of architectural theory e.g. for the analysis and synthetic construction of unbuilt city utopias, (3) to the field of architectural history and archeology for the reconstruction of building designs and cities [1, 2], (4) to the field of urban planning as well as to project development for the pre-visualization of large urban areas - especially in cases where common building regulations exist (see Figure 1) and (5) to evaluate simulation criteria on an urban scale e. g. in order to achieve lower CO2 emissions within cities. This system had been introduced by Parish and Müller [3] for the production of city-like structures and computer generated architecture by Müller et al. [2]. We introduce this system as a novel framework for a grammar-based planning of urban environments. We extended CGA Shape to an urban visualization framework for architects. Further we show how this shape grammar approach can be integrated into a common design workflow. Related Work A landmark in the formal theory of architecture was the introduction of shape grammars by Stiny and Gips [4]. These shape grammars have been used to analyze and describe designs as in the following examples, such as Palladian villas [5], Mughul gardens [6], Frank Lloyd Wright's prairie houses [7], or Alvaro Siza's houses at Malagueira [8]. However, the applicability of Stinys‘ original shape grammars as a practical modeling tool is unclear, because it is hardly amenable for computer implementation. May- Using Shape Grammars for Master Planning 657 all [9] presented an interesting implementation of a shape grammar specified for landscape design. The system produces urban scenes by generating parcels with simple 3D buildings and by distributing vegetation objects. Müller et al. [2] presented a more recent approach. They introduced a novel attributed shape grammar called CGA Shape, which is suited for applications in computer graphics. Important contributions for the use of shape grammars in urban design had been made by Brown and Johnson [10] simulating mediaeval city blocks in London as well as by Beirão and Duarte [11], they produced flexible urban plans with shape grammars. Ulmer et al. [12] introduced an approach to extend CGA Shape in order to produce large-scale vegetation scenarios for urban environments. Shape grammar rules of certain architectural configurations have been collected within libraries. One such library exists in literary form and is described as a collection of patterns. The use of patterns in architecture is founded on Alexander et al. [13]. Fig. 1. Left: Stochastically with CGA Shape placed building masses on a given urban field. Right: Automatic adjustments within the layout following regulations concerning shape masses [3]. Crowe and Mitchell [14] practically applied Alexander’s patterns to describe specific landscape designs. The corresponding key components of patterns in landscape design have been specified and illustrated in detail by Bell [15]. Condensed as illustrated patterns, Turner [16] gives a comprehensive overview of landscape attributes in an urban context. Alexander [17] describes the formal relationship between landscape design and urban planning. Concerning the computational design curriculum there are only a few examples for the use of shape grammars: Flemming [18], Knight [19, 20], Beirão and Duarte [11] and Colakoglu [21]. 658 J. Halatsch, A. Kunze, G. Schmitt Overview This paper is organized as follows: Section 2 starts with an overview of the CGA Shape grammar, and afterwards we introduces our novel extensions needed for the encoding of urban open spaces. Section 3 deals with the design of vegetation patterns and their implementation by using our grammar. In section 4, we describe three design studies as examples. Our examples show that by using this framework users can easily generate and visualize large urban scenarios containing high-resolution building and vegetation geometry. Finally we give conclusions and future work in Section 5. A Shape Grammar for Master Planning CGA Shape In the following, we briefly introduce the main concepts of CGA Shape but refer the reader to [2] for a more comprehensive description. CGA shape stands for a novel shape grammar for the procedural modeling of computer graphics (CG) architecture. CGA Shape is an extension of set grammars, introduced by Wonka et al. [22]. The notation of the grammar and general rules to add, scale, translate, and rotate shapes are inspired by L-systems [23], but are extended for the modeling of architecture. While parallel grammars like L-systems are suited to capture growth over time, a sequential application of rules allows for the characterization of structure i.e. the spatial distribution of features and components [24]. Therefore, CGA Shape is a sequential grammar (similar to Chomsky grammars). The CGA Shape framework consists of the shape definition, the production process, the rule notation with shape operations, and an element repository. Shape definition: A shape A consists of geometry, a symbol, and attributes. The most important attributes are the position P, three orthogonal vectors X, Y, and Z, describing a local coordinate system, and a size vector S. Production process: The production process can start with an arbitrary configuration of shapes, called the initial shapes, and proceeds as follows: (1) Select an active shape with symbol A in the set, (2) choose a rule with A on the left hand side to compute a successor for A resulting in a new set of shapes B, (3) mark the shape A as inactive and add the shapes B to the configuration and continue with step (1). Rules: The CGA Shape production rules are defined in the following form: Using Shape Grammars for Master Planning id: 659 predecessor: condition successor: prob where id is a unique identifier for the rule, predecessor is a symbol identifying a shape that is to be replaced with successor, and condition is an optional guard (logical expression) that has to evaluate to true in order for the rule to be applied. Conditional behavior: For example, it can be secured via condition that the rule is only applied if the predecessor shape is not occluded by another shape. To make designs stochastic, the rule is selected with probability prob (optional). 2D shape operations: The subdivision split can subdivide objects along an axis. For example Subdiv(y,7,2,5){ A | B | A } splits the current scope along the Y-axis in three parts with sizes 7, 2, and 5 and adds three shapes A, B, and A accordingly. To enable size-independent rules, we also include the letter r to denote relative values, e.g. Subdiv(y,1r,2,4r) creates three parts: the middle part has absolute size 2 and the remaining two parts split the remaining space in a 1:4 proportion. We also employ a repeat split, e.g. Repeat(x,2){ A } places as many A shapes of approximate size 2 as possible along the X-axis of the current shape. The component split can divide a shape into its geometric components like 2D faces or 1D edges, e.g. Comp(e){ B } splits the predecessor shape into edge shapes with symbol B. 3D shape operations: Several different types of shape operations can be applied to modify the successor shape, e.g. transformations like translating or scaling. Object placement: The insert command I(objId) adds, according to the size of the current shape or according to the featured goal a) object distribution along lines or curves, b) stochastic distribution on surfaces, c) combination of a) and b), an instance of a geometry object with identifier objId (from the element repository). Hierarchy: Conditional behavior, shape operations and object placement are nested hierarchically due to the rules processing. This enables different ordering schemes like the following: city, street-network, block, lot and footprint. Design patterns: A typical pattern described by Alexander [13] can be interpreted as relational function of confirmed geometrical and spatial configurations. In the case of CGA shape patterns can represent a facade design of an epoch or a given style, which can result in interchangeable terminal symbols. Otherwise patterns can describe relational proportions of an object on a defined scope. The combination of hierarchical organization and relative values for geometric configurations enables the introduction of 660 J. Halatsch, A. Kunze, G. Schmitt design patterns. For example, street types like avenues consisting of street and edging vegetation can be easily set up as well as parks or other geometric configurations consisting of nested rules or geometry objects [25]. Element repository: The library of 3D models consists mainly of basic primitives, elementary architectural objects (e.g. ionic capitals) and plant models. The elements are hierarchically organized in categories and types and each element has a unique identifier, shader attributes and metadata. While CGA Shape was presented by Müller et al. [2] the placement of urban vegetation with shape rules was presented by Ulmer et al. [12]. The hierarchical linkage of shape rules, the introduction of urban patterns and the application of the grammar to master planning had been our contribution. The CityEngine had been previously developed for the production of city-like structures [3]. With Müller et al. [2] the CityEngine evolved into a framework, which enables users to reconstruct architectural designs and archaeological scenarios with shape grammar rules as given inputs. Within this paper we explore the application of this evolved framework on urban design. The City Engine System The CGA shape grammar had been implemented in C++ and integrated in the CityEngine framework ([3] and continued by [2]). It can process urban environments of any size i.e. ranging from a single lot up to a whole city. The input data is represented in a GIS format and consists of different regions like streets, parcels, building footprints, patios etc and is supported by importing bitmap data or geographic vector data like Google Earth’s KML format, which can be used for building mass models. Furthermore, these regions contain metadata information specified by the user in the GUI of the CityEngine. Since the CityEngine represents a 3D modeling application the user relies on many different views of the model: (1) A top view shows an overview on building lots, streets, blocks and building footprints. (2) Within a three-dimensional view the partial derivation of the grammar can be analyzed on a mass model level. (3) A high detailed geometry visualization shows the final geometry. (4) A text based editor serves as an input for the shape grammar. Depending on the metadata attributes, the regions trigger the selection and application of corresponding shape grammar rules. Therefore, the region itself (usually a polygon) is fed as initial shape into the grammar engine, which derives it into an elaborate design by applying the selected rules. The resulting model can then be previewed in the Using Shape Grammars for Master Planning 661 OpenGL viewer of the CityEngine or photo-realistically visualized in a 3D application like Autodesk’s Maya. Workflow for Master Planning using Shape Grammars Fig. 2. Modeling urban designs with CGA Shape demands for prerequisites of available data, which have to be refined for processing with the grammar interpreter. Enhancing traditional design cycles with shape grammars Since CGA Shape was originally designed for digital content creation purposes such as needed in archeology and entertainment, the system itself provides many capabilities of a GIS-like application. The production processes can be constrained on different planning scales like districts, parks, blocks, lots and the building itself. The placement of buildings, the use mix and the type of buildings can be defined and controlled by bitmaps, which can be layered and combined. In order to produce a grammar-based synthesized city model, given urban designs have to be analyzed first and preprocessed including all necessary design features and regulations (see Figure 2). The preprocessing of design starts with the manual subdivision of a given design into its functional geometric parts. This input can be for example a simple sketch, drawing or a photography. In the next step relational or fixed geometric parts can be identified and written down in CGA shape syntax. Depending on the aimed level of detail to be described with the syntax the user is able to construct repeating elements like windows, plants, and street signals with a standard 3D modeling application. These elements represent the terminal symbols of the grammar derivation. Finally the model can be further redefined. 662 J. Halatsch, A. Kunze, G. Schmitt Preparation steps - Analyzing given designs Several manual preprocessing steps are needed before our system can start with the generation of synthetic urban models. As stated above the system interprets different planning scales. Therefore the inputs have to be prepared: On city-scale geographic and socio-statistical measures like development boundaries and projected population densities, age mix of buildings and/or population must be defined per area as well as use-mix and height ratios. Further, open space systems need to be aligned with available vegetation objects, green area ratios and green area coverage maps. The definition of street parameters like highways and local street-networks are needed for the creation and interconnection of districts and blocks. For the work on a city block-level data relations between a block and its buildings have to be defined e.g. the definition of the average and maximum size of lots. Further aspects relevant for the block-level are private and open green spaces as well as mass-model dimensions, standard shape type descriptions and use descriptions like dwellings, office buildings and commercials. Building designs must be analyzed for their spatial relationships of their elements such as dimensions, facade rulings like floor heights and facade elements like setbacks, and window geometry. Encoding design into grammar Master planning of urban environments operates on distinct major scales. In order to give planners access to a manageable view in our grammar approach, we use the following region definitions: district zones, block zones, lot zones, patio zones, and also vegetation regions (Figure 3). District zones are created on both side of streets. They span over several blocks if necessary and can be split by ordinating street crossings. They are defined manually within the preprocessing steps, automatically generated with given defaults or can be equally imported from other projects. Within the generation process they do not take part in the creation of buildings nor do they interact with their footprints. Block zones are CE block polygons enclosed by streets. They can be outfitted with vegetation objects, parks, or buildings only or as a combination of buildings and vegetation. Flanking streets can be defined by a manually drawn street-graph or by an automatic creation process [3]. Using Shape Grammars for Master Planning 663 Fig. 3. Above: Layout of a typical urban environment produced with CGA Shape. Below: Close-up on detailed urban scene showing block, lot and vegetation zones [25]. Lot zones come into play when a combination of buildings and vegetation is desired. They are allocated to the regions list after the generation of buildings and thus hold information about their footprints, providing means to interact with its housing environment. Lot zones additionally get building type attributes from the CityEngine framework. Attributes like commercial, industrial and residential can be used later for a further selec- 664 J. Halatsch, A. Kunze, G. Schmitt tion of suitable sub-patterns. A lot zone without a street edge is characterized as a patio zone. It serves to fill up the empty space in the center of blocks, enclosed by buildings. Although patio zones share the possibility of lot zones to include footprint information, their primary purpose is to contain vegetation without housing. Areas that span several blocks or cover big parts of the city and contain elements of vegetation are classified as vegetation regions. Examples of vegetation regions include forests within city areas, big parks or fields. All zones can be controlled, arranged and designed with the 2D shape operators. Further, the configurations can be saved as geometric design patterns. Patterns can be divided into sets of attributes, which contain all necessary textual information to describe urban areas. From a system’s view the descriptions of each pattern – the grammar rules – can be stored within a corresponding pattern text file. Each pattern text file can give reference to subordinated patterns if they exist. This permits the easy exchange of certain features like detail levels of the achieved models for example to provide high resolution polygon models for offline visualization needs or low resolution primitives for the use in real-time visualization. Since the description of patterns starts at a high-level major pattern, which contains a more human readable description, and ends at low-level grammar descriptions. Our system offers the possibilities to keep things simple for the non-grammar-expert and to keep things open for users that want to get deep into the features of the grammar. Building designs can be easily encoded for a quick visualization. Therefore a design provided by an architect has to be classified into its main elements and their interrelationships like length and width among them. Depending on the regularity of a proposed building design, its parts are developed on a top-down approach. In theory there are no limitations to produce non-regular geometry with CGA shape grammar. The computation of non-euclidean geometry itself can be processed for example with the Catmull-Clark algorithm [26]. However it has to be implemented into our framework. In this shorthand example we would like to show how easy a design can be refined into a more detailed model by using the above named tools. The “Cruciform Skyscraper” (see Figure 4) comprises of regular vertical and horizontal layouts. The horizontal section reveals four wings (see Figure 5), which can be interpreted as a trice rotation around the building center done in multiple 90 degrees steps (see Figure 6). Using Shape Grammars for Master Planning 665 Fig. 4. Drawing from Le Corbusier‘s “Contemporary City”. Fig. 5. The analysis of the “Cruciform Skyscraper” by Le Corbusier. The three-dimensional “body” of the building itself can be broken apart into seven key measures (see Figures 7 and 8). The building‘s mass design can be easily varied by changing values. It is possible to embed conditional measures such as building regulations or further artist constrains as design thresholds. Vertical elements for example the different facade types have been divided into functional geometric groups, which are nested hierarchically. Similar to the urban and landscape design - facades are described by 2D and 3D shape operation tools. Geometric patterns are available as well. Within the resulting design itself many of its features can be controlled and distributed by using simple stochastic variations and conditions controlling for example the look of the different openings on Le Cruiser’s facade of the “Cruciform Skyscraper”, which can hardly be simulated effectively with manual methods (see Figure 9). 666 J. Halatsch, A. Kunze, G. Schmitt Fig. 6. Design can be easily modeled top-down. Fig. 7. The programmed “Cruciform Skyscraper” visualized as a mass model. BUILDING_H = 220 BUILDING_W = 100 GROUNDFLOOR_H = 6 WING_W = 16 SPINE_W = 50 TEETH_PROJ = 10 TEETH_DIST = 12 Fig. 8. Key measures for the appearance of the high-rise building. Using Shape Grammars for Master Planning 667 Fig. 9. Detail of the modeled facade using the component split and stochastic variation for the placement of the curtains. Examples Singapore, Pungol The district of Pungol in Singapore consists of a large high density housing area (see Figure 10). This area is aimed to answer the rising demands of housing and the fast growing population. The district‘s layout and the building shapes consist of regulated forms. The repetitive geometrical appearance of the facades is an ideal example that can be interpreted by our grammar (see Figure 11). Fig. 10. Typical street view of Pungol. The rules set for this example starts with an occlusion rule, which assures that the open spaces of avenue zones do not get filled with items of the following productions, e.g. buildings placed onto lots. Next, the district is subsequently split into sub-regions, each containing a center avenue and left and right building zones. Within the building zones courtyards can be 668 J. Halatsch, A. Kunze, G. Schmitt filled with parks if the available width and length permit the placement of vegetation (see Figures 12 and 13). Fig. 11. Synthetic reconstruction of Pungol. Fig. 12. The synthetic urban environment of Pungol produced by our system. Fig. 13. Detailed view onto housing blocks with courtyards. Avenue parameters like street width, tree density and tree types are adjusted automatically to the importance of the avenues. The buildings consist of length-dependent facade types. The associated facade rules react on different sizes: For example a building length up to 20 meters features the Using Shape Grammars for Master Planning 669 facade types A (Edges), B (standard element), C (balcony). Above 20 meters a type D (middle balcony) is introduced. Student work The following two examples feature student works produced within a student course at our Chair for Information Architecture fall 2007. The first example shows the application and variation of one and the same facade rule. The students started to analyze a facade design developed by themselves (see Figure 14). After encoding the design into the shape grammar, the students had been able to apply the rule and its variation as a design pattern onto an urban environment (see Figure 15). Fig. 14. An original facade designed by students. Fig. 15. Rendering of a large-scale urban environment with different facade variations based on the original facade. 670 J. Halatsch, A. Kunze, G. Schmitt The second example poses an artistic approach of creating a futuristic looking city (see Figures 16 and 17). The students focused on the recursive production calls of their skyscraper. Fig. 16. The top view onto the “distorted city”. Fig. 17. A detail view onto the model. They used a Manhattan-like layout where they placed their “recursive tower” with heights starting at 200 meters resulting in a “distorted city” model. Colors had been applied to interpret and analyze the resulting distribution of stochastic rules done by the system. Using Shape Grammars for Master Planning 671 Conclusion and Future Work Automatic and semi-automatic approaches can drastically reduce and ease complex and time consuming design and modeling tasks in the planning of urban designs. Therefore we presented a stochastic shape grammar for master planning as a novel approach for the automatic creation of large urban scenarios in real or virtual 3D cities. We extended CGA Shape to an urban visualization framework for architects. Our examples show that by using this framework users can easily generate and visualize large urban scenarios containing high-resolution building and vegetation geometry. We showed that it is possible to implement this approach as a visualization method for design into existing design pipelines. The rule-based distribution and placement of objects like vegetation, buildings and the re-use of design patterns in urban environments enables the planner to explore further variations. The used procedural modeling methods are able to automatically derive 3D models of high visual quality for a highly detailed and quick visualization of complex city models. The system is also open for iterative (re-) design purposes. Successful design findings of suitable configurations can be stored within pattern collections. Also the complexity of procedural modeling became manageable with the help of reusable patterns, which are not limited to landscapes and landscape objects. CGA shape descriptions can be saved to a versioning database to encode and to store design for easy application on virtual city models that had been generated by the system. Beside this, stored design data sets can contain geometry attributes, which feature sustainable design criteria. In upcoming work we would like to explore how feedback (airflow, shading, movement of people) from simulation can be integrated to a modeled design. We see a strong potential in adding simulation based city layout optimization to our framework. The reusability of design patterns for sustainable urban design is another important research field. We will evaluate the inheritance of design components and design patterns with the help of standard methods from computer science like UML - unified modeling language - and test the applicability of object oriented design to shape grammars. Future work also includes the generation of non-regular geometry. We have created a promising shape grammar and applied it to the existing one of Müller et al. [2]. Our approach can be used for pre-visualization, master planning, guided design variation and for digital content creation purposes of the entertainment industries. Ongoing projects deal with the pattern-based procedural design of the Science City ETH’s open spaces in Zurich, Switzerland, and also with the challenging planning of High Density Housing in Singapore. 672 J. Halatsch, A. Kunze, G. Schmitt Acknowledgments We would like to thank Andreas Ulmer, Pascal Müller, Remo Burkhard, and Martina Sehmi-Luck for their continuing support and for many helpful discussions as well as the review team and our students Jonas Epper, Pascal Hendrickx, Lukas Treyer and Nicolas Zimmermann. References 1. Guidi G, Frischer B, et al. (2005) Virtualizing ancient Rome: 3D acquisition and modeling of a large plaster-of-paris model of imperial Rome. Videometrics VIII, JA Beraldin, SF El-Hakim, A Gruen, JS Walton (eds), SPIE 5665: 119-133 2. Müller P, Wonka P, Haegler S, Ulmer A, Van Gool L (2006) Procedural modeling of buildings. ACM Transactions on Graphics (TOG) 25(3): 614–623 3. Parish Y, Müller P (2001) Procedural modeling of cities. In E Fiume (ed), Proceedings of ACM SIGGRAPH 2001, ACM Press: 301–308. 4. Stiny G, Gips J (1972) Shape grammars and the generative specification of painting and sculpture. Information Processing 71: 1460-1465 5. Stiny G, Mitchell WJ (1978) Counting Palladian plans. Environmental and Planning B 7: 189–198 6. Stiny G, Mitchell WJ (1980) The grammar of paradise: on the generation of Mughal gardens. Environmental and Planning B 7: 209–226 7. Koning H, Eizenberg J (1981) The language of the prairie: Frank Lloyd Wrights prairie houses. Environment and Planning B 8: 295–323 8. Duarte J (2001) Customizing mass housing: a discursive grammar for Siza’s Malagueria houses. Ph.D. Dissertation, Massachusetts Institute of Technology, Cambridge 9. Mayall K, Endhall GB (2005) Landscape grammar 1: spatial grammar theory and landscape planning. Environmental and Planning B 32: 895–920 10. Brown FE, Johnson JH (1984) An interactive computer model of urban development: the rules governing the morphology of mediaeval London. Environment and Planning B 12: 377–400 11. Beirão J, Duarte J (2005) Urban grammars: towards flexible urban design. In Proceedings of eCAADe Conference 2005: 491–500 12. Ulmer A, Halatsch J, Kunze A, Müller P, Van Gool L (2007) Procedural design of urban open spaces. In Proceedings of eCAADe Conference 2007: 351–358 13. Alexander C, Ishi Kawa S, Silverstein M (1977) A pattern language: towns, buildings, construction. Oxford University Press, New York 14. Crowe S, Mitchell M (1988) The pattern of landscape. Packard. Chichester 15. Bell S (1999) Landscape: pattern, perception, and process. E & FN Spon, London Using Shape Grammars for Master Planning 673 16. Turner T (1996) City as landscape. A post-postmodern view of design and planning. E & FN Spon, London 17. Alexander C (2002) The nature of order: an essay on the art of building and the nature of the universe. Center for Environmental Structure, Berkeley, CA 18. Flemming U (1986) The role of shape grammars in the analysis and creation of designs. John Wiley & Sons: 213–244 19. Knight TW (1991) Designing with grammars. In GN Schmitt (ed), Proceedings of CAADFutures 1991, Vieweg: 33–48 20. Knight T (1999) Shape grammars in education and practice: history and prospects. International Journal of Design Computing 2 21. Colakoglu B (2006) Explorations in teaching design students to think and produce computationally In Proceedings of eCAADe Conference 2006: 826– 831 22. Wonka P, Wimmer M, Sillion F, Ribarsky W (2003) Instant architecture. ACM Transactions on Graphics 22(3): 669–677 23. Prusinkiewicz P, Lindenmayer A (1991) The algorithmic beauty of plants. Springer Verlag 24. Prusinkiewicz P, Mündermann P, Karwowski R, Lane B (2001) The use of positional information in the modeling of plants. In E Fiume (ed), Proceedings of ACM SIGGRAPH 2001, ACM Press: 289–300 25. Ulmer A (2005) Modeling and rendering of plants in urban environments. Master Thesis, Computer Vision Laboratory, ETH Zurich 26. Catmull E, Clark J (1978) Recursively generated B-spline surfaces on arbitrary topological surfaces. Computer-Aided Design 10(6): 350-355