Media and Tools Documentation
Table of Contents 1. Introduction 2. PreTerm Workshop i. 0.1 Day 1 i. Overview Day 1 ii. Step One: Defining the base iii. Step Two: Creating a series of stacked volumes iv. Step Three: Twisting the series of stacked volumes, and creating a cascading effect ii. 0.2 Day 2 i. Overview Day 2 ii. Step One: Defining a Grid, Defining Attractor Points iii. Step Two: Defining Attractor Point Relationships iv. Step Three: Make a Surface from Points iii. 0.3 Day 3 i. Overview Day 3 ii. Step One: Abstracting a City Grid iii. Step Two: Multiple Attractor Points iv. Step Three: Geometrically Related City iv. 0.4 Day 4 i. Overview Day 4 ii. Step One: Assigning the solar angle iii. Step Two: Defining the limit of building's roof angle based on sun angles iv. BONUS! Ladybug and City Planning v. Step One: Ladybug Setup vi. Step Two: Analysis Hours vii. Step Three: Solar Envelope of a Surface v. Glossary 3. Third Semester Media and Tools Documentation i. Week 2 i. Tree Grid ii. Lists and Grids iii. Shortest, Longest, and Cross Referencing Lists ii. Modeling i. 1. Land form iii. Animation iv. Landscape Matrix i. Modeling Methods
2
Media and Tools Documentation
Introduction
3
Media and Tools Documentation
Pre-Term Workshop The Pre-Term Workshop is a required one-week intensive course, registered as GSD 1211 (0 units), to prepare students entering the third core studio in the Master of Landscape Architecture program. Those enrolled are MLA I candidates entering their third semester, and newly admitted students in the MLA I AP and MLA II programs. This term's Pre-Term Workshop was coordinated and led by David Mah, with the teaching assistance of Devin Dobrowolski, Liza Langer, and Linh Kim Pham. This document was prepared by Leif Estrada and Liza Langer. The following pages go through the daily exercises conducted in class with an overview, step-by-step walk through of each grasshopper script, and examples of the works produced by students.
Softwares The following programs were used during the Pre-Term Workshop, with links to their download sites. Rhinoceros 5: https://www.rhino3d.com/download/rhino/5/latest Grasshopper: http://www.grasshopper3d.com/page/download-1 Ladybug: http://www.grasshopper3d.com/group/ladybug Post-production editing: http://www.adobe.com/creativecloud.html
PreTerm Workshop
4
Media and Tools Documentation
Day 01 Building Typologies
Andrew Madl
Andrew Younker
0.1 Day 1
5
Media and Tools Documentation
0.1 Day 1
6
Media and Tools Documentation
Day 01, Overview
In this tutorial, we will learn how to create a complex building typology using a grasshopper definition. This Grasshopper script was created by David Mah.
Overview Day 1
7
Media and Tools Documentation
Day 01, Step One: Defining the base of the building, and the number of stories To start, we will set up the dimensions of the base: the length and width in plan and the height of each story as indicated in the slider. This determines the factor of how far our extrusion will be.
Output of the base/first story of the building:
Step One: Defining the base
8
Media and Tools Documentation
Step One: Defining the base
9
Media and Tools Documentation
Day 01, Step Two: Creating a series of stacked volumes Next, we can determine how many times we would like ti array the same volume in any given direction.
Step Two: Creating a series of stacked volumes
10
Media and Tools Documentation
Step Two: Creating a series of stacked volumes
11
Media and Tools Documentation
Day 01, Step Three: Twisting the series of stacked volumes, and creating a cascading effect Now that you have a series of similar stacked volumes, you can create a variation of sizes and the angles (of each of the volume's faces)
Step Three: Twisting the series of stacked volumes, and creating a cascading effect
12
Media and Tools Documentation
Step Three: Twisting the series of stacked volumes, and creating a cascading effect
13
Media and Tools Documentation
Day 02 Landform Typologies
Andrew Madl
Andrew Younker
0.2 Day 2
14
Media and Tools Documentation
0.2 Day 2
15
Media and Tools Documentation
Overview Day 2
16
Media and Tools Documentation
Day 02, Step One: Defining a Grid, Defining Attractor Points To start, we will set up two attractor points and a grid of points that will make the surface. MAKING A GRID: The component labeled "Square" creates a grid with square cells (as opposed to rectangles, triangles, or hexagons which are also options in Grasshopper). In our inputs, we can determine the size of each cell (0.933), the number of rows in the X axis (Extent X) and the number of rows in the Y axis (Extent Y). In this example, we have created a number slider so that we can easily manipulate the grid extent. The output that we can use for this example are the points that occur on the crossings of the grid. The points appear in rhino as a red X (in default settings). See what happens to your grid when you slide the white dot on one of the number sliders. MAKING ATTRACTOR POINTS: There is certainly more than one way to construct a point. In this example, we are looking to easily manipulate the coordinates of our attractor points so that we can make many iterations of a surface using the same grasshopper definition. Simply plug an MD Slider into the point component. Notice that the MD Slider (Multi Dimensional Slider) has a grid with a white dot calling out the coordinate. See what happens when you move around the white dot in the MD sliders. Grasshopper Screenshot: A Square Grid (top), and Attractor Points (bottom).
Step One: Defining a Grid, Defining Attractor Points
17
Media and Tools Documentation
Output: A grid of points
Step One: Defining a Grid, Defining Attractor Points
18
Media and Tools Documentation
Output: One example of two points created from the MD sliders
Output: Another example of two points created from the MD sliders
Step One: Defining a Grid, Defining Attractor Points
19
Media and Tools Documentation
Day 02, Step Two: Defining Attractor Point Relationships DISTANCE RELATIONSHIPS BETWEEN ATTRACTOR POINT AND THE GRID OF POINTS: The component labeled "Closest Point" will allow us to sort points from the square grid. Using this component we can tell which points are closer to Attractor Point A and to Attractor Point B, respectively. Set the Cloud input on the Closest Point component to both attractor points. Remember to hold down shift to set more than one input and to flatten the Cloud. The Point input on the Closest Point component will be our grid of points. Now we can find the Distance between the Closest Point output or the Attractor Points and the grid of points. Let's visualize this data using a Panel. The data that we can see in the Panel is called a Data List. The first characteristic to note in this list is that every distance listed has an ascending number to its left. The first number in this column is always zero. Remember that Grasshopper is a visualization of programming language, so right now we are getting a window into the math and numbers behind the components. Grasshopper Screenshot: Closest Point (middle), Distance and Panel (right)
ADJUSTING THE BOUNDS: We can proportionally change the Domain ( [lower limit] To [upper limit] ). First, input the Distance list into the Bounds component. Flatten the input so that you are finding the lower limit and upper limit of the Step Two: Defining Attractor Point Relationships
20
Media and Tools Documentation
ENTIRE list as opposed to one branch of the list. Using a Panel, type your new lower limit and upper limit using this syntax: ( [lower limit] To [upper limit] ). Plug your new Bounds panel into the Target input, the Bounds from the original Distance list into Source, and the Distance list into Value. If we compare the panel of our Distance list and the panel of our Remapped Numbers list, we can compare the proportional relationship at each point on the grid before and after. See what happens when the Distance list is plugged into a Move Component and compare against the Remmapped Numbers values. Grasshopper Screenshot: Points are moved in the Z direction the same distance as to the attractor point
Output: A grid of points moved in the Z direction the same distance as to the attractor point
Grasshopper Screenshot: The same grid of points adjusted proportionally to a new Remapped domain.
Step Two: Defining Attractor Point Relationships
21
Media and Tools Documentation
Output: The same grid of points adjusted proportionally to a new domain.
Step Two: Defining Attractor Point Relationships
22
Media and Tools Documentation
Day 02, Step Three: Make a Surface from Points MAKE A SURFACE : Using the outputed Points from the Move Component, we can make a surface. Input these Points into the Surface from Points Component. Flatten the input. The next important input for this component is the U Count. The U Count determines how big the Surface grid is (U and V on the surface is the equivalant axis as to X and Y in the world grid). When looking at a Square or Rectangle Grid, there are always two points per cell in the X Extent, for example. Using an Addition Component, we can amend the associate the number of cells in the original X Extent of the grid. Take the output from the Number Slider that is the input for the Square Grid X Exent and plug into the Addition Component. The default B input is 1. So with this example we are saying 42+1=43. If we move the slider to be, say, 33 then the mathematical equation is 33+1=34. NOW FOR THE FUN PART: Move around all of your number sliders, MD sliders, and flip the domain bounds that allowed you to remap numbers. What do you see? Grasshopper Screenshot: Surface from Points (far right)
Output: A beautiful surface!
Step Three: Make a Surface from Points
23
Media and Tools Documentation
CONTOUR THE SURFACE: One great visualization tool, especially in Landscape Architecture, is to Contour the Surface. If we plug the Surface output into the Contour input, set a start point from which to contour (for example, the origin 0,0,0), set the direction to a Unit Z, we can better visualize the formal characteristics of the surface. If we plug in a Number Slider into the Distance input, we can easily manipulate the frequency of the at which the contours occur. Grasshopper Screenshot: Surface from Points (top center), Contour (right)
Output: Contours!
Step Three: Make a Surface from Points
24
Media and Tools Documentation
Step Three: Make a Surface from Points
25
Media and Tools Documentation
Day 03 Aggregated Typologies
Andrew Madl
Andrew Younker 0.3 Day 3
26
Media and Tools Documentation
0.3 Day 3
27
Media and Tools Documentation
Day 02, Overview: Relational City Blocks
Overview Day 3
28
Media and Tools Documentation
Day 03, Step One: City Grid
Step One: Abstracting a City Grid
29
Media and Tools Documentation
Step One: Abstracting a City Grid
30
Media and Tools Documentation
Step One: Abstracting a City Grid
31
Media and Tools Documentation
Day 03, Step Two: Attractor Points
Step Two: Multiple Attractor Points
32
Media and Tools Documentation
Step Two: Multiple Attractor Points
33
Media and Tools Documentation
Day 03, Step Three: Geometrically Related City
Step Three: Geometrically Related City
34
Media and Tools Documentation
Step Three: Geometrically Related City
35
Media and Tools Documentation
Step Three: Geometrically Related City
36
Media and Tools Documentation
Day 04 and 05 Volume and Density Typologies + Solar Analysis
Andrew Madl
Andrew Younker
0.4 Day 4
37
Media and Tools Documentation
0.4 Day 4
38
Media and Tools Documentation
Day 04, Overview
In this tutorial, we will learn to analyze the solar exposure of a given volume based on sun angles (local to the site), during the summer and/or winter solstice. This Grasshopper script was created by David Mah.
Overview Day 4
39
Media and Tools Documentation
Day 04, Step One: Assigning the solar angle To start, you will need to create a plane that is large enough to cover the area of a polygon you have drawn in plan. Rotate this plane to the desired solar angle.
Step One: Assigning the solar angle
40
Media and Tools Documentation
Step One: Assigning the solar angle
41
Media and Tools Documentation
Day 04, Step Two: Defining the limit of building's roof angle based on sun angles Now that you have extruded a volume through the incidence of the solar angle, you may trim this to create a volume within the limits of the sun angle.
Output of the limit of the height and angle of the building that responds to the solar angle.
Step Two: Defining the limit of building's roof angle based on sun angles
42
Media and Tools Documentation
Ladybug and City Planning
BONUS! Ladybug and City Planning
43
Media and Tools Documentation
Step One: Ladybug Setup Ladybug is a plugin for Grasshopper. The starting point is to have an EPW file (lower left) loaded and a default folder set (upper left). These initial steps will create a location that you can load into the components seen in the next step.
Step One: Ladybug Setup
44
Media and Tools Documentation
Step Two: Analysis Hours Using the location output from Step One: Ladybug Setup, we can input into the very large component titled Ladybug Sunpath. Notice all of the different inputs that you can have into Ladybug Sunpath. The top half of these inputs will allow us to find specific sun angles throughout the year based on the location of the EPW file. You can check to make sure that Ladybug is working if the sunpath orb pops up into Rhino. Using the Analysis Period Component, we can specify hours between dates that we input. Remember to use the 24 hour time for _fromhour input and the _tohour input. On the default, yellow spheres representing the sun at different hours with appear on the sunpath. Grasshopper screenshot: Analysis Period and Sunpath components
Rhino screenshot: Sunpath orb with Analysis Suns
Step Two: Analysis Hours
45
Media and Tools Documentation
Step Two: Analysis Hours
46
Media and Tools Documentation
Step Three: Solar Envelope of a Surface We can now use outputs from Ladybug to influence our geometry. This is especially useful for designing informed by environmental consequences. We can make a Line and a Vector using the outputs sunPathCennPts and sunPositions.
Step Three: Solar Envelope of a Surface
47
Media and Tools Documentation
Step Three: Solar Envelope of a Surface
48
Media and Tools Documentation
Step Three: Solar Envelope of a Surface
49
Media and Tools Documentation
Glossary Below is a resource based on Rhino FAQ's we have come across in class. Some basic commands in rhino are written to be intuitive (move, copy). Here are some other commands that could be useful for manipulating geometry. Split: divide a brep into one or more pieces using a curve or a brep Trim: remove a piece of a brep using a curve or a brep Rotate: rotate geometry about a center point (default xy plane) Rotate 3D: rotate geometry about an axis (you define the axis) Orient : change the position and/or orientation of geometry using 2 reference points Orient 3pt: change the position and/or orientation of geometry using 3 reference points Scale: proportionally increase or decrease the size of the geometry Scale 1D: increase or decrease the size of the geometry in one direction Loft: Find the surfaces between 2 or more lines (only open or only closed) Explode: Faces of polysurface or curves separated Digital Toolbox is a good resource for learning rhino. They have videos for getting started. http://digitaltoolbox.info/rhinoceros-basic/
Glossary
50
Media and Tools Documentation
Third Semester Media and Tools Documentation
51
Media and Tools Documentation
Week 2, Overview Week 2 introduces the students to basic data structures within grasshopper, such as branching (flattening, grafting, simplifying and flipping the matrix). This would help the students when they start creating complex surfaces and needing to cull specific data from a single group. This following Grasshopper scripts were created by David Mah. For a quick review on editing Grasshopper Data Trees, please visit this link.
Week 2
52
Media and Tools Documentation
Creating a Grid based on a Tree The following grasshopper definitions go over the creation of a grid and calling out specific branches of the tree. This exercise was designed to provide a basic understanding of how to specifically extract a desired value in order to be manipulated parametrically.
Creating and setting up the grid
Tree Grid
53
Media and Tools Documentation
Selecting a specific row and column to assign geometries within each point
Tree Grid
54
Media and Tools Documentation
Selecting a specific point to assign a geometry within each of the grid's point
Tree Grid
55
Media and Tools Documentation
Providing a variation by skipping rows and/or columns
Tree Grid
56
Media and Tools Documentation
Lists Grids The following grasshopper definitions go over some basic relationships in order to create a repetition of pattern, which can deployed as a field condition.
This definition connects the points along one column into a continuous polyline
Lists and Grids
57
Media and Tools Documentation
an alternation of the polylines' connection
Lists and Grids
58
Media and Tools Documentation
skipping every other line
Lists and Grids
59
Media and Tools Documentation
rotating the polyline to create a horizontal connection
Lists and Grids
60
Media and Tools Documentation
creating a diamond pattern by intersecting the polyline grid that are in 45ยบ
Lists and Grids
61
Media and Tools Documentation
using the "weave pattern" component which specifically rotates the horizontal and vertical lines to produce a parametric pattern
Lists and Grids
62
Media and Tools Documentation
assigning geometries at each endpoint of the the lines to provide a variation, but connected with a single straight polyline
Lists and Grids
63
Media and Tools Documentation
providing a criss-crossing relationship between the columns
Lists and Grids
64
Media and Tools Documentation
Lists and Grids
65
Media and Tools Documentation
Shortest, Longest, and Cross Referencing Lists The following grasshopper definitions go over some basic relationships between points, by connecting them with lines; but creating a parametric pattern.
Shortest List
connecting the points directly across another list and providing a 1:1 relationship
Longest List
Shortest, Longest, and Cross Referencing Lists
66
Media and Tools Documentation
connecting the points directly across another list and providing a 1:1 relationship, and connecting the last point within one list to the remaining points within the other list
Cross Referencing
Shortest, Longest, and Cross Referencing Lists
67
Media and Tools Documentation
creating a cross reference between each of the points
Shortest, Longest, and Cross Referencing Lists
68
Media and Tools Documentation
Modeling
69
Media and Tools Documentation
1. Land form
70
Media and Tools Documentation
Animation
71
Media and Tools Documentation
Landscape Matrix
72
Media and Tools Documentation
Populating the Matrix Instructions: In the population of the landscape matrix each student will negotiate topographic borders, make suppositions regarding weather patterns, geologic processes, and human interaction to arrive at a representation of these convergent forces. Each tile is referenced to a specific point on the overall matrix. It may be useful for this project to locate your tile at the world origin (0,0,0) as you work.
Generating Topography: You have several methods at your disposal for generating the topographic profile of your piece of the matrix. Listed below are two possibilities--however, as your fluency with 3d modeling increases, you will learn that there are many ways to generate topography.
1. Rhino Terrain After drawing contours on your site and moving them to the appropriate Z-height, Rhino terrain will take as an input the curves representing your topography and will generate a mesh using the command RtTerrainCreate Be aware that Rhino Terrain’s meshing algorithm creates very large, irregular vertices and that these vertices and faces can be very hard to manipulate manually.
Modeling Methods
73
Media and Tools Documentation
2. Mesh Terrains from Grasshopper: In addition to Rhino Terrain, grasshopper is capable of producing very high resolution mesh terrains from grayscale color ramps or Digital Elevation Models. Digital Elevation models are created from satellite imaging. Each pixel in the image represents a sampled point. That point is given a value from 0 to 255 based on its elevation, which corresponds to a value of RGB gray. We can use digital elevation models culled from GIS databases to create a base topography. The grasshopper definition ‘Mesh Terrain from Raster’ samples a grayscale image and creates a triangulated mesh from the grayscale pixel data of each cell.
Modeling Methods
74
Media and Tools Documentation
3. Mesh Terrain from Raster.gh This grasshopper definition takes as input a planar surface equal to the size of your matrix tile. From this surface a point grid is created. These points will form the vertices of our mesh terrain. The resolution of the grid is set by the U and V density of the surface. The image sampler will link to a grayscale image. From here, values will be remapped according to a range set by the user. The remapped values will represent the absolute value of the difference between the high and low points on your site--this definition offers great freedom to determine the extremity of topography change across the site. Baking this component will provide you with a triangulated mesh base for your site. A fully commented version of this definition will be made available to the class.
Modeling Methods
75
Media and Tools Documentation
Remember: the profile of your final site will necessarily involve many iterations that will withallow it to align with neighboring sites and meet specifica corner elevations--this definitionwill only be part of the process that may involve working back and forth between rhinoterrain, grasshopper, and photoshop, to arrive at the final product.
Modeling Methods
76