Generative Design Methods

Page 1

Adaptive Facades, Terrain & Pavilion Generation Marc-Phillip Michel RWTH Aachen Matrikel Nummer: 309349 Aachen, August 1st, 2016

(Report for the course „Generative Design Methods“ at Individualized Production(IP) at RWTH Aachen, M.Sc. in Architecture )


Table of Contents

Abstract, pg. 3 Introduction, pg. 3-4 Materials and Methods, pg. 5-6 Results&Discussion, pg. 6-16 Synopsis, pg. 16 Outlook, pg. 16 References, pg. 17


Abstract In this piece of work I will explain and evaluate the process of creating an adaptive facade system, the generation of random terrain with population of generated trees and paths as well as the design aspect and development of a pavilion located on the previous mentioned landscape ensemble. Furthermore different technics like looping, algorithms, attractor points and fractals will be explored and tested. The final outcome was not clear from the beginning but evolved over time and gave me new insights to Grasshopper as well as on how the form finding process functions.

Introduction The course „Generative Design Methods“ is an advanced course for the Rhinoceros Plug-In Grasshopper. Rhinoceros which is typically abbreviated as Rhino, or Rhino3D, is a commercial 3D computer graphics and computer-aided design (CAD) application software . Grasshopper is a graphical algorithm editor tightly integrated with Rhino’s 3-D modeling tools. It requires no knowledge of programming or scripting, but still allows designers to build form generators from the simple to the awe-inspiring. At the beginning we discussed the question what exactly generative design means. The definition is the following : „Generative design is a design method in which the output – image, sound, architectural models, animation – is generated by a set of rules or an Algorithm. Most generative design is based on parametric modeling. It is a fast method of exploring design possibilities that is used in various design fields“ The difference between parametric modeling and generative design can be described as the first one is mostly a manually driven process and consists of the modification of a model, as the second one uses algorithms to create the model and it is a automated process except for the fact, that you have to manually define the design criterial within Grasshopper. The implementation of generative design methods in architectural design consists of an ongoing processing interchange between an analysis, data collection and definition of design rules as well as a metamorphosis where it is transformed into architecture and a morphogenesis where the digital or physical form finding takes place. So the integration of generative design methods can be an extension of a design, eg. a facade or decorative elements, to create abstract plans or basic shapes, to define space for generative shapes, variate different visualizations, optimize different parameters and many more other possibilities. In a previous beginner course in Grasshopper I came into contact with parametric architecture and the possibilities of the program itself. With Grasshopper I was given a tool, I had been looking for for a long time.Now it was possible for me to create the architecture I had in mind but was not able to design until this point because of some limitations of the program I worked with before (AutoCad Architecture). So my previous work with Grasshopper taught me the basics and gave me a general understanding of how the program


works. I was able to create simple adaptive or kinetic facades and, as I learned during this course, also a little more complex high rise buildings. Furthermore I am now able to create more complex forms, patterns and algorithms and architecture with the knowledge I have gained throughout the course. So the purpose of my work for this final exam developed over time. I started out with an idea to create some complex adaptive facade systems which react to the suns movement by opening or closing. Ideally this system would be applied to a high rise building which I also wanted to create based on parametric and generative principles. But the main problem is the performance of Grasshopper. It only uses one core of the PC, so very quick in the process of creating these facade systems, it became clear to me, that I won’t be able to achieve my initial goal because Grasshopper has to much information to calculate and would ultimately slow down or crash. As a consequence to this problem, I started to think smaller. I only created one single facade element to test, if my initial approach would work in general. I tried out some different facade variations which can be changed based on parameters (sliders). The next step was to make the facade smart/adaptive, so I figured out which exterior factor like the sun, wind, rain etc. would be my important factor and chose the sun as one in the end. Since one facade element looked a little bit boring in the program view port and it felt like something was missing, I created three more walls, a roof and a floor to make it at least a small building. The idea of a small building reminded me of a pavilion and the whole idea of creating a landscape or terrain where the pavilion could stand on, came into existence. It started with an empty base plane, which looked very boring, so I wanted to figure out how to make the terrain look more exciting. My approach to this would be adding different factors like heights and downs as well as trees and a path. In a final step I was quite unhappy with the adaptive facade pavilion because it looked like an impurity on the terrain, so I began to try out more suitable solutions. The importance of this project in a broader context is the possibility to generate random landscapes and terrains without any previous data or information required. For example you could create whole lifelike environments for games or you could use the realistic looking trees to populate your 3D models or renderings. The pavilion could be used as an easy installation wherever you like it to be to gather people, give shelter or just demonstrate on expos what is possible with these generative design methods. So my work is an approach to help me in the first place to gain an ever better understanding of how Grasshopper works and what is possible.


