Points, Curves, Surfaces and Solids

From TOI-Pedia


Introduction

Different geometry in Grasshopper

In this intermezzo you will learn about the different types of geometry you can use in Grasshopper. This intermezzo is a summary of multiple wiki pages which can be found at Grasshopper. Generally speaking, the geometry in Grasshopper can be divided in four groups with increasing complexity:

  • Point
  • Curve
  • Surface
  • Solid


Points

Link a point from Rhino to Grasshopper

In world space the point is linked to the 3 dimensional coordinate system with x, y and z axis, the point is defined by x, y and z values. These points can be created either in Rhino or in Grasshopper.

When a point is defined in parametric space, it is linked to a location on an object. This can be done in Grasshopper by extracting a point from geometry. Information is being re-used, output is being used as input. This is the strength of a Grasshopper definition, it is adaptable and responsive.

Point functions

The point in Grasshopper has multiple functions.

  • The point or points as a location;
  • The point or points as a direction;
  • The point or points as a basis for 1 dimensional objects like curves and polylines;
  • The point or points as a basis for 2 dimensional objects like surfaces;
  • The point or points as a basis for complex geometric relations.


Point Creation Methods

In Grasshopper, points can be created in several ways. The methods follow from the functions described before.

  • Defining them in Rhino and selecting them for a Point Parameter.
  • Making a point or points in Grasshopper when a Point Parameter is selected.
  • Making a point or points by defining the x, y and z value of a Point Component which can be selected in the Vector Tabs.
  • Extracting a point or points from a 1 dimensional object like a curve
  • Extracting a point or points from a 2 dimensional object like a surface
  • Extracting a point or points from a 3 dimensional object like a box


Point Creation Examples

Selection options for points in Rhino

In this chapter, some methods are described to create a point.

Point as parameter

A point parameter can link a point created in Rhino to Grasshopper. The parameter enables you to define the point or points in the Rhino viewport. The input is therefore defined by where the cursor is clicked within the viewport. If the point is defined in Rhino and then selected for the Parameter, the points can still be moved within Rhino. The parameter will only contain the data of the location of the point in world space. If the location of the point is changed in Rhino the parameter will be updated with the new location.

Point as vector

Point from vector

The point however also can be numerically defined in Grasshopper by connecting a numerical input to the action of creating a point or points. In the Vector tab we can find the Point option. This Point component has 3 inputs, one for every axis. These can be simply defined by typing them in, attaching either a number slider or a single number primitive. These values can be changed at any time. De alteration of the position of the point and all its relations will be re calculated throughout the network. When the point is created in this manner, it cannot be moved in Rhino.

Point from a curve

Points from curves

There are several ways in Grasshopper to get points from a curve. Every curve has a start and a beginning. By extracting the coordinates of the start and end points, you can reuse them for other input. Other methods to get points on a curve are division and reparameterization. The method you use depends on the available data and the information of the point you wish to reuse.

Points from surface

Example: Find the centroid on a surface

Extracting a point from a surface is similar to extracting a point from a curve. However instead of defining a point in 1 dimensional space (the U coordinate), the point has to be defined in 2 dimensions: the U and V coordinates. There are more similarities between extracting points from a curve and a surface, which result in similar options in components. Point definition on a surface can be of great importance when additional geometry has to be generated on that location on the surface. It can also be a point which has to be analyzed, for example in a Gaussian analysis of the curvature of the surface.

More information about points

For more information about points, you can take a look at the following wiki pages:


Curves and Lines

In Rhino, you might be familiar with drawing curves and using them for your design. In Grasshopper however, curves are not drawn but created from one or multiple points. Although we are speaking about curves at the moment, it is important to mention two grasshopper that are similar to curves:

  • Line, a direct connection between two points;
  • Polyline, a direct connection between multiple points.

The difference between a line and a curve is that curves have a so called deviation. Curves and lines both have their own parameter in Grasshopper. Using the specific type increases the speed of your script. Don't use lines on curve parameters and reversed.

Curve and Line Creation Methods

In this chapter, some methods are described to create a Curves and Lines.

Lines

Line between points

Generally speaking, there are two methods to create a points. First, one can use two ore multiple points as input for the line. Grasshopper will make a direct connection between the points in order. Furthermore, it is possible to create a line from a point, vector and length input. In Grasshopper this is called a SDL line.

Curves

Curve between points

Curves are created similarly as polylines. The input of the curve is a collection of points. Next, the user has the possibility to define the deviation degree or point start/end tangents. This depends on the method used. Some examples of curves in Grasshopper are Bezier Curve, Nurbs Curve and Interpolation.

Surfaces

If we consider curves as 2-dimensional objects, surfaces are created in 3-dimensional space. Surfaces can be described in the x, y and z coordinates of the world space, but also in there own dimensions: U and V. These U and V coordinates can be used if one wants to extract a specific point on a surface.

Another type of surface that you may have heard of is the mesh. A mesh however, approximates the surface using two-dimensional triangles. On of the great advantages of using meshes in Rhino and Grasshopper, is that they can be calculated quite easily with your Graphics Card instead of the CPU. All options of mesh operations are visible in the Mesh tab of Grasshopper. If you start learning Grasshopper however, it is recommended to start using surfaces first.

Surface creation methods

Example: loft from a line and a curve

As you may guess, surfaces can be created using two different methods. First, one can use curves or lines as input. For example, one can loft two curves in one surface. By defining how tight the loft should be calculated, different results are possible. Other methods are sweep or extrude: a combination of curve inputs and vectors.

Surfaces can also be created using points as main input. Most of the time however, you will probably use curves as input.

Solids

The primitive and the solid

Solids in Grasshopper are multiple NURBS surfaces joined into one primitive. Primitives are basic geometric shapes like a cube, cone, sphere, cylinder and pyramid. Solids can be divided in two types:

  • Polysurfaces, a combination of a set of separate surfaces describing a volume into a solid;
  • Primitives, basic geometric shapes like a cube, cone, sphere, cylinder and pyramid.

To create solids, it does not suffices to just place surfaces next to each other. First, surfaces should be joined. This can be done by using the surface utilities of Grasshopper. Often used nodes are the Brep Join and the Cap Holes. In Grasshopper, solids can be stored in the Geometry or Brep parameter.

Of course it is also possible to make solids smaller by substracting volumes. Take a look at the Shape Intersections of Grasshopper to find out the possibilities.

Personal tools
Actions
Navigation
Tools