Chair designed by Algorithm

2011 - 2012

Can we ask algorithms to help us design better forms? The question leads me to explore the genetic algorithm. My thesis advisor Neri Oxman and my class instructor Michal Dziedziniewicz showed me a path to explore this space, and here is what I came up with.

 
DSC08266-864 copy.png
 

 Part 1 - Frame the Problem

Our environment shaped us who we are. Biologist use "fitness criteria" to define key elements in nature that mode the evolution process. In framing this design problem, I am defining the environment where these chairs will "grow" in and the resources they will "compete for".

Scan10005-824 copy.jpg
Scan10005-835 copy.jpg

The first dimension is ergonomics. I want to design a chair that's comfortable for the user's physical shape. I designed the program to ask for the height and the weight of the user. All chair legs were generated based on these data. Meanwhile, in order to provide the best support, the ideal chair leg should be placed far away from the center of the chair.

Scan10004-832+copy.jpg

The second dimension is the amount of material used. I want to use the least amount of material to construct these legs. The criteria were designed as follows: the total length of the legs need to be longer than a fixed number (based on user’s weight), meanwhile, the total length of the legs should be minimum.

 

 Part 2 -  Compose the code

Once the fitness criteria and the environment was created, I used the Genetic Algorithm to simulate the evolution process. The Genetic Algorithms were invented by John Holland in the 1960s and since then they have been used as a search method for solving optimization problems, operating on a population of possible solutions. It consists of four elements: population, selection, crossover, and mutation.

Evolution Diagram.png

Creating a population: A population was generated based on the data the designer provided for the operation. A chair surface and back were built at the same time. Each parameter on the NURBS (Non-uniform rational basis spline) surface of the chair was put into the account and used as a reference point for chair legs.

DSC08068-filtered-842 copy.png

Selection: All the possible chair leg solutions were analyzed and transformed into data, including the length of the overall legs, and the distance between the legs and the chair’s center point. Each of these can be designed to weight differently, meaning I can manipulate the operation to put more emphasis on one attribute or the other. For example, if the material for the chair leg was very expensive, then in the selection process, I can call out design solutions that use very little material though they might not be very comfortable for the user. Meanwhile, those data were stored in an array and compared using a sorting algorithm (bubble sort). So that the optimal solution can be selected.

chair.jpg

Crossover: After the desired solution was chosen, I broke the chair leg design information into 3 pieces, each one contains information for one leg. en I asked the o spring to mix and carry that information from their selected parent generation. e mixture was based on a small piece of key generation code I wrote to randomly connect this information. In each generation, this information was being carried and distributed.

Mutation: The mutation shared some similarity with the first generated population. But this time, only part of the information (one leg) was put into the operation loop to stir up the mutation process. But in each generation, a considerable amount of variation was put into the loop so that the operation could stay fresh.

Part 3 -  Let it Run

Once the fitness criteria and the environment was created, I used the Genetic Algorithm to simulate the evolution process. The Genetic Algorithms were invented by John Holland in the 1960s and since then they have been used as a search method for solving optimization problems, operating on a population of possible solutions. It consists of four elements: population, selection, crossover, and mutation.

Part 4 -  Fabrication and Reflection

I built 36 scaled chair models based on the results algorithms produced. I want to physically see and feel the difference of the designs this process produced. Each chair is a little bit different and some results are very surprising. In this experiment, my role as designer kept changing. Sometimes I feel like playing God, setting up the environment and the criteria. And some other times I feel like a worker producing what machine asked me to do.

Working with algorithms required systematic thinking beyond the object, looking at the whole design process. It's not designing for the analog world using digital tools, but using a computation process to explore shapes, forms, and geometry, to help extend the human intellect.

The last take away is about mutation. Without the mutation, the whole program will only operate in a limited number of possibilities, and it will fail to perform as a searching process to reach the “highest” or the “ fittest”.

DSC08292-861 copy.png
DSC08252-867 copy.jpg

“Mutation took us from single cell organisms to being the dominant form of reproductive life on this planet, infinite forms of variations with each generation all … through… mutation.”

-- Charles Xavier,  Professor X