Skip to content

Commit

Permalink
Merge pull request #48 from DynamoDS/q1-updates
Browse files Browse the repository at this point in the history
Q1 updates
  • Loading branch information
radumg authored Apr 8, 2020
2 parents f38c6b4 + 7dccfdb commit 75054e7
Show file tree
Hide file tree
Showing 191 changed files with 21,200 additions and 17,374 deletions.
9 changes: 6 additions & 3 deletions 01-introduction/01-01_computational-design.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# Computational Design

_`Computational design`_ is not any one algorithm or off-the-shelf process you can apply. Rather, we describe it as an approach whereby a designer defines a series of instructions, rules, and relationships that precisely identify the steps necessary to achieve a proposed design and the resulting data or geometry. Crucially, these steps must be computable, meaning they can be understood and calculated by a computer.
_`Computational design`_ is not any one algorithm or off-the-shelf process you can apply. Rather, we describe it as an approach whereby a designer defines a series of instructions, rules and relationships that precisely identify the steps necessary to achieve a proposed design and its resulting data or geometry.

Crucially, these steps must be computable, meaning they can be understood and calculated by a computer.

<img src="../assets/intro/compdesign.gif" style="width:200px;"/>

>Image above Martin Stacey - UCL - NURBS manipulation.
> _Above: Image of an NURBS manipulations from Martin Stacey - UCL._
Put simply, computers are very good at performing calculations and executing pre-defined steps.

When approaching a design computationally, the designer would focus on developing the procedure that would create a design, and not the design itself. The process of iterating through options and data are offloaded to a computer. This saves time, money, effort, and lets the designer focus on the creativity of the design process.
When approaching a design computationally, the designer would focus on developing the procedure that would create a design - not the design itself. The process of iterating through options and data are offloaded to a computer. This saves time, money and effort, and lets the designer focus on the creativity of the design process.

Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# What is Generative Design?
# What Is Generative Design?

You may have encountered the term *`generative design`* in the context of producing design permutations, creating geometry from some simple inputs or even just building computational graphs using Dynamo or Grasshopper.
You may have encountered the term 'generative design' in the context of producing design permutations, creating geometry from some simple inputs, or even just building computational graphs using Dynamo or Grasshopper.

We see generative design as:

