-
Notifications
You must be signed in to change notification settings - Fork 39
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #48 from DynamoDS/q1-updates
Q1 updates
- Loading branch information
Showing
191 changed files
with
21,200 additions
and
17,374 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. | ||
|
14 changes: 7 additions & 7 deletions
14
01-introduction/01-02_generative-design/01-02-01_what-is-generative-design.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. | ||
|
35 changes: 19 additions & 16 deletions
35
...oduction/01-02_generative-design/01-02-02_why-should-i-use-generative-design.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
28 changes: 16 additions & 12 deletions
28
...what-goes-into-a-generative-design-process/01-02-03-01_anatomy-of-each-stage.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. | ||
|
25 changes: 17 additions & 8 deletions
25
...generative-design/01-02-03_what-goes-into-a-generative-design-process/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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;"/> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.