This article was taken from the November 2012 issue of Wired magazine. Be the first to read Wired's articles in print before they're posted online, and get your hands on loads of additional content by <span class="s1">subscribing online.
Jennifer Jacobs doesn't just make lamps: she codes them. "The goal of this project was to write an application that allows someone to describe an object through code, and then fabricate that object," she says.
Codeable Objects is a library for Processing (a popular open-source programming language invented at MIT) that lets users design artefacts using simple code and geometry. Users set the width and height of a lamp, say, in the code itself: when it's compiled, a 3D representation of the object is revealed. The 3D graphical user interface lets people tweak the object using sliders.
But it's in the intricate patterns on the lamp that code comes into its own. A program, created by Jacobs, allows users to describe complex patterns. Entering polar point co-ordinates gives simple patterns but, by using programming conventions such as a four loop, "you can quickly iterate and get interesting effects -- you can go easily from a circle to a spiral". The program uses an algorithm based on a Voronoi diagram -- a geometric subdivision of space, and a form common in nature, whether in butterfly wings or nautilus shells -- to generate the patterns.
The program automatically breaks the object down into its constituent parts, for computer numerical control milling or 3D printing, and then assembly. All the source code is available for download on GitHub.
The result is what Jacobs, 27, calls "'design on the fly' -- this idea that I don't have to conceive an object and then, if I realise I've got it wrong, start all over again."
This article was originally published by WIRED UK