Shaper – Dispenser Tests

by Karl DD @ 10:17 am 5 April 2010

For our project we are exploring the theme of interactive fabrication. For more information take a look at the full project proposal.

This week we begun some initial tests with using expanding foam to create physical forms. Below you can see the basic setup: a custom dispenser attached to a 3-axis CNC router and controlled in near-realtime from a computer.


To control the CNC router we use the open source EMC2 machine controller application running ‘realtime’ Ubuntu on an old PC. By setting EMC2 into Manual Data Input (MDI) mode we can send it commands using Python. This allows EMC2 to control the machine with the correct direction and step signals over the parallel port, and enables us to basically feed it simple ‘goto x y’ commands using G-Code from Python.

Because we want to explore a range of different interfaces we decided to use the Ubuntu PC as a server and send G-Code commands from another  faster computer via OSC. This way the server PC can concentrate on driving the CNC, and we are free to do more intense processing on the remote computer. At this stage we are using a sketch interface built in openFrameworks to send the G-Code commands.


Due to the nature of the expanding foam material, it is quite difficult to get high fidelity representations. Below you can see our initial attempt at drawing a simple curve without any nozzle attached to the can. It simply pumps out foam and the machine can not move fast enough so it piles up into a blob.

In the video below you get a picture of how much foam comes out without any nozzle, this then expands quite a lot before it hardens. You can also see how the CNC lags behind the drawing quite a lot, commands are essentially placed in a queue and the CNC processes them at it’s own speed. With a little more programming it should be possible to optimize/simplify the lines created by the mouse to speed up the physical motion. Due to the coarse nature of the material, this kind of optimization will probably not be noticeable.

We are more concerned with the interaction, so fidelity is not the main concern. However we found that various small changes can dramatically help the output look more like the input. For example, attaching a nozzle and moving the nozzle closer to the surface results in the following output.

Limiting the amount of material dispensed by opening and closing the nozzle can also help create smoother lines. Below we outputted a series of small dots with reasonably accurate form.


The expanding foam dries into a very lightweight and super smooth material. By adding a quick layer of spray paint it transforms the material into something quite richer in appearance (given it’s humble origins). Below are several treatments we have experimented with. My personal favorite is the metallic gold!

This is what the C shape in the image near the top expanded into. Then painted with flat black.


  1. comments from PiratePad

    Please — read & print GML!!
    Also — consider vacuum-forming white plastic over the drawings.

    I think rather than trying to simulate clay sculpture, it would be more meaningful if this allows you to create 3D forms that a human wouldn’t make (either because they’re not physically capable or just because they wouldn’t think to make a form like that). Like Golan said, respect the medium! Take advantage of its properties, don’t try to fight it.

    I am intrigued by the applications to baking and cupcake decorating.

    Comment by pkelley — 7 April 2010 @ 8:04 am
  2. comments from 4/21

    Karl & Cheng

    Great experiment!
    i think you need to have visual feedback coincident with the finger (IMHO) — GL.
    Also, consider a meter whose contents get consumed, so that each person gets a maximum allotment of “stuff”.

    transparency + fingerpaint!

    Very interesting! I wonder if you could use a material that wasn’t as foam-y. Maybe just paint or something, and people could take with them what they made. -Amanda

    could you use this to ice a cake? get that frosting in a can
    ^I like that idea! Bring cupcakes, yay!

    I agree that feedback for drawing is essential.

    You should definitely make some kind of poster explaining exactly what your project is/does and how to interact with it…otherwise I’m afraid that people will look at it for a second, assume it’s too complicated to understand, and walk away…

    This is looking really good. I think you should make some examples of output before the show and display a few of them to show the possibilities so you’re not depending on the people at the show to demonstrate the full range of what your machine can do.

    Comment by golan — 25 April 2010 @ 12:56 pm

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2016 Special Topics in Interactive Art & Computational Design | powered by WordPress with Barecity