A modern computer desk in code.

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:

Posted in Uncategorized| 1 Response


Brainshirt is a wearable “memory map” of 24 individual program participants. Conceptually, brainshirt transmits an instant memory-based emotional snapshot about a group experience using brain waves (EEG) as a biological fingerprint unique to each individual. Each vertical bar is a downward time series of  a particular participant’s EEG activity while recalling their experiences. Red segments indicate periods of intense focus while the blue ones represent deep calm and green represents a mixture. Brainshirt was sponsored by the MIT Summer Research Program for Biology and Brain and Cognitive Sciences.

Data was collected for each participant over 2-3 minutes using a NeuroSky Mindwave EEG headset. Data collection, analysis, and visualization was done in custom python/OpenGL codes. Design was done in open source Inkscape graphics software on Ubuntu linux. Kate Derosier collaborated heavily on the design. Mandana Sassanfar inspired the project. MIT Summer Research Program 2013 participants opened their minds and hearts. Hack Manhattan, a NYC based maker space, provided the EEG headset. Concept, code, data collection, final design by Daniel Packer.

Posted in Uncategorized| 1 Response

DIY Binder Clip Puzzles


Binder Clips have been the subject of many many DIY inventions. Even weapons of not so massive destruction. They’ve been a medium for sculpture. Why not then use our bendy metal friends as building blocks for puzzles? As a kid I loved those metal ring tanglement puzzles and I still have my Rubik’s Snake!

My first puzzle is an 8-clip puzzle made by linking clips clip-to-clip to form a ring. Once you have the ring formed, you should be able to achieve at least 5 distinct shapes, and possibly more. My theory is that because each fold involves half the clips, the practical limit on the number of folded shapes is something like log2(N) which would be 3 for our 8-clip puzzle. Further shapes are achieved by manipulating the free clip arms.  If you build your own variation on this puzzle or find additional possible bend shapes, be sure to let me know.

Update: My second puzzle is a kind of helix shape that transforms into a symmetrical square box shape. Unlike the previous puzzle, this one forms a flat-laying double layered box and requires a fair amount of thinking in terms of when to fold the clip arms. It’s surprisingly tricky, though this puzzle appears to have only two possible final shapes (when folded flat).  Maybe someone will be inspired to build and play with these puzzles with their (appropriately aged) children, or by themselves at work on a slow day. Here’s the new puzzle in action:

Here’s a quick video of the first puzzle in action. The box shape as shown in the video can be formed without the “handles” sticking up by folding the arms in first. The background music is a snippet of an old track of mine that seemed to fit nicely. Sorry for the noise/jumpiness in the video — I was using this as an excuse to learn how to edit and shoot a video using an android phone and Ubuntu linux. I used kdenlive for the editing, but I ended up with black bars on either side of the video due to shooting portrait and having to rotate. Next time I’ll know to shoot landscape. The camera was held up by a binder clip during shooting. :)

Posted in Uncategorized| Tagged | Leave a comment
  • The Native Inhabitant:

    Computational biologist, IT generalist, maker of things.

    Here be: dragons, bio + engineering + medicine + ethics, vegan eats and fashion, music and words, gadgets and software, photography, design, DIY/maker/hacker culture, NYC, running/fitness, cyborg anthropology, et cetera.

    dp at danielpacker dot org