**/ gen·er·a·tive de·sign /** noun

> a collaborative design process between humans and computers. During this process, the designer defines the design parameters and the computer produces design studies \(alternatives\), evaluates them against quantifiable goals set by the designer, improves the studies by using results from previous ones and feedback from the designer, and ranks the results based on how well they achieve the designer’s original goals.
> A collaborative design process between humans and computers. During this process, the designer defines the design parameters and the computer produces design studies \(alternatives\), evaluates them against quantifiable goals set by the designer, improves the studies by using results from previous ones and feedback from the designer, and ranks the results based on how well they achieve the designer’s original goals.
<img src="../../assets/intro/whatisgen.gif" style="width:200px;"/>

>Some generated alternatives - Mars Innovation District - The Living
> _Above: Some generated alternatives - Mars Innovation District - The Living_
Generative design is a specific application of the computational design approach, with the following distinctions:

* the designer defines goals to achieve a design \(rather than the exact steps\)
* the computer generates many designs \(not just one\)
* the computer finds a set of optimal solutions that satisfy the designer’s multiple competing goals
* The designer defines goals to achieve a design \(rather than the exact steps\).
* The computer generates many designs \(not just one\).
* The computer finds a set of optimal solutions that satisfy the designer’s multiple competing goals.

Original file line number Diff line number Diff line change
@@ -1,39 +1,42 @@
# Why Should I Use Generative Design?

In a nutshell, generative design is a goal-driven approach to design that uses automation so that designers and engineers can do the following:
In a nutshell, generative design is a goal-driven approach to design that leverages automation so that designers and engineers can:

* Have better insight into their designs.
* Make faster and more informed design decisions.
* Explore more options using the power of computers.
* have better insight into their designs;
* make faster, more informed design decisions; and
* explore more options using the power of computers.

## Better Outcomes and Insight

As the designer, you specify what outcomes you want to achieve for your design and how they are measured. With your guidance, the computer produces sets of optimal designs, along with the data to prove which design performs best against your goals. Analyzing how the generated designs measure up against the set goals, you can gain valuable insight into which design aspects impact the outcome and how.
As the designer, you specify which outcomes you want to achieve for your design and how they are measured. With your guidance, the computer produces sets of optimal designs, along with the data used to prove which design performs best against your goals. By analyzing how the generated designs measure up against the set goals, you can gain valuable insight into which design aspects impact the outcome and how.

<img src="../../assets/intro/whyusegen1.gif" style="width:200px;"/>

> Maximization of active shared spaces - Mars Innovation District - The Living
> Maximization of active shared spaces - Mars Innovation District - The Living
## Faster
## Faster, More Informed Design Decisions

Generative design can help you find better designs for your project faster, by leveraging what computers are good at: computation and repetition. Computers can generate and evaluate a huge number of design variants in only a fraction of the time it would take an individual designer, allowing you to learn what works and what doesn't at an accelerated pace.
Generative design can help you find better designs for your project more quickly by leveraging what computers are good at: computation and repetition.

Computers can generate and evaluate a huge number of design variants in only a fraction of the time it would take an individual designer, allowing you to learn what does and doesn't work at an accelerated pace.

<img src="../../assets/intro/whyusegen2.gif" style="width:200px;"/>

>Design options generated - Mars Innovation District - The Living
> _Above: Design options generated - Mars Innovation District - The Living_
## More Variation
## A Greater Variety of Options

Your initial design parameters are used to generate many, even thousands, of potential design solutions, with the only limitation being how much compute power and time you have.
With s generative design approach, the initial design parameters you input are used to generate your potential design solutions, with the only limitation being how much computer power and time you have.

For example, it's feasible for you to explore ten variants or a few tens if using established computational design techniques. It is not uncommon however for an algorithm, once created, to generate thousands of variants in mere minutes.
For example, using traditional computational design techniques, it's feasible for you to explore ten variants \(or more, perhaps\). However, using generative design, an algorithm can generate thousands of variants in mere minutes.

<img src="../../assets/intro/whyusegen3.gif" style="width:200px;"/>

>Design options generated - Bionic Partition for Airbus - The Living
> _Above: Design options generated - Bionic Partition for Airbus - The Living_
## A Collaborative Approach

## Collaborative
The aim of a generative design approach is not to replace designers - it is to augment human capability with computation power.

The aim of a generative approach is to augment human capability with computation power, not to replace designers.
To illustrate this, this about the fact that a good generative design process using several metrics to analyze designs in a study will rarely generate a single output. Instead, it will almost always generate a range of outputs that the designer can choose from, all of which will already have been objectively assessed and ranked. It doesn't choose for you.

To help illustrate this, remember that a good generative design process that uses several metrics to analyze designs in a study will rarely generate a single output. It will almost always generate a wide range of outputs from which the designer can choose. That is, it doesn’t choose for you, it provides a list of options to choose from, and the options have already been objectively assessed and ranked.
Original file line number Diff line number Diff line change
@@ -1,40 +1,44 @@
# Anatomy of Each Stage

Each of these stages can be further broken down into _`define`_, _`run`_ and _`results`_ steps. The _`define`_ step is the responsibility of the designer while the _`run`_ and _`results`_ steps are performed by the computer.
Each of these stages can be further broken down into _`define`_, _`run`_ and _`results`_ steps. The _`define`_ step is the responsibility of the designer, while the _`run`_ and _`results`_ steps are performed by the computer.

Using this breakdown, let's look at what the _`Generate`_ stage would entail.
Using this breakdown, let's look at what the_`generate`_ stage would entail.

### Define

<img src="../../../assets/intro/anatomy1.png" style="width:200px;"/>

For the _`define`_ step, the expertise of the designer is needed to do the following:
For the _`define`_ step, the designer will need to do the following:

* Establish the generation algorithm: the logic defining how designs are generated, which may include things like constraints and rules.
* Provide the generation parameters: the variables or inputs needed by the previously-defined algorithm.
* Establish the generation algorithm - this is the logic that defines how designs are generated, which may include things like constraints and rules.
* Provide the generation parameters - these are the variables or inputs needed for the previously-defined algorithm.

This _`define`_ step is present and vital for all stages of the generative design process. The validity of outputs relies on the quality of the designer’s contribution. With clear and concise logic, the computer can provide suitable outputs.
This _`define`_ step is present and vital for all stages of the generative design process, as the validity of outputs relies on the quality of the designer’s contribution in this step.

With clear and concise logic, the computer can provide suitable outputs.

### Run

<img src="../../../assets/intro/anatomy2.png" style="width:200px;"/>

Once everything is defined in the algorithms and accompanying parameters, the computer begins to _`run`_, meaning it starts to generate different design options. This process might happen locally on the designer's computer or, for more intensive calculations, run using cloud computing.
Once everything is defined in the algorithm and its accompanying parameters, the computer begins to _`run`_, meaning it starts to generate different design options. This process might happen locally on the designer's computer or, for more intensive calculations, it may happen using cloud computing.

### Results

<img src="../../../assets/intro/anatomy3.png" style="width:200px;"/>

Things that are generated in the run step are the final results or outputs of each stage. They are used as inputs or parameters in subsequent phases. For example, the designs created in the _`Generate`_ phase are used as one of input parameters in the _`Analysis`_ phase.
The things that are generated during the _`run`_ step are the final outputs from each stage. These are then used as inputs or parameters in subsequent phases.

For example, the designs created in the _`generate`_ phase will be used as one of input parameters in the _`analysis`_ phase.

## Overall process
## Overall Process

We can map these stages and steps together in a single diagram, allowing us to visualize the order of each stage and their dependencies.
We can map these stages and steps together in a single diagram, allowing us to visualize the order of each stage and their dependencies.

<img src="../../../assets/intro/anatomy4.png" style="width:200px;"/>

The diagram illustrates the following:
The diagram shows us that:

* Each stage and step is dependent on the previous one.
* The entire study process is repeatable, so that each iteration learns from the previous result.
* The entire study process is repeatable, as each iteration learns from the previous results.

Original file line number Diff line number Diff line change
@@ -1,35 +1,44 @@
# What Goes into a Generative Design Process?
# What Goes Into a Generative Design Process?

## Stages

As previously discussed, generative design allows for a more integrated workflow between human and computer. This workflow involves the following stages: _`generative`_,_`analyze`_,_`rank`_,_`evolve`_,_`explore`_, and _`integrate`_.
As previously discussed, a generative design approach allows for a more integrated workflow between human and computer.

In Generative Design, this workflow involves the following stages: generative ,analyze , rank, evolve, explore, and integrate.

### Generate
This is the stage when design options are created or generated by the system, using algorithms and parameters specified by the designer.

The design options are created or generated by the system, using algorithms and parameters specified by the designer.

<img src="../../../assets/intro/stages1.png" style="width:200px;"/>

### Analyze
The designs generated in the previous step are now measured, or analyzed on how well they achieve goals defined by the designer.

The designs generated in the previous step are now measured or analyzed based on how well they achieve goals defined by the designer.

<img src="../../../assets/intro/stages2.png" style="width:200px;"/>

### Rank
Based on the results of the analysis, design options are ordered or ranked.

The design options are ordered or ranked based on the results of the analysis.

<img src="../../../assets/intro/stages3.png" style="width:200px;"/>

### Evolve
The process uses the ranking of the design options to figure out in which direction designs should be further developed or evolved.

The process ranks the design options to figure out which direction they should be further developed or evolved into.

<img src="../../../assets/intro/stages4.png" style="width:200px;"/>

### Explore

The designer compares and explores the generated designs, inspecting both the geometry and evaluation results.

<img src="../../../assets/intro/stages5.png" style="width:200px;"/>

### Integrate
After choosing a favorite design option, the designer uses or integrates this design into the wider project or design work.

The designer chooses a favorite design option and integrates it into the wider project or design work.

<img src="../../../assets/intro/stages6.png" style="width:200px;"/>

Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
# MaRs Innovation District of Toronto

For the design of the new office and research space in the MaRs Innovation District of Toronto, Autodesk leveraged generative design processes. Starting with high-level goals and constraints, the design team used the power of computation to generate, evaluate, and evolve thousands of design alternatives. The result was a high-performing and novel work environment that would not have been possible to create without this approach.
To design the new office and research space in the MaRs Innovation District of Toronto, Autodesk used generative design processes.

### Generate
Starting with high-level goals and constraints, the design team used the power of computation to generate, evaluate and evolve thousands of design alternatives. The result was a high-performing and novel work environment that would not have been possible without this approach.

## Generate

<img src="../../../assets/intro/mars1.png" style="width:200px;"/>

>Design goals - Mars Innovation District - The Living
> _Above: Design goals - Mars Innovation District - The Living_
The designers created a geometric system that allowed the exploration of multiple configurations of work neighborhoods, amenity spaces, and circulation zones. This work represents the _`define`_ step of the _`generate`_ phase.
The designers created a geometric system that meant the computer could explore multiple configurations of work neighborhoods, amenity spaces and circulation zones. This work represents the _`define`_ step of the _`generate`_ phase.

The computer used this algorithm, varying its parameters to produce thousands of design options.
Using this algorithm, the computer varied the parameters to produce thousands of design options.

### Evaluate
## Evaluate

<img src="../../../assets/intro/mars2.jpg" style="width:200px;"/>

> Design option evaluated and selected- Mars Innovation District - The Living
> _Above: Design option evaluated and selected- Mars Innovation District - The Living_
To begin with, information was collected from employees and managers about work styles and location preferences. Based on this data, six primary and measurable goals were defined:
For this stage, information was collected from employees and managers about work styles and location preferences. Based on this data, six primary and measurable goals were defined:

* work style preference
* adjacency preference
Expand All @@ -27,14 +29,17 @@ To begin with, information was collected from employees and managers about work
* daylight
* views to the outside

The designers then created an algorithm to measure how any given floor plan can be measured against each of the stated goals above. Known as _`evaluators`_, these algorithms represents the _`analyse`_ and _`rank`_ stages of the generative process.
The designers then created an algorithm to measure how any given floor plan could be measured against each of the goals above. Known as _`evaluators`_, these algorithms represent the _`analyse`_ and _`rank`_ stages of the generative process.

After the algorithms were formulated, the computer used them to evaluate each of the designs generated in the previous stage against the defined goals.

### Explore
## Explore

<img src="../../../assets/intro/mars3.gif" style="width:200px;"/>

> Design Options - Mars Innovation District - The Living
> _Above: Design Options - Mars Innovation District - The Living_
After the designs were evaluated, the designers looked at the _`solution space`_ to explore the generated designs together with their evaluation results.

Taking into account each defined goal, they identified the design that best achieved the goals overall.

After the designs were evaluated, the designers explored the _`solution space`_ (the generated designs together with their evaluation results). Taking into account each defined goal, they identified the design that best achieved the goals overall.
Loading

0 comments on commit 75054e7

Please sign in to comment.