Tetrahedron Cloud ABSTRACT Luke Ogrydziak The research project, tetrahedron cloud, explores agent-based stochastic behavior as a design Ogrydziak Prillinger Architects tool. It investigates the possibilities for producing volumetric tetrahedral meshes based on the interactions of individual stochastic agents. The research situates itself at the intersection of the visual arts, the physical sciences, and computer science. The basic interest in stochastics comes from the visual arts; the growth simulation approach is borrowed from the natural sciences; and the use of a tetrahedral mesh within C++ comes from computer science. But more generally, the project focuses on architecture’s ongoing engagement with stochastic systems. By embedding extremely specific tendencies within an agent’s behavior, while also allowing for stochastic variation, we can create larger systems that are both in and out of our “control”. This sidesteps the typical limitations of many computational geometry and parametric methods, where there is often an overly deterministic relationship between the input and output of a given system. Such a shift from optimization to behavior inevitably brings up troubling questions of style. Abandoning the search for a “best” solution, or even the articulation of the criteria for such a task, re-opens computational architecture at its deepest levels as a site for design speculation. 284 acadia 2011 _proceedings integration through computation 1 I n trodu c tion In 1925, Marcel Duchamp designed a poster for a chess tournament. Incorporating elements of play and chance into the production of this image, Duchamp tossed a group of uniform cubes into a net bag, photographed it, and drew the results – eliminating the containing bag from the final image (Figure 1). This project marks a decisive introduction of stochastic processes into artistic production, the development of which has continued to this day (Schwarz 2000). In the past fifty years, we have witnessed the visual arts focus on stochastic p r o c e s s e s a t e v e r- i n c r e a s i n g l e v e l s o f c o m p l e x i t y. Such work is often based on physical phenomena such as object-gravity interactions or multiple collisions which a r e b e y o n d t h e c a p a c i t y o f c u r r e n t d i g i t a l s i m u l a t i o n t e c h n o l o g y. An important e x a m p l e , b r i d g i n g D u c h a m p ’s w o r k t o o u r c o n t e m p o r a r y m o m e n t , i s A n d y W a r h o l ’s 1965 piece Silver Clouds. In this piece a group of helium-filled mylar balloons drift, collide, and wander past each other endlessly in reaction to changing air p r e s s u r e ( F o s t e r 2 0 0 5 ) . Tw o e x e m p l a r y r e c e n t p r o j e c t s w i t h i n t h i s g e n r e i n c l u d e R o x y P a i n e ’s s k u m a k m a c h i n e s ( s t o c h a s t i c s l u m p i n g ) a n d Ta r a D o n o v a n ’s c u b e series (stochastic collisions) (Heartney 2009; Baume et al. 2008). Following the Fig. 1 Duchampian model, this type of artistic production enacts a strategic indifference to the results of a stochastic “simulation” enacted with actual materials within physical space. Programming environments such as Processing have recently given artists the tools to shift from physical to digital simulation; but to date, the most sophisticated stochastic projects have tended to rely on concrete physical material properties. Throughout this same period, stochastic behavior has become an important focus within the physical sciences – often the basis for digital simulations of natural phenomena. Unlike artistic practices, these disciplines have typically been employing digital technologies for a much longer period, and are thus more mature from a technical perspective. For our project, several important scientific precedents include simulations of coral growth (Kaandorp 1994), burrow structures (Reichman and Seabloom 2002), and Brownian agents (Schweitzer 2003). Each of these precedents exhibits coherent larger structures emerging from independent active agent behaviors with stochastic characteristics. Also, e a c h p r o j e c t i s a t t e m p t i n g t o m o d e l “ r e a l ” b e h a v i o r d i g i t a l l y, a n d t h u s i s p a r t o f the larger collective project of developing a digital toolset for these types of simulations. F i n a l l y, i n a r c h i t e c t u r e w e a r e w i t n e s s i n g a s i m i l a r r e c e n t f o c u s o n s t o c h a s t i c s – along with a shift from physical to digital simulation paralleling the visual arts. In his 2002 diagram Cake Tin Architecture Rem Koolhaas explicitly reworks the Duchampian theme of chance for his TVCC building (Koolhaas 2004). In the past five years, myriad other recent advanced architectural projects have reworked these themes of chance and stochastic placement. H o w e v e r, t o a l a r g e e x t e n t these projects have begun with readymade shapes and have limited the effects of chance to the placement of these objects or the distortion of a wrapper for the elements. (The “bag” that Duchamp chose to erase.) Such architectural projects can be broadly sorted in terms of their basic components being either self-identical or self-similar. 1. A non-exhaustive list of self-identical components used in recent stochastic architecture might include: cubes, rectangular prisms, extrusions, Dirichlet solids, aperiodic tiles, regular polytopes, etc. The expressive force of such projects typically stems from introducing porosity into the system through some type of legible operation. Again, such projects may be loosely sorted according to two specific operation types: either (a) the random removal of elements from an otherwise close-packed and orderly system or (b) randomly piling elements. In both cases the result is a porous collection of components in which the stochastic design process is legible. Figure 1. Duchamp’s 1925 Chess Poster 285 form, geometry and complexity 2. Examples of self-similar architectural components used in recent stochastic architecture might include: rectangular prisms of unequal sizes, triangulated meshes, irregular polytopes, etc. Again, there is an emphasis on creating porosity t h r o u g h a s t o c h a s t i c p r o c e s s . A s a n e x a m p l e , a t t h e S e a t t l e P u b l i c L i b r a r y, O M A renders the program pieces as distinct rectangular prisms which are jauntily stacked, then loosely wrapped. While not explicitly computational, this approach seems opposed to the top-down subdivision methods typical of much parametric architecture – rendering an arbitrary solid as a collection of smaller quasi-regular elements such as planar quads or triangles. Here we might pause to consider a subtle point regarding the flow of the design process itself. Most parametric architecture can be characterized by a linear (two-way) relationship between all the elements within the process. Thus, a parametric system is a continuous circuit of information which can be traced in any direction at any time. Stochastic projects using self-similar components differ Fig. 2 from parametric projects inasmuch as there are aspects of the system irreducible to parametric logic. To d a t e , m o s t s t o c h a s t i c p r o j e c t s h a v e b e e n l a r g e l y m e t a p h o r i c a l . P r o g r a m e l e m e n t s a r e d i s t r i b u t e d b y t h e d e s i g n e r t o a p p e a r j a u n t y. O r, s o m e s m a l l p a r t o f t h e p r o c e s s i s s u b j e c t t o ‘ c h a n c e ’ a n d t h e n i n p u t i n t o a m o r e e x t e n s i v e p a r a m e t r i c c i r c u i t . Tw o recent architectural examples which literally embed active agent behavior throughout the entire process include I’ve Heard About (Corbellini 2009) and Lamella Flock ( Ta m k e e t a l . 2 0 1 0 ) . O u r p r o j e c t s i t u a t e s i t s e l f w i t h i n t h i s r e c e n t h i s t o r y, e x t e n d i n g s t o c h a s t i c m e t h o d s a n d q u e s t i o n s t o t h e i n i t i a l c r e a t i o n o f g e o m e t r y. Such an approach inevitably reintroduces questions of style. A given digital s i m u l a t i o n m a y b e i n d i f f e r e n t l y r u n t o c r e a t e g e o m e t r y, b u t t h i s s i m p l y k i c k s t h e design decisions up one level to that of the environment itself. What shapes are possible? What aspects of the environment are stochastic and which deterministic? A n d s o o n . W i t h i n o u r n e w p o s t - p a r a m e t r i c o r d e r, t h e q u e s t i o n o f s t y l e h a s f o r c e f u l l y r e - e m e r g e d i n d i r e c t r e l a t i o n t o s u c h p r o t o c o l s o f c o n t r o l . A s w e e x e r t e v e r- m o r e specific control at lower levels of the design process, structure and ornament become intertwined in a kind of Semperian knot (Figure 2) (Semper 2002). The tetrahedron cloud attempts to control style by defining tendencies for active agents within a simulation environment. B e c a u s e e a c h a g e n t ’s b e h a v i o r is stochastic, each run of the simulation becomes a unique embodiment of its specific process. In this context, design shifts from the production of a synthetic “solution” to a set of constraints to the creation of the simulation itself – which c o m b i n e s b o t h s t o c h a s t i c a n d d e t e r m i n i s t i c b e h a v i o r. O u r g o a l i s f o r t h e p r o g r a m to always be slightly “out of control when run, exhibiting unpredictable emergent behavior at a macro scale. In architecture, we suspect the development of this type of work will ultimately result i n a r e t u r n t o t h e P o s t - M o d e r n i d e a l o f a “ d i f f i c u l t u n i t y ” ( Ve n t u r i 1 9 6 6 ) . S u b s t i t u t i n g behaviors for collagist elements, we might imagine architectural projects which are internally differentiated without a reliance on sharp edges between parts. 2 Previ o us Ag ent Based Pro j ects This project emerged from a series of active agent projects over the past several years. Fig. 3 In general, the focus of these projects has shifted from a combination of active agent simulations plus computational geometry algorithms to concentrate a l m o s t e x c l u s i v e l y o n a g e n t b e h a v i o r. 2.1 D E L A U N AY L AT T I C E Our first built active agent project was a facade lattice. Randomly positioned active Figure 2. Semperian Knot: The Intertwining of Structure and Ornament agents with collision detection buffers were used to create a 2D field of locator Figure 3. Delaunay Lattice Formation Diagram surface derived from a parametric reading of the local planning code for allowable points with a minimum offset radius. Next, these points were projected onto a 2.5D 286 acadia 2011 _proceedings integration through computation building envelopes. Then this 2.5D point field was triangulated using a Delaunay t e s s e l l a t i o n ( F i g u r e 3 ) . F i n a l l y, t h i s t r i a n g u l a t e d m e s h w a s t r a n s l a t e d i n t o a n o p e n l a t t i c e o f C o r- t e n s t e e l t r i a n g l e s ( F i g u r e 4 ) . 2.2 BRANCH After the Delaunay Lattice project, our research projects began to focus entirely on the potential of stochastic active agents. This required a totally new project workflow based on class definitions rather than scripting or circuit-type controls. For this, we began working in Processing, and then ultimately settled on the Rhino C++ SDK as embodying the most flexible combination of 3D data types and established handles to fundamental geometric operations. Our first simulation within this environment was a growth model implementing collision detection. While there was really only one behavior – step forward and avoid your previous path – the project was a valuable introduction into how to set up a larger scale project (Figure 5). The tetrahedron cloud enacts a number of features which were on the “wish list” for this earlier project, but which could not be implemented in the time frame, such as dynamic collision detection and p o i n t e r- b a s e d g r a p h t r a v e r s a l . The final geometry consists of a simple piped Fig. 4 surface from control lines (Pottmann et al. 2007). 3 Da ta Type s As previously noted, the tetrahedron cloud project uses tetrahedrons as its basic building blocks. A tetrahedron was chosen as it is a simplex in three-dimensions: the most efficient way to represent a (convex) volume in Cartesian space. Thus, any larger mesh composed of tetrahedron primitives will always be volumetric – rather than a point field or 2.5D surface. The project is implemented in C++ as a Rhino 5 plug-in. Our long-term goal for the project is to create a C++ library for volumetric simulations within Rhino – allowing for the integration of models from other disciplines which require basic mesh manipulation handles as well as fast collision detection. To c r e a t e t h e b a s i c s i m u l a t i o n e n v i r o n m e n t , t h e t e t r a h e d r o n c l o u d a d a p t s C + + Fig. 5 data structures typically used for the Finite Element Analysis (FEA) of solids. Such FEA methods typically decompose arbitrary solids into tetrahedral meshes of variable resolution for discrete analysis. Our project adopts the tetrahedral mesh structure, but applies stochastic agent behavior rather than a Delaunay optimization algorithm. As such, our project utilizes established FEA structures while exhibiting a bottom-up rather than a top-down structure. 3.1 POINTER STRUCTURE W ithin this context, we needed to design the data types for our tetrahedral mesh. Initially, we began with a three dimensional variation of the half-edge data structure implemented in the Triangulation Template Librar y (Hjelle and Daehlen 2006). But this bottom-up structure became somewhat unwieldy when applied to tetrahedrons, as navigation within the graph structure became quickly disorienting. Ultimately, we opted for the top-down Fig. 6 approach outlined by Jonathan Shewchuck in his PhD thesis and implemented in the program TetGen (Shewchuck 1997; Si 2006). This tetrahedron-based pointer structure allows for efficient mesh traversal (Figures 6, 7). More specifically, we use a special handle class for mesh traversal and various test operations which combines pointers to a tetrahedron and one of its faces. Unlike these two precedents, our project does not focus exclusively on the Delaunay based optimizations required for finite element analysis. Instead, the individual tetrahedral Fig. 7 are conceived of active agents whose behavior is expressed at each time step. Figure 4. Delaunay Lattice Elevation 3.2 DYNAMIC OCTREE Figure 5. Cluster of Branching Active Agents Much of this agent behavior requires collision detection. At a given time step, an Figure 6. Tetrahedron Pointer Structure a g e n t m u s t t e s t i t s p r o p o s e d g r o w t h f o r c o n f l i c t w i t h t h e a l r e a d y e x i s t i n g g e o m e t r y. Figure 7. SubFace Pointer Structure 287 form, geometry and complexity A naive approach would be to detect for collisions between the test tetrahedron and all existing tetrahedral. While fine for small meshes, such an algorithm quickly becomes unmanageable as the number of tetrahedral increases. As such, we implemented a dynamic octree data type which partitions the tetrahedral mesh into different buckets using top-down subdivision (Ericson 2005). Each tetrahedron contains a pointer to its octree bucket, which reduces the number of required collision tests dramatically. Once a test tetrahedron has been positioned in the octree, it only needs to be tested for collision against its parents, siblings, and children (in the pointer structure). This both speeds up the algorithm and allows for a much larger graph to be handled with available memor y (Figure 8). 3.3 BREADTH FIRST GRAPH SEARCH Some of the agent behavior requires a quer y of the local context of the currently active face. The mechanism used for this is a Breadth First Search (BFS) of the graph created by connecting the center of each tetrahedron (node) with its linked neighbor (edge). A First-In-First-Out (FIFO) queue is utilized for this search to avoid the memor y issues the Fig. 8 use of a recursive function would entail (Sedgewick 2007). The depth of the search can be controlled either by limiting the size of the search stack or as a gradient of the overall graph size (Figure 9). 4 A cti ve Ag ents Having established the general project environment, we then shifted our focus to defining specific agent behaviors. At this point, it should be noted that any three dimensional form can be approximated with a tetrahedral mesh of sufficient detail. So our playing field (the basic tetrahedral mesh classes) is extremely generic and non-specific. The application of agent behavior is what transforms this completely neutral, generic data type into our specific project. Fig. 9 4.1 DIFFUSION LIMITED AGGREGATION The tetrahedron cloud is a development of the classic Diffusion Limited Aggregation (DLA) growth algorithm (Flake 1998). In a DLA simulation, a “seed” particle is placed at the center of the simulation. Then an active agent particle is released at the perimeter, where it moves on a random walk until it contacts the seed, where it sticks. The repetition of this process results in a form with a fractal dimension, as the process occurs on multiple spatial scales. The DLA fractal is appealing for several different reasons: it is easy to describe and implement, it is based on the stochastic motion of an active agent, and the resulting fractal resembles a number of forms found in nature (Figure 10). The tetrahedron cloud implements a number of DLA type agent behaviors, such as stochastic motion and self-adhesion. Fig. 10 A primar y difference is a greater flexibility in terms of the growth algorithm itself. DLA algorithms typically rely on growth out from a center. As the structure grows, access from the perimeter to the interior is blocked. So the active agents tend to stick to the perimeter, resulting in the characteristic porosity of a DLA fractal. By contrast, the tetrahedron cloud lattice does not externalize the active agent from the form. Rather, as described below, all activity happens within the structure of the mesh itself. 4.2 AGENT BEHAVIORS The current tetrahedron cloud system consists of six independent active agent behavior types. All but the first of these behaviors combine stochastic motion with reaction to the existing form at the current time (Figure 11). The basic idea for this type of approach to agent behavior, understood as a tendency, comes from a modification of the biological concept of the possible modes of cell migration relative to a gradient (Schweitzer 2003). Figure 8. Dynamic Octree Containing Tetraheral Mesh Figure 9. 20% Breadth First Search (BFS) of Graph Figure 10. Grid Based Diffusion Limited Aggregation Fractal 0. Initial. An initial regular tetrahedron of height h is placed within the simulation. One of the four faces is arbitrarily chosen as the active face. 1. Slippery. The next set of n tetrahedrons grows from the active face. Three of the four 288 acadia 2011 _proceedings integration through computation vertices are taken from the spawning face. The fourth vertex created normal to the spawning face, within a randomized range of 90-115% of h. These slippery agents are not allowed to attach back to any existing geometry. 2 . S t i c k y. T h i s a g e n t t y p e u s e s a B r e a d t h F i r s t S e a r c h ( B F S ) o f t h e e x i s t i n g graph to create a stack of tetrahedrons of length l on the path directly behind the active face. The agent is not allowed to stick to this trail, but is permitted to attach back elsewhere on the graph. In other respects, the growth is identical to agent type 1. 3. Bridge. Once a sticky agent detects an intersection, the test tetrahedron is discarded and a bridge agent is called. The bridge agent locates the closest point to the active face and creates a tetrahedron bridging the two. (Detection of a collision ends this process and the bridge is discarded.) 4. Glue. The faces sharing the bridge point are collected, and the two closest Fig. 11 faces between the bridge tetrahedron and the existing graph are selected. Tw o t e t r a h e d r o n s g l u e t o g e t h e r t h e s e f a c e s , u s i n g t h e D e l a u n a y c r i t e r i a t o s e l e c t t h e s h o r t e r o f t h e t w o d i a g o n a l s . ( S i m i l a r l y, d e t e c t i o n o f a c o l l i s i o n ends this process and the bridge is discarded.) 5 . Branch. A perimeter face is randomly selected and made active. If there is room, a new tetrahedron is spawned at this location. Otherwise, the random selection continues until a suitable location is found. 4.3 INTERACTION OF AGENT TYPES Our simulation environment combines these agent behaviors according to a control structure. In its current form, a call to agent 0 (the “seed”) is followed by cyclical calls to agents 1-5. There are a number of global variables which dramatically impact the formal output. For example, the range of h controls the “quality” of Fig. 12 the spawned tetrahedrons. Another important variable is the stack size l of the BFS trail used for the sticky tetrahedrons. A longer stack prevents self-adhesion further back into the graph, and thus results in longer paths before the possibility o f s e l f - a d h e s i o n . Ye t a t t h e s a m e t i m e , t h e r e i s a f a i r l y c o n s i s t e n t o v e r a l l s t r u c t u r e with this approach. In general, the branching agents tend to want to appear at t h e e x i s t i n g c e n t e r ( s ) o f m a s s . T h i s m a k e s s e n s e i n t u i t i v e l y, b e c a u s e t h e r e a r e a greater number of available faces in this location (Figure 12). 5 I mple me n ta tion We were recently commissioned to design a site-specific installation (opening December 2011), for which we are applying this research. The idea is to create an occupiable cloud hovering above the floor in a 50’ high gallery space. There will be a narrow cantilevered balcony 16’ off the gallery floor which leads to the c e n t e r o f t h i s c l o u d f r o m a s e c o n d f l o o r g a l l e r y. T h e c l o u d w i l l b e f a b r i c a t e d o f inflatable material, either as a continuous balloon or independent tetrahedrons velcroed together (Figure 13). Moving from the abstract program to this specific implementation triggered the need for several new components. Fig. 13 First, we added the possibility for multiple i n i t i a l ( s e p a r a t e ) m e s h e s . To d o t h i s , w e m a d e t h e o c t r e e m e m b e r o f t h e t e t r a h e d r a l mesh class static – allowing all the individual meshes to share the same collision detection mechanism. Second, we added a switch for adding arbitrary mesh or B-rep shapes to the octree before running the simulation. In this particular case, it a l l o w e d u s t o m a k e s u r e o u r c a n t i l e v e r e d p a s s a g e w o u l d r e m a i n c o m p l e t e l y c l e a r. F i n a l l y, w e a d d e d a n i n i t i a l i z a t i o n c o m p o n e n t t o d i s t r i b u t e l o c a t o r s r a n d o m l y w i t h i n an arbitrary B-rep shape. This initial simulation is controlled with two variables: ( 1 ) t h e n u m b e r o f l o c a t o r s a n d ( 2 ) t h e p o r o s i t y o f t h e p a c k i n g . To e n s u r e a Figure 11. Agent Behaviors m i n i m u m o f f s e t b e t w e e n l o c a t o r s , a s p h e r i c a l b u f f e r s u r r o u n d s e a c h l o c a t o r. I n t h e Figure 12. 200 Cycle Cluster simulation, a test sphere is randomly placed within the B-rep volume and tested for Figure 13. Tetrahedron Cloud Installation 289 form, geometry and complexity collision with the enclosing B-rep and all other existing spheres. If a collision is detected, the test sphere is discarded. If there is no collision, the test sphere is kept and a new test sphere added. This process continues until a timeout or the target number of locators is reached. Thus, our initial simulation packs the B-rep with spheres whose centerpoints are a set of randomly distributed locators with a guaranteed minimum offset. T h e p o r o s i t y v a r i a b l e c o n t r o l s t h e t i g h t n e s s o f t h i s p a c k i n g . To c l a r i f y, w e f i r s t calculate the volume of the B-rep shape we are filling and divide by the number of locators. This gives us an upper bound volume for each locator region assuming the following conditions: all locator regions are equal in size and the regions fill the larger volume completely with no gaps. H o w e v e r, o u r s p h e r i c a l b u f f e r s cannot pack space without gaps. So we need to reduce this upper bound volume a c c o r d i n g l y. I n a d d i t i o n , w e w a n t t o a l l o w o u r s p h e r e s s o m e d r i f t f r o m a n i d e a l tightly-packed configuration. This can be achieved by further reducing the volume of the spherical buffers. Thus, our porosity variable (a value set between 0 and 1) reduces the upper bound volume to a useable spherical buffer volume. A low porosity variable results in a loose packing, with relatively small minimum offsets between locators; a high porosity variable results in tighter packing, up to the limit beyond which the simulation times out. In all cases, this variable determines the amount of freedom the locator buffers are allowed (Figure 14). C o n c e p t u a l l y, a d d i n g t h e s e n e w c o n t r o l s m a k e s t h e s i m u l a t i o n b e h a v e m o r e like a sponge or a network than an individual DLA simulation. As there is no distinction for the active agents between self-linking and linking to other meshes, the simulation creates a dense interlinked network over time – ultimately obscuring the distinction between the separate clusters. Developing this particular project f u r t h e r, w e a r e i n t e r e s t e d i n t h e f o r m a l d i f f e r e n c e s b e t w e e n a f r e e b o u n d a r y condition (the current implementation) and a boundary condition which is bounded by an additional thickness of locators. These boundary meshes would serve to p r o v i d e “ p r e s s u r e ” f o r t h e i n t e r i o r e l e m e n t s , a n d t h e n u l t i m a t e l y b e d i s c a r d e d . Tw o obvious precedents of algorithms which address similar open boundary issues are G a u s s i a n b l u r a n d Vo r o n o i a l g o r i t h m s . 6 Co ncl usi o n Agent-based volumetric meshing demonstrates a dynamic responsiveness capable of more accurately simulating natural phenomena than more traditional parametric and non-stochastic methods. Fig. 14 A s s u c h , t h i s p r o j e c t ’s g e n e r a l g o a l i s the introduction of a new toolset for the manipulation of stochastic systems in the generation of architectural form. The tetrahedron shape at the core of our simulation was selected for its lack of specificity; any volumetric form can be approximated by a collection of tetrahedrons of adequate fineness. As such, the larger project is completely open-ended, as larger more complex data types can be b u i l t f r o m t h e s e t e t r a h e d r a l c o m p o n e n t s . R e a l l y, t h e m o s t i m p o r t a n t t h i n g f o r u s w a s that this research was already volumetric – thus avoiding the potential limitations of implementing a translation step between guide geometry and the final form. This p r o j e c t c o l l a p s e s a n y d i s t i n c t i o n b e t w e e n a c t i v e a g e n t s a n d t h e f i n a l g e o m e t r y. We anticipate future projects extending this research to focus on thickening regions through the clustering of agents. The first project implementing the basic engine relies heavily on geometry being formed from the path of an individual a g e n t ’s g r o w t h . Future behaviors like gluing and thickening may arise from re- conceiving agency as a larger zone with the capacity to detect and react to specific environmental conditions. Over time, we suspect this genre of agency will become ever more distributed and decentralized as the available behaviors increase in finesse. Figure 14. New Components: Initialization Phase and Obstacle Constraint 290 acadia 2011 _proceedings integration through computation R e f e re n c e s B a u m e , N . , J . M e r g e l , a n d L . W e s c h l e r. 2 0 0 8 . Ta r a D o n o v a n . N e w Yo r k : T h e Monacelli Press. C o r b e l l i n i , G . 2 0 0 9 . B i o r e b o o t : T h e A r c h i t e c t u r e o f R & S i e . N e w Yo r k : P r i n c e t o n Architectural Press. Ericson, C. 2005. Real Time Collision Detection. San Francisco: Morgan Kaufmann. Flake, G. 1998. The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation. Cambridge: MIT Press. F o s t e r, H . 2 0 0 5 . P o p . N e w Yo r k : P h a i d o n . H e a r t n e y, E . 2 0 0 9 . R o x y P a i n e . N e w Yo r k : P r e s t e l . H j e l l e , O . , and M. Daehl en. 2 0 0 6 . Triang ulat io ns an d Appl i c ati on s. N e w York: Sprin ge r. K a a n d o r p , J . 1 9 9 4 . F r a c t a l M o d e l l i n g G r o w t h a n d F o r m i n B i o l o g y . N e w Yo r k : S p r i n g e r- Ve r l a g . K o o l h a a s , R . 2 0 0 4 . C o n t e n t . K ö l n : Ta s c h e n . P o t t m a n n , H . , A . A s p e r l , M . H o f e r, a n d A . K i l i a n . 2 0 0 7 . A r c h i t e c t u r a l G e o m e t r y. Exton: Pennsylvania: Bentley Institute Press. Reichman, O., and E. Seabloom. 2002. The Role of Pocket Gophers as Subterranean E c o s y s t e m E n g i n e e r s . I n Tr e n d s i n E c o l o g y & E v o l u t i o n 1 7 ( 1 0 ) : 4 4 - 4 9 . N e w Yo r k : Elsevier Science. S c h w a r z , A . 2 0 0 0 . T h e C o m p l e t e Wo r k s o f M a r c e l D u c h a m p . N e w Yo r k : D e l a n o Greenidge Editions. S c h w e i t z e r, F. 2 0 0 3 . B r o w n i a n A g e n t s a n d A c t i v e P a r t i c l e s : C o l l e c t i v e D y n a m i c s i n t h e N a t u r a l a n d S o c i a l S c i e n c e s . N e w Yo r k : S p r i n g e r- Ve r l a g . Sedgewick, R. 2007. Algorithms in C++: Graph Algorithms. San Francisco: A d d i s o n - W e s l e y. S e m p e r, G . , t r a n s . H . M a l l g r a v e . 2 0 0 2 . S t y l e . L o s A n g e l e s : G e t t y R e s e a r c h Institute. Shewchuck, J. 1997. Delaunay Refinement Mesh Generation. Ph.D. Thesis. P i t t s b u r g h : C a r n e g i e M e l l o n U n i v e r s i t y. S i , H . 2 0 0 6 . Te t G e n : A Q u a l i t y Te t r a h e d r a l M e s h G e n e r a t o r a n d T h r e e - D i m e n s i o n a l D e l a u n a y Tr i a n g u l a t o r u s e r ’s m a n u a l . B e r l i n : W e i e r s t r a s s I n s t i t u t e f o r A p p l i e d Analysis and Stochastics. Ta m k e , M . , J . R i i b e r, H . J u n g j o h a n n , a n d M . R . T h o m s e n . 2 0 1 0 . L a m e l l a F l o c k . In Advances in Architectural Geometry 2010, eds. C. Ceccato, L. Hesselgren, M. P a u l y, H . P o t t m a n n , a n d J . W a l l n e r, 3 7 - 4 5 . V i e n n a : S p r i n g e r- Ve r l a g . Ve n t u r i , R . 1 9 6 6 . C o m p l e x i t y a n d C o n t r a d i c t i o n i n A r c h i t e c t u r e . N e w Yo r k : T h e Museum of Modern Art Papers on Architecture. 291 form, geometry and complexity
© Copyright 2026 Paperzz