Sketching with a Pen Plotter

Back in the height of the pandemic I wasn’t going to my office, where I had a laser cutter and 3D printer sitting idle. I don’t have a lot of room in my house for equipment and was anxious to keep making stuff, so I bought a (relatively) inexpensive polar pen plotter (Makelangelo 5, from Marginally Clever Robots). This is a little machine that hangs on a wall, and thus doesn’t take up much space (I had it hanging in a closet). A pen is held in a cradle below the machine, suspended from two cables that move independently, controlling the location of the pen. It’s not as precise as a more expensive plotter, but that appealed to me at the time: I wanted to experiment with using some kind of digital fabrication technique to make things that look like they were created by hand: The imperfection of the Makelangelo was thus a desirable feature.

Makelangelo plotter in action

As anyone who follows my work knows, I design almost everything in Rhino3D and Grasshopper, the visual scripting language for Rhino. This allows me to import a 3D model, such as the Stanford Bunny shown in the image above, and transform it into instructions (gcode) that drive my pen plotter. Here’s the finished “sketch” of the bunny.

Finished bunny sketch

You’ll notice this sketch is made up of hundreds of little tiny line segments. These line segments are generated by an algorithm with a lot of randomness built in, to create a “hand made” look. Here’s a (slightly simplified) description of the algorithm I used:

  1. Import a 3D model into Rhino, and choose a point in space to be the simulated light source.
  2. Choose some large number of random points on the model, in such a way that the density of those points decreases as you get further from the light source.
  3. Construct a little line segment (in 3 dimensions) at each point p on the surface, defined by two conditions: it is both tangent to the surface at p, and perpendicular to a line that connects p to the light source.
  4. Vary the length of each little line segment by a random amount, and rotate each by a small random amount. These little random variations are part of what gives the finished design a hand-made look.
  5. Order the line segments by their distance from the light source. (I’ll explain why in a moment.)
  6. Project all of the line segments to the plane of the image that you want to create.
  7. Translate the locations of the endpoints of each line segment into “gcode”, i.e. text-based instructions that the pen plotter will understand.

The fact that the line segments are ordered means the ones closest to the light source are plotted first. This was a technique I developed after observing that as the plotter worked, the pen I used (a cheap sharpie) started to dry, making the lines fainter and fainter. At first this seemed to be a problem, until I realized that I could leverage this to accentuate the shading effect: making the lines that were supposed to appear brighter actually be brighter by plotting them first!

Seashell Sketch

I was recently asked why I bother with pen plotters. After all, the first step in any pen plotter design is to create the image that I want to plot on my computer. So why not just send that image to a traditional printer? I think these sketches I did are a partial answer to that. With a plotter you can vary plot speed, plot order, pen type, paper type, etc. Each of those give a different feel to the finished product. The imprecision of an inexpensive pen plotter can be seen as a feature, not a bug. All of these things affect the design process: they force you to think about what you are making and how you are making it in ways that just pushing a “print” button wouldn’t.

Asteroid Sketch

I’ve become so enamored with pen plotting that after returning to my office post-pandemic I purchased a much higher quality machine. I look forward to sharing my explorations with that soon!

Star Sketch

1 thought on “Sketching with a Pen Plotter

Leave a Reply