Explore a framework for classifying design problems—to determine the appropriateness of different generative design solutions.
- [Instructor] In this chapter, I will test out some of the techniques we've covered, integrating them into a single parametric model, responding to a diverse set of design requirements. Though the requirements in this brief are intentionally quantifiable and simplified in comparison to a typical architectural project, they are representative of the breadth and variety found in architecture. Let's imagine we're designing a new mathematics laboratory for a university. The university has asked that the roof be derived from a sine wave surface. The site is surrounded by three buildings. They want to maximize open views using the form of the roof to sculpt the building. The supporting structure will be a slender space frame preserving flow and opening up public spaces at the ground level. And finally, the roof may incorporate skylights into a freeform paneling system. I like to start planning out a parametric generative design model by diagramming the inputs, constraints, optimizations, and transformations. This usually starts with sketches, but if we set up our diagram directly within Rhino, we can import it into Grasshopper to use as a guide as we work. I have my exercise file open already. You can see in the model there's a big rectangle. This is just to give us a sense of scale so when we import it into grasshopper, it aligns with the scale of the scripting environment. So I'll start off by adding a text object. The first thing I'm going to add are site constraints. That's one of the first constraints to define the bounds of the model. I'm going to set the height of the text to eight and just type in those words and say OK and we'll add that in to our diagram. Next, I'll put a box around it because these represent chunks of automation in the parametric model. Alongside the site constraints, I'm going to add another box and I'm copying that with Control + C, Control + V or you can use the command Copy, C-O-P-Y. And inside this box, I'll do sine wave. So I don't need to set up the logic to generate a sine wave surface. Now Control + C, Control + V, and you reconcile the site constraints and the sine wave surface to create a roof that reflects the shape of the building and the mathematics of the sine wave. So we'll get another text object and we'll call this roof surface. And as I'm doing this, typically I'm starting to think through what types of components or what types of things I would need in terms of optimization and logic once I get into Grasshopper. Next, I'm going to copy this again and our next step is to add in the sides and we will call the sides, views, fitness because we need to calculate the sides of the building, use that to determine the views, and the views will determine the fitness because we're optimizing the form of the building to maximize use. Now let's connect these together so I'll just create some lines using the line command. Now the constraints and the sine wave will make the roof. The constraints combined with the roof surface determine the sides. The next thing I need to create is the actual structure within the building. And in order to create that structure, I need to lay out the areas of the building that will have structure and the areas of the building that will have things happening, program. So I'll call this structure layout. Next, I know I want to create a roof paneling system. So I'll copy this and we'll create another text object roof paneling. I'm just thinking through the different things that need to be created and where the dependencies are in terms of logic. So I'm going to copy this and a combination of the structure layout in the paneling will determine the actual location of the structures within the building. So we'll do another text object. We'll call this structure system. I'll turn off my center snap 'cause it's moving the text as I drop it in. And now finally we'll do two more steps. So we're going to add a physics solver to optimize the structure. So we'll do physics solver. And finally we'll add a little bit of logic to visualize this. And typically I would have this last step be visualization and export 'cause usually you're exporting a model either for fabrication or for documentation. But in this instance, we're just going to visualize. There's always some kind of expert step though when you're creating these models. So now I'll just wire everything together so the sides help determine the structure. Sides help determine the roof. The structure and the roof paneling determine the structural system. And that gets fed into the physics solver. The physics solver is kind of acting on the structural system but we'll leave the linkage in this direction. And then finally the optimized system gets visualized including the roof. So that's our diagram. So if we want to bring this into Grasshopper, I'm going to open up Grasshopper, and then I'm going to create a sketch so I'll go up here to sketch. I'll just draw something. It doesn't really matter what I draw. But now I'm going to click on it, right-click and load from Rhino. And when I load from Rhino, I'm going to select all the geometry I just created, hit Enter. Now when I go back into Grasshopper, I see I have all of that diagram here in the Grasshopper canvas which will allow me to use it as a reference as I'm working through step by step building out my parametric model.
- What is generative design?
- Limitations of generative design
- Strengths and limitations of genetic/evolutional solvers
- How physics solvers work
- Testing and adjusting goals
- Working with machine learning tools
- Design requirements and diagramming
- Optimizing with Galapagos