This section introduces basic Grasshopper concepts through annotated Grasshopper definitions. These are intended to be used in conjunction with the Grasshopper tutorials to provide further explanation for the outcomes reached within the tutorials.


Introduction to GH

Some fundamental changes to Grasshopper have occurred in the past few years involving data structure, script-like functionality and interface improvements. This GH definition leads you through these improvements.


Like any form of documentation, or within any working space, Grasshopper definitions should be annotated and described, and inputs, transformations and outputs described in a manner that others can understand and use what you have created. It is also for you, when you look back over your work days, weeks or months later, so you can grab that little section of script you want to use again. This example GH Definition introduces the different types of annotation available in Grasshopper.

VB Inputs

This definition introduces you to VB scripting components. Grasshopper has two types of VB component, the older ‘legacy’ version and the newer RhinoCommon version. The difference between the two is quite significant, many primitive objects (points, vectors, surfaces etc) are given different names and methods in the new component.


Data Types

Grasshopper is a tool for manipulating data. Data allows you to easily transition between the medium of different objects as most objects in CAD software are made up of combinations of simpler data types, or primitive types. These fundamentals of data types must be understood in order to use Grasshopper to its full potential. This Definition illustrates different types of data sources from different types of objects, how you can extract the data, visualize the data and the structures of the data.


Data Structures

Data is stored within grasshopper components in a highly organised fashion. Most grasshopper components manipulate data tree structure. Structure allows us to selectively perform multiple operations on collections of objects. This definition illustrates how data can be manipulated by Grasshopper components.



Some key concepts and components for parametric modelling which builds on examples from the tutorials. This definition will extend your knowledge of objects and structures to include the concept of:
mapping, domains and space syntax.
patterns and list manipulation
flow control


User Objects

Grasshopper definitions become unusable (and impossible to communicate) when poorly organised or very large. In order to keep the file useful and flexible, compacting the functionality of the overall definition into smaller units is essential. This definition introduces Grasshopper clusters or User Objects.