Intro to Generative Design | |
---|---|

1 | What is Generative Design? |

2 | Designing with Parameters |

3 | Unpacking the Genetic Algorithm |

In the first lesson of this session, we will review some details about optimization, in particular the different types of input parameters and output metrics supported by Discover which allow it to connect to and optimize your Grasshopper models in different ways.

Discover supports three unique types of inputs which affect how it controls the model:

- A
**Continuous**parameter defines a value within a certain range, represented by a floating-point or decimal number. - A
**Categorical**parameter defines a selection from a limited set of options, represented by an integer or whole number. - A
**Sequence**parameter defines an ordering of a set of items, represented by a shuffled sequence of whole numbers.

Discover also supports two distinct kinds of output metrics which allows you to define the goals of your design process in different ways:

- An
**Objective**tells the algorithm we want to push the value of a metric as extreme as possible. This gives the algorithm a way to measure the performance of one design option relative to another. When we create an objective we can set it to either minimize or maximize the value. - A
**Constraint**tells the algorithm that we need the value to meet a specific condition. Unlike objectives, constraints don't measure the relative performance between designs, but dictate whether a design meets the conditions of our design. Any design that meets all constraints is considered equally good, while a design that breaks one or more constraints is considered invalid. A Constraint can be set up as a minimum requirement, a maximum requirement, or an exact match to a target value.

The Discover plugin for Grasshopper includes individual components for each type of input and output, allowing you to specify exactly the kind of parameters and metrics you want to control your model.

In this lesson, we build an automation workflow from scratch using Rhino Grasshopper and the optimization plugin Discover. We will go through building a simple model in Grasshopper, connecting it to the Discover optimization server, specifying a set of input parameters, and calculating a set of outputs for Discover to optimize. We will also review the Discover interface which you can use to run optimizations and explore the results.

In this lesson, we review the 'Hill' test model which demonstrates the use of **Continuous** parameters with one **Objective**.

In this lesson, we review the 'Pill' test model which demonstrates the use of **Continuous** parameters with two **Objectives**.

In this lesson, we review the 'Grid' test model which demonstrates the use of **Categorical** parameters with one **Objective**.

In this lesson, we review the 'Bridge' test model which demonstrates the use of both **Continuous** and **Categorical** parameters with two **Objectives** and one **Constraint**.

In this lesson, we review the 'Salesman' test model which demonstrates the use of **Sequence** parameters with one **Objective**.