Materials and Methods In the beginning there has been a lot of trial and error. With an abstract idea in mind, the first step was to create a surface. This surface would be the base surface for my adaptive facade. I had different visions of how the facade should looked like based on previous research and impressions from a lot of architecture magazines. So all the different ideas were cut down to three. The first one is a horizontal lamella systems which opens and closes depending on where the sun is. The second one is a vertical lamella system which orientates towards the sun. The third one is a gill system which also opens and closes depending on the suns position. Since all of these system depend on the sun, the second step was to create a sun in Grasshopper. Therefore a circle has to be created and from this circle an arc is necessary to imitate the suns path. To create the sun itself, a point on this arc has to be created and will be referenced as an attractor point for future steps. All of these created components needed to be parametric, which means they either have a slider or a timer to pretend the movement of the sun. Once the sun is set as an attractor point all the facades are adaptive because the distance of the sun to specific points on the facades is measured and regulates parameters as thickness, direction and opening and closing of the facades. Simultaneously a box has to be created to make a room/building from the initial surface with four walls, a roof and a floor. The adaptive facades can be projected on these walls. To build the terrain where the pavilion stands on, an outline rectangle which defines the borders of the area, has to be created. To create a terrain with heights and lows an algorithm called Midpoint Displacement is used. Before using this algorithm, an Grasshopper Plugin called Anemone is necessary. It allows you to loop input data with its resulting data again and again for a number of repetitions you choose. The result will come close to a real landscape and do its purpose for my needs. To add more life to the whole scene, I decided to create trees and for that, the rectangle which defines the terrain area will be used again. Within this rectangle a random population of points is created. These are the base points where the trees will appear. The first approach to creating trees was by using lines as a tribe and randomly rotated different lines as branches. A sphere created at the end of each tribe should resemble the trees crown. Since the result did not appear very natural and I was not happy about this result I tried a different approach by using the loop component Hoopsnake (also a Grasshopper Plugin) this time. This one creates very realistic and natural looking trees which are also placed on the previous generated points but differ in height, size and rotation to give the impression of a real forrest. By setting up this more realistic looking terrain with trees the decision was made to come up with another idea for a better fitting pavilion design. The previous one was just four walls, a roof and a floor with adaptive facade attached to them. Since it this was not an optimal solution, I came up with the idea of more parametric pavilion design. The logic of the current is that is should be located around a random tree, creating a circular space around it to integrate the tree into the pavilion design. Since the pavilion is located in a terrain with heights, lows and tress, the idea of a birds nest inspired design occurred and seemed much more fitting to me. The parametric aspect of the pavilion is its construction on the one hand but also its possibility to adapt to the


position of the sun. This means it can change its density and also thickness of the branches. As a last solution to complete the whole ensemble, a path was created. The end point of the path should always lead to the pavilion. So the tree, around which the pavilion is located became this end point. The starting point can be chosen freely in Rhino. The logic of the path is also created by using the anemone component again. It will analyze the surface to its raising and create a part of the path step by step so it will fit perfectly on the terrain. During the process of creating this whole terrain ensemble it was a lot of trying different approaches because there is always more than one way in Grasshopper how things can work. Some of my ideas did not work or did not work as imagined, but others gave me results I was not expecting, but very happy about. For example I wanted the path so adaptable, that it choses the way with a defined raising of 1:12, which usually is comfortable for hikers, but I was just not able to make it work. An example of what worked different than expected was the creation of the birds nest pavilion which I imagined way different, but I am absolutely pleased with the final outcome. I also tried different things to even add more detail to the terrain like water in the valleys with the help of Kangaroo (also a Grasshopper Plugin), but it was way too complicated and did not work in any way.

Result and Discussion In the following pages pictures of the Grasshopper script and the resulting Rhino geometry as well as a rendering will be presented.

1. Creation of the Sun and its movement. The sun is created as point and follows the path of an arc which can be rotated. In this case it is triggered by a timer which creates numbers and angles to move the sun in realtime in Grasshopper and Rhino. The result is very satisfying because it creates working system of the suns movement


2. Creation of an horizontal lamella facade system which is adaptive and can react to the suns position by opening and closing its lamellas.


3. Creation of a vertical lamella facade system which is adaptive and can react to the suns position by opening and closing its lamellas. It is working quite well, but the lamellas rotate around 360 degrees depending on where the sun is. It wasn't possible to figure out a way to avoid this.

4. Creation an gill facade system which is adaptive and can react to the suns position by opening and closing its gills. It was more or less a test to see, if it was possible to create a more organic facade system and the results are ok for a first try.


5. The first try of creating a random terrain. It did not work the way it was supposed to be because there were some errors when it came to connecting the outline points of the defining area curve. So the diamond algorithm used to create the terrain did not function as planned.

6. The second and final try of creating a random terrain. This time it worked perfectly because all the outline points were connected in the right order, so they could create new smaller rectangles. The result is pretty good and easily changeable by moving the initial area curve corners up and down, set a higher number for the recursion in the Anemone component but not higher than 3, otherwise the program crashes most likely. Another number can can be modified from 0 - 1 and the higher the number is, the more mountains and valleys will appear. 0.2 is good for a flat landscape and 0.7 for more mountain like one. If changes are made, it is important to use the Boolean Toggle to apply the changes.


