This website is made for modern browsers. You are seeing this, because your browser is missing a feature or two. Please install the latest update or switch to a modern browser. See you soon.




Command prompt
Status bar
View of a Rhino window.
Command prompt

Allows typing command names directly and setting the options for commands. History is shown in the window above.


If the gumball feature is activated in the status bar, then, after selecting one or more objects in the viewport, the gumball widget is shown which provides shortcuts to move, scale, and rotate the selected objects.


Displays information about the document properties, global and selection-specific properties, and special dialogues, like layer management or rendering. Content is organized in panel tabs and sometimes there are subtabs, like those available through the icons in the properties tab.

Status bar

Displays global properties and provides toggles for easy access.


Provides access to commonly used commands, organized in toolbar groups. Changing a group will also change the icons listed left of the viewport.


Displays the working environment for Rhino. Double-clicking the viewport title will toggle between one maximized viewport and multiple smaller viewports. Right-clicking the viewport title will open a menu to set everything related to the view.


Component ribbon
Canvas toolbar
Canvas search
Radial menu
View of a Grasshopper window

A Brep, short for boundary representation, is a shape consisting of multiple trimmed or untrimmed surfaces that are connected to each other. Its elements are faces, edges, and vertices.


The canvas is the primary working environment in Grasshopper and the drawing board to create an algorithm. Objects can be placed, connected, and moved on the canvas in a manner of visual programming.

The Canvas search is a search box to quickly find and place objects on the canvas.

Canvas Toolbar

Provides some quick actions on the left and settings for the preview in Rhino on the right.


Components are the building blocks for algorithms and perform a narrow task each. By combining them with wires, complex algorithms can be created. They can be placed on the canvas by drag and drop from the component ribbon or through the canvas search. Right-clicking the middle of a component opens its context menu.

Component ribbon

The component ribbon or component toolbar is organized in tabs and displays all components that Grasshopper and its plugins offer. They are organized by functionality or by plugin. Objects can be drag and dropped from here to the canvas.


A container is similar to a component, but does not perform any transformation. It holds or references values, for example a point or a list of geometry from Rhino.


A face is a piece of a greater collection, like a Brep or a mesh, and describes an areal element. Besides faces, there are edges and vertices that together form a Brep or mesh.

Input / Output grip

The half circles on the left and right side of components and containers are their input and output grips. Wires can be drawn between them and they offer an individual context menu by right-clicking them.


Geometry that is in preview mode (component’s body is in a lighter gray compared to when preview mode is off) is displayed in the Rhino viewport. Selected objects are previewed in green and non-selected in red (default colors). If the option Only draw preview geometry… is activated (half green cylinder in the canvas toolbar), then only the selected objects are previewed in Rhino, regardless of whether the preview mode is activated for the selected objects or not.


The connections between the objects on the canvas are called wires and they can be drawn with various methods. The display of the wires indicates the data structure that is transported: A single line represents a single data item. A double line represents items in a list and a dotted line indicates that the data is structured as a data tree. Right-clicking the input grip, with a wire is connected to, allows changing the wire display.

Zoomable User Interface (ZUI)

Some components (like List Item) offer the possibility to add and remove input and output grips. This is done by zooming in on the component until labels for action appear.

Some components let you add grips by zooming in.


Array / List

An Array is a collection of data in a list format. Subtleties of programming languages aside, when we talk about lists and arrays in Grasshopper, we usually mean the same thing. Every item in a list gets an index and the sequence is fixed. In Grasshopper, the index is not passed between operations, so every list starts with index 0. Rearranging the list will lead to a new assignment of indices for the list’s items.

Data treesin Grasshopper are technically lists of lists or arrays within arrays. Contrary to the just described behavior of lists in Grasshopper, they receive a fixed index, for example 0;1. Yet, in Grasshopper terminology this is now called a Branch, not a list. The whole list of lists is called a Tree. Splitting a list of branches will not lead to a reset of the naming scheme, but the branch will keep its index.


The Boolean data type allows a parameter to have two possible states, called True and False. Respectively, they can also be represented as integers: 1 and 0. Booleans are useful for conditional statements and in Grasshopper often used to filter lists and as a toggle of some kind. See how-to Conditional Statementsfor various possibilities to retrieve a list of Booleans.


An integer is a data type that can only be numbers without fractions. In Grasshopper, it is often used for counting and indexing of lists.


A seed is a number to initialize a number generator for producing random values. Some components in Grasshopper, for example Jitteror Populate Geometry, take a seed as input to introduce randomness. However, the formula to create this randomness is fixed and therefore the outputted values are foregone. The advantage is that a randomly created pattern is not changing between recalculations in Grasshopper and thus the randomness can become a stable part of the design.


A string is a data type that contains a sequence of characters. Usually they serve informational purposes or to gain Booleans by comparing two strings. In Grasshopper, strings can also be cast to other data types: 1,4,5 will become a point with the coordinates x=1, y=4, z=5.

This page is open source. Edit it on GitHub or see how you can contribute.

Up next