SlideShare a Scribd company logo
1 of 58
Download to read offline
ARCH A4845
Generative design
Columbia University GSAPP
ARCH A4845: Generative design
Introduction to
computational design
Columbia University GSAPP
ARCH A4845: Generative design
1. Computers in design
Columbia University GSAPP
ARCH A4845: Generative design
Origins of CAD - Steven Coons and the Computer-Aided Design Project at MIT (1959-1967)
1963
Columbia University GSAPP
ARCH A4845: Generative design
Origins of CAD - Ivan Sutherland and the Sketchpad system (1963)
Ivan Sutherland’s Sketchpad system is demonstrated on the console of the TX-2 at MIT (1963).
Columbia University GSAPP
ARCH A4845: Generative design
Origins of CAD - Ivan Sutherland and the Sketchpad system (1963)
Steps for drawing straight lines and circle arcs Manipulation of complex geometry
Columbia University GSAPP
ARCH A4845: Generative design
Origins of CAD - Ivan Sutherland and the Sketchpad system (1963)
Geometric relationships and constraints
Columbia University GSAPP
ARCH A4845: Generative design
Origins of CAD - Timothy E Johnson and Sketchpad III (1963)
Sketchpad III, a computer program for drawing in three dimensions.
Generalized space allocation program, showing plan view, two perspectives, and two constraints.
Columbia University GSAPP
ARCH A4845: Generative design
Origins of CAD - Lawrence Roberts
Compound object construction (1963) Camera transformation (1963)
Columbia University GSAPP
ARCH A4845: Generative design
Origins of CAD - Nicholas Negroponte and the Architecture Machine Group (1969)
SEEK (1969-70)URBAN 5 (1969)
Columbia University GSAPP
ARCH A4845: Generative design
Origins of CAD - Nicholas Negroponte and the Architecture Machine Group (1969)
Columbia University GSAPP
ARCH A4845: Generative design
“There are three possible ways of having machines assist the design
process:
1. Current procedures can be automated
2. Existing methods can be altered to fit within the specifications and
constitution of a machine
3. The process, considered as being evolutionary, can be introduced
to a mechanism (also considered as evolutionary), and a mutual
training, resilience and growth can be developed
NICHOLAS NEGROPONTE, TOWARDS A HUMANISM THROUGH MACHINES (1969)
Columbia University GSAPP
ARCH A4845: Generative design
2. Design by algorithm
Columbia University GSAPP
ARCH A4845: Generative design
Victor Vasarely at work in 1948 Caopeo, 1964
Algorithms in art
Columbia University GSAPP
ARCH A4845: Generative design
Yoko Ono, Instruction Paintings, 1961
Algorithms in art
Columbia University GSAPP
ARCH A4845: Generative design
Sol Lewitt, Wall Drawing (1974)
Algorithms in art
Columbia University GSAPP
ARCH A4845: Generative design
Sol LeWitt, Wall Drawing #960 being executed at Site Gallery, Sheffield, 8 May 2010
Algorithms in art
Columbia University GSAPP
ARCH A4845: Generative design
Christopher Alexander, Notes on the Synthesis of Form (1964)
Algorithmic design
Columbia University GSAPP
ARCH A4845: Generative design
D’Arcy Wentworth Thompson, On Growth and Form (1917)
Morphogenesis in nature
Columbia University GSAPP
ARCH A4845: Generative design
Ernst Haeckel, Embryos (1870)
Morphogenesis in nature
Columbia University GSAPP
ARCH A4845: Generative design
Michael Hensel and Achim Menges (eds.) - AD Morphogenetic design series (2004, 2006, 2008, 2012)
Morphogenesis in design
Columbia University GSAPP
ARCH A4845: Generative design
Mark Burry, Sagrada Familia (1994)
Mark Burry, Architecture and Practical Design Computation. In
“Computational Design Thinking” (Achim Menges, Sean Alquist, ed.) 2011
Morphogenesis in design
Columbia University GSAPP
ARCH A4845: Generative design
Morphogenesis in design
Mark Burry, Sagrada Familia (1994)
Mark Burry, Architecture and Practical Design Computation. In
“Computational Design Thinking” (Achim Menges, Sean Alquist, ed.) 2011
Columbia University GSAPP
ARCH A4845: Generative design
3. Algorithm design
Columbia University GSAPP
ARCH A4845: Generative design
1. Variable
2. Conditional
3. Loop
4. Function
5. Object (Class)
5 elements of computation
Columbia University GSAPP
ARCH A4845: Generative design
1. Variable
5 elements of computation
Columbia University GSAPP
ARCH A4845: Generative design
1. Variable x = 1
y = ‘hello world’
myList = [1, ‘b’, 3]
myDict = {’a’: 1, ‘b’: 2}
2. Loop
5 elements of computation
Columbia University GSAPP
ARCH A4845: Generative design
1. Variable x = 1
y = ‘hello world’
myList = [1, ‘b’, 3]
myDict = {’a’: 1, ‘b’: 2}
for i in range(10):
# do something 10 times
for element in myList:
# do something for all elements
2. Loop
3. Conditional
5 elements of computation
Columbia University GSAPP
ARCH A4845: Generative design
1. Variable x = 1
y = ‘hello world’
myList = [1, ‘b’, 3]
myDict = {’a’: 1, ‘b’: 2}
for i in range(10):
# do something 10 times
for element in myList:
# do something for all elements
if x > 10 and y > 10:
# do something
elif x > 5 or y < 5:
# do something else
else:
# do something else
2. Loop
3. Conditional
4. Function
5 elements of computation
Columbia University GSAPP
ARCH A4845: Generative design
1. Variable x = 1
y = ‘hello world’
myList = [1, ‘b’, 3]
myDict = {’a’: 1, ‘b’: 2}
for i in range(10):
# do something 10 times
for element in myList:
# do something for all elements
if x > 10 and y > 10:
# do something
elif x > 5 or y < 5:
# do something else
else:
# do something else
def myFunction(input1, intput2):
# do something
return output
c = myFunction(a, b)
2. Loop
3. Conditional
4. Function
5. Object
“encapsulation”
5 elements of computation
Columbia University GSAPP
ARCH A4845: Generative design
1. Data-mapping (Grasshopper)
2. Procedural (scripting)
3. Object-oriented (OOP)
Types of programming
Columbia University GSAPP
ARCH A4845: Generative design
GH - single variable
Columbia University GSAPP
ARCH A4845: Generative design
GH Node
(“function”)
inputs outputs
GH system
Columbia University GSAPP
ARCH A4845: Generative design
Variable
geometry from Rhino
Variable
data in Grasshopper
Function
transform
geometry
Function
create
data type
“data flow”
GH system
Columbia University GSAPP
ARCH A4845: Generative design
Function
transform
geometry
Function
create
geometry
Function
create
data type
GH system
Columbia University GSAPP
ARCH A4845: Generative design
Function
transform
geometry
Function
create
geometry
Function
calculate
data
Function
create
data type
display data
GH system
Columbia University GSAPP
ARCH A4845: Generative design
GH - multi-data streams
Columbia University GSAPP
ARCH A4845: Generative design
Function
create list
of numbers
single data
multi-data
GH - multi-data streams
Columbia University GSAPP
ARCH A4845: Generative design
Inherent loop
(executes once on
each piece of data)
GH - multi-data streams
Columbia University GSAPP
ARCH A4845: Generative design
Conditional
(creates “pattern” of
True/False booleans)
Conditional
(separates data based
on pattern)
GH - multi-data streams
Columbia University GSAPP
ARCH A4845: Generative design
GH - data trees
Mode Lab - Grasshopper Primer V3.3 [http://grasshopperprimer.com/]
Columbia University GSAPP
ARCH A4845: Generative design
GH - data mapping - one to one
Columbia University GSAPP
ARCH A4845: Generative design
GH - data mapping - one to many
Columbia University GSAPP
ARCH A4845: Generative design
GH - data mapping - many to many (flat list)
Columbia University GSAPP
ARCH A4845: Generative design
GH - data mapping - many to many (flat list)
Columbia University GSAPP
ARCH A4845: Generative design
GH - data mapping - many to many (data tree)
Columbia University GSAPP
ARCH A4845: Generative design
Limitations of Grasshopper
1.	Hard to deal with variables having data structures beyond a 1-d flat list
2.	Can’t make arbitrary loops (only data mapping)
3.	Complex conditionals get messy because each one requires separate conditional and
dispatch nodes
4.	Can’t create custom functions
5.	No support for classes or object-oriented programming
Columbia University GSAPP
ARCH A4845: Generative design
Python in GH
Columbia University GSAPP
ARCH A4845: Generative design
What is a programming language?
HARDWARE
PROGRAMMING
LANGUAGE
USER
INTERFACE
SOFTWARE
Columbia University GSAPP
ARCH A4845: Generative design
Elements of computer programming
1. Variable x = 1
y = ‘hello world’
myList = [1, ‘b’, 3]
myDict = {’a’: 1, ‘b’: 2}
Columbia University GSAPP
ARCH A4845: Generative design
Elements of computer programming
1. Variable x = 1
y = ‘hello world’
myList = [1, ‘b’, 3]
myDict = {’a’: 1, ‘b’: 2}
for i in range(10):
# do something 10 times
for element in myList:
# do something for all elements
2. Loop
Columbia University GSAPP
ARCH A4845: Generative design
Elements of computer programming
1. Variable x = 1
y = ‘hello world’
myList = [1, ‘b’, 3]
myDict = {’a’: 1, ‘b’: 2}
for i in range(10):
# do something 10 times
for element in myList:
# do something for all elements
2. Loop
3. Conditional if x > 10 and y > 10:
# do something
elif x > 5 or y < 5:
# do something else
else:
# do something else
Columbia University GSAPP
ARCH A4845: Generative design
Elements of computer programming
1. Variable x = 1
y = ‘hello world’
myList = [1, ‘b’, 3]
myDict = {’a’: 1, ‘b’: 2}
for i in range(10):
# do something 10 times
for element in myList:
# do something for all elements
if x > 10 and y > 10:
# do something
elif x > 5 or y < 5:
# do something else
else:
# do something else
def myFunction(input1, input2):
# do something
return output
c = myFunction(a, b)
2. Loop
3. Conditional
4. Function
Columbia University GSAPP
ARCH A4845: Generative design
Elements of computer programming
1. Variable x = 1
y = ‘hello world’
myList = [1, ‘b’, 3]
myDict = {’a’: 1, ‘b’: 2}
for i in range(10):
# do something 10 times
for element in myList:
# do something for all elements
if x > 10 and y > 10:
# do something
elif x > 5 or y < 5:
# do something else
else:
# do something else
class MyClass:
def __init__(self, input1):
self.localVar = input1
def myMethod(self, input2):
# do something
return output
classInstance = MyClass(a)
c = classInstance.myMethod(b)
2. Loop
3. Conditional
4. Function
5. Object
def myFunction(input1, intput2):
# do something
return output
c = myFunction(a, b)
“encapsulation”
Columbia University GSAPP
ARCH A4845: Generative design
Elements of computer programming
1. Variable x = 1
y = ‘hello world’
myList = [1, ‘b’, 3]
myDict = {’a’: 1, ‘b’: 2}
for i in range(10):
# do something 10 times
for element in myList:
# do something for all elements
if x > 10 and y > 10:
# do something
elif x > 5 or y < 5:
# do something else
else:
# do something else
2. Loop
3. Conditional
4. Function
5. Object class MyClass:
def __init__(self, input1):
self.localVar = input1
def myMethod(self, input2):
# do something
return output
classInstance = MyClass(a)
c = classInstance.myMethod(b)
def myFunction(input1, intput2):
# do something
return output
c = myFunction(a, b)
Columbia University GSAPP
ARCH A4845: Generative design
4. Computational design strategies
Columbia University GSAPP
ARCH A4845: Generative design
Control types
1) Morphological
AdvantageDisavantage
2) State-change 3) Rule-based 4) Behavioral
•	 good top-down control over
design
•	 can create discontinous
design spaces
•	 control over individual
elemenst
•	 L-system, shape grammers,
1d CA (single-state)
•	 object-oriented, agent-based
behavior models (dynamic)
•	 continuous measures •	 choices, categories
•	 reduced number of inputs
(abstraction of inputs into
rule sets)
•	 can create complexity
•	 reduced number of inputs
(abstraction of inputs into
agent behaviors)
•	 can lead to emergence
•	 only top-down control
•	 can’t control individual
behavior
•	 can’t create emergence
•	 potentially redundant or
incomplete design space
•	 little intuitive control over
macro design
•	 potentially redundant or
incomplete design space
•	 can usually only generate
simple and design spaces
•	 many inputs (each element
needs to be controlled
seperately)
Columbia University GSAPP
ARCH A4845: Generative design
ARCH A4845/52
Generative design
Columbia University GSAPP
ARCH A4845: Generative design

