Though we aren’t in The Matrix, we can still use code to define the physical objects we desire within our environment. Using code-based modeling tools borrowed from the 3D-printing and CAD world, that’s what I’ve set out to do.
My goal was to design a compact, flexible, functional, affordable, computer workstation that pays homage to one of my favorite modern desks, the Nelson Swag by Herman Miller. The desk design was created in OpenSCAD using only hand-typed computer code. The result is a furniture design that exists as a program as “open source hardware”, so to speak. The design is “parameterized” meaning that the dimensions of the desk can be reprogrammed easily, without a complete redesign (see below for an example). The SwagTop desktop sits on any desk base, costs less than $100, using readily available materials from Home Depot, and requires minimal carpentry. I will be posting a followup with photos when the desk build is done.
The SwagTop sits atop a MultiTable adjustable desk platform. This allows me to use my desk sitting or standing, or to adjust the height to suit my posture throughout the day. Just about any desk base would work with the SwagTop. My personal version of the SwagTop will be 42″ but see below for an extended version. The desktop itself is made of 2 x 12″ black shelves. The top shelf is a 10″ black shelf. The side boards are from 8″x1″x6′ red oak boards. The colored inserts are made from oak scraps and painting them is optional. A handsaw can be used for all cuts except the curve which requires a jigsaw (which can be had for $30).
For the SwagTop I drew inspiration from this classic:
The SwagTop design was created purely in computer code (no mouse required) in OpenSCAD, an open source solid CAD program. I was inspired to go the OpenSCAD route when I found this post. The result is a model that can be 3D printed or exported to another 3D program. Using OpenSCAD isn’t as useful for a builder as some CAD programs, but it does result in a model that can be reprogrammed and shared, which is pretty neat. You could go from OpenSCAD to say, SketchUp or AutoCAD fairly easily. As a product designer, I would be thrilled with the ability to 3D print a miniature model of the piece during the design process. No, I won’t be 3D printing my desk, though I could with a big enough printer. :)
Because the SwagTop is a computer program as well as a desk, it can be stretched from a 42″ desk a full 8 feet by just changing one line of code! Modify line 10 of the code, below to try it out. The depth hasn’t been fully parameterized and is left as an exercise to the reader. 24″ depth suits my needs. The hard part of modeling 3D objects in code is doing the complex stuff like curves. I managed to use combinatorial functions like “union” and “difference” with cylinders and cubes to create the curved cutout effects I was looking for, but really detailed curved work would prove a challenge. There are some posts online about spline libraries for OpenSCAD that would allow specific curve definitions.
The OpenSCAD source code for SwagTop is available here: