CoilCAM + FFT

I have been using CoilCAM, a visual scripting plug-in for Grasshopper, to create 3D printed clay vessels. Inspired by the Fast Fourier Transform (FFT) technique to analyze waveforms, I decided to extend the CoilCAM plugin to better align with my preferred way of designing, which includes manually drawing forms before using computational design software. I added two objects to the CoilCAM plugin which work with the larger ecosystem, one which interprets drawn curves in Rhino, and one which allows audio data to be brought into CoilCAM to enable data-driven design. In the end, I printed several vessels using my new CoilCAM extension and experimented with one method for using audio data for clay surface decoration.

My additions are now available to be used as part of CoilCAM and more info can be found in the documentation.

Through this process I printed a series of clay vessels which were shaped by audio clips of my family members saying “I love you.”

I developed two new objects scripted in Python which can be plugged into the CoilCAM extension— one which interprets hand drawn curves in Rhino software to a path to be printed in clay, and another which does the same for audio waves. They can both be plugged into any part of the CoilCAM system, so either visual curves or audio waves can shape any of the variables available to change how the clay vessel prints. This includes profile, layer rotation, and more.

See a sped up (8x) video which is reflective of my design method using Rhino + Grasshopper with the scripted objects I developed:

For each vessel, I drew the curvature I wanted in Rhino and fed the curve as input to the new CurveInterp object. I then connected the output to the scaleShapingParameter input on the ToolPath Unit Generator CoilCAM object to scale the radius of each horizontal layer of the pot. I tested and refined the shape in Rhino, drawing new curves and editing until I was satisfied.

I connected an audio file as input to the new AudioInterp object and connected the output to the rotateShapingParameter input on the ToolPath Unit Generator CoilCAM object. Since the toolpath of a 3D printer is a polygon, if the number of points in each layer is small enough, even a circular design will have sharper edges. If layers are rotated on top of one another and no longer perfectly align, we can get some overhang of each layer which can create an interesting texture on the surface of the pot. I changed the amount of rotation by the data in the audio file, which led to higher volume sections having more rotation, while quieter sections had less rotation and less texture.

I see this process as a first experimentation of what these objects can produce, as both the curveInterp and audioInterp objects can send data to any Grasshopper object which accepts values, and don’t need to be limited to scale/rotation. I especially want to investigate other methods of surface decoration. I would also like to bring other forms of media into CoilCAM, like CSV files and video.

Some process footage, from designing, to printing, to unfired clay pieces: