Introductory Lesson: Gridded Systems

Tutorial Created Summer 2012

by Abigail Merlis

Objectives:

-Gain comfort with basic tools and commands in Grasshopper

-Develop an understanding of Grasshopper's syntax

-Create a grid of objects in Grasshopper and manipulate them parametrically

Project Application:

This model was created to develop a plywood screen with a series of gridded hemispheres routed from one side. The spheres' radii and depth in the plywood are parametrically controlled through this example. While the files and screenshots included here use this pattern, you can play with all the variables to determine other potentials for this simple project.

Introduction:

Each of the steps included herein offer explanations of the organizational/syntax logic relevant to that step along with hints on where to find components in the program. Something that I have found to be useful in learning Grasshopper is to dissect each part of a script by thinking of it as analogous to diagramming a sentence. It is helpful to look at complete scripts developed by others to understand how various elements relate to one another. Play with slider bars and rearranging components to see what happens--this is a great way to get a deeper understanding of the program. I have dissected each step so that the logic behind the procedures may become clear, but by all means feel free to adjust these steps to see what possibilities might emerge.

Steps:

For each step I have offered basic information on what is happening--click on the thumbnails for enlargements of screenshots and details on that step.

1. When developing a grid for any purpose in Grasshopper, start by determining the dimensions of that grid as well how many rows and columns you would like it to have. NOTE: When you select and place the slider component (in this and future steps) you can rename it so that you can keep track of what each slider is doing. This is an important part of managing your components in the program. Renaming can be done through double-clicking (?) the component and typing over "slider" in the drop-down menu that is displayed.

2. After your general grid parameters have been set up, Grasshopper can calculate the spacing between each of the points that comprise the grid.

3. As a continuation of step 2, you will now have Grasshopper determine the coordinate values for the points of the grid. The first three steps have set up the system for the grid that you will flesh-out going forward.

4. Here you will place points on the grid at each of the coordinates determined in step 3. You will also be moving those points up in the z-direction as, for this project, I wanted the spheres that will eventually take the place of the points to sit above the universal XY plane. NOTE: I'm using points here as placeholders because if I were to use spheres the program would become very slow as it would need to calculate the geometries of each sphere as we move through the process. Points require significantly fewer calculations and are helpful at this stage.

5. Step 5 involves making an "attractor curve" that will allow you to control the points on the grid in relationship to that curve (line). In this tutorial we will change both the position in the z-direction of the points based on their proximity to that curve.

6. For this part of the process you will be directing Grasshopper to link the height of the points in the z-direction to their proximity to the assigned curve. NOTE: You will need to copy the entire series that is grouped in purple from the supplied tutorial file as it contains an component that does not come with Grasshopper.

7. Finally, you will draw a box (that represents the sheet of material to be milled) and you will tell Grasshopper to substitute a sphere for every point on the grid. You will also perform a Boolean function that will subtract the volumes of the spheres from the volume of the box. This will then be a millable surface. Feel free to play with all sliders and components to see how you might adapt this simple sequence into a project you'd like to pursue.