Introduction video
The Essential Algorithms and Data Structures guide introduces to design professionals effective methodologies to develop complex 3D modeling algorithms using Grasshopper® (GH), the generative modeling environment for Rhinoceros® (Rhino). It also covers extensively the data structure adopted by Grasshopper and its core organization and management tools.
The material is directed towards designers who are interested in parametric design and have little or no background in programming. All concepts are explained visually using Grasshopper. This guide assumes prior knowledge in Grasshopper user interface and basic workflows. For resources on getting started with Grasshopper, please go through the Grasshopper: Getting Started tutorials and check the Grasshopper resources page for additional learning material.
The content is divided into three chapters. Chapter 1 discusses algorithms and data. It introduces a rigorous methodology to help create and manage parametric solutions. It also introduces basic data concepts such as data types, sources and common ways to process them. Chapter 2 reviews basic data structures in Grasshopper. That includes single items and lists. Chapter 3 includes an in-depth review of the tree data structure in Grasshopper and practical applications in design problems. All Grasshopper examples and tutorials are written with Rhinoceros version 6 and are included in the download.
Rajaa Issa
Robert McNeel & Associates
Resources:
- Download the guide PDF and all Grasshopper examples
- Link to the guide video recordings
- New to Grasshopper? Start here: Grasshopper Getting Started
Table of Contents
1. Algorithms and Data
1.1 Algorithmic design
1.2 Algorithms parts
1.3 Designing algorithms: the 4-step process
1.4 Data
1.5 Data sources
1.6 Data types
1.7 Processing Data
1.7.1 Numeric operations
1.7.2 Logical operations
1.7.3 Data analysis
1.7.4 Sorting
1.7.5 Selection
1.7.6 Mapping
1.8 Pitfalls of algorithmic design
1.8.1 Invalid or wrong input type
1.8.2 Unintended input
1.8.3 Incorrect order of operation
1.8.4 Mismatched data structures
1.8.5 Long processing time
1.8.6 Poor organization
1.9 Tutorials: algorithms and data
2. Introduction to Data Structures
2.1 Overview
2.2 Generating lists
2.3 List operations
2.4 List matching
2.5 Tutorials: data structures
3. Advanced Data Structures
3.1 The Grasshopper data structure
3.1.1 Introduction
3.1.2 Processing data trees
3.1.3 Data tree notation
3.2 Generating trees
3.3 Tree matching
3.4 Traversing trees
3.5 Basic tree operations
3.5.1 Viewing the tree structure
3.5.2 List operations on trees
3.5.3 Grafting from lists to a trees
3.5.4 Flattening from trees to lists
3.5.5 Combining data streams
3.5.6 Flipping the data structure
3.5.7 Simplifying the data structure
3.6 Advanced tree operations
3.6.1 Relative items
3.6.2 Split trees
3.6.3 Path mapper
3.7 Tutorials: advanced data structures