Step 1 - Generative Design Framework
- Design Decision 1: Solar Panelization (Facade/Roof Optimization)
- Design Variables
- Panel Tilt: the horizontal orientation (facing south, southwest, west, etc.) and vertical angle of the panels relative to the sun
- Surface Coverage Ratio: the percentage of available roof or facade area covered by active solar panels vs standard cladding materials
- Panel size: the length, width, and height of the panel
- Evaluators
- Annual energy yield (kWh/year): total amount of electricity produced by the panels
- Cost: total cost of purchasing and installing the panels
- Payback/ROI: the time it takes for energy savings to break even with capital cost
- Most Important Tradeoffs to Consider
- Peak energy vs architectural aesthetics: maximizing the perfect tilt may result in ugly, angled facades
- Upfront cost vs long-term savings
- Solar shading vs daylighting: Increasing solar panelization on building facades will reduce solar heat gain, but also reduces natural daylight.
- Design Decision 2: Massing Optimization for a Groups of 3 Buildings
- Design Variables
- Building dimensions for Buildings A, B, C
- height
- width
- length
- Void placement: where physical gaps or cutouts can allow for sight-lines to pass through
- distance between A and B
- distance between B and C
- distance between A and C
- Evaluators
- Views to building A: the total percentage of unobstructed line of sight to building A
- Views to building B: the total percentage of unobstructed line of sight to building B
- Views to building C: the total percentage of unobstructed line of sight to building C
- Total square footage
- Most Important Tradeoffs to Consider
- Premium views vs Total Square footage: Cutting back or reducing building heights to create views reduces the total amount of floor space that can be rented
- View optimization vs urban street wall consistency: optimizing building sizes to catch views can ruin the pedestrian experience at the street level by breaking with the sidewalk edge
- View window area vs thermal comfort: for best view, we want the most amount of glazing, but this can cause massive glare
- Design Decision 3: Window placement (Fenestration design)
- Design Variables
- Window dimensions
- Height of window
- Width of window
- Window orientation: which facade (N, S, E, W) the window is placed on
- Evaluators
- Daylight quality: how much natural sunlight the rooms receive without need of artificial lighting
- Solar heat gain: whether the amount of sun makes rooms too hot
- Facade composition: The window-to-wall ratio that results, and whether there is an optimal balance
- Most Important Tradeoffs to Consider
- Big views vs heat gain: Having floor-to-ceiling glazing creates great views, but increases the amount of heat gain/loss of the building, which requires additional heating/cooling costs
- Interior space layout vs window placement: Placing a window perfectly on the outside facade to make the building look symmetry-based might accidentally put a window right where someone needs to place a bed or a bookshelf on the inside.
- Natural daylight vs privacy: Lowering the window sill to the floor lets light bounce deep into a room, but it also means people walking by on the street can look directly inside, destroying your privacy.
Step 2 - Generative Design Study
I chose Design Decision 2 because of its urban planning applications, and because I wanted to explore the quantification of views via a ray-based methodology. Since I’ve been using Grasshopper throughout this course, I felt more comfortable learning Galapagos, which is a the Rhino version of Dynamo’s Generative Design.
Within Rhino, I wanted to optimize the massing of three buildings to maximize the direct view from a specific pedestrian vantage point (’Viewer’ node in my script). I began by setting up a script where number sliders control the width, height, and length of each building block. To evaluate visibility, I established the Viewer as a static point and generated sightlines to the centroids of each building using a Line component. To prevent the buildings from overlapping or blocking one another, I implemented an occlusion engine using a Brep-Line Intersection node, which tracks if a sightline pierces multiple structures and applies a numerical penalty to blocked options. To measure view quality, I used a Deconstruct Brep and Evaluate Surface node to calculate the normal vectors of every facade, comparing them to the sightline vectors via a Vector Angle component. A major challenge was managing the data trees; because each building has six faces, the angle calculations multiplied. I resolved this by utilizing the synchronous sorting capability of the Sort component to filter out the five irrelevant back-walls and roofs, isolating only the most direct facade per building. Finally, I used a Mass Addition node to sum these three optimal angles into a single fitness value for the Galapagos evolutionary solver to minimize.
To view the generated masses, I connected the extruded geometries into a Data Recorder. Because the recorder outputs all of the results overlapped, I had to send the results to. List Item component. When attaching a number slider to the index, you can manually slide through the index to visually see galapagos cycle through the different options (see Step 3).