Learning from nature

Danil Nagy
Generative Design
Published in
9 min readJan 24, 2017

As human designers, what can we learn from nature? One way to answer this question is to first consider our own limitations as designers — the aspects of the design process that are particularly difficult to us as humans. Then, we can study how design occurs in nature, and the process that natural evolution takes in arriving at its final design solutions. Finally, we can consider how we might develop similar strategies within our design processes, which can augment our own abilities and make us better human designers.

Complexity and the curse of dimensionality

Design problems are inherently multidimensional. Though the outcome of a design process is typically a physical object in three-dimensional space, the design process can itself be thought of as a massively high-dimensional problem space, where each individual decision taken during the process forms one of its dimensions. To think of the design process in this way, we should consider a more concrete definition of dimensionality.

n-dimensional birds

The image above shows four birds occupying four different dimensional spaces. Although their physical bodies occupy three dimensions, they are dimensionally constrained based on their circumstance. Assuming it doesn’t take flight, the bird sitting on the pole cannot move in any direction. Thus it is effectively occupying a 0-dimensional space. The bird on the cable can only move along a single axis following the cable, and thus occupies a 1-dimensional space. Similarly, the bird on the ground can move in two spatial dimensions, giving it an effective dimension of two. Only the bird in flight is truly occupying three dimensions, since it can move freely and independently in all three directions.

Our world has three physical dimensions because we can move freely along three independent directions within its physical space. Following this logic, we can think of the dimensions of any system as its ‘degrees of freedom’, which define the realm of possibilities within the system. Similarly we can think of any design as a complex system delineated by every decision or choice that must be made during its design. For example, the design of a building must consider not only its shape in three dimensions, but also the material used, the sequencing of construction, the choice of contractors, etc. A complete enumeration of all of these choices would encompass an enormous number of designs, defining a massively high-dimensional problem space. Unfortunately, we as humans are inherently incapable of imagining or understanding spaces beyond three dimensions — a fundamental limitation referred to as the ‘curse of dimensionality’.

Novelty vs. performance

As designers, we are always striving for novelty — to solve a problem in a new way or to create a solution that had never been thought before. At the same time, any design solution must also perform well in its intended function. This is especially true in architecture, where even the slightest failure of a building’s structural performance can have catastrophic effects. This competing desire to do something that has never been done before, yet guarantee that the final product will perform as promised, creates a challenging tradeoff that is not easily addressed through the traditional design process. More often then not, designs end up on one of the extremes — either reinforcing normative design at the expense of novelty, or pushing for expressive form at the expense of performance.

novelty vs. performance in architectural design

So how do human designers navigate through this complex multi-dimensional space of possibilities fraught with various trade-offs and contradictions?

Since we are incapable of thinking about the problem holistically, we tend to break it down into a series of smaller parts which we can consider individually. As a result, we often make decisions without fully understanding how they will impact other aspects of the design. Sometimes we even make decisions arbitrarily, specifically to limit the space of possibility to a dimensionality we can understand. We then fuss over the details when a design simply refuses to work.

Once a design problem is broken down, each component is typically handled in one of two ways — either applying a known ‘rule of thumb’ which has been shown to work in the past, or trying to develop a novel solution through a time-consuming process of iteration and testing. Though such explorations are crucial for the development of novel designs, a team of human designers is fundamentally limited in the number of options it can explore. Even if a team was able to painstakingly develop and analyze 100 unique designs for a project, it would still fall far short of the infinite number of solutions that are theoretically possible.

Finally, design processes tend to be highly path-dependent, meaning early decisions tend to determine and artificially limit the possibilities of the design in later stages. As the design process moves along in time, decisions are typically made as they are confronted. Once a critical decision has been made, it is often set in stone, largely limiting the space of exploration in later stages. All of these limitations not only make the design process extremely difficult, but also make it highly unlikely that any single design process achieves a truly ‘optimal’ design.

Design in nature

Let’s compare these aspects of the human design process to the way in which form is designed in nature. The organisms found in nature represent a great variety of novel formal solutions way beyond the imagination of even the most prolific human designer. At the same time, each of these unique organisms is also uniquely adapted to the functional requirements of its environment. So it seems that nature is able to escape the curse of dimensionality, and produce an endless variety of forms that are both novel and high performing.

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?

The evolutionary process in nature

The key to nature’s design is the evolutionary process, which was first comprehensively described by Charles Darwin in his book On the Origin of Species in 1859. This process operates at the level of a species, which is a kind of model which encodes all of the unique properties and abilities of its individual members. While each individual member of a species is unique, all members of the same species share common characteristics, most important of which is their ability to reproduce and create new members.