More Related Content

What's hot

Sustainable Design Part One: Building An Environmental Ethic
Sustainable Design Part One: Building An Environmental EthicSustainable Design Part One: Building An Environmental Ethic
Sustainable Design Part One: Building An Environmental EthicTerri Meyer Boake
 
Green buildings
Green buildingsGreen buildings
Green buildingsUrja Arora
 
Architectural Professional Practice - Design
Architectural Professional Practice - DesignArchitectural Professional Practice - Design
Architectural Professional Practice - DesignGalala University
 
Vernacular Study : AKIL SAMI HOUSE ,by Ar.HASSAN FATHY
Vernacular Study : AKIL SAMI HOUSE ,by Ar.HASSAN FATHY Vernacular Study : AKIL SAMI HOUSE ,by Ar.HASSAN FATHY
Vernacular Study : AKIL SAMI HOUSE ,by Ar.HASSAN FATHY Siddiq Salim
 
Sustainable architecture and green design (passive design)
Sustainable architecture and green design (passive design)Sustainable architecture and green design (passive design)
Sustainable architecture and green design (passive design)cagrihank
 
Contemporary landscape practices
Contemporary landscape practices   Contemporary landscape practices
Contemporary landscape practices Zehra Wazir
 
National Museum of Architecture Design Concept
National Museum of Architecture Design ConceptNational Museum of Architecture Design Concept
National Museum of Architecture Design ConceptDeepikaAgarwal42
 
