If you are looking to acquire skills in Grasshopper, we would like you to join our Computational Design with Grasshopper course. This course is for design professionals that are looking to learn the concepts and features of Grasshopper that are easy to follow at your own pace.

The purpose of this course is to explore forms and design possibilities with Grasshopper’s tools and understand their relationship to Rhino. ** Watch a few of the projects you will be able to create after the completion of this course!** The class should help you improve your workflow by covering modeling geometry, data structure, general concepts, data types, data matching, lists, trees, and of course, tons of creativity. It will provide you with a functional understanding of Grasshopper and parametric design thinking. The advantages of using Grasshopper in preliminary design and concept development come to life in numerous real-life examples throughout the course.

### Course Curriculum

- 1.1 We will use Rhino 6 or 7 for Windows in this course (0:45)
- 1.2 Yes, you can use your Rhino 6 or 7 for Mac OS in this course (1:41)
- 1.3 Download a Plugin called BiFocals, and install it or used the new Sunglasses plugin (5:59)
- 1.4 How to use BiFocals for this course (1:23)
- 1.5 Download the 3DM, Bitmaps and Grasshopper Definitions for this course as you go along
- 1.6 PC or Mac -> GH Review and Q&A

- 3.1 How to start Grasshopper and few ways to open a definition (1:58)
- 3.2 Grasshopper settings (4:25)
- 3.3 Cables, types, and how to manipulate them (7:13)
- 3.3 ... (a) (Quiz) Which key do you press to disconnect a cable from a grip?
- 3.4 The meaning of some colors in Grasshopper (3:39)
- 3.4 ... (a) (Quiz) What does it mean when you see an orange Param or Component?
- 3.5 How to make groups and organize your definitions (2:19)
- 3.5 ... (a) (Quiz) What is the shortcut to make a group
- 3.5 ... (b) (Quiz) Which keys do you press to find the location of a Param or Component?
- 3.6 All about the canvas (6:52)
- 3.7 The Interface -> GH Review and Q&A

- 4.1 Few basic parameters (6:40)
- 4.2 More details about the numeric slider (7:33)
- 4.2 ... (a) (Quiz) One question about the numeric slider
- 4.3 How to select Rhino geometry from Grasshopper (3:37)
- 4.4 The Panel, a param (Parameter) (7:09)
- 4.5 Boolean Toggle (4:42)
- 4.5 ... (a) (Quiz) What is the answer?
- 4.6 Exercise: Make a simple calculator (1:31)
- 4.7 Params -> GH Review and Q&A

- 5.1 What is a list and how important it is to understand them
- 5.2 Making a very simple list of points (0:37)
- 5.2 ... (a) (Quiz) Yes!!! time for a question !
- 5.2 ... (b) (Quiz) Look at this list of green limes ?
- 5.2 ... (c) (Quiz) What is the index value of the last item in any list?
- 5.3 Introduction to the Series component to make a list of numbers. (3:54)
- 5.3 ... (a) (Quiz) What is the list of numbers from this series?
- 5.3 ... (b) (Quiz) What list of numbers is the Series component making?
- 5.4 One way to use a list of numbers with the Construct Point component (3:00)
- 5.5 Homework with the Series component
- 5.6 Lists -> GH Review and Q&A

- 6.1.1 Curve -> Primitive: Line and line SDL (3:19)
- 6.1.2 Curve -> Primitive: Circle, Ellipse, CPlanes, and learn how to bake (3:56)
- 6.1.3 Curve -> Primitive: Arc 3Pt (2:29)
- 6.1.4 Curve -> Primitive: The Polygon and the Rectangle components (7:08)
- 6.1.5 Curve -> Primitive: How to Internalise Data (2:58)
- 6.2.1 Curve -> Analysis: Find the Endpoints as well as the Length of the curve (2:53)
- 6.2.2 Curve -> Analysis: Point On Curve and Evaluate Length (5:18)
- 6.2.3 Curve -> Analysis: Horizontal and Perpendicular Frames (6:40)
- 6.2.4 Curve -> Analysis: Curve Closest Point (3:52)
- 6.3.1 Curve -> Division: Divide curve (3:20)
- 6.3.1 ... (a) (Quiz) Curve -> Division: How many points and segments
- 6.3.2 Curve -> Division: Divide Distance and Divide Length (5:23)
- 6.3.2 Curve -> Division: Horizontal and Perpendicular Frames (4:19)
- 6.3.2 ... (a) (Quiz) About the Domain of a curve
- 6.4.1 Curve -> Spline: Polyline, interpolate, and control point curve (4:26)
- 6.4.2 Curve -> Spline: Tween Between, and the Range Component (7:10)
- 6.4.2 ... (a) (Quiz) About the Range component
- 6.4.3 Curve -> Spline: Iso Curves (3:46)
- 6.5.1 Curve -> Utilities: Join and Fillet curves (3:11)
- 6.5.2 Curve -> Utilities: Extend and Offset curves (5:48)
- 6.5.3 Curve -> Utilities: Rebuild Curve (3:06)
- 6.5.4 Curve -> Utilities: Project to a BRep ( Surface or Solid) (4:48)
- 6.6.1 Curve -> Exercise 1: Design a very simple wireframe 3D-Chair (6:25)
- 6.6.2 Curve -> Exercise 2: 3D Ring with pipes and more (7:28)
- 6.6.3 Curve -> Exercise 3: Tween in between, a wall or a roof ? (10:05)
- 6.6.4 Curve -> Exercise 4: Tween and a 3D Ring (4:09)
- 6.7.1 Curve -> GH Review and Q&A