7. First attempt at creating realistic looking trees. Actually it did not come out as planned, but this method can be used to populate large landscaped, eg. for urban design or landscape design because it does not need much calculating.


8. Second attempt at creating realistic looking trees. These trees look a lot more natural and imitate the logic of how a tree grows. Therefore the Hoopsnake component is used to create the different branches. When changing parameters like height, or recursions it is necessary to reset all within the component and then loop again to get the changed outcome. The trees can also be populated from less too a lot to imitate a forrest. It is also very important, that the trees stand on the actual surface. This goal was achieved by projecting the population points, which are the basis for the tree, onto the generated terrain surface.


9. The creation of a path was quite difficult. The goal was to chose any given point and an defined end point ( in this case a pavilion which is located around a random tree ). The method I used was to create a circle which defines a specific rise (one which is for example 1:12 for hikers) and checks the terrain for this rise and then creates a path and this method loops again and again to come to the destination point.


10. The creation of the pavilion is based on a random tree as a starting point and it than develops around it. The pavilion is inspired by a birds nest and the structure is then used to leave the middle free ( for the tree) and create a room around it. The density and thickness of the pavilion is also adaptive to the suns distance. The final outcome of the pavilion was not planned from the beginning but developed over time and fits into the created landscape quite well. This ensemble is the final outcome and is very pleasing It looks natural, realistic and can be changed by a lot of parameters and everything is connected to each other.


11.Another example of the first testing script with the unfitted terrain script and the boring trees and the adaptive facades. This outcome did not look as natural as it was supposed to be, so there was a lot of work to do, to get a more realistic looking ensemble.

12.These are the view ports in Rhino after adding some textures on the groups. Actually the results are very positive because this can be used the create great landscape design plans by very little effort.


13. This Rendering was created from a very quick selection of perspective in Rhino and then a little post production in Photoshop to create a nice atmosphere. The decision for a winter setting was made because the trees had no leaves and it would seem more realistic in a snowy setting than in the summer or spring, where it is very colorful or green.

To reevaluate the results, one can say that not everything worked out the first time, but with new problems, came new solutions which led to even better results. A combination of a basic idea, a lot of trial and error as well as the personal standards made this project possible. So what do the results mean ? They can be seen as tools for current and


future work to optimize and mostly simplify the workflow and give the user help during the form finding process.

Synopsis In conclusion, the whole process of creating adaptive facades, generating a random terrain with realistic looking trees and a path as well as a pavilion inspired by a birds nest, was very insightful. Since I started with a very vague idea of what I wanted to achieve, the idea became more and more clear throughout the whole work-process and got a life of its own. Also with every problem I had to face, came new and most of the time unexpected, but successful solutions. So the outcome of my approach to build an ensemble with generatively, parametrically and aesthetically pleasing components was a great journey through the possibilities of Grasshopper.

Outlook/Future Work I personally see my work as a starting point. A starting point to how Grasshopper works. A starting point to how it is able for me to translate my ideas from head into the program and maybe into reality in the future. I think Grasshopper is an amazing program with so many opportunities and a program I definitely want to learn much more about. I think the next step would be get more into the logic of algorithms, mathematics and maybe scripting in general. The outlook for this project in particular would be the implementation of ELK, to create landscapes and terrain with the help of Grasshopper. This would be very helpful for 3D environment models once you have all the data from ELK. It would be also very interesting to divide the terrain I created into different areas like forrest, water, roads, agriculture etc. and give them special fitting attributes. I would also like to improve the process of the adaptivity of the facades to the sun. It is working right now, but I think there is also much more potential to it. Another very unrealistic idea would be the creation of a very large, randomly generated landscape area with maybe different climatic zones and bio-diversity, but I think Grasshopper would crash with this amount of data to calculate.


References Books : AAD, Algorithm Aided Design by Arturo Tedeschi Websites : http://www.grasshopper3d.com/ http://www.designcoding.net https://digitalsubstance.wordpress.com https://generativelandscapes.wordpress.com http://matsysdesign.com/ http://www.amilcarferreira.com/organic%20pavilion.html https://www.behance.net/gallery/20066925/Pavilion https://de.pinterest.com/pin/337488565807314323/ https://s-media-cache-ak0.pinimg.com/564x/09/d2/ a4/09d2a485fbac63c4ea3aec35bb95d9bd.jpg https://issuu.com/bhargavsridhar/docs/grasshopper_3/4 http://www.lepenseur.it/aad_book/chapter_11_01.jpg http://lab.visual-logic.com/academia/la-4301-advanced-site-grading-and-terrainmanipulation/ http://performance-and-form.com/projects/parametric-facade-optimization-using-rhinograsshopper-diva-galapagos/ Slides : L2p - All Slides from the Generative Design Methods Course


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.