The design space

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

In order to design like nature, we need to consider how we can design a species. Thus, we will reframe the designer’s task from the design of a single physical object with a fixed form (the individual), to the design of systems which encode the full range of formal possibilities for a particular design concept (the species).

In architectural design, such flexible systems are typically defined through parametric modelling software such as Grasshopper, which uses a set of parameters to drive a series of geometric operations that produce the final form. Let’s consider a simple parametric model of a box with three input parameters specifying the box’s length, width, and height:

Parametric model of a box with 3 inputs

We can see how each of the three parameters independently drive the final form of the box. In our analogy to natural evolution, these 3 parameters form the “genotype” of each box, while the “phenotype” consists of the box’s final form (6 orthogonal surface patches joined to form a solid shape).

Now let’s imagine that every possible box defined by this model exists somewhere within a conceptual ‘space’ of possible designs. We call this space the ‘design space’, since it holds all the unique formal possibilities of a given design model. The dimensions of this space are formed by the independent inputs that drive the system. Every unique combination of these inputs specifies a point within the design space which represents the location of the unique design formed by those inputs. Let’s consider the ‘design space’ of this box model:

Parametric model with 3 inputs as 3-dimensional design space

With three input parameters, the design space of the box can be visualized as a 3-dimensional cube. This design space contains every possible box that can be created through a unique combination of the model’s three parameters, with each box located at the coordinates dictated by those parameters. Smaller boxes with smaller parameter values are located in the lower left corner, while larger boxes with larger parameter values are located in the upper right.

In this example the form of the design space mirrors the form of the model, but in general every design space is an n-dimensional hyper-cube with n being the number of parameters driving the model. While it is easy to visualize and understand a 3-dimensional design space, the analogy holds for design spaces of higher dimensions as well. While we can’t visualize these design spaces, we can still image a conceptual high-dimensional ‘space’ which holds all the possible iterations of a given parametric model.

So how many parameters should our design space have? As a baseline we can extract every decision taken during a design process as a potential dimension of the design space. However, as we saw with the ‘curse of dimensionality’, the complexity of most design problems would make such a space extremely high-dimensional, and thus difficult to search through. How do we choose which parameters are relevant, and how do we ensure that our chosen set of parameters provide the best control of the model while not becoming too complex?

Design space parametrization

We refer to the specification of the number and types of input parameters as the ‘parameterization’ of the model. You can imagine each of these parameters as a knob, with the whole parameter set forming a kind of ‘user interface’ which the search algorithm will use to ‘tune’ each design variation. Since the search algorithm has no knowledge of our design model’s inner workings (the ‘black box’ in the image above), it is crucial that the chosen parameters describe the functionality of the model as completely as possible while using the smallest number of parameters. In science this principle is called ‘Occam’s razor’, which states that the correct solution to a given problem is usually the one which is most simple. In our case each additional parameter significantly increases the size of the design space, making the search process more and more difficult. Imagine how much easier it is to find something on a single floor of a building compared to searching through an entire building.

With generative design, the parametrization of the design space becomes one of the primary tasks of the designer. Every design space and its parametrization defines a unique ‘design strategy’ which encodes the way in which the designer imagines solving a particular problem. It is important to consider that this process is not at all deterministic, and rarely emerges directly from the problem statement. For example, we can imagine how the same problem statement might produce many different design strategies, while the same design strategy may be applied to the solution of radically different problem statements:

Different design strategy for same program
Same design strategy for different program

This suggests an expanded and more complex role for designers in the generative design process — shifting from the design of a single formal object, to the design and parameterization of a full multi-dimensional design space. This reinforces the crucial point that the goal of generative design is not to automate the design process, or to replace human designers with artificial ones. Although an automated search algorithm can explore a given design space and find interesting designs, the outcome of the search is completely dependent on the design of the design space, as well as the specification of various measures and search parameters.

So how do we design good design spaces? As with most design tasks, there are no simple or clear-cut rules. However, every design space is defined by two primary trade-offs, which the designer should consider as they formulate their models:

Bias vs. Variance

The bias vs. variance trade-off permeates throughout the field of artificial intelligence, and describes the relative flexibility of a given model. Bias refers to the condition of being too simple. A model with ‘high bias’ doesn’t fully describe the possibilities of the underlying system. You can think of such a model as being too ‘biased’ towards a particular result. Imagine a chair model with four legs, where the position of each leg is a parameter of the model. Such a model is biased towards a four-legged solution — no matter how much you tweak the parameters, you will never get a chair with three or five legs. Because they are too simple, high-bias models can limit exploration and can lead to early exploitation of a sub-optimal result

Variance, on the other hand, refers to a condition of being too flexible. A model with ‘high variance’ describes a much larger design space than is necessary to address the given problem. You can think of such a model as creating too much ‘variation’ or noise in the design strategy. Imagine a model of a building which parameterizes the location of each brick. This would create a huge space of possible designs, but very few of these designs would be viable buildings. Instead, you probably want to simplify the model, parametrizing at the level of larger structures such as walls, floors, door openings, etc. Because they are too flexible, high-variance models are difficult to search through, often resulting in too much unproductive exploration without the discovery of any good solutions to exploit.

As with most trade-offs, the goal of the designer should be to create models somewhere in between — not so biased that they don’t fully represent the solution space, but not so variant that they are impossible to search.

Bias vs. variance trade-off

Complexity vs. continuity

The complexity vs. continuity trade-off describes the internal structure of the design space and how designs within the space are related to each other. Complexity refers to the potential of a design space to create unpredictable results beyond our own intuition. A space with low complexity is usually not worth the effort of the generative design process, since we can already intuit the best design. For example, given the above box model, we can easily figure out how to make the biggest possible box.

Continuity, on the other hand, refers to the internal consistency and structure of the design space. This relates to what is known as the ‘first law of geography’, which states that things which are closer to each other tend to be more similar than things which are further apart. Simply put, individual designs within the design space should maintain some internal relationships which allow the search algorithm to navigate between adjacent designs and make valid predictions about the performance of designs based on the designs around them. The opposite extreme of continuity is chaos — where the configuration of designs is completely random. This should be avoided at all costs because with such a model the search process devolves more or less to random sampling, without the ability to learn the design space or find better solutions over time. In fact, one of the only concrete rules for design space design is the avoidance of any random variables within the model.

The complexity vs. continuity trade-off tells us that our design spaces should be as complex as possible without being too discontinuous. However, this objective is not clear cut, and there is no formal definitions for ‘complex enough’ or ‘too discontinuous’. In fact, most stochastic search algorithms including GA’s are able to navigate some level of discontinuity in the design space, and creating a degree of discontinuity is a great way to create complexity in the design space. In practice, there are no concrete rules for how discontinuous any given design space may be. The best approach is typically to try to search a variety of models and monitor the behavior of the algorithm with each one.

Complexity vs. continuity trade-off

While there are no concrete definitions for these two trade-offs, they give us a useful framework for thinking though the formulation of the design space, comparing different design space strategies, and giving us clues when things go wrong. In future lectures we will go over specific computational design strategies that can help us navigate these trade-offs by creating productive design spaces that lead to the discovery of interesting, novel, and high-performing designs.

--

--