Understanding Grasshopper Points

Points are a simple but important aspect of any modelling software. Understanding them is the first step to mastering any modelling software as other forms of geometry are created from points.

Not to mention, you can sometimes judge the quality of a model by the number of points and where they are placed. In fact, a clean and high-quality model can be normally defined by using the least amount of points possible.

Points by themselves are not complicated but they often come with the understanding of different coordinate systems and transforms which causes a lot of confusion. So, hopefully, by the end of this article, you will have a better understanding of what points are in Grasshopper.

What are Points?

Points are virtual dots, whose location is referenced from an origin and a world plane.

If I told you a point is at a location of 10,5,20, it just sounds like gibberish because those numbers alone don't tell you in what direction you should be moving to find the point. This is why most modelling programs, start off with an origin and world plane by default. And, any point that you create in the 3D environment will reference the origin and world plane.

As the origin provides the reference point (like a landmark when driving), the world plane provides the direction. A plane has three directions, X, Y, and Z and that is why points are normally expressed in XYZ coordinates.

Let's look at what this all means in Rhino/Grasshopper.

If I made a point with the coordinates 10,0,0 and according to the world plane in Rhino, the point will show up 10 units to the right.

Similarly, another point with the coordinates of 10,10,0 would appear 10 units to the right and 10 units upwards, like so.

Changing References

Now that we have some understanding of how points work. We can move on to a more advanced topic on points, changing the reference that a point refers to.

As its name implies, points can be created with different references than the default origin and world plane. It sounds confusing and unnecessary but it is very useful for placing points relative to a model instead of the world plane. It takes away a lot of the guesswork for placing points.

In Grasshopper, there are a few ways to do this but the one component I most commonly use is the Point Oriented component. This component allows you to create a point that references another plane instead of the world plane. Like so.

The plane in pink is a custom plane that I made off the world plane and the small cross highlighted in green is the point that references the pink plane.

The coordinate of the point can still be read as 10,10,0 but it now references the custom plane instead of the world plane. Grasshopper is able to create the new point by transforming the world plane to the pink plane and by virtue, applying the same transform to create the new point.

So, if you had a model that is rotated away from the world plane and want to place a point away from the model, this component comes in very handy. Like so.

Final Thoughts

Points are fundamental to the way you control and understand your model. Having a good understanding of them can be really helpful. I mean, modelling is all about placing things in the right location, what better way to do that than to understand all the different ways you can place a point?

But, if you struggled to understand this post (which could be because I am a bad teacher), don't fret. We will have plenty of chances to look at all the different ways of placing a point when we get into modelling workflows and creating actual models.

This article is part of a 6-part series on Grasshopper geometry types. Where the aim is to use Grasshopper more effectively by understanding how Grasshopper processes geometry data.

Part 2 - Understanding Grasshopper Points

P.S. I also made a Youtube video explaining this very post.