DES 212 · Design Media II

Tutorial 1.2: Grasshopper Attractors

Part A: Attractors

In this part, you will learn to control geometry through attractor logic, and maintain script legibility through standardized organization.

1. Stochastic Systems and 3D Voronoi

Investigate Voronoi subdivision in 3D using random point populations. This session focuses on implementing a single attractor to control cell scaling within a volumetric boundary.

Submission: A screenshot of your final 3D Voronoi pattern.

▶ 1.2_A.1_Simple Voronoi.mp4

 

2. Structured Logic and Keio University

Transition from random distributions to structured rectangular grids using the Tokyo Keio University paving as a case study. You will use the Pull Point component to manage multiple attractor points and the Remap Numbers component for precise aesthetic control.

▶ 1.2_A.2_grid attractors.mp4

 

3. Workspace Architecture and Cleanup

Professional scripts require clear organization to remain functional. This tutorial covers grouping, wire management with relays, and annotation strategies.

Submission: A screenshot of your organized Grasshopper script showing clear grouping and labeling.

▶ 1.2_A.3_Organizing GH.mp4

Key Takeaways of Part A

  • Attractor Logic: The use of proximity to drive geometric transformations where the distance between seed points and influence geometries dictates parameters like scale or rotation.
  • Numerical Remapping: The translation of raw data ranges into aesthetic bounds. Proportional scaling is handled by the mapped output, while the clipped output enforces strict adherence to target limits to prevent geometric errors.
  • Data Type Compatibility: The implicit conversion or casting of data types, such as curves satisfying surface inputs, which ensures computational stability across diverse geometric inputs.
  • Data Tree Troubleshooting: The identification of list mismatches, such as the Shortest List behavior, and the use of specialized components like Pull Point to resolve structure conflicts without manual management.
  • Scribble and Panel: The documentation infrastructure of the canvas. Scribbles provide high level headers for navigation, while Panels offer persistent textual context for specific logic choices.

 

Part B. Data Structure

Data structure is one of the most important concepts in Grasshopper—I wanted to mention this early on. This tutorial series (5 videos in total) covers the fundamentals of data structure.

NEW Terminologies: Data Tree, Branch, Path, Item, Index

Submission: Take a screenshot of your arch structure.


▶ Watch on YouTube ↗

 

Here's a great deeper explanation of data structure: https://bimcorner.com/a-beginners-guide-to-data-trees-in-grasshopper/

Take your time to digest this part! Data structure is the most complex yet essential aspect of Grasshopper. I've used Grasshopper for 15 years, and I still occasionally struggle with data structures. If by the end of this semester you fully understand the introduction below, you're already successful! We won't do complex exercises on this, but keep it in mind—90% of errors stem from data structure issues.

 

Optional Reference:

I highly recommend Official Grasshopper Guides. Read through them and check out the examples—they include step-by-step problem solutions and all files are downloadable.

Specifically, you can find the introduction of data structure: https://developer.rhino3d.com/guides/grasshopper/gh-algorithms-and-data-structures/data-structures/

And advanced data strcuture: https://developer.rhino3d.com/guides/grasshopper/gh-algorithms-and-data-structures/advanced-data-structures/

 

Key Takeaways for Part B:

  • List-Level Execution: Grasshopper components operate on items within a single branch. They do not automatically combine data across different branches. Errors often stem from expecting a component to bridge these separate data streams.
  • Geometric Control: Data organization determines topology. The choice between grafting and flattening dictates whether points result in one continuous line or multiple independent ribs. The focus must shift from the geometry to the structure of the driving information.
  • Information Richness: Grafting preserves metadata, such as row or column origins. Flattening is a lossy operation that destroys this hierarchy. Maintain the highest data complexity possible for as long as possible; only flatten when a global operation requires a unified list.
  • Visual Diagnostics: Dashed wires indicate trees; double lines indicate lists. Activate 'Draw Fancy Wires' in the Display menu and use Panel components regularly to verify paths and indices before assuming a component is malfunctioning.

 

Submit three screenshots Here: Exercise 1.2

Submission Deadline: 23 January, 11:59 pm.

Assessment Value: 3 points.