- 7.1.0 Tree -> Introduction to Flatten and how to make a Tree into a List (3:20)
- 7.1.1 Math -> Operators: Addition, subtraction, multiplication, division, and absolute value (3:07)
- 7.1.2 Math -> Operators: Multiply by -1 (0:58)
- 7.1.3 Math -> Operators: Mass Addition (2:47)
- 7.1.3 ... (a) Math -> Operators: (Quiz) What is the result and partial result
- 7.2.1 Math -> Util: Max, Min, and Pi (5:21)
- 7.2.2 Math -> Util: Round (2:19)
- 7.3.1 Math -> Domain: Construct and deconstruct a domain (1:24)
- 7.3.2 Math -> Domain: Remap Numbers and Bounds (4:19)
- 7.3.2 ... (a) Math -> Domain: Exercise with Remap and Bounds (4:26)
- 7.3.2 ... (b) Math -> Domain: (Quiz) About Remap
- 7.4.1 Math: -> Script: The Expression Component (5:40)
- 7.4.1 ... (a) Math: -> Script: (Quiz) What is the Expression output
- 7.5.1 Param -> Input: Graph Mapper (6:27)
- 7.5.1 ...(a) Param -> Input: Exercise about the Graph Mapper (4:58)
- 7.6.1 Vector -> Point : Distance Component ( BOGO ) (1:22)
- 7.7.1 Math -> Exercise #1: Remap Numbers (6:32)
- 7.7.2 Math -> Exercise #2: Numbers with 1 or 2 decimals only (5:45)
- 7.7.3 Math -> Exercise #3: Any number greater than or Less than (5:52)
- 7.8.1 Math -> Homework and the new Modulus component (3:08)
- 7.9.1 Math -> GH Review and Q&A

- 8.1.1 Sets -> List: List Length and list item (4:54)
- 8.1.2 Sets -> List: Reverse a list and Sort a list (6:16)
- 8.1.3 Sets -> List: Cross reference (6:02)
- 8.1.4 Sets -> List: Dispatch (7:38)
- 8.1.4 ...(a) Sets -> List: Exercise with the Dispatch and Closed Curves (2:50)
- 8.1.4 ...(b) (Quiz) How many closed curves does the Dispatch outputs in List A?
- 8.1.5 Sets -> List: Partition List (2:21)
- 8.2.1 Sets -> Sequence: Cull Index (Remove) (1:22)
- 8.2.1 ...(a) (Quiz) What is the last list of numbers?
- 8.2.2 Sets -> Sequence: Cull pattern (3:48)
- 8.2.2 ...(a) (Quiz) What is the pattern?
- 8.2.2 ...(b) (Quiz) What is the pattern from these Series?
- 8.2.2 ...(c) (Homework) Without adding another Param or Component how can you make those two lists?
- 8.2.3 Sets -> Sequence: Random and Random Reduce, meet Pedro or Pietro :-) (6:10)
- 8.2.3 ... (a) (Homework) From the Rectangular array, make something similar to the other two groups
- 8.3.1 Sets -> Text: Concatenate Text and Text Tag 3D (4:43)
- 8.4.1 Param -> Input: Boolean Toggle, Button Toggle, and Value List (5:38)
- 8.4.2 Sets -> Tree: Stream Filter and Stream Gate (9:21)
- 8.5.1 Sets -> Exercise 1: Sort a list of curves (7:58)
- 8.5.2 Sets -> Exercise 2: Random grid of circles (9:29)
- 8.5.3 Sets -> Exercise 3: Curve Magnet (10:14)
- 8.5.4 Sets -> Exercise 4: Parametric 3D Ring with a Point Magnet (16:05)
- 8.5.5 Sets - > Exercise 5: The Param Image Sampler working with the Expression and the Dispatch components (10:43)
- 8.6.1 Sets -> GH Review and Q&A

