Nature, design & Code

2011 - 2012


DSC07348-766 copy.jpg

 I created a Wing Chair using computer code as part of my master's thesis work at RISD. Drawing inspiration from the structure of dragonfly wings, the goal of this project is not to mimic the shape but rather the process of how nature create structure and objects.

Wing Chair is an extension of my early exploration in GAs, the concept come from one of the forms program evolved with two wing shape on the back of a chair. In the early stage of the concept development, I experiment with the patterns and forms of chair, while doing research, the pattern on the back of Aero-Chair developed by Herman Miller caught my attention.Beside the aesthetic purpose of the pattern, it also serves an important function which is to support user’s back but at the same time allow air to go through.

The distribution of the material is also another fact can be put into consideration. Nature provided numerous examples of this structure, in three dimension world, the forming of the soap bubbles follow the same rules, where the minimum amount of materials are distributed to cover the maximum possible surface. While in the two dimension world, similar example can be found in dragonfly’s wing structure.


This principle inspired me to make a wing chair that adopt the patterns from nature to make the support- ing back of a chair. The design of the chair back can be operate at the same goal: use the minimum amount of material to support the maximum possible surface. The research led me into the sunflower floret arrangement and Voronoi diagram: 

 Part 1 - Fibonacci

A model for the pattern of florets in the head of a sunflower was pro- posed by H. Vogel in 1979.[20] This is expressed in polar coordinates

θ= n×137.5°

Where θ is the angle, r is the radius or distance from the center, and n is the index number of the floret and c is a constant scaling factor. It is a form of Fermat's spiral. The angle 137.5° is related to the gold- en ratio (55/144 of a circular angle, where 55 and 144 are Fibonacci numbers) and gives a close packing of florets. Visualization of this model can be seen below:


The same principal can be transferred into scripting language

  • addlength= math.sqrt(i)*scale      

  • matrix = rs.XformRotation2(137.5*i)

And the program can operate the following:
— Add a first red seed.
— Turn 137.5o
— Add a second green color seed and make the previous traveling to the center.

— Turn other 137.5o
— Add a third ocher seed and make the previous traveling to the center, to stay side by side with the first one. ...and so on, seed after seed, we will obtain gradually a kind of distri- butions like the ones you have in the following figures.

Visualization of this model can be seen below:  

 Part 2 - Voronoi diagram

“In mathematics, a Voronoi diagram is a special kind of decomposition of a given space, e.g., a metric space, determined by distances to a specified family of objects (subsets) in the space. These objects are usually called the sites or the generators (but other names are used, such as "seeds") and to each such object one associates a correspond- ing Voronoi cell, namely the set of all points in the given space whose distance to the given object is not greater than their distance to the other objects. It is named after Georgy Voronoi, and is also called a Voronoi tessellation, a Voronoi decomposition, or a Dirichlet tessel- lation (after Lejeune Dirichlet). Voronoi diagrams can be found in a large number of fields in science and technology, even in art, and they have found numerous practical and theoretical applications. It is the technique that enables the division of such multi-dimensional spaces into subspaces.”


The relation between the diagram on the right with the sunflower floret arrangement is it uses the seed position as the of the set of points to apply the voronoi dirgram. 

import voronoi

import rhinoscriptsyntax as rs

import math

// draw the sunflower sequence based on the dots user given

startP= rs.GetPoint("start point please", rs.filter.point)

seeds= rs.GetInteger("how many seeds to plant",500,300,700)

scale= rs.GetReal("The scale factor", 5,3,9)

def sunflower(startP, seeds, scale):

#step1 take radius

pts = []

for i in range(seeds):

Pages 5.png

//print i

addlength= math.sqrt(i)*scale

vectorRad= [addlength,0,0]

print vectorRad

matrix = rs.XformTranslation(vectorRad)

middlePt= rs.PointTransform(startP, matrix)

endPt=RotateX (startP, middlePt,i)



wing = Triangulate2d(pts)

def __addtriangle(triangle, points):

index0 = triangle[0]

index1 = triangle[1]

index2 = triangle[2]

rs.AddLine(points[index0], points[index1])

rs.AddLine(points[index1], points[index2])

rs.AddLine(points[index2], points[index0])



Part 3 - Fabrication

In the making process, I composed a small program that use the sun flower floret arrangement principle to distributed a population of base points, and then use voronoi algorithm to calculate the lines and patterns based on those points.

The combination of the chair shape and the pattern is done by manual intervention, to apply the generated pattern onto the wing shape chair. The building and fabrication of the chair was done by laser cutting machine. 


 Part 4 - Final Design

A thesis presented in partial fulfillment of the requirements for the degree of Master of Industrial Design in the Department of Industrial Design of the Rhode Island School of Design, Providence, Rhode Island. Thanks to Beth Mosher, Charlie Cannon , Neri Oxman and my classmates.


 Thank you

This work is part of my thesis in RISD. Thank you Beth Mosher, Charlie Cannon , Neri Oxman and my classmates, you’ve all helped me throughout my grad school years.