Vessel: Experimental GCode



   GCode is typically generated in a manner intended to preserve the integrity of a given mesh. Strength and accuracy are key and the tools to generate such toolpaths are sophisticated. This is important and necessary if you are looking to recreate models in a precise way, but the results look rasterized and frankly, a little ugly.







   The project here is to break the typical methods of GCode generation in order to learn how to treat FDM printers as not just a prototyping tool, but a new expressive medium. This project represents an early step in that process, and to that end I've bitten off some low hanging fruit, cylinders are the easiest thing to code and create with an FDM printer and bowls are only slightly harder. The image at the top is the output of a tightly wound spiral. The code below generated the spiral.


var vectors = []; var pi = 3.141592; function makeVectors(){ for(var i = 0 ; i < 1000 ; i++){ var vec = {}; vec.x = Math.sin((i/100.0) * pi * 2); vec.y = Math.cos((i/100.0) * pi * 2); vec.z = .27+((i/100.0)*.27); vectors.push(vec); } }


   These coordinates are pushed onto an array are used to both draw the spiral and output the GCode, which is printed out below. If you copy and paste the code at the bottom of the page (yes, all of it) you can send it to a Makerbot which will then print a nice, thin walled cylinder. From this point you can start to adjust what happens at each coordinate to produce extrusions which don't lay directly on top of each other, but can criss cross to make woven patterns or spew randomly for birds-nest like effects.
   Please have a look at the source for this page to see how the code was generated. Also try sending this GCode to your FDM printer, and have a look at some of the results I've achieved here: Vessel


   I imagine there are a number of practical applications that could result from this kind of printing but I'm primarily interested in the aesthetic aspect. FDM prints are not appealing. This technique makes use of the machinery in a way that couldn't easily be reproduced on much higher end printers for results that are unique and much more like objects you might want to have on display.
   The criss crossing results in a number of different types of finishes: basket weaving, sponge like masses, loose thread, tight spikes, etc. The next stage of development for this project will involve the slicing of arbitrary meshes (user generated content).









David Lobser is an artist, animator and coder and lives in Brooklyn, NY. dlobser.com
This work was produced primarily at the School of Visual Arts Visual Futures Lab (VFL)
As well as at NYU's Media Research Lab



GCode starts here:
_________________________________________________