Workshop5 Report Rhino- Grasshopper Parametric Truss
Vincent Sontani | ARCH380 | Summer 2011 | Rob Corser | Workshop 5
+ What is Grasshopper? Grasshopper is a visual programming language developed by Robert McNeel & Associates. It is basically a plugin for the 3D NURBS based program, Rhinoceros. Grasshopper is one of the strongest and most popular plugin for Rhinoceros 3D. It is mainly used by architects to create a complex form and geometry involving mathematical process. In Grasshopper, programs are created by dragging different components into the canvas. The outputs to these components can be connected to the input of another component by dragging cables. In this workshop, we have to create a parametric truss starting with just a line created in the Rhino program. By connecting that line to the grasshopper program, we can then create the desirable truss.
1
The Whole Definition Offset Top Curve
Trichordal Truss
Curving Process
Cross Bars Create Pipe
Preview
Extract Subcurve
Divide Curves
Display Pt Numbers and Create Diagonal Lines
Arraying Process
Rotation
Loft
This is the whole definition of my grasshopper truss. The one line that is originally created in the Rhino program is only connected to the very first component on the far left. That first component is then connected to the other components so that the desirable truss can be created. As seen on the picture above, the whole components are connected and related to each other.
2
Step 1 - Create and Offset Top Curve
The very first step is to connect the line created in Rhino to the Crv component on the top left. Then, in order to get the bottom chord of the truss, the top curve is moved in the negative Z direction, using the Z-unit component from the vector tab. The curve's distance can be adjusted by using the slider.
3
Step 2 - Extract Subcurve
The second step is to make the bottom chord smaller than the top chord. A subcurve is extracted from the bottom curve, allowing the ends of the bottom chord to be pulled in from the top. To create the subcurve a new domain for that curve must be created that is less than the original domain. To do that, the subtraction component is used. The size of the bottom chord can then be adjusted using the slider.
4
Step 3 - Divide Curves
The third step is to divide the curves into the desirable segments. The top and bottom curves are divided into a number of equal length segments. Then the subtraction component is used so that the bottom curve will have one less segment so that the diagonals of the truss can be created. The slider is used to determine the segments for the top curve.
5
Step 4 - Display Numbers and Create Diagonal Lines
The fourth step is to create the diagonal lines that connect the segments of the top and bottom curve. The display point numbers is an additional step that is used to make the process easier to understand. To make the number visible, we can just use the point list component from the vector tab. Then a line component is used to connect the list of points.
6
Step 5 - Create Pipe and Change Preview
The fifth step is to then to create a solid out of the truss wireframe, using the pipe command. The top and buttom chords and the diagonal lines are connected to two different pipe components. Each of the pipe component can be adjusted in terms of the radius of the pipes, using the sliders. Then the output from the pipe is connected to the custom preview component from the params tab. The preview is connected to the colour swatch component so that we can change the color of the finished truss. By finishing this step, a simple truss is already created. Then additional steps are taken to give the truss more variations. I decide to take the additional steps of creating the array process, rotation, trichordal truss, curved top and loft process.
7
Additional Step 1 - Arraying Process
The first additional step that I take is to make the arraying process, that allows you to determine how many additional truss to be displayed without having to copy paste the first truss. To make this possible, the multiplication component and move component are used together like shown above. The distance between each trusses and the number of additional trusses can be determined using the sliders. A change in the first truss will also cause the other trusses to change.
8
Additional Step 2 - Rotation Process
The next additional step taken is the rotation process which allows the array of trusses to rotate. The amount of rotation can be adjusted by the slider provided. To make the rotation possible, the first thing to do is to determine the rotation point, the rotation point is first created in the Rhino program, by puting a point in the middle of the original line. Then the point is assigned to the point component. Then the components rotate axis is used. The rotational axis is determined by the lines that are connected to the xyz vector component.
9
Additional Step 3 - Curving Process
The third additional step is the curving process which allows the top chord top take a curve forms. The component graph mapper is used to change the form of the top chord, we can choose the form of various mathematical graph such as bezier curve, sine curve, conics, parabola and many others.
10
Additional Step 4 - Trichordal Truss
The fourth additional step is to create a trichordal truss, which is a truss that has two top chords and a single bottom chord. The slider is used to determine the distance between the two top chords. To make this, the y unit components are used (changing one of the F into F) and connect it to the move component. To make the cross bars that connects the top chords, a line component is connected to the divide truss group.
11
Additional Step 5 - Loft Surface
The fifth additional step that I take is the loft process, which allows us to create a surface from the top of the truss. To do this is very simple, just add an explode tree component which allows us to branch the input from another output and connect it to the loft component which then generates the surface. The output of the loft is connected to the preview component which allows us to change the color of the surface.
12
Additional Step 6 - Combining the Steps
The last step taken is that to combine all the steps that are previously made. When combining the curve, rotate, array and loft process at the same time, those complex forms can easily be achieved.
13
Trusses 2D Graphics
There are so many types and forms of truss that can be generated using the grasshopper definition that is created. On the right, I show some of the possible form of trichordal truss that can be generated. To create the 2D graphics I use the make2D command from the Rhino 3D and edit it in Adobe Illustrator.
14
Change in the Rhino Curve
I tried to change the straight line that is created in Rhino at the very first step. I create a curved line and connect it to the first crv component. It turns out that everything works just fine, the trichordal, trimming, depth, loft, rotation, array and the other functions exactly the same way.
15
Conclusion I found that learning about Grasshopper is really interesting. Learning grasshopper might be very daunting at the begining, but once I tried it and getting the logic of the program, its much easier to learn. This program is actually similar to other programming programs such as visual basic, java or Sketchup's Dynamic Components. However, instead of using scripts, Grasshopper uses visual components that are connected to each other using cables to create the desired graphic. This really helps people who don't really understand about programming scripts, as this is more visual and the connection between the components are clearly visible. The concept itself is very unique and useful as it is much easier to learn than learning a programming script from the beginning. Moreover, it is also very easy to find information about Grasshopper online, through Youtube, blogs and many other links. Therefore, the learnability of this program is really high. By completing the workshop 5, I realized that Grasshopper is an extremely powerful plugin for Rhino. At the beginning, we are only required to make a simple line in the Rhino program, but by connecting it to the grasshopper definition, that simple line can be converted to a very complex and interactive truss. I think that Grasshopper is really suited to create any forms or geometries that are connected to mathematic expressions. In studio design projects, I think that Grasshopper is very suited in creating a complex building that is repetitive. When a change needs to be implemented, only the input in Grasshopper will be changed, instead of changing it one by one in Rhino. Grasshopper is also suited to make any buildings or installations that is interactive or movable, as it can be moved directly from the Grasshopper as well. I really believe that Grasshopper is really suited for students as well as professional architects as it is able to both create a very complex form and surface and sharpenning the logic at the same time. This plugin is definitely very powerful, the only drawback that I found while using this is only the user interface and the components. It is extremely easy to get lost when the definition starts to grow bigger and with so many wires connecting everywhere. Therefore, a nice grouping of the components is needed. It is also easy to get lost whenever I close the Rhino and re open it again.. Knowing how strong this program can be, I'm really excited to learn more about it in the future. I believe that Grasshopper will help me to create buildings or projects that is very complex and interactive at the same time.
16