Advertising + Marketing
Menu
Policies, Terms + Conditions
Menu
Login + Registration Pages
Menu
Welcome to Generative Design! This is a comprehensive course for architects, engineers, and urban designers teaching practical automation workflows based on parametric modeling, scripting, simulation, and optimization.
The course was recorded in a live webinar format with hands-on demo using the provided sample files. After each session the video file will be uploaded and available for future viewing on Performance Network.
Danil Nagy is a designer, developer, and entrepreneur focusing on applications of computational design and automation for the building industries. His expertise includes computational geometry, digital fabrication, simulation, optimization, machine learning, and data visualization. Danil teaches at the Graduate School of Architecture, Planning and Preservation (GSAPP) at Columbia University in New York, where his courses focus on architectural visualization, generative design, and applications of artificial intelligence. Danil was formerly a Principal Research Scientist at Autodesk Research. He is the founder of Colidescope, a consultancy focused on bringing digital transformation tools to the Architecture, Engineering, and Construction (AEC) industries.
Participants will gain hands-on experience with a variety of technologies and techniques involved with the Generative Design approach, including computational design, scripting, simulation, optimization, and data visualization. For modeling and simulation we will rely on Grasshopper, a visual programming interface for the 3d modelling software Rhino. We will also use several 3rd party plugins developed for Grasshopper including Karamba3d, Kangaroo, and Human. For optimization and visualization we will use Discover, an open source optimization app developed by Colidescope. Although there are no pre-requisites for the course, basic familiarity with Rhino and Grasshopper is recommended.
1. Introduction
1.1 Introduction to generative design
This session provides an overview of the generative design methodology, including its theoretical context, its foundations in artificial intelligence, and its applications in industry. Participants will learn how to combine techniques of computational design, simulation, and optimization to develop generative workflows which can explore a wide space of possible designs while revealing the most optimal solutions to a complex set of performance requirements. They will also get an introduction to the tools and technologies used to enable these workflows.
2. Computational design primer
2.1. Parametric modeling in Rhino and Grasshopper
This session introduces the 3D CAD modeling software Rhino, and demonstrates how it can be extended for parametric modeling using the visual programming plugin Grasshopper. The session will cover basic Rhino skills including 2d drawing, 3d modeling and visualization, as well as Grasshopper skills including importing geometry from Rhino and working with parametric geometries.
2.2. Working with data in Grasshopper
This session gives an overview of the main data types and structures used in Grasshopper. Participants will learn how to work with single items as well as lists of items and more complex data trees. They will also learn basic techniques for data management including filtering, sorting, grafting, flattening, splitting, and joining. A parametric facade is used as a case study to show how a complex computational model can be constructed using a variety of data types and a combination of mathematical and geometric operations.
2.3. Scripting in Python
This session introduces the computer programming language Python, and demonstrates how it can be used to extend the functionality of Rhino and Grasshopper. Participants will learn the basic elements of computational design, how they are implemented in Python, and how to implement Python scripts directly in Grasshopper. They will also get an introduction to RhinoCommon, the geometry library at the core of Rhino which can be accessed directly through Python.
3. Optimization
3.1. Introduction to optimization
This session introduces the theory of optimization and demonstrates how it can be used to automate performance-driven design workflows. Participants will gain an intuitive understanding of several foundational optimization algorithms including Gradient Descent, Simulated Annealing, and the Genetic Algorithm. They will also get a hands-on introduction to Discover, an open-source optimization framework designed for Grasshopper.
3.2. Designing better generative models
This session introduces a set of strategies for designing parametric models which are suitable for optimization. The session will cover a variety of theories and best practices for designing generative models, including: when to use continuous vs. categorical parameters, the role of randomness in generative models, the relationship between parameters and their formal expression, and how to evaluate the bias, variance, and complexity of a generative model.
4. Simulation
4.1. Structural analysis
This session provides an introduction to building-scale structural analysis using the FEA solver Karamba in Grasshopper. Participants will learn how to set up their geometry for analysis, apply load and constraint conditions, change materials, and view and analyze results. They will also get an overview of the types of metrics typically used to evaluate structural performance.
4.2. Daylight
This session provides an introduction to daylight simulation using the Ladybug Tools plugin developed for Grasshopper. Participants will learn basic techniques in solar radiation and shadow analysis, as well as more advanced methods in single time and yearly illumination studies. They will also get an overview of typical metrics used to evaluate daylight.
4.3. Views
This session provides an introduction to view analysis using a custom set of tools developed for Grasshopper. Participants will learn how to calculate view vectors and collisions to evaluate desired views, and how to use isovists to aggregate view-based metrics across a space.
4.4. Occupancy
This session provides an introduction to occupancy simulation using a custom set of tools developed for Grasshopper. Participants will learn how to simulate behavior in space by modeling a system of possible walking paths in their model, and then calculating shortest paths between pairs of locations. They will also get a broader understanding of network theory and its possible applications in spatial analysis.
5. Advanced modelling
5.1. Recursion and subdivision for space planning
This session will introduce recursion as a computational strategy for creating more complex design space models. Participants will get hands-on experience with a set of recursive models including branching and subdivision systems, and apply them to solve layout problems in space planning.
5.2. Packing for site massing
This session will give an overview for how to represent and solve space packing problems using the generative design framework. Participants will cover the basic concepts of space packing and apply them to solve a typical site massing problem.
5.3. Agent-based systems
This session will introduce agent-based systems using the Object Oriented Programming (OOP) framework in Python. Participants will gain hands-on experience with the Cellular Automata model, and apply it to design the structural system of a high-rise tower.
5.4. Assignments and routing
This session will give an overview for how to represent and solve assignment and routing problems using the generative design framework. Participants will learn how to use a special parameter type to represent an ordered sequence of values, and apply it to solve the classic Travelling Salesman Problem as well as the seat assignment problem in space planning.
6. Conclusion
6.1. Designing with objectives and constraints
This session explores the use of objectives and constraints to guide the optimization process during generative design. Using a set of demo models, the session will review the difference between single and multi-objective optimization, and describe why both strategies may be useful at different times. It will also show how constraints can be used alongside objectives to allow greater control over the optimization process.
6.2. Visualizing Generative Design / What’s next?
Because generative design is a new design approach, it requires new forms of visualization to communicate the logic of the generative model and visualize the behavior of the optimization algorithm as it finds the optimal designs. This session will review a variety of visualization approaches based on examples from industry. It will also demonstrate a set of standard visualization techniques including generational composites, time-based plots, parallel plots, scatter plots, and design animations.
The session will conclude with a discussion of current developments in generative design and a forecast of the near future of design automation based on recent developments in Machine Learning and AI.
Join the world's largest and most influential community forum of professionals, students, and employers from the Architecture Industry for free.
Engage in open conversation, get advice, participate in events and connect with like-minded individuals within the architecture profession.
About Us
Information
Services
Advertising + Marketing
Policies, Terms + Conditions
Login + Registration Pages