Grasshopper 3D Resources

Last Updated: Aug 28, 2024

1. Reading Material

  • Grasshopper Object Types
    Learn about the different object types in Grasshopper, foundational for understanding how components interact within your designs.
    Read more
  • Working with Attractors
    Explore the concept of attractors in Grasshopper, a powerful technique for manipulating geometry based on proximity to points or curves.
    Read more
  • What is a Data Tree?
    Get to grips with data trees in Grasshopper, essential for managing complex data structures within your parametric models.
    Read more
  • Surface Geometry
    Delve into surface geometry in Grasshopper, including how surfaces are constructed and manipulated within the software.
    Read more

2. Video Resources

  • Introduction to Parametric Modeling
    A beginner-friendly introduction to parametric modeling, covering the basic principles and how to get started with Grasshopper. Watch the video on YouTube.
  • Very Important Rhino Commands - 1
    Learn the most essential Rhino commands that every Grasshopper user should know to streamline their modeling process. Check out the tutorial on YouTube.
  • Introduction to NURBS Geometry - Intro to Parametric Modeling
    Understand the fundamentals of NURBS geometry, a core concept in both Rhino and Grasshopper for precise modeling. View the introduction on YouTube.
  • The Beauty of Bézier Curves
    Discover the elegance of Bézier curves, a critical tool for creating smooth, flowing shapes in your Grasshopper projects. Watch the explanation on YouTube.
  • The Continuity of Splines
    Explore the continuity of splines in Grasshopper, learning how to create seamless, connected curves in your designs. Find out more on YouTube.

3. Downloadable 3D Assets

  • GrabCAD
    https://grabcad.com/libraary
    GrabCAD offers a vast library of free CAD models shared by engineers and designers, making it a great resource for mechanical and industrial design projects.
  • Sketchfab
    https://sketchfab.com
    Sketchfab is a platform for viewing, sharing, and downloading 3D models. It includes models for a variety of fields, including industrial design, and supports multiple formats.
  • Thingiverse
    https://www.thingiverse.com
    Thingiverse is a community-driven platform where users can share and download 3D printable models. It's popular for prototyping and has a wide range of designs.
  • Turbosquid
    https://www.turbosquid.com
    TurboSquid offers high-quality 3D models for purchase, with some free options as well. It’s a good source for professionally created assets.
  • CGTrader
    https://www.cgtrader.com
    CGTrader is a marketplace for buying and selling 3D models, with a large selection of free models available. It covers various categories, including industrial design.

4. Component List

Contour Exercise

Loft

Inputs: Curves (Curve), Options (Loft Options)

Outputs: Surface (Surface)

Generates a surface by interpolating between multiple curves.

Contour
Inputs: Geometry, Base Point (Point3d), Direction (Vector3d), Distance (Number)
Outputs: Curves (Curve)
Generates contour lines by intersecting geometry with planes spaced at regular intervals along a specified direction.

Extrude
Inputs: Base Curve/Surface (Curve/Surface), Direction (Vector3d)
Outputs: Extrusion (Surface)
Extrudes a curve or surface along a specified direction to create a 3D form.

Custom Preview
Inputs
: Geometry (Geometry), Material/Color (Material/Color)
Outputs: Display Preview (Geometry)
Displays geometry in the Rhino viewport with a specified material or color, allowing for customized visual feedback during modeling.

Solid Modeling

Flatten Tree
Inputs
: Tree (Data Tree)
Outputs: Flattened Tree (List)
Converts a data tree with multiple branches into a single, flat list, removing all hierarchical structure.

Circle
Inputs: Base Plane (Plane), Radius (Number)
Outputs: Circle (Curve)
Generates a circle based on a specified plane and radius.

Divide Curve
Inputs
: Curve (Curve), Count (Integer)
Outputs: Points (Point3d), Parameters (Number)
Divides a curve into a specified number of equal segments, returning the division points and their corresponding curve parameters.

Cap Holes
Inputs
: Open Brep (Brep)
Outputs: Capped Brep (Brep)
Seals the open edges of a Brep by creating planar surfaces, effectively closing any holes to form a solid object.

Solid Difference
Inputs
: A (Brep), B (Brep)
Outputs: Difference (Brep)
Subtracts one solid (B) from another solid (A), resulting in the remaining portion of solid A after the subtraction.