Sustainable (autosaved)
Sustainable  (autosaved)Sustainable  (autosaved)
Sustainable (autosaved)chloeesim
 
Pragmatic Architecture
Pragmatic ArchitecturePragmatic Architecture
Pragmatic Architectureguestedb3ee
 
Biomimicry
BiomimicryBiomimicry
Biomimicrymnandin
 
Building information modeling & value to the AEC industry Part 1 v1
Building information modeling &  value to the AEC industry   Part 1 v1Building information modeling &  value to the AEC industry   Part 1 v1
Building information modeling & value to the AEC industry Part 1 v1Stephen Au
 
Parasitic architecture vs sculptural installation
Parasitic architecture vs sculptural installationParasitic architecture vs sculptural installation
Parasitic architecture vs sculptural installationChristine Cawthorne
 

What's hot (20)

Modern architecture
Modern architectureModern architecture
Modern architecture
 
Sustainable Design Part One: Building An Environmental Ethic
Sustainable Design Part One: Building An Environmental EthicSustainable Design Part One: Building An Environmental Ethic
Sustainable Design Part One: Building An Environmental Ethic
 
Green buildings
Green buildingsGreen buildings
Green buildings
 
Digital architecture
Digital architectureDigital architecture
Digital architecture
 
Parametric Design
Parametric DesignParametric Design
Parametric Design
 
Architectural Professional Practice - Design
Architectural Professional Practice - DesignArchitectural Professional Practice - Design
Architectural Professional Practice - Design
 