Over time, this reproductive process continuously improves the species through adaptation and interaction with other species and its environment in a process called natural selection. This process is composed of three steps:

  1. Selection, in which the members of a species compete for limited resources, and only those that are the most well adapted to their environment survive.
  2. Breeding, in which the survivors reproduce to create new offspring which share some of their characteristics.
  3. Mutation, in which some of the offspring’s characteristics are randomly changed.

Because of the emphasis on performance, this process is commonly referred to as “survival of the fittest”.

Genotype vs. Phenotype

One of the critical components in nature’s design system is the relationship between genotype and phenotype. An organism’s genotype is it’s DNA, which encodes all the information that makes the organism unique, and guides it’s development over the course of it’s life. The phenotype is the physical expression of the organism, and is influenced both by its genotype, as well as interaction with the environment over the course of its life. In the evolutionary process, breeding and mutation operate on the genotype, while competition and selection occur at the level of the phenotype.

Genotype vs. Phenotype

The process of growth and development which results in the phenotype is called morphogenesis, deriving from the Greek roots “morpho-” meaning “form” and “-genesis” meaning “emergence”. Thus morphogenesis is the process by which form emerges in nature.

Exploitation vs. Exploration

One of the most successful elements of natural design is its unique ability to negotiate the trade-off between exploitation and exploration. Exploitation refers to the use of existing knowledge about a given system to derive the best possible performance. Exploration refers to the random exploration of an unknown system to develop new knowledge about it. When a system is completely unknown, the only option is to explore. When a promising strategy is discovered, there is a desire to exploit it to get even better results. However, such exploitation may close the door to further exploration that could possibly reveal even better strategies.

This exploitation vs. exploration trade-off is well known to human designers as well. Given a limited set of resources, how much should you devote to exploring the unknown, and how much should you devote to developing the best of what you already know? How do you know when to stop looking? In the evolutionary process, selection and breeding are deterministic operators focused primarily on exploitation. Mutation, on the other hand, explores novel designs that contribute to a species’ diversity, which allows it to adapt to a constantly changing environment, thereby ensuring its long term survival.

exploitation vs. exploration in natural design

Can we design like nature?

The evolutionary process in nature provides a great model for design, but how do we take these lessons and apply them to our own design process? Unfortunately we do not yet have the tools or knowledge to design fully natural systems. Since we ourselves are only members of a species, we also cannot operate at the long time scales allotted to natural evolution.

Fortunately, the mathematical concept of optimization gives us a concrete way to think through such problems. If we can reframe the evolutionary process as fundamentally a process of optimization, perhaps we can apply the practical tools of computer science to orchestrate similar methods within our own design processes. In mathematics, an optimization problem is described by three components:

  1. A vector of input data that describes every possible design in a system.
  2. A set of objective functions which establish the goals of the system based on either minimizing or maximizing the values of these functions
  3. A set of constraint functions which establish the limits of the system
Xin-She Yang. Nature-Inspired Metaheuristic Algorithms (2008)

The goal of the optimization process is to find the combinations of input data that best satisfy the objectives while working within the limits of the constraints. With simple objective and constraint functions, optimization problems can be solved directly through functional analysis. However, when the functions are complex or when their inner workings are not known, we have to utilize more stochastic methods which can target optimal designs simply by testing many configurations and learning the patterns of the system. The field of computer science has developed many different tools and algorithms for solving such complex optimization problems, including the class of tools known as Genetic Algorithms (GA’s) which we will focus on in this course.

We can easily see how the process of evolution in nature is also a kind of optimization process. Given a model of a species, natural selection will try to produce new individuals which better fit the objectives and constraints of their environment. The input vector in this case is the individual’s genome, which describes the unique characteristics of that individual. The objective functions are to survive and live as long as possible in order to have the best chance of reproducing. The constraints are the physical limits of the organism which restrict the forms that it can take. For example, the design of a mouse’s bone structure and configuration of organs place hard limits on the mouse’s possible size.

If we want to incorporate something akin to the natural evolutionary process within our own design methodologies, all we have to do is reframe our design problems as problems of optimization, and then use the tools of optimization to solve them. This leads us to the general construct of generative design which is composed of three steps or components:

  1. Generate, in which we delineate a ‘design space’ as a closed system which can generate all possible solutions to a given design problem
  2. Evaluate, in which we develop measures to judge each design’s performance
  3. Evolve, in which we use evolutionary algorithms to search through the design space to find unique high-performing designs

The rest of these articles will describe these three aspects of the generative design process in more detail. We will discuss best practices for following these steps, as well as consider how this process is different from the traditional design process, and what it suggests about the future of design.

--

--