Move
Inputs: Geometry (Geometry), Translation Vector (Vector3d)
Outputs: Moved Geometry (Geometry)
Translates geometry from its original location to a new position along a specified vector.

Solid Union
Inputs
: All (Brep)
Outputs: Union (Brep)
Combines two or more solid Breps into a single unified Brep by merging their overlapping volumes.

Edge from Direction
Inputs
: Brep (Brep), Direction (Vector3d), Reflex (Boolean), Angle (Number)
Outputs: Edge Indices (Integer List)
Identifies and extracts edges from a Brep that align with a specified direction, considering angle and reflex criteria for precise edge selection.

Region Union
Inputs
: Regions (Curve), Plane (Optional)
Outputs: Unioned Region (Curve)
Combines multiple 2D regions (closed curves) into a single region by merging overlapping areas.

Fillet Edge
Inputs
: Brep (Brep), Blend (G0, G1 & G2), Radius (Number), Edge Index (Integer)
Outputs: Filleted Brep (Brep)
Rounds the specified edges of a Brep by applying a fillet with a given radius, creating smooth transitions between adjacent surfaces.

Deconstruct Brep
Inputs
: Brep (Brep)
Outputs: Faces (Surface), Edges (Curve), Vertices (Point3d)
Breaks down a Brep into its constituent parts, including faces, edges, and vertices, allowing for individual manipulation or analysis.

List Item
Inputs
: List (List), Index (Integer)
Outputs: Item (Data)
Retrieves an item from a list based on its index position, allowing access to specific elements within a list.

Torch Modeling

Series
Inputs: Start (Number), Step (Number), Count (Integer)
Outputs: Numbers (List of Numbers)
Generates a sequence of numbers starting from a specified value, incrementing by a set step, and continuing for a defined count.

Point on Curve
Inputs
: Curve (Curve), Parameter (Number)
Outputs: Point (Point3d)
Evaluates a point on a curve at a specified parameter, typically between 0 and 1, where 0 represents the start of the curve and 1 the end.

Evaluate Curve
Inputs
: Curve (Curve), Parameter (Number)
Outputs: Point (Point3d), Tangent (Vector), Curvature (Vector)
Evaluates a curve at a specified parameter, returning the point on the curve, the tangent vector, and the curvature at that point.

Rotate
Inputs: Geometry (Geometry), Angle (Number), Axis (Vector/Line/Point)
Outputs: Rotated Geometry (Geometry)
Rotates geometry around a specified axis by a given angle, allowing for controlled transformations in 2D or 3D space.

Polygon
Inputs: Plane (Plane), Radius (Number), Sides (Integer)
Outputs: Polygon (Curve)
Generates a regular polygon on a specified plane with a given radius and number of sides.

Evaluate Surface
Inputs
: Surface (Surface), UV (Point2d)
Outputs: Point (Point3d), Normal (Vector), Frame (Plane), Curvature (Vector)
Evaluates a surface at specified UV coordinates, returning the point on the surface, the normal vector, the local plane (frame), and the curvature at that point.

MD Slider
Inputs
: None (User interaction directly on the canvas)
Outputs: Point (Point2d)
An interactive slider that allows users to select a point within a 2D domain (UV space), outputting the selected point's UV coordinates.

Rebuild Curve
Inputs
: Curve (Curve), Point Count (Integer), Degree (Integer)
Outputs: Rebuilt Curve (Curve)
Reconstructs a curve with a specified number of control points and a defined degree, creating a smoother or more refined version of the original curve.

List Operations

Graft Tree
Inputs
: Data (Any Data Type)
Outputs: Grafted Data Tree (Data Tree)
Transforms each item in a data tree into its own branch, effectively increasing the hierarchy level and isolating individual items into separate branches.

Entwine
Inputs: Data (Any Data Type, Multiple Inputs)
Outputs: Combined Data Tree (Data Tree)
Merges multiple inputs into a single data tree, organizing each input into a separate branch while preserving the structure of the individual data streams.

Hexagonal
Inputs: Plane (Plane), Radius (Number), Extents (Integer, Integer)
Outputs: Hexagons (Curves)
Generates a grid of hexagons on a specified plane, based on the provided radius and grid extents, useful for creating tiling patterns.