Vernacular Study : AKIL SAMI HOUSE ,by Ar.HASSAN FATHY
Vernacular Study : AKIL SAMI HOUSE ,by Ar.HASSAN FATHY Vernacular Study : AKIL SAMI HOUSE ,by Ar.HASSAN FATHY
Vernacular Study : AKIL SAMI HOUSE ,by Ar.HASSAN FATHY
 
Passive Solar Design
Passive Solar Design Passive Solar Design
Passive Solar Design
 
BIOMIMETIC ARCHITECTURE
BIOMIMETIC ARCHITECTUREBIOMIMETIC ARCHITECTURE
BIOMIMETIC ARCHITECTURE
 
Sustainable architecture and green design (passive design)
Sustainable architecture and green design (passive design)Sustainable architecture and green design (passive design)
Sustainable architecture and green design (passive design)
 
Contemporary landscape practices
Contemporary landscape practices   Contemporary landscape practices
Contemporary landscape practices
 
Vinay M
Vinay MVinay M
Vinay M
 
Architect: Luis Barragan
Architect: Luis BarraganArchitect: Luis Barragan
Architect: Luis Barragan
 
Parametric design
Parametric designParametric design
Parametric design
 
National Museum of Architecture Design Concept
National Museum of Architecture Design ConceptNational Museum of Architecture Design Concept
National Museum of Architecture Design Concept
 
Sustainable (autosaved)
Sustainable  (autosaved)Sustainable  (autosaved)
Sustainable (autosaved)
 
Pragmatic Architecture
Pragmatic ArchitecturePragmatic Architecture
Pragmatic Architecture
 
Biomimicry
BiomimicryBiomimicry
Biomimicry
 
Building information modeling & value to the AEC industry Part 1 v1
Building information modeling &  value to the AEC industry   Part 1 v1Building information modeling &  value to the AEC industry   Part 1 v1
Building information modeling & value to the AEC industry Part 1 v1
 
Parasitic architecture vs sculptural installation
Parasitic architecture vs sculptural installationParasitic architecture vs sculptural installation
Parasitic architecture vs sculptural installation
 

Similar to SP18 Generative Design - Week 2 - Introduction to computational design

SP18 Generative Design - Week 8 - Optimization
SP18 Generative Design - Week 8 - OptimizationSP18 Generative Design - Week 8 - Optimization
SP18 Generative Design - Week 8 - OptimizationDanil Nagy
 
SP18 Generative Design - Week 5 - Introduction to simulation
SP18 Generative Design - Week 5 - Introduction to simulationSP18 Generative Design - Week 5 - Introduction to simulation
SP18 Generative Design - Week 5 - Introduction to simulationDanil Nagy
 
Coates p: the use of genetic programming for applications in the field of spa...
Coates p: the use of genetic programming for applications in the field of spa...Coates p: the use of genetic programming for applications in the field of spa...
Coates p: the use of genetic programming for applications in the field of spa...ArchiLab 7
 
Computational geometry
Computational geometryComputational geometry
Computational geometrymurali9120
 
ML+Hadoop at NYC Predictive Analytics
ML+Hadoop at NYC Predictive AnalyticsML+Hadoop at NYC Predictive Analytics
ML+Hadoop at NYC Predictive AnalyticsErik Bernhardsson
 
NYAI #9: Concepts and Questions As Programs by Brenden Lake
NYAI #9: Concepts and Questions As Programs by Brenden LakeNYAI #9: Concepts and Questions As Programs by Brenden Lake
NYAI #9: Concepts and Questions As Programs by Brenden LakeRizwan Habib
 
Monads and Monoids by Oleksiy Dyagilev
Monads and Monoids by Oleksiy DyagilevMonads and Monoids by Oleksiy Dyagilev
Monads and Monoids by Oleksiy DyagilevJavaDayUA
 
Scala Collections : Java 8 on Steroids
Scala Collections : Java 8 on SteroidsScala Collections : Java 8 on Steroids
Scala Collections : Java 8 on SteroidsFrançois Garillot
 
Narjess Afzaly: Model Your Problem with Graphs and Generate your objects
Narjess Afzaly: Model Your Problem with Graphs and Generate your objectsNarjess Afzaly: Model Your Problem with Graphs and Generate your objects
Narjess Afzaly: Model Your Problem with Graphs and Generate your objectsknowdiff
 
Cape2013 scilab-workshop-19Oct13
Cape2013 scilab-workshop-19Oct13Cape2013 scilab-workshop-19Oct13
Cape2013 scilab-workshop-19Oct13Naren P.R.
 
SP18 Generative Design - Week 6 - Design space design
SP18 Generative Design - Week 6 - Design space designSP18 Generative Design - Week 6 - Design space design
SP18 Generative Design - Week 6 - Design space designDanil Nagy
 
Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)sankeld
 
HOP-Rec_RecSys18
HOP-Rec_RecSys18HOP-Rec_RecSys18
HOP-Rec_RecSys18Matt Yang
 
Studio 4 - workshop introduction
Studio 4 - workshop introductionStudio 4 - workshop introduction
Studio 4 - workshop introductionDanil Nagy
 
Using Git, Pointers in Rust
Using Git, Pointers in RustUsing Git, Pointers in Rust
Using Git, Pointers in RustDavid Evans
 

Similar to SP18 Generative Design - Week 2 - Introduction to computational design (20)

