Representation + Landscape
Landscape Architecure Program Graduate School of Design Harvard University
Spring 2022
Populating a Mesh
2
Representation + Landscape
Populating a Mesh
CONTE NTS
L i st of Co mpo nents
p a ge 0 6
“ Mo del l i ng ” a Tree
p a ge 0 7
Po pu l ati ng a Reg i o n
p a ge 0 9
Sel ecti ng Po i nts i n Cu rve
p a ge 1 7
Pl anti ng Trees i n a Reg i o n
p a ge 1 9
Adj u sti ng Tree Si zes u si ng an Attracto r
p a ge 2 3
Mov i ng the Trees to the Mesh
p a ge 2 5
3
4
Representation + Landscape
Populating a Mesh
Lis t of Compon ent s We are going to use these today:
Circle CNR (Center, Normal, Radius) Move Boundary Surface Extrude Cap Holes Grid Structure (Lunchbox) Diagrid Structure (Lunchbox) Hexagonal Structure (Lunchbox) Populate 2D Point in Curve Cull Pattern Curve Closest Point Bounds Construct Domain Remap Numbers Mesh | Ray Vector 2Pt
5
6
Representation + Landscape
Populating a Mesh
7
“Modellin g” a Tree We are modelling a simple abstraction of a tree
1. Use “Circle CNR” (Center, Normal, Radius) to create a circle for the base of the trunk, specify Radius 2. Use “Extrude” component, specify the height of extrusion by using “Unit Z” component and specifying the input Factor 3. Use “Cap Holes” component to make the trunk a solid brep (closed polysurface) 4. Use “Circle CNR” again to create a circle for the canopy 5. Use “Move” component to move the canopy up by the same height you extruded your trunk; you can use the output Unit Vector of “Unit Z” component you used for making the trunk 6. Use “Boundary Surfaces” to make a brep surface using the canopy outline 7. Yay, tree!
8
Representation + Landscape
Populating a Mesh
9
Popu lat in g a Region We are working on the c-plane to iterate through different planting schemes. Lunchbox plug-in is useful to test out various patterns. 1. Create a rectangular curve on the c-plane of the area you would like to test planting patterns 2. Use “Grid Structure (Lunchbox)” component, specify U & V divisions to adjust the density 3. Or, “Diagrid Structure (Lunchbox)” 4. Or, “Hexagonal Structure (Lunchbox)”
10
Representation + Landscape
Populating a Mesh
11
Popu lat in g a Region We are working on the c-plane to iterate through different planting schemes. Lunchbox plug-in is useful to test out various patterns. 1. Create a rectangular curve on the c-plane of the area you would like to test planting patterns 2. Use “Grid Structure (Lunchbox)” component, specify U & V divisions to adjust the density 3. Or, “Diagrid Structure (Lunchbox)” 4. Or, “Hexagonal Structure (Lunchbox)”
12
Representation + Landscape
Populating a Mesh
13
Popu lat in g a Region We are working on the c-plane to iterate through different planting schemes. Lunchbox plug-in is useful to test out various patterns. 1. Create a rectangular curve on the c-plane of the area you would like to test planting patterns. 2. Use “Grid Structure (Lunchbox)” component, specify U & V divisions to adjust the density. 3. Or, “Diagrid Structure (Lunchbox).” 4. Or, “Hexagonal Structure (Lunchbox).”
14
Representation + Landscape
Populating a Mesh
15
Popu lat in g a Region We are working on the c-plane to iterate through different planting schemes. Lunchbox plug-in is useful to test out various patterns. 1. Or, use “Populate 2D” component to create a random distribution of points within a given region. 2. Specify the input Region with the curve outline. 3. Specify the input Count. 4. Vary the input Seed to see different random configurations.
16
Representation + Landscape
Populating a Mesh
17
Select in g Point s in Cu rve We are going to “Cull” away unnecessary points
1. I have created a curve that represents a portion of the mesh that has a slope percentage that meets my criteria (0% to 40% in this case). 2. You set your own parameters based on your topographic analysis, or simply, area of interest. 3. We are using “Point in Curve” component to generate a boolean list (0 or 1, true or false) to use in “Cull Pattern” component. 4. Notice that I have Grafted the input Curve of “Point in Curve” because I am using two separate closed curves. If you’re using a single curve, don’t worry about this. 5. Because I grafted (made two separate branches according to the selection curve), I am Flattening the output “Points” to merge all points back into one branch (again, if you’re using a single selection curve, don’t worry about this just yet).
18
Representation + Landscape
Populating a Mesh
19
Plant in g Trees in a Region We are going to create our “trees” at every point we just generated
1. This is almost an exact repeat of page 7. 2. Except, instead of using a single point, we are going to input all of the points we just generated.
20
Representation + Landscape
Populating a Mesh
21
Plant in g Trees in a Region We are going to create our “trees” at every point we just generated
1. This one is using “Populate 2D” instead of “Grid Structure.”
22
Representation + Landscape
Populating a Mesh
23
Adju s t in g Tree Sizes u s in g an At t racto r We are going to use an attractor curve to adjust the height and canopy width of the trees 1. Instead of using a static input for the trunk height and canopy widths, we are using a curve attractor to create a size gradient 2. We are all familiar with the curve attractor concept, yes? yes. 3. Just to recap: 4. Use “Curve Closest Point” component, set input Point with the points we created in the previous workflow. 5. Set input Curve to the attractor curve you created in Rhino 6. “Remap Numbers” to remap the distances from the set of points to the closest points on the attractor curve to your specified domain. 7. This requires “Bounds” of the output Distance of “Curve Closest Point,” 8. and “Construct Domain” component to construct your own target domain. 9. Notice that I am duplicating this step for the canopy and the trunk, because they will require two different target domains. 10. Cool, a wonky forest with some sort of a size gradient!
24
Representation + Landscape
Populating a Mesh
25
Movin g t h e Trees to t h e Mes h We are going to move the trees that we created on the c-plane up to the mesh
1. Reference your mesh using “Mesh” container. 2. Using “Mesh | Ray” component, project the culled set of points in the “Unit Z” direction to the mesh. We are projecting the set of points on the c-plane up to our original mesh. 3. Using “Vector 2Pt” component, create a vector from the set of points on the c-plane to the set of points projected on the mesh. 4. Use “Move” component now to move the trunk and canopy using the newly created vectors. 5. I’ve noticed that it’s more reliable to use “Boundary Surfaces” and “Cap Holes” after you’ve moved the reference geometry. If you’re seeing weird results, try this method. 6. Yay, wonky forest with some sort of a size gradient sitting on some actual topography!