- 9.1.0 Vector -> Boundary Surface and Extrude (BOGO) (2:22)
- 9.1.1 Vector -> Plane: XY, YZ, XZ, and Deconstruct Plane (3:22)
- 9.1.1 ... (a) (Quiz) about the Right Hand Rule
- 9.1.2 Vector -> Plane: Align and Rotate Planes (3:09)
- 9.1.3 Vector -> Plane: Offset Planes (1:52)
- 9.2.1 Vector -> Vector: Unit X, Unit Y and Unit Z vectors (4:11)
- 9.2.1 ... (a) (Quiz) about the direction of a vector
- 9.2.2 Vector -> Vector: Amplitude (3:53)
- 9.2.3 Vector -> Vector: Reverse and Rotate (7:59)
- 9.2.3 ... (a) (Quiz) about Reversing a vector
- 9.3.1 Vector -> Grid: Populate 2D and Populate Geometry (3:27)
- 9.3.2 Vector -> Grid: Hexagonal (2:59)
- 9.3.3 Curve -> Primitive: Arc SED Start End Direction (BOGO) (3:47)
- 9.4.1 Vector -> Exercise 1: Extrude in both directions (3:49)
- 9.4.2 Vector -> Exercise 2: Align and Random Rotate all the CPlanes (4:44)
- 9.4.3 Vector -> Exercice 3: Pull Point and the Hexagonal Grid (5:44)
- 9.5.1 Vector -> GH Review and Q&A

- 10.1.1 Surface -> Primitive: Sphere (1:42)
- 10.1.2 Surface -> Primitive: Center Box (1:36)
- 10.1.3 Surface -> Primitive: Plane Surface (2:20)
- 10.1.4 Surface -> Primitive: Bounding Box (3:01)
- 10.2.1 Surface -> Freeform: 4Point Surface (3:19)
- 10.2.2 Surface -> Freeform: Edge Surface (2:54)
- 10.2.3 Surface -> Freeform: Loft and Loft Options (3:32)
- 10.2.4 Surface -> Freeform: Sweep 1 Rail (5:42)
- 10.3.1 Surface -> Analysis: Area and Volume (2:45)
- 10.3.2 Surface -> Analysis: Deconstruct Brep (5:24)
- 10.3.3 Surface -> Analysis: Evaluate Surface (6:32)
- 10.3.4 Surface -> Analysis: Surface Closest Point (4:05)
- 10.3.5 Surface -> Analysis: Dimensions of a Surface (1:12)
- 10.4.1 Surface -> Util: Divide Surface and Surface Frames (7:28)
- 10.4.2 Surface -> Util: Cap Holes (3:47)
- 10.4.2 ... (a) (Quiz) How many Faces, Edges, and Vertices ?
- 10.4.3 Surface -> Util: Isotrim and Divide Domain (3:21)
- 10.4.3 ... (a) (Quiz) How many Faces, Edges, and Vertices ?
- 10.5.1 Surface -> Exercise #1: Parametric Tower (11:20)
- 10.5.2 Surface -> Exercise #2: Making cylindrical cutters around a circle (7:00)
- 10.5.3 Surface -> Exercise #3: Parametric Facade with a Point Magnet (6:43)
- 10.5.4 Surface -> Exercise #4: 3D-Chair with a curve magnet (5:30)
- 10.5.5 Surface -> Exercise #5: Parametric 3D Ring adjusting the seam of a circle (15:24)
- 10.5.6 Surface -> SubD -> Exercise #6: SubD-MultiPipe (9:15)
- 10.6.1 Surface -> GH Review and Q&A

