What is Grasshopper?
Grasshopper is a graphical algorithm editor that works with Rhino’s 3-D modeling tools allowing users to create algorithmic/generative forms in Rhino – without having to use RhinoScript or have knowledge of programming.

Normally when modeling in Rhino, the numbers generating the drawn forms are internal to the Rhino software system and the user does not have access to those numbers. With Grasshopper, the designer defines the parameters (i.e. numbers) hence the term parametric modeling. This allows external data to be used to model the elevation of terrain or to introduce variation to a building facade, i.e. generative modeling.
The interface of Grasshopper visually looks like MAX/MSP. Components of the program are linked together and sliders allow the user to change the parameters. This allows components of the model to be adjusted in relationship to each other. Visual programming within a drag and drop interface allows the user to create algorithmic forms without writing script and to immediately see the result of adjustments.

Grasshopper has basic built-in math functions and can be used with programming languages such as Python, C# and VB. External data can also be used including JSON allowing for conditional design. Grasshopper is slowly replacing Python scripting in Rhino.
There are many extra tools and plugins developers have created for Grasshopper to extend its abilities. One popular and common plugin is Firefly, which allows the use of input/output devices with Grasshopper including Arduino microcontrollers, web cams, mobile phones, game controllers and more. Users can sample from the live data streams to explore virtual and physical prototypes, such as using the colors of a live video feed to determine shading of terrain.
There are many extended uses of Grasshopper via Firefly’s additional functionality. Example projects on the Firefly website include Kinect controlled robotic arms, sampling from web camera stream to determine color values, and controlling LEDS using Kinect. Firefly allows one to use Firefly with an Arduino to control mechanical projects, and extends the functionality further with computer vision.
Grasshopper is a work-in-progress and the project of a single developer. There is limited user support for troubleshooting issues. Like many CAD programs, the user experience design is limited and clunky.
Where can I learn more?
For a more in-depth tutorial of Grasshopper, check out the wiki site of the Delft Architecture School. There are also many video tutorials on Vimeo and Youtube. The Grasshopper website also includes resources.
Where can I download it?
Grasshopper can be downloaded from the Grasshopper website. It’s free, but requires at least Rhino 4.0 and works only with Windows.
*Thanks to Meg Studer for demoing Grasshopper and sharing many useful insights on the program.