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 is not intended as a beginners guide to Grasshopper in terms of user interface or tools. Basic knowledge of the interface and workflow is assumed. For more resources and getting started guides, go to the learn section in www.rhino3d.com.
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.
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