AxiDraw Plotter

I'm going to give you some tips for working with pen plotters. Specifically, I'm going to talk about working with the AxiDraw plotter from Evil Mad Scientist Labs. Although it hasn't been perfect, it's well made, easy to repair, and well documented. If you want to start plotting artwork, I'd suggest starting with one of these. With that said, a lot of my advice probably applies to other plotters, too. I'm also going to describe how to create designs for the plotter using Processing, but anything that can produce a PDF or SVG should work.


Set your renderer to PDF. When running the plotter through Inkscape (more on this later), the PPI/DPI will be 72. If you want to plot an image at the maximum size of 11 x 8 inches, this means you'll set the size to 792 x 576. Here's an example Processing sketch that will draw a single line:

import processing.pdf.*;

void setup() {
  size(792, 576, PDF, "filename.pdf");

void draw() {
  line(0, 0, width, height);


If you're using Linux or Windows, you'll probably want to use Inkscape to actually drive the plotter. I don't use a Mac, so I have no advice there. First, setup the AxiDraw extension in Inkscape as documented on the AxiDraw site.

Open the PDF with Inkscape. Export it as an SVG. Somewhere in this process, a border gets added to the SVG, which I don't like. The document size also needs to get set in inches or centimeters (rather than pixels) to work properly with the AxiDraw. I wrote a small Python script that will remove the border and set the document size in inches. Feel free to use that. Now, open the edited SVG in Inkscape, and start the plotter.

EDIT: there's also an SVG mode in Processing that should avoid these extra steps. It's not working perfectly with my particular setup yet (through Quil, etc) but you should give it a try.


This is your choice as an artist, but I'll tell you about what I've tried so far:

Pens: My preference is to use a Pigma Micron. These are extremely reliable, consistent, and durable. The plotter will be very tough on pen tips, because there are a lot of repetetive movements. Some pens will dry up mid-plot, but not the Microns. The AxiDraw doesn't apply any downward pressure beyond the weight of the pen itself, which might be a problem for some pen types. Also, Microns have archival ink, which is a bonus if you want your work to last.


Markers: I like to use these almost as much as I like to use Microns. I've been using Prismacolor markers, which are expensive, but super consistent and smooth. You can get some beautiful effects with the slight bleed from the marker. Once again, plotting is very tough on the tips, and your marker tips will be significantly damaged after a few plots.


Pencils: I haven't had great experiences with pencils. Even with a fairly soft lead, the drawing becomes very faint. I think it's a combination of there not being enough pressure on the pencil, the lead tip becoming smooth, and maybe a slight "film" building up on the tip. However, I've done some drawings where I use a pencil for a faint layer and a pen for a dark layer, and that looked cool.


Brushes and Paint: This is my current area of experimentation. I'll write more once I have more figured out. You need a game plan for how to reload the paint on the brush. I've been using a paint tray at the right-most edge of the drawing, and I systematically inject "lines" above the paint tray to have the plotter automatically reload the paint brush. This requires a lot of manual attention and care, but the final product is neat:



Your choice of paper is very important. Plotting is not only tough on the pen, but also on the paper. I use Bristol paper, which is thick and very smooth. When I tried paper with more texture, it got torn up and gummed up the pen tip.

Also, you want a very smooth surface underneat the paper. I've been using a piece of whiteboard from Home Depot. I tape the paper down to this to ensure it doesn't move.


This is frustratingly difficult. If you have a pre-defined area you want a plot to fit in, it's hard to perfectly align the plotter so that the drawing ends up where you want it to. I don't have a perfect solution for this yet, but here's what I'm doing now:

I use a metal T-square as a spacer between the plotter and the paper. This helps to make sure the plotter and the paper are square/parallel. I marked the offset on the T-square where the home position is on the x-axis. The T-square is almost the right width to help me line up the y-axis, but I still need to eyeball it somewhat. To do this, I put a pencil in the plotter and lower it to see exactly where it falls.

Like I said, it's not perfect. If you have a better setup, let me know. Maybe someone has built a custom rig?

EDIT: one suggestion from the folks at AxiDraw is to turn off the motors and move the plotter head to all endpoints, verifying that it's still aligned at all of those points. That sounds like a great idea to me.


The most important consideration: DON'T DRAW ANYTHING BEYOND THE MECHANICAL LIMITS OF THE PLOTTER. It will try to draw these anyway, make a terrible noise, and possibly lose track of its exact position. Maybe newer AxiDraw software prevents this in a nice way, but I still avoid it just in case. Every time I draw a line that might go off the edge of the drawing, I trim it where it intersects with the border.

The main aesthetic consideration you'll have to get used to is that you can't cover anything up -- everything is just lines. If you have a program that draws shapes, and you want those shapes to be "opaque" (covering things below them), you have to write code to do that all manually. That means checking everything for intersections. You might get some use out of a polygon clipping library like GPCJ (it's a pain in the ass to use, but it works).

Other than that, plotters are super high precision, and I suggest you take advantage of this. Exactly how to do this is a real art problem, so I'm leaving that to you to solve on your own.


To make the drawing go faster, you want to minimize the movement between strokes. In my programs, I do this by first collecting every line I want to draw. Then, I do a kind of "sort" of the lines. I start with some line, then pick the next line by looking for a start point that is closest to the end point of the previous line. Repeat until there are no more lines.

I think Anders Hoff has a script somewhere that will take an SVG and do this automatically, called SVG sort. You may just want to use that.

EDIT: new AxiDraw software will apparently include a tool to do this as well


If you have an AxiDraw, you can only draw 11x8 inches at a time. If you want to make a bigger drawing, you either need a bigger plotter (either expensive or custom made, generally) or you need to split the drawing up into tiles. I've taken a few stabs at this.

First, I tried out drawing the tiles right beside each other on the same piece of paper, thinking that I could position the plotter "perfectly" and everything would be seamless. This turned out to be impossible. With a pen or marker, if any lines crossed the tile boundaries, there was no way I could get those lines to be seamless.

So, I embraced the seams. For my largest plotted work, Understand, I went with a styled tiling pattern that didn't detract from the work. I drew the outline of each tile as part of the plotting process, then cut out the tiles by hand with a razor. Finally, I reassembled them with adhesive on a foam board.



The last piece of advice that I have is that you need to experiment. Plotters have a steep learning curve at first, but the satisfaction of producing a real, physical piece of artwork makes it all worth it. There are so many interesting things you can create with a plotter, and most of them haven't been discovered yet. If you experiment and try new techniques, you'll quickly find fertile new ground.

That's all for now. If you enjoyed this, and want to be notified when I publish new articles and new artwork, feel free to sign up for the newsletter below. Cheers!