Foundations · 01
Level Beginner
Time 30 minutes
You need Rhino 7/8 with Grasshopper
Grasshopper is not a modelling tool. It is a tool for describing how a model should be built, so the model can rebuild itself every time you change your mind. Instead of drawing a circle, you place a component that makes circles, feed it a radius, and let Rhino draw the result. Change the radius and the circle updates instantly — along with everything downstream of it. That single idea, geometry as the output of a live definition rather than a frozen drawing, is what makes parametric design worth learning.
Before any of that pays off, you need to be comfortable in the interface. This first tutorial is a guided walk around the Grasshopper environment: the canvas, the component ribbon, parameters versus components, wires, and the shortcuts fluent users lean on. By the end you will have built a small working definition and know where everything lives.
Opening Grasshopper
Grasshopper ships inside Rhino — there is nothing extra to install. Start Rhino, type Grasshopper at the command line, and press Enter. A second window opens floating above the Rhino viewports. This is the Grasshopper editor, and it stays linked to the Rhino document underneath it: geometry you generate here is drawn live in the Rhino viewports, and Rhino geometry can be referenced into your definition.
Keep both windows visible if you can — Grasshopper on one side, a Rhino perspective viewport on the other. You will be glancing between them constantly.
The canvas and the component ribbon
The large empty area is the canvas. This is where you assemble your definition by placing components and wiring them together. Scroll the mouse wheel to zoom, and drag with the right mouse button to pan. There is no rotation — the canvas is a flat, effectively infinite pinboard.
Across the top sits the component ribbon, organised into tabs. In Rhino 7 the vanilla tabs are Params, Maths, Sets, Vector, Curve, Surface, Mesh, Intersect, Transform and Display; Rhino 8 adds a Rhino tab for working with model objects, attributes, blocks and annotations. Each tab is subdivided into panels — under Curve, for instance, you will find panels for Primitive, Analysis, Division and so on. Click a panel’s title bar to open a drop-down listing everything it contains, then click an item and drop it on the canvas. Any plug-ins you install later appear as extra tabs.
Do not try to memorise the ribbon, because there is a faster way: double-click any empty spot on the canvas and a search box appears. Type a few letters of a component’s name and place it straight from the results. This is how experienced users place almost everything — component names are mostly plain English: Circle, Move, Divide Curve, Extrude.
Parameters versus components
Everything you place on the canvas is one of two kinds of object, and the distinction is worth internalising early.
- Parameters store data. They live mostly in the Params tab and are drawn as small, single-cell capsules. A Point parameter holds points, a Curve parameter holds curves, a Number parameter holds numbers, a Colour Swatch holds a colour. Parameters do not calculate anything — they are containers, and they are also how you bring existing Rhino geometry into a definition: right-click a Curve parameter and choose Set one Curve, then pick a curve in the viewport.
- Components do work. They are the wider boxes with inputs on the left and outputs on the right. Divide Curve takes a curve and a count and produces points; Extrude takes a base and a direction and produces a surface. A component receives data, performs an operation, and hands the result on.
The flow is always left to right: data enters a component’s inputs on its left edge and leaves from its outputs on the right edge. Think of a factory line — parameters are pallets of raw material, components are the machines, wires are the conveyor belts.
One display note: Grasshopper can label objects with icons or with text names, controlled by Draw Icons and Draw Full Names in the Display menu. If your canvas looks different from a screenshot you are following, check there first.
Wires: how data travels
To connect two objects, hover over an output until you see its grip, then drag a wire to the input you want to feed. Release, and the connection is live — the receiving component recomputes immediately. To connect several sources into one input, hold Shift while dragging additional wires; to remove a wire, hold Ctrl and drag from the input back to the output you want to disconnect. Right-clicking an input also offers a disconnect option.
Wires also tell you something about the data they carry. A single thin wire carries one item. A double line carries a list. A dashed double line carries a data tree — a list of lists, covered properly later in this track. Start noticing the styles now; reading them at a glance makes debugging fast.
When you want to see the actual data rather than infer it, wire any output into a Panel (Params → Input → Panel). The Panel prints its contents as text — numbers, point coordinates, whatever arrives. Its sibling, the Number Slider, is the standard way to feed adjustable numeric input into a definition. Panel and Number Slider will appear in virtually every definition you ever build.
Previewing geometry in the Rhino viewport
Geometry produced on the canvas is drawn in the Rhino viewports as a preview. With default settings, previewed geometry appears red when its component is unselected and green when selected — so selecting components on the canvas doubles as a way of locating their geometry in the viewport.
Preview geometry is a projection of the definition, not real Rhino geometry: you cannot select it, snap other Rhino commands to it as an object, or export it. When you want the real thing, right-click the component and choose Bake, which writes actual Rhino objects into the document on a layer of your choosing. Bake at the end of a study, not during it — while you are designing, the live preview is the point.
Build it: your first definition
This five-minute build produces a circle with an adjustable radius, extruded into a cylinder.
- Double-click an empty patch of canvas and type circle. Choose the plain Circle component (Curve → Primitive). It has a Plane input and a Radius input; by default the plane is the world XY plane at the origin, which is fine.
- Double-click the canvas again and type 5. The search box recognises numeric input and offers to create a Number Slider preset to that value. Place it to the left of the Circle.
- Drag a wire from the slider’s output to the Circle’s R input. A red circle appears in the Rhino viewport.
- Drag the slider’s grip. The circle resizes live. This is the whole parametric idea in one gesture.
- Double-click the canvas, type unit z, and place Unit Z (Vector → Vector). It outputs a vector pointing straight up, with a Factor input controlling its length.
- Place an Extrude component (Surface → Freeform). Wire the Circle’s C output into Extrude’s Base input, and Unit Z’s output into the Direction input. A cylinder appears.
- Add a second Number Slider and wire it into Unit Z’s F input so the height is adjustable too. You now have a two-slider cylinder: radius and height, both live.
- Finally, wire the Circle’s C output into a Panel as well and read what it says. One output feeding two destinations is completely normal — data fans out freely.
In the compact chain notation used throughout this library, that definition reads:
Number Slider → Circle (R)
Circle (C) → Extrude (B)
Number Slider → Unit Z (F) → Extrude (D)
Enable, disable and preview toggles
Right-click any component and you will find two toggles you will use daily. Preview controls whether the component’s geometry is drawn in the viewport — switch it off for intermediate construction geometry so only the result shows. Enabled controls whether the component computes at all; a disabled component is greyed out and everything downstream of it stops, which is invaluable for isolating problems or parking expensive parts of a large definition. Both toggles also sit on the radial menu that appears when you press the middle mouse button (or the spacebar) over the canvas.
The zoomable UI
Grasshopper’s interface reveals detail as you zoom — the zoomable UI. Zoom in close on many components and small + and − buttons appear beside their inputs, letting you add or remove input slots directly; try it on Merge (Sets → Tree), which accepts as many inputs as you care to give it. If a component feels like it ought to be editable, zoom right in and look before hunting through menus.
Shortcuts worth memorising now
Grasshopper has few shortcuts, so the ones that exist carry real weight. These are the beginner set:
- Double-click canvas — open the component search box. The single most important gesture in Grasshopper.
- Right-drag to pan, scroll to zoom the canvas.
- Alt+drag a selection — duplicate it.
- Shift+drag a wire — add a connection to an input; Ctrl+drag — remove one.
- Ctrl+Q — toggle preview on the selected components; Ctrl+E — toggle enabled state.
- Ctrl+G — group the selection (a coloured backdrop that keeps related components together).
- Ctrl+Alt+click a placed component — Grasshopper points out where it lives in the ribbon. Excellent for learning the palette from tutorials.
- F5 — recompute the whole solution.
Practice
- Rebuild from search alone. Close and reopen Grasshopper, then rebuild the cylinder definition without touching the ribbon — every object placed via the double-click search box. Time yourself; under two minutes is a pass.
- Reference and inspect. Draw a freeform curve in Rhino. Place a Curve parameter, right-click it, choose Set one Curve, and pick your curve. Wire it into a Panel and into a Divide Curve component (Curve → Division) with a slider on the N input. Watch the division points update as you drag the slider, then use Ctrl+Q and Ctrl+E on Divide Curve and observe exactly what each toggle changes in the viewport.
- Read the wires. In the same definition, compare the wire leaving your slider with the wire leaving Divide Curve’s Points output. One is a single line, one is not. Write down, in one sentence, why.
That is the whole environment: a canvas, a ribbon you will mostly bypass, parameters that hold, components that compute, wires that carry. Next in this track we put the canvas to work on real geometry — the full series lives in the Members Library.
Members Library
That was one of the three free lessons
The other nine — data trees, geometry, C# scripting and fabrication — are in the Members Library, along with every new lesson we publish.