Lesson 4.1Lesson 4.1 · Geometry & Transformations
Points, Vectors & Planes
The three primitives every definition is quietly built on
Points, vectors and planes are the three words that geometry is spelled with - learn them properly and every later component stops being magic.
Every dazzling parametric facade, every form-found shell, every panelized roof bottoms out in three primitives: a point (a position), a vector (a direction with a length), and a plane (a little coordinate frame that says where and which-way). Nothing else in Grasshopper is possible without them.
Most beginners rush past this and pay for it later, when a wall of geometry ends up rotated ninety degrees the wrong way and they have no idea why. So we slow down. Get points, vectors and planes into your fingers now, and the rest of the course feels like assembling parts you already understand.
Where / which-way / frame. Unitize then Amplitude. Wrong orientation? Fix the plane.
A point is a position - and Construct/Deconstruct is how you talk to it
A point is the simplest primitive: a single location in space, three numbers {x, y, z}. That is all it is - no size, no direction. In Grasshopper you rarely type coordinates; you generate points. The two components you will use constantly are Construct Point (feed it x, y, z sliders and it builds a point) and Deconstruct Point (feed it a point and it hands back the three numbers). This pair - build-from-parts and break-into-parts - is a pattern you will see for almost every geometry type in this course.
Why does it matter so much? Because points are the anchors everything hangs from. A wall starts at a point, a column sits on a point, a curve is drawn through a list of points, a facade panel is placed at a point on a surface. When you learn later modules - dividing a curve, sampling a surface, laying out an attractor grid - the output is almost always points, and you steer the design by moving them. Get comfortable reading a point as "just three numbers I can compute" and you have the mental model that unlocks the rest. A common early habit worth building: whenever you are stuck, Deconstruct the geometry back to its points and look at the raw numbers - the bug is usually visible there. Points are also the cheapest, most legible thing to display while you work, so seasoned users scatter them liberally as diagnostic breadcrumbs across a definition.
Point = 3 numbers, no size, no arrow. Construct builds it, Deconstruct opens it up.
A vector is direction PLUS magnitude - and it has no home
A vector looks like a point - it is also {x, y, z} - but it means something completely different. A vector encodes a direction and a magnitude (a length), and crucially it has no fixed position. The vector {0, 0, 5} means "go 5 units straight up" no matter where you are standing. That homelessness is the whole point: a vector is a movement or an aim, not a place. Confusing points and vectors is the single most common beginner error, because Grasshopper draws them similarly and both have three components.
The practical distinction: you place points, you apply vectors. Move takes geometry plus a motion vector and shifts it. Rotate takes an axis vector. A surface hands you a normal vector telling you which way is 'out'. Grasshopper has friendly unit-vector shortcuts - Unit X, Unit Y, Unit Z - that give you a length-1 arrow along a world axis, and Vector 2Pt builds a vector from one point to another (this is how you get 'the direction from A to B'). Once you internalise that a vector answers "which way and how far", not "where", the components stop blurring together.
Unit vectors and Amplitude - separating aim from distance
Here is a professional habit that pays off endlessly: separate the direction of a move from its distance. A vector bundles both together, which is awkward when you want to reuse an aim at different lengths. The fix is two components. Unitize (or the 'Unit Vector' component) rescales any vector to length exactly 1 while keeping its direction - now it is a pure aim. Amplitude then sets that unit vector's length to whatever number you feed it. So the idiom is: unitize to get the direction, then Amplitude to set the exact distance.
Why bother? Say you want to push a row of panels 200mm off a curved facade along each panel's own normal. The normals come out at all sorts of lengths depending on the surface parameterization - useless directly. Unitize them and every normal is length 1; feed Amplitude a slider and now one number controls the offset of the whole facade, cleanly. This 'unit + amplitude' split is also how attractor fields work later (Module 5): the attractor gives you a direction toward or away from a point, and a distance-based value drives the amplitude. Learn the pattern here and that module will feel obvious. The reverse tool, Vector Length (or Deconstruct Vector), reads a vector's magnitude back out when you need to measure rather than set it.
Unitize -> aim only. Amplitude -> set the exact length. One slider now drives the whole move.
The plane: the unsung hero of orientation
If points and vectors are famous, the plane is the quiet workhorse that beginners undervalue and experts lean on constantly. A Grasshopper plane is not just a flat sheet - it is a coordinate frame: an origin point plus three perpendicular axis vectors (X, Y, and the normal Z). It answers not only "where" but "which way is up, and which way is sideways". Whenever you need to place something with an orientation - a rectangle facing the right way, text that lies flat on a slope, a panel aligned to a facade, a box that tilts along a curve - you feed a plane.
The default is the world XY plane at the origin, but the power comes from building your own. Construct Plane takes an origin and two direction vectors. Plane Normal takes an origin and a single normal vector and figures out the rest - perfect for 'a plane sitting on this surface, facing out'. Plane 3Pt fits a plane through three points. And along a curve, Perp Frame (perpendicular frame) and Horizontal Frame give you a plane at any parameter, correctly aimed along the curve - the key to arraying anything on a path (next lesson but one). The reason planes matter is subtle but huge: orient a plane and the geometry riding on it comes along for free. Instead of rotating a complex object with fiddly angles, you build the target plane you want and let one Orient move do the work. When your geometry ends up mysteriously flat, twisted, or facing the wrong way, ninety percent of the time the answer is 'your plane is wrong' - so learning to see the frame is a genuine superpower.
Putting them together - and the world axes you never think about
These three primitives are not separate topics; they interlock, and seeing how is the real skill. A plane is built from a point and vectors (an origin plus axis directions). A vector is often built from two points (Vector 2Pt: the direction from A to B, with A and B being positions). A point can be found by starting at another point and adding a vector (Move a point by a motion vector). So the everyday flow of a definition is a constant conversation between the three: sample points on a surface, read the normal vector at each, build a plane from point-plus-normal, place a panel on the plane. Every later module is variations on that sentence.
It also helps to notice the frame you are already standing in. Rhino and Grasshopper have a world coordinate system - a global origin {0,0,0} and the world X, Y and Z axes - and unless you say otherwise, geometry is measured against it. The default construction plane is the world XY plane (the ground), with Z pointing up. Most beginner confusion about 'up' and 'flat' traces back to unknowingly working against the world frame when the design needed a local one. The remedy is the whole thrust of this lesson: when a task has its own natural orientation - a sloped roof, a curved wall, a tilted panel - stop fighting world XY and build the local plane that suits it. Points, vectors and planes are precisely the vocabulary for saying 'here, this way, on this frame' instead of being stuck with 'somewhere, world-aligned, flat'. Hold that and you will read other people's definitions - and debug your own - far faster.
Construct / Deconstruct Point
Build a point from x,y,z and break one back apart
The fundamental build-from-parts / break-into-parts pair. You'll meet the same idiom for vectors and planes.
Unit X / Unit Y / Unit Z
Length-1 vectors along the world axes
Handy pure directions. Combine with Amplitude to set an exact distance.
Amplitude
Sets a vector's length while keeping its direction
The clean way to control 'how far' with one slider. Unitize first for predictable results.
Construct Plane / Plane Normal
Builds a coordinate frame from an origin and direction(s)
Plane Normal only needs a normal vector; it derives the X and Y axes for you. The backbone of orientation.
Perp Frame
A plane at a parameter along a curve, aimed along it
The key to arraying and orienting geometry on a path. Covered fully in Transformations & Arrays.
Workshop - build a move three ways, then aim a box with a plane
The fastest route to fluency is to do the same simple thing several ways and watch what changes. This tiny definition drills the point/vector/plane distinction until it is reflex.
Rhino + Grasshopper (free trial or student licence is enough). No plug-ins required.
Goal: internalise position vs direction vs frame in Grasshopper Inputs: one Point, a couple of Number Sliders, a Box or Rectangle Time: ~30 minutes
- 1Drop a Construct Point (x,y,z on sliders) and a Panel showing its coordinates. Wire it through Deconstruct Point and confirm the numbers match - you now control a position.
- 2Add a Move component. Feed it a small box and, as the motion vector, try three sources in turn: (a) a Unit Z, (b) a Unit Z through Amplitude with a slider, (c) a Vector 2Pt from your point to a second point. Watch how each 'move' differs.
- 3Take any vector and pass it through Unitize, then Amplitude. Prove to yourself that changing the amplitude slider changes only the distance, never the direction.
- 4Now orientation: build a Construct Plane at your point with two direction vectors, and Orient (or Box on plane) a rectangle onto it. Rotate the plane's X vector and watch the rectangle turn - you moved the frame, not the geometry.
- 5Break it on purpose: feed your point into the Move's vector input instead of a vector. Note where the box lands and explain to yourself, in one sentence, why.
You’ll walk away with
A single small definition demonstrating: a point you control, one move built three ways, a unitize-plus-amplitude pair, and a rectangle re-aimed purely by rotating its plane. Add a Panel note explaining the point-vs-vector distinction in your own words.
Three altitudes on the same idea
Read the band that fits you — or all three.
Planes are how you keep control at building scale. A tower whose floors each sit on their own rotated plane, a facade whose panels each ride a perp-frame off the massing curve - these are trivial once you think in frames instead of angles. Treat 'build the right plane, then place geometry on it' as your default move and complex orientation problems collapse into one clean step.
Vectors and planes are what make bespoke, well-aimed detail easy. A slatted screen where each slat tilts toward a focal point, shelving that follows a curved wall, a light cove offset a precise distance off a ceiling plane - all of it is unit-vector-plus-amplitude and a good frame. You will draw far less by hand once you place elements on planes you compute.
This is the lesson that makes everything after it click. Examiners and studio leads can instantly tell who actually understands vectors versus who copied a definition. Spend real time here: build the same move with a raw vector and again with unitize-plus-amplitude, and rotate a box by building its target plane. That fluency reads as rigour in a portfolio review.
“A point and a vector are basically the same thing - they're both three numbers, so it doesn't matter which I use.”
Do it yourself
Reason it through - then confirm on the canvas.
- 1In one sentence, how does a vector differ from a point, even though both are {x, y, z}?
- 2What does Unitize do, and why would you follow it with Amplitude?
- 3What three things does a Grasshopper plane bundle together?
- 4You need geometry that faces 'out' from a surface. Which vector and which plane component get you there?
- 5Why does rotating a plane let you re-aim complex geometry without touching the geometry itself?
The one line to carry out
Peer-reviewed journals & authoritative standards
- 01Rhino - Essential Mathematics for Computational Design (Rajaa Issa) — Robert McNeel & Associates, 2019.
- 02Mode Lab - The Grasshopper Primer (Third Edition) — grasshopperprimer.com (free online edition), 2020.
- 03Rhino Developer - Grasshopper guides — Robert McNeel & Associates, 2026.
With the atoms in hand, we can build the molecules: in the next lesson we make and evaluate curves and surfaces parametrically - and you'll see points, vectors and planes reappear as the outputs of Evaluate Curve and Divide Surface.
The author
Amogh N P
Architect, interior designer, and creative polymath. Studio Matrx began in his notebooks — his vision of design made honest, useful, and open to everyone. Its Academy is written and taught in his memory, and free, forever.
More about Amogh →