Merge
Inputs: Data (Any Data Type, Multiple Inputs)
Outputs: Merged List (List)
Combines multiple data streams into a single list, preserving the input order and merging them into a continuous sequence.

Tree Item
Inputs
: Tree (Data Tree), Path (Path), Index (Integer)
Outputs: Item (Data)
Retrieves a specific item from a data tree based on the specified branch path and item index within that branch.

Tree Branch
Inputs
: Tree (Data Tree), Path (Path)
Outputs: Branch (Data)
Extracts a specific branch from a data tree based on the provided path, returning all items within that branch.

Param Viewer
Inputs
: Data (Any Data Type)
Outputs: Viewer (Graphic Display), Tree Structure (Text)
Visually displays the structure of a data tree, showing the number of branches and the distribution of items within each branch, providing a clear overview of complex data trees.

Range
Inputs: Domain (Domain), Steps (Integer)
Outputs: Numbers (List of Numbers)
Generates a sequence of numbers within a specified domain, dividing the domain into equal intervals based on the number of steps provided.

Larger Than
Inputs
: A (Number), B (Number)
Outputs: Result (Boolean)
Compares two numbers and returns True if the first number (A) is larger than the second number (B), otherwise returns False.

Construct Domain
Inputs
: Start (Number), End (Number)
Outputs: Domain (Domain)
Creates a numerical domain from a start value to an end value, defining a range that can be used in various mathematical and geometrical operations.

Image Sampler

Dispatch
Inputs: List (List), Pattern (Boolean List)
Outputs: A (List), B (List)
Splits a list into two sub-lists based on a pattern of True and False values. Items corresponding to True go into list A, and items corresponding to False go into list B.

Image Sampler
Inputs
: Point (Point2d), Image (Bitmap)
Outputs: Sampled Value (Color/Number)
Extracts color or brightness values from a specified image based on input points, enabling the creation of geometry influenced by image data.

Attractor Workflow

Pull Point
Inputs
: Points (Point3d), Geometry (Curve/Surface/Brep)
Outputs: Pulled Points (Point3d), Parameters (Number)
Projects points onto the closest location on a given geometry, such as a curve, surface, or Brep, returning the new positions and their corresponding parameters on the geometry.

Remap Numbers
Inputs
: Values (Number List), Source Domain (Domain), Target Domain (Domain)
Outputs: Remapped Values (Number List)
Maps a list of numbers from an original domain to a new target domain, adjusting the values proportionally to fit within the new range.

Boundary Surface
Inputs
: Curves (Curve)
Outputs: Surface (Surface)
Creates a surface from a closed boundary of curves, filling the region enclosed by the curves.

Graph Mapper
Inputs
: Values (Number List)
Outputs: Mapped Values (Number List)
Transforms a list of numbers according to a user-defined graph, allowing for customized remapping of values based on various curve types (e.g., linear, bezier, sine).

Surface Frames
Inputs
: Surface (Surface), UV Coordinates (Point2d/List)
Outputs: Planes (Plane)
Generates a grid of planes (frames) aligned to a surface at specified UV coordinates, useful for creating reference planes across a surface for further geometric operations.

Lunchbox Texture

Refine (Kangaroo)
Inputs: Mesh (Mesh), Level (Integer)
Outputs: Refined Mesh (Mesh)
This component refines a mesh by iteratively sub dividing each face into 4 faces.

Brep Join
Inputs
: Breps (List of Breps)
Outputs: Joined Brep (Brep)
Combines multiple Breps into a single unified Brep by joining their adjacent edges, creating a seamless geometry if possible.

Simple Mesh
Inputs
: Geometry (Brep/Surface)
Outputs: Mesh (Mesh)
Converts a given geometry into a simple mesh based on specified parameters, useful for visualizations and further mesh operations.

Diamond Panels (LunchBox)
Inputs: Surface (Surface), U Divisions (Integer), V Divisions (Integer)
Outputs: Diamond Panels (Mesh/Polylines)
Divides a surface into a grid of diamond-shaped panels by specifying the number of divisions along the U and V directions, commonly used for panelization in architectural design.

SubD from Mesh
Inputs
: Mesh (Mesh)
Outputs: SubD (SubD)
Converts a mesh into a SubD (Subdivision Surface) object, allowing for smoother, more refined geometry suitable for further editing and refinement.