This article documents the design logic for a script which creates furniture designs customised for a person using their genetic information.
It was developed as part of Genomelink Hackathon. Read more about that here.
The design is a script that accepts inputs from users and uses an internal algorithm to create vector drawings which can be used to make the design from plywood. The fabricated pieces interlock into each other and can be assembled easily.
You can read more about the fabrication process here.
The design process starts by setting a rough framework of the desired output, understanding the variables that lead to desired designs and shaping the user’s inputs to align with these desired variables.
Identifying the parametric components.
The above sketch shows what the proportions of a chair would look like in side elevation. Each line represents a surface which acts as a support or cushion for the seated body. The sizes of these lines correspond to parts of the human body.
Identifying these parameters we can try to describe the designs for the chair based on these parameters. For this demo we base it on a simple study of the human anatomy.
Relating the human proportions to the above parameters.
The above sketch shows the quick study and their interpretation as design parameters.
To summarize it collapses the layout and proportion of the lines to two variables labeled x
and p
in the sketch. x
corresponds to ‘height’ of the person in design and p
corresponds to an abstract factor named ‘personality’.
For the user we present 3 input variables to be provided by them — age
, comfort
and genome_id
. All three are used to compute height(x
) and personality(p
) for the design. The genome_id
is used to fetch genetic information about the person. The demo uses the services and information provided by geomelink.io. They provide additional genetic data analysis as shown on their website.
Additional information provided by genome.io
The design script uses this information along with age and comfort provided by the user to set guidelines in 3d vector space. It does a translation of the lines described above but customises it with the person’s age, comfort preference and genetic information.
The age parameter adjusts the seat height and width. The comfort level affects how upright or laidback the chair is. The genetic information changes certain proportions in the design in a finer way adjusting it as per the relevent genetic trait. The following genetic traits are considered.
The guidelines are adjusted and then connected to each other by creating NURBs surfaces between them. It does this by operating on the control points of the guidelines.
amitlzkpa/mendel_GitHub is where people build software. More than 28 million people use GitHub to discover, fork, and contribute to over…_github.com
The design generated is then sliced to create fabrication drawings which are as shown below.
The fabrication drawing can be fed into a CNC machine to fabricate the chair.
Big thanks to Narhari Banavlikar for the sketches.