It is no secret that we’ve been critical of the recent framing of “generative design” as a technological trend largely driven by product marketing. We’ve instigated lively Twitter debates, a full-length podcast discussion, and critical positioning papers.
“Generative” is a term that carries some important historic context in the domains of computer science, art, and architecture. We won’t discuss this context here in this post and instead refer to David Stasiuk’s Digital Modeling Terminology white paper for a more complete reading of this context. In recent years, Generative Design has become a marketer’s playground – a re-framing of well-established methods into product advertisements that blend together an often ambiguous cocktail of evolutionary solvers, topology optimization, and machine learning.
For those that are out-of-the-loop on digital advances in the last two decades or more, many of these ideas will seem quite new. Yet, for over 12 years, a digital design community made up of professionals, researchers, and academics sprung up around Grasshopper – McNeel’s graphical programming tool for Rhino – and a vibrant production of computational design methods that leverage “generative” concepts has resulted in the form of freely available plugins and tools.
We also assert that the growing present-day popularity of computational design methods is largely driven by the efforts of this Grasshopper community – and many of its members have been putting “generative design” into practice through built architectural works for over a decade. Like with underground musical styles breaking through into mainstream pop, it is not altogether unexpected to see companies, like Autodesk, rolling many of these topics into their marketing pitch.
We feel it is incumbent upon us with longer memories to highlight the tools and concepts that continue to pave the way for innovative computational design methods and – in many cases – continue to run circles around the capabilities touted by products wrapped in a slicker marketing veneer.
In this blog, we summarize and highlight a few tools that implement computational methods that loosely fall into the family of technologies often lumped together under the banner of “generative design”. While we make no claim to be comprehensive – and surely the listings here are just a sampling – it is important to note that these tools and others can be quickly found, downloaded, and used today through resources such as Food4Rhino.
An example multi-objective optimization plot created with the Octopus plugin.
An evolutionary solver is an implementation of a special type of metaheuristic search algorithm that uses concepts related to “biological evolution” to discover possible solutions to an optimization problem. An evolutionary algorithm can be applied to a wide variety of problems making it useful in the building sciences where there are often trade-offs between a multitude of design attributes and resulting performance. Although advances in computational power and capacity have more recently made their implementation tractable, the theoretical framework for metaheuristic search algorithms was actually explored as early as the 1950s and matured in the 1960s. In the context of today’s generative design discourse, an evolutionary algorithm is often the core computing concept being employed in examples where a computer is touted as generating the fabled “thousands of options”.
Galapagos, a tool created by David Rutten, greatly popularized and made accessible the use of evolutionary solvers in the context of Grasshopper and the building sciences. Galapagos uses single-objective optimization methods to search through combinations of input parameters defined in a Grasshopper definition. Since Galapagos’ introduction, many other third-party developers have created interfaces for evolutionary computation for handling multi-objective and interactive optimization. For example, we have used the Octopus plugin as part of our own consulting work and summer research.
Tools of note:
- Galapagos – Out-of-the-box Grasshopper-based evolutionary solver
- Octopus – It allows the search for many goals at once, producing a range of optimized trade-off solutions between the extremes of each goal.
- Optimus – new metaheuristic optimization plug-in for Grasshopper.
- Opossum – two of the best-performing,single-objective optimization algorithms in Grasshopper
- Biomorpher – Allow designers to engage with the process of evolutionary development itself.
- Wallacei – is an evolutionary engine that allows users to run evolutionary simulations in Grasshopper 3D through utilising highly detailed analytic tools
- Design Space Exploration – These tools aim to support visual, performance-based design space exploration and interactive multi-objective optimization (MOO) for conceptual design
An example of 3D Topology Optimization being performed with Millipede.
Topology optimization – or TopOp for short – is another well-established computational approach that takes as inputs geometric constraints and boundary conditions and optimizes material layout for structural performance. With some of the earliest implementations occurring in the 1980s, TopOp has become a popular method to employ in early-stage design processes in the context of structural form-finding in the building sciences.
There are a number of popular tools in the Grasshopper community that allow designers to implement Topology Optimization concepts within their algorithms. Millipede is one such example of a free tool for deploying TopOp components for structural optimization. A quick search of Topology Optimization on Food4Rhino also results in a number of other plugins that implement these concepts for a variety of purposes.
Tools of note:
- Millipede – A structural analysis and optimization component
- Monolith – Integrates voxel-based model editing with TopOp tools such as Millipede
- tOpos – Topology Optimisation plugin which is using GPU for computation acceleration. It is based on CUDA technology provided by NVIDIA.
Machine Learning / AIAn implementation of a LunchBoxML Gaussian mixture component to cluster panels.
The narrative around machine learning (ML) and artificial intelligence (AI) has hit a fever pitch in today’s discourse of the future of the construction fields. Machine learning, a term originally coined in 1959, is a mature discipline and computer science concept. Far from being a mystical art, today there are many well-established programming techniques allowing developers to employ methods for pattern classification, probabilistic reasoning, and prediction methods.
Machine learning tools in the Grasshopper community are numerous – and even our team at Proving Ground maintains LunchBoxML – a free and open source tool that leverages the Accord.NET framework. Moreover, tools such as Owl, Crow, and Dodo feature rich toolsets for employing ML methods in the context of computational design.
Tools of note:
- Crow – Artificial Neural Networks in Grasshopper
- Owl – Library written for machine learning-oriented data processing.
- LunchBoxML – Components for regression, clustering, and neural networks.
- Dodo – Collection of tools for machine learning, optimization, and geometry manipulation.
The concepts and tools discussed here represent a very limited and incomplete overview of the work that has been produced by the computational design community. Many of the concepts presented as “Generative Design” have their origins in well-established computing concepts dating back to the mid-20th century and matured through the 1980s as the availability and accessibility to computing power gave these concepts traction in the context of practical implementation.
Today, many of the ideas associated with “generative design” have been pursued with great rigor within the Grasshopper community. As new commercial products that leverage greater cloud-computing resources become available, the present availability of tools – often free and open source – give designers the chance to employ these concepts into their work today.