SP18 Generative Design - Week 8 - Optimization
SP18 Generative Design - Week 8 - OptimizationSP18 Generative Design - Week 8 - Optimization
SP18 Generative Design - Week 8 - Optimization
 
SP18 Generative Design - Week 5 - Introduction to simulation
SP18 Generative Design - Week 5 - Introduction to simulationSP18 Generative Design - Week 5 - Introduction to simulation
SP18 Generative Design - Week 5 - Introduction to simulation
 
Biol
BiolBiol
Biol
 
Coates p: the use of genetic programming for applications in the field of spa...
Coates p: the use of genetic programming for applications in the field of spa...Coates p: the use of genetic programming for applications in the field of spa...
Coates p: the use of genetic programming for applications in the field of spa...
 
Computational geometry
Computational geometryComputational geometry
Computational geometry
 
ML+Hadoop at NYC Predictive Analytics
ML+Hadoop at NYC Predictive AnalyticsML+Hadoop at NYC Predictive Analytics
ML+Hadoop at NYC Predictive Analytics
 
NYAI #9: Concepts and Questions As Programs by Brenden Lake
NYAI #9: Concepts and Questions As Programs by Brenden LakeNYAI #9: Concepts and Questions As Programs by Brenden Lake
NYAI #9: Concepts and Questions As Programs by Brenden Lake
 
Monads and Monoids by Oleksiy Dyagilev
Monads and Monoids by Oleksiy DyagilevMonads and Monoids by Oleksiy Dyagilev
Monads and Monoids by Oleksiy Dyagilev
 
Scala Collections : Java 8 on Steroids
Scala Collections : Java 8 on SteroidsScala Collections : Java 8 on Steroids
Scala Collections : Java 8 on Steroids
 
Narjess Afzaly: Model Your Problem with Graphs and Generate your objects
Narjess Afzaly: Model Your Problem with Graphs and Generate your objectsNarjess Afzaly: Model Your Problem with Graphs and Generate your objects
Narjess Afzaly: Model Your Problem with Graphs and Generate your objects
 
Computer Scientists Retrieval - PDF Report
Computer Scientists Retrieval - PDF ReportComputer Scientists Retrieval - PDF Report
Computer Scientists Retrieval - PDF Report
 
Cape2013 scilab-workshop-19Oct13
Cape2013 scilab-workshop-19Oct13Cape2013 scilab-workshop-19Oct13
Cape2013 scilab-workshop-19Oct13
 
SP18 Generative Design - Week 6 - Design space design
SP18 Generative Design - Week 6 - Design space designSP18 Generative Design - Week 6 - Design space design
SP18 Generative Design - Week 6 - Design space design
 
Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)
 
HOP-Rec_RecSys18
HOP-Rec_RecSys18HOP-Rec_RecSys18
HOP-Rec_RecSys18
 
Studio 4 - workshop introduction
Studio 4 - workshop introductionStudio 4 - workshop introduction
Studio 4 - workshop introduction
 
Functional programming
Functional programmingFunctional programming
Functional programming
 
Igraph
IgraphIgraph
Igraph
 
Using Git, Pointers in Rust
Using Git, Pointers in RustUsing Git, Pointers in Rust
Using Git, Pointers in Rust
 
Lecture 3.pdf
Lecture 3.pdfLecture 3.pdf
Lecture 3.pdf
 

More from Danil Nagy

Generative Design - Week 6 - Designing with inputs, objectives, and constraints
Generative Design - Week 6 - Designing with inputs, objectives, and constraintsGenerative Design - Week 6 - Designing with inputs, objectives, and constraints
Generative Design - Week 6 - Designing with inputs, objectives, and constraintsDanil Nagy
 
Generative Design - Week 5 - Introduction to optimization
Generative Design - Week 5 - Introduction to optimizationGenerative Design - Week 5 - Introduction to optimization
Generative Design - Week 5 - Introduction to optimizationDanil Nagy
 
Generative Design - Week 4 - Scripting in Python
Generative Design - Week 4 - Scripting in PythonGenerative Design - Week 4 - Scripting in Python
Generative Design - Week 4 - Scripting in PythonDanil Nagy
 
Generative Design - Week 3 - Working with data in Grasshopper
Generative Design - Week 3 - Working with data in GrasshopperGenerative Design - Week 3 - Working with data in Grasshopper
Generative Design - Week 3 - Working with data in GrasshopperDanil Nagy
 
Generative Design - Week 1 - Introduction to Generative Design
Generative Design - Week 1 - Introduction to Generative DesignGenerative Design - Week 1 - Introduction to Generative Design
Generative Design - Week 1 - Introduction to Generative DesignDanil Nagy
 
Generative Design - Week 2 - Parametric modeling in rhino and grasshopper
Generative Design - Week 2 - Parametric modeling in rhino and grasshopperGenerative Design - Week 2 - Parametric modeling in rhino and grasshopper
Generative Design - Week 2 - Parametric modeling in rhino and grasshopperDanil Nagy
 
SP18 Generative Design - Week 7 - GD case studies
SP18 Generative Design - Week 7 - GD case studiesSP18 Generative Design - Week 7 - GD case studies
SP18 Generative Design - Week 7 - GD case studiesDanil Nagy
 