- 11.1.1 Transform -> Euclidean: Move (3:53)
- 11.1.2 Transform -> Euclidean: Rotate (4:46)
- 11.1.2 ...(a) (Quiz) Is this correct ?
- 11.1.3 Transform -> Euclidean: Mirror (1:09)
- 11.1.4 Transform -> Euclidean: Orient like Remap to CPlane in Rhino! (3:17)
- 11.2.1 Transform -> Affine: Scale 3D (4:19)
- 11.2.2 Transform -> Affine: Scale NU ( X, Y, Z ) (2:23)
- 11.2.3 Transform -> Affine: Project (4:25)
- 11.3.1 Transform -> Morph: Surface Box (5:31)
- 11.3.2 Transform -> Morph: Box Morph (5:26)
- 11.3.3 Transform -> Morph: Flow along curve (5:43)
- 11.3.4 Transform -> Morph: Splop (5:13)
- 11.3.5 Transform -> Morph: Maelstrom (4:33)
- 11.3.6 Transform -> Morph: Twist (4:05)
- 11.3.7 Transform -> Morph: Surface Morph (5:46)
- 11.3.8 Transform -> Morph: Map to Surface & Pull Curves (4:18)
- 11.4.1 Transform -> Util: Group and Ungroup (3:20)
- 11.5.1 Transform -> Exercise #1: (BOGO) and Map to Surface (4:03)
- 11.5.2 Transform -> Exercise #2: Tiles like Truchet Patterns (10:16)
- 11.5.3 Transform -> Exercise #3: Unroll on the floor (XY CPlane) the cross section of the 3D-Chair (4:47)
- 11.5.4 Transform -> Exercise #4: Group and Ungroup (5:00)
- 11.5.5 Transform -> Exercise # 5: Random Variable Pipes (13:40)
- 11.6.1 Transform: GH Review and Q&A

- 12.1.0 Sets -> Tree -> Introduction to Flatten and how to make a Tree into a List (3:20)
- 12.1.1 Sets -> Tree: Go over the Graft Tree component (5:37)
- 12.1.2 Sets -> Tree: Using the Graft component with points (6:07)
- 12.1.3 Sets -> Tree: Statistics and the Param Viewer (5:46)
- 12.1.3 ... (a) (Quiz) What is the output of the Length grip?
- 12.1.4 Sets -> Tree: The Flip Matrix component (6:42)
- 12.1.4 ... (a) (Quiz) Sets -> Tree: How many Branches ?
- 12.1.5 Sets -> Tree: Explode Tree (2:16)
- 12.1.6 Sets -> Tree: Flatten and UnFlatten a Tree (7:22)
- 12.1.6 ... (a) Sets - > Tree: Short exercise with the Flatten and UnFlatten components (9:23)
- 12.1.7 Sets -> Tree: Select a Branch from a Tree and an item from a Branch (5:02)
- 12.2.1 Sets -> Tree: Exercise #1: Make Random numbers to create more Random numbers (13:50)
- 12.2.2 Sets -> Tree: Exercise #2: Open and close shadows windows on a facade (13:57)
- 12.2.3 Sets -> Tree: Exercise #3: Basket and Prongs for a Ring (9:31)
- 12.2.4 Sets -> Tree: Exercise #4: The Voronoi is a nice project for using Trees (12:40)
- 12.3.1 Sets -> Tree: GH Review and Q&A

- 13.1.1 Intersect -> Shape: Region Union, Difference and Intersection (2:59)
- 13.1.2 Intersect -> Shape: Solid Union, Difference and Intersection (9:58)
- 13.1.3 Intersect - > Shape: Box Slits (4:03)
- 13.1.4 Intersect -> Shape: Region Split (4:04)
- 13.2.1 Intersect -> Mathematical: Brep with a CPlane (Construction Plane) (8:51)
- 13.3.1 Intersect -> Physical: Brep with Brep (3:54)
- 13.3.2 Intersect -> Physical: Surface Split (2:51)
- 13.4.1 Intersect -> Exercise #1: Boxy Bookshelf (8:18)
- 13.4.2 Intersect -> Exercise #2: Wireframe Lamp with Region Slits (10:14)
- 13.5.1 Intersect -> (Quiz & Homework) How many intersection the Brep - Brep will give us?
- 13.6.1 Intersect -> GH Review and Q&A

- 14.1.1 3D Parametric 3D Ring with a nice Voronoi (15:02)
- 14.1.2 Transform using Move, Scale 3D and Rotate around a CPlane (15:23)
- 14.1.3 Parametric Facade with magnets (18:01)
- 14.1.4 Take advantage of the information from the Image Sampler (9:32)
- 14.1.5 Finish the Prongs for the Basket - Head of the ring (11:29)
- 14.1.6 The Remote Control Panel and set up few stages (7:30)
- 14.2.1 This is the end of this long and hard course, but the beginning of...

#### Hi, I’m Andres your instructor

Andrés is a software trainer and developer since the 1980s. He has developed applications for diverse design markets as well as training materials for different CAD and Design software products, including AEC Metric PRO, Mepal Draw, and the Integrator (BIM) for Autocad (2010-2016). Also, he has created training materials for the Rhino community at www.rhino3d.tv. Andrés has also written numerous multimedia instructional materials for Rhino, Flamingo, Grasshopper, RhinoCAM, SudoHopper3D, etc.