Course Syllabus

Link to course syllabus

Look deep into nature, and then you will understand everything better.

  • Albert Einstein


1. Intelligent machines

In the past decade, our interaction with the world has been deeply affected by artificial intelligence. Many industries including finance, science, and manufacturing have been revolutionized by developments in Machine Learning, optimization, and other artificial intelligence technologies, which have allowed them to leverage the power of computing to solve complex problems in new, innovative ways.

Meanwhile, architectural design practice has been barely impacted by these developments. Although almost all designers use computers in their practice, the tools they rely on have not leveraged these emerging technologies. As a result, the design profession has not substantially evolved since computers were first introduced to the design world nearly four decades ago.


2. Learning from nature

Perhaps the greatest opportunity for artificial intelligence in design practice today is its ability to leverage another, much older form of intelligence - natural intelligence. Designers have always been inspired by the forms of nature, and their abilities to solve difficult problems in novel and beautiful ways. However, up to this point our inspiration from nature has been limited to ‘bio-mimicry’, or the reproduction of nature’s physical forms in new designs. Can we go a step further and actually design like nature?

To do this we have to first understand how nature designs. The basic element of nature’s design is the species, a kind of model which encodes all of the unique properties and abilities of its individual members. The basic tool of nature’s design is evolution, which is an iterative process by which species are able to adapt and improve based on interaction with other species and their environment.


3. Automating design

This class will explore how we can use new technology to leverage nature’s design methods to create new design workflows:

  1. Instead of designing objects, we will learn to design systems which encode the full range of possibilities of a particular design concept
  2. We will then learn methods for measuring and quantifying the performance of these systems so that each design can be evaluated automatically by the computer
  3. Finally, we will create automated evolutionary processes which will allow the computer to search through our design systems to find novel and high-performing designs.


4. From tools to partners

These new workflows will allow us to explore a much wider space of design than possible through traditional intuitive methods, and lead not only to the discovery of novel and unexpected solutions, but to a deeper understanding of the design problem itself. 

To take advantage of these possibilities, we will have to learn how to work with computers in new ways. Instead of thinking of computers as tools that accomplish specific tasks in predictable ways, we will think of computers and algorithms as partners in our design process.

We will discover that orchestrating such a human/machine design collaboration is actually quite difficult. Artificial and human intelligences work in very different ways, and in order to work together we will have to be much more explicit in how we describe our design concepts and intentions to the computer. However, if we succeed, this interaction will not only create new opportunities for design, but will make us more thoughtful, more responsible, and better human designers.


5. Technology

The course will teach students new workflows for generating, evaluating, and evolving physical designs using custom Python scripts running on top of the Grasshopper environment for Rhino. Prior knowledge of computer programming in Python is encouraged but not required. However, prior experience with both Rhino and Grasshopper are a prerequisite for taking the course. For basic training in Grasshopper students are encouraged to work through the relevant tutorials on the prior to the first day of class.


6. Schedule

Session A - Design computation.

The first session will introduce students to the basic concepts of generative design and teach them how to create complex models that can be controlled and evaluated by an automated search algorithm. The Python programming language will be introduced as a way to amplify the generative complexity of parametric models in Grasshopper. This session will also cover techniques for evaluating designs including using third-party Grasshopper plugins for structural and environmental analysis.

Session B - Design evolution.

The second session will dive deeper into the generative design workflow, and focus primarily on the automated search engine itself. Students will learn how to use state-of-the-art genetic algorithms to automatically search through their design models for high-performing solutions, and how to evaluate the search process to derive new knowledge about their design.

Course Summary:

Date Details