SP18 Generative Design - Week 4 - Computational control strategies
SP18 Generative Design - Week 4 - Computational control strategiesSP18 Generative Design - Week 4 - Computational control strategies
SP18 Generative Design - Week 4 - Computational control strategiesDanil Nagy
 
SP18 Generative Design - Week 1 - Introduction
SP18 Generative Design - Week 1 - IntroductionSP18 Generative Design - Week 1 - Introduction
SP18 Generative Design - Week 1 - IntroductionDanil Nagy
 
Data Mining the City - A (practical) introduction to Machine Learning
Data Mining the City - A (practical) introduction to Machine LearningData Mining the City - A (practical) introduction to Machine Learning
Data Mining the City - A (practical) introduction to Machine LearningDanil Nagy
 

More from Danil Nagy (10)

Generative Design - Week 6 - Designing with inputs, objectives, and constraints
Generative Design - Week 6 - Designing with inputs, objectives, and constraintsGenerative Design - Week 6 - Designing with inputs, objectives, and constraints
Generative Design - Week 6 - Designing with inputs, objectives, and constraints
 
Generative Design - Week 5 - Introduction to optimization
Generative Design - Week 5 - Introduction to optimizationGenerative Design - Week 5 - Introduction to optimization
Generative Design - Week 5 - Introduction to optimization
 
Generative Design - Week 4 - Scripting in Python
Generative Design - Week 4 - Scripting in PythonGenerative Design - Week 4 - Scripting in Python
Generative Design - Week 4 - Scripting in Python
 
Generative Design - Week 3 - Working with data in Grasshopper
Generative Design - Week 3 - Working with data in GrasshopperGenerative Design - Week 3 - Working with data in Grasshopper
Generative Design - Week 3 - Working with data in Grasshopper
 
Generative Design - Week 1 - Introduction to Generative Design
Generative Design - Week 1 - Introduction to Generative DesignGenerative Design - Week 1 - Introduction to Generative Design
Generative Design - Week 1 - Introduction to Generative Design
 
Generative Design - Week 2 - Parametric modeling in rhino and grasshopper
Generative Design - Week 2 - Parametric modeling in rhino and grasshopperGenerative Design - Week 2 - Parametric modeling in rhino and grasshopper
Generative Design - Week 2 - Parametric modeling in rhino and grasshopper
 
SP18 Generative Design - Week 7 - GD case studies
SP18 Generative Design - Week 7 - GD case studiesSP18 Generative Design - Week 7 - GD case studies
SP18 Generative Design - Week 7 - GD case studies
 
SP18 Generative Design - Week 4 - Computational control strategies
SP18 Generative Design - Week 4 - Computational control strategiesSP18 Generative Design - Week 4 - Computational control strategies
SP18 Generative Design - Week 4 - Computational control strategies
 
SP18 Generative Design - Week 1 - Introduction
SP18 Generative Design - Week 1 - IntroductionSP18 Generative Design - Week 1 - Introduction
SP18 Generative Design - Week 1 - Introduction
 
Data Mining the City - A (practical) introduction to Machine Learning
Data Mining the City - A (practical) introduction to Machine LearningData Mining the City - A (practical) introduction to Machine Learning
Data Mining the City - A (practical) introduction to Machine Learning
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

SP18 Generative Design - Week 2 - Introduction to computational design

  • 1. ARCH A4845 Generative design Columbia University GSAPP ARCH A4845: Generative design
  • 2. Introduction to computational design Columbia University GSAPP ARCH A4845: Generative design
  • 3. 1. Computers in design Columbia University GSAPP ARCH A4845: Generative design
  • 4. Origins of CAD - Steven Coons and the Computer-Aided Design Project at MIT (1959-1967) 1963 Columbia University GSAPP ARCH A4845: Generative design
  • 5. Origins of CAD - Ivan Sutherland and the Sketchpad system (1963) Ivan Sutherland’s Sketchpad system is demonstrated on the console of the TX-2 at MIT (1963). Columbia University GSAPP ARCH A4845: Generative design
  • 6. Origins of CAD - Ivan Sutherland and the Sketchpad system (1963) Steps for drawing straight lines and circle arcs Manipulation of complex geometry Columbia University GSAPP ARCH A4845: Generative design
  • 7. Origins of CAD - Ivan Sutherland and the Sketchpad system (1963) Geometric relationships and constraints Columbia University GSAPP ARCH A4845: Generative design
  • 8. Origins of CAD - Timothy E Johnson and Sketchpad III (1963) Sketchpad III, a computer program for drawing in three dimensions. Generalized space allocation program, showing plan view, two perspectives, and two constraints. Columbia University GSAPP ARCH A4845: Generative design
  • 9. Origins of CAD - Lawrence Roberts Compound object construction (1963) Camera transformation (1963) Columbia University GSAPP ARCH A4845: Generative design
  • 10. Origins of CAD - Nicholas Negroponte and the Architecture Machine Group (1969) SEEK (1969-70)URBAN 5 (1969) Columbia University GSAPP ARCH A4845: Generative design
  • 11. Origins of CAD - Nicholas Negroponte and the Architecture Machine Group (1969) Columbia University GSAPP ARCH A4845: Generative design
  • 12. “There are three possible ways of having machines assist the design process: 1. Current procedures can be automated 2. Existing methods can be altered to fit within the specifications and constitution of a machine 3. The process, considered as being evolutionary, can be introduced to a mechanism (also considered as evolutionary), and a mutual training, resilience and growth can be developed NICHOLAS NEGROPONTE, TOWARDS A HUMANISM THROUGH MACHINES (1969) Columbia University GSAPP ARCH A4845: Generative design
  • 13. 2. Design by algorithm Columbia University GSAPP ARCH A4845: Generative design
  • 14. Victor Vasarely at work in 1948 Caopeo, 1964 Algorithms in art Columbia University GSAPP ARCH A4845: Generative design
  • 15. Yoko Ono, Instruction Paintings, 1961 Algorithms in art Columbia University GSAPP ARCH A4845: Generative design
  • 16. Sol Lewitt, Wall Drawing (1974) Algorithms in art Columbia University GSAPP ARCH A4845: Generative design
  • 17. Sol LeWitt, Wall Drawing #960 being executed at Site Gallery, Sheffield, 8 May 2010 Algorithms in art Columbia University GSAPP ARCH A4845: Generative design
  • 18. Christopher Alexander, Notes on the Synthesis of Form (1964) Algorithmic design Columbia University GSAPP ARCH A4845: Generative design
  • 19. D’Arcy Wentworth Thompson, On Growth and Form (1917) Morphogenesis in nature Columbia University GSAPP ARCH A4845: Generative design
  • 20. Ernst Haeckel, Embryos (1870) Morphogenesis in nature Columbia University GSAPP ARCH A4845: Generative design
  • 21. Michael Hensel and Achim Menges (eds.) - AD Morphogenetic design series (2004, 2006, 2008, 2012) Morphogenesis in design Columbia University GSAPP ARCH A4845: Generative design
  • 22. Mark Burry, Sagrada Familia (1994) Mark Burry, Architecture and Practical Design Computation. In “Computational Design Thinking” (Achim Menges, Sean Alquist, ed.) 2011 Morphogenesis in design Columbia University GSAPP ARCH A4845: Generative design
  • 23. Morphogenesis in design Mark Burry, Sagrada Familia (1994) Mark Burry, Architecture and Practical Design Computation. In “Computational Design Thinking” (Achim Menges, Sean Alquist, ed.) 2011 Columbia University GSAPP ARCH A4845: Generative design
  • 24. 3. Algorithm design Columbia University GSAPP ARCH A4845: Generative design
  • 25. 1. Variable 2. Conditional 3. Loop 4. Function 5. Object (Class) 5 elements of computation Columbia University GSAPP ARCH A4845: Generative design
  • 26. 1. Variable 5 elements of computation Columbia University GSAPP ARCH A4845: Generative design
  • 27. 1. Variable x = 1 y = ‘hello world’ myList = [1, ‘b’, 3] myDict = {’a’: 1, ‘b’: 2} 2. Loop 5 elements of computation Columbia University GSAPP ARCH A4845: Generative design
  • 28. 1. Variable x = 1 y = ‘hello world’ myList = [1, ‘b’, 3] myDict = {’a’: 1, ‘b’: 2} for i in range(10): # do something 10 times for element in myList: # do something for all elements 2. Loop 3. Conditional 5 elements of computation Columbia University GSAPP ARCH A4845: Generative design
  • 29. 1. Variable x = 1 y = ‘hello world’ myList = [1, ‘b’, 3] myDict = {’a’: 1, ‘b’: 2} for i in range(10): # do something 10 times for element in myList: # do something for all elements if x > 10 and y > 10: # do something elif x > 5 or y < 5: # do something else else: # do something else 2. Loop 3. Conditional 4. Function 5 elements of computation Columbia University GSAPP ARCH A4845: Generative design
  • 30. 1. Variable x = 1 y = ‘hello world’ myList = [1, ‘b’, 3] myDict = {’a’: 1, ‘b’: 2} for i in range(10): # do something 10 times for element in myList: # do something for all elements if x > 10 and y > 10: # do something elif x > 5 or y < 5: # do something else else: # do something else def myFunction(input1, intput2): # do something return output c = myFunction(a, b) 2. Loop 3. Conditional 4. Function 5. Object “encapsulation” 5 elements of computation Columbia University GSAPP ARCH A4845: Generative design
  • 31. 1. Data-mapping (Grasshopper) 2. Procedural (scripting) 3. Object-oriented (OOP) Types of programming Columbia University GSAPP ARCH A4845: Generative design
  • 32. GH - single variable Columbia University GSAPP ARCH A4845: Generative design GH Node (“function”) inputs outputs
  • 33. GH system Columbia University GSAPP ARCH A4845: Generative design Variable geometry from Rhino Variable data in Grasshopper Function transform geometry Function create data type “data flow”
  • 34. GH system Columbia University GSAPP ARCH A4845: Generative design Function transform geometry Function create geometry Function create data type
  • 35. GH system Columbia University GSAPP ARCH A4845: Generative design Function transform geometry Function create geometry Function calculate data Function create data type display data
  • 36. GH system Columbia University GSAPP ARCH A4845: Generative design
  • 37. GH - multi-data streams Columbia University GSAPP ARCH A4845: Generative design Function create list of numbers single data multi-data
  • 38. GH - multi-data streams Columbia University GSAPP ARCH A4845: Generative design Inherent loop (executes once on each piece of data)
  • 39. GH - multi-data streams Columbia University GSAPP ARCH A4845: Generative design Conditional (creates “pattern” of True/False booleans) Conditional (separates data based on pattern)
  • 40. GH - multi-data streams Columbia University GSAPP ARCH A4845: Generative design
  • 41. GH - data trees Mode Lab - Grasshopper Primer V3.3 [http://grasshopperprimer.com/] Columbia University GSAPP ARCH A4845: Generative design
  • 42. GH - data mapping - one to one Columbia University GSAPP ARCH A4845: Generative design
  • 43. GH - data mapping - one to many Columbia University GSAPP ARCH A4845: Generative design
  • 44. GH - data mapping - many to many (flat list) Columbia University GSAPP ARCH A4845: Generative design
  • 45. GH - data mapping - many to many (flat list) Columbia University GSAPP ARCH A4845: Generative design
  • 46. GH - data mapping - many to many (data tree) Columbia University GSAPP ARCH A4845: Generative design
  • 47. Limitations of Grasshopper 1. Hard to deal with variables having data structures beyond a 1-d flat list 2. Can’t make arbitrary loops (only data mapping) 3. Complex conditionals get messy because each one requires separate conditional and dispatch nodes 4. Can’t create custom functions 5. No support for classes or object-oriented programming Columbia University GSAPP ARCH A4845: Generative design
  • 48. Python in GH Columbia University GSAPP ARCH A4845: Generative design
  • 49. What is a programming language? HARDWARE PROGRAMMING LANGUAGE USER INTERFACE SOFTWARE Columbia University GSAPP ARCH A4845: Generative design
  • 50. Elements of computer programming 1. Variable x = 1 y = ‘hello world’ myList = [1, ‘b’, 3] myDict = {’a’: 1, ‘b’: 2} Columbia University GSAPP ARCH A4845: Generative design
  • 51. Elements of computer programming 1. Variable x = 1 y = ‘hello world’ myList = [1, ‘b’, 3] myDict = {’a’: 1, ‘b’: 2} for i in range(10): # do something 10 times for element in myList: # do something for all elements 2. Loop Columbia University GSAPP ARCH A4845: Generative design
  • 52. Elements of computer programming 1. Variable x = 1 y = ‘hello world’ myList = [1, ‘b’, 3] myDict = {’a’: 1, ‘b’: 2} for i in range(10): # do something 10 times for element in myList: # do something for all elements 2. Loop 3. Conditional if x > 10 and y > 10: # do something elif x > 5 or y < 5: # do something else else: # do something else Columbia University GSAPP ARCH A4845: Generative design
  • 53. Elements of computer programming 1. Variable x = 1 y = ‘hello world’ myList = [1, ‘b’, 3] myDict = {’a’: 1, ‘b’: 2} for i in range(10): # do something 10 times for element in myList: # do something for all elements if x > 10 and y > 10: # do something elif x > 5 or y < 5: # do something else else: # do something else def myFunction(input1, input2): # do something return output c = myFunction(a, b) 2. Loop 3. Conditional 4. Function Columbia University GSAPP ARCH A4845: Generative design
  • 54. Elements of computer programming 1. Variable x = 1 y = ‘hello world’ myList = [1, ‘b’, 3] myDict = {’a’: 1, ‘b’: 2} for i in range(10): # do something 10 times for element in myList: # do something for all elements if x > 10 and y > 10: # do something elif x > 5 or y < 5: # do something else else: # do something else class MyClass: def __init__(self, input1): self.localVar = input1 def myMethod(self, input2): # do something return output classInstance = MyClass(a) c = classInstance.myMethod(b) 2. Loop 3. Conditional 4. Function 5. Object def myFunction(input1, intput2): # do something return output c = myFunction(a, b) “encapsulation” Columbia University GSAPP ARCH A4845: Generative design
  • 55. Elements of computer programming 1. Variable x = 1 y = ‘hello world’ myList = [1, ‘b’, 3] myDict = {’a’: 1, ‘b’: 2} for i in range(10): # do something 10 times for element in myList: # do something for all elements if x > 10 and y > 10: # do something elif x > 5 or y < 5: # do something else else: # do something else 2. Loop 3. Conditional 4. Function 5. Object class MyClass: def __init__(self, input1): self.localVar = input1 def myMethod(self, input2): # do something return output classInstance = MyClass(a) c = classInstance.myMethod(b) def myFunction(input1, intput2): # do something return output c = myFunction(a, b) Columbia University GSAPP ARCH A4845: Generative design
  • 56. 4. Computational design strategies Columbia University GSAPP ARCH A4845: Generative design
  • 57. Control types 1) Morphological AdvantageDisavantage 2) State-change 3) Rule-based 4) Behavioral • good top-down control over design • can create discontinous design spaces • control over individual elemenst • L-system, shape grammers, 1d CA (single-state) • object-oriented, agent-based behavior models (dynamic) • continuous measures • choices, categories • reduced number of inputs (abstraction of inputs into rule sets) • can create complexity • reduced number of inputs (abstraction of inputs into agent behaviors) • can lead to emergence • only top-down control • can’t control individual behavior • can’t create emergence • potentially redundant or incomplete design space • little intuitive control over macro design • potentially redundant or incomplete design space • can usually only generate simple and design spaces • many inputs (each element needs to be controlled seperately) Columbia University GSAPP ARCH A4845: Generative design
  • 58. ARCH A4845/52 Generative design Columbia University GSAPP ARCH A4845: Generative design