This past weekend, I wrapped up a project I've been working on for a few months: making some pen plotter art for a friend as a surprise gift. Here's the end result:

The three images above depict locations in Toronto (plotted in black) overlaid with the bike routes (plotted in orange pen) of my friend Chad, who does food bank deliveries through the Bike Brigade. I had a lot of fun making this—below I'll walk through the process in more detail.

Getting lots of GPX Data

Earlier in the year, Chad shared some GPX data with me that were dumps from Ride With GPS, so I could move them into Strava via their API integrations. After helping with that, I had hundreds of GPX data files just sitting around doing nothing on my hard drive.

Around the same time, my friend Henry showed me a program called QGIS, and we hacked around with it a little bit during a side-project night. After digging into QGIS, I started to explore making a poster with the GPX data I had kicking around. I spent a few weeks noodling on this but ended up discarding an idea, not really being happy with the design that I created.

Accessing the pen plotter

A few months later I became acquainted with an Axidraw, which is a pen plotter tool. The Axidraw was made available in my co-working space thanks to a generous member who had brought it in, encouraging others to play around and learn how to use it.

During another side project night, Henry showed me how to use the pen plotter. And in the span of that night, we were able to draw a local map using QGIS, Inkscape, and the Axidraw. We watched, mesmerized, as the pen plotter plotted away.

With my poster idea in the project graveward, using a pen plotter became an appealing alternative for making some art with the GPX data I had sitting around. After this most recent side project night, I had a rough idea of what the work would be involved to do the same thing but with GPX data on top:

  • (re-learn how to) pull down vector tile maps
  • overlay GPX data
  • figure out how to export separate layers and send them to inkscape as SVGs
  • learn how to work with the axidraw with inkscape.
  • use the axidraw, with a mixture of multiple inks, preferably.

Working with QGIS and GPX Data

I began by making a new project in GPX and tried to find a way to batch import large quantities of GPX data. It turns out it's not too difficult using a Batch GPX importer plugin that I found through this GIS forum post.

I also found a post getting into how to import vector map tiles. It would later turn out that I wouldn't actually need this Vector Map tile, although it provided a useful base layer to then lay on top the street lines and the GPX lines. Since I only really needed to draw lines to represent roads, Henry showed me a way to use something called Quick OSM to query for just the content that you want from OpenStreetMap. This allows you to, say, ask for highways or residential homes or other things you might find on a map without having to necessarily pull in everything.

a screenshot of how the GPX data looks over top of the whole city.
Screenshot demonstrates querying just street map lines and overlaying GPX data.

Preparing a test print

Once the above was in place, I decided it was time to actually get plotting using the Axidraw. During this session, I read some documentation on the Axidraw and Inkscape, and found that it wasn't too complicated. I had used Inkscape a lot when I was a teenager, and so I was still familiar with the interface, and honestly, it hasn't changed a ton. Some folks recommend starting with a small test print. What I had above was far too complicated, so I decided to try and clip my SVG to just show a smaller section of the map and just print that.

Along the way, I learned about spatial bookmarks, which are a useful tool in QGIS. Basically, you can align your map the way you like, looking at a specific viewport of it, set a bookmark and then be able to return to that view at any time. This was useful as I started to set what I wanted to be the exact regions I would print.

Exporting SVGs from QGIS is a bit confusing, and I didn't actually write down how to do it in my log for this project. Basically there's a canvas tool that allows you to create export in QGIS, and then you can spit out an SVG or a PDF. Once I had an output, I tossed it into Inkscape and clipped it to a page size of 3.5 inches by 4.5 inches and decided to do a few different tests for the Axidraw.

First I tried using a Platinum Preppy-fountain pen. It's a great pen, it's cheap and it's very smooth. But I quickly learned that you should be using the same type of pen if you're doing multiple colours, because the width of the pen in the holder is actually going to change where the ink comes in contact with the page. A bit obvious in retrospect. I also quickly realized that there were some parts of the GPX data that were tightly condensed and ended up tearing through the paper.

Next I tried using microns. I had two in black and orange of the same size. I had read that they were great candidates for pen plotters, however, I didn't have much success. They either got bent or became quite dry in the process of plotting.

Along the way, I found a great blog post about different pens to use with pen plotters.

Three completed prints

A few days later, I had a successful working session on this project. I returned to the co-working space with some new paper to test, some mixed media 100 pound 12 by 9 paper that I had bought a couple of years ago during the pandemic. I thought it would be stronger and hold up better than printer paper, which it did, but it still got torn by the pen plotter repeating strokes on very dense areas. So I did some more research and headed over to the art store to pick up some Bristol paper. [1]

Then I tried printing using the Jelly Roll pens by Sakura the same company that makes microns. I found that the Jelly Roll 08 Orange and Black turned out to be far superior to the microns. I was a little concerned that they might not have the same archival quality, but in the end, big shrug.

Trimming the plots

The next day I got up early, made my breakfast, and dedicated about 45 minutes to chipping away at this. I trimmed the edges of the prints and had a good time doing that. It was actually very satisfying, although I did make a few mistakes. Not a big deal, though, because I'll be using a mat to cover up the prints and uneven trimmings won't show. I created a mock mat out of a thick piece of mixed media paper to see how it'd look with two images up, and I was pretty happy with it.

Framing

I wasn't sure what I would do for framing or for the mat. I didn't really want to take it to a frame store because I knew it would be expensive. So I looked around a few thrift stores, but couldn't find anything remotely useful.

Then, I happened to mention this project that I've been working on to a friend, and she quickly pointed out two respective websites for buying frames and buying custom mats [2]. I was able to use the online web interface for the mat to request three cutouts, and it came to $15 or so, while the respective frame was around $60 for an 18 x 12.

Both the frame and the mat showed up in about 6 days. I was pleased with the look of both, although they are not the quality you would find in a frame shop. But for the price, it's hard to make an argument otherwise, at least for a project like this. The frame didn't come with real glass (well, maybe it's plexiglass). You peel off two thin films on either side of it, and then you have this clear sheet of plastic, basically.

My partner, who has experience in custom framing, helped me mount the pieces on the mat, frame them, and stick it all together.

Wrapping up

This was a super fun project. It's a bit of a strange one in that I started it nearly a year ago, but in a different way. Sometimes it can be hard to table ideas or give up on them completely. But this was a nice example of seeing something kind of come back from the dead a little bit. I really enjoyed working with the pen plotter. It satisfies the parts of my brain that want to create art, but also use code or other technical tools to make them.

I haven't framed a piece of art either for myself or anyone else in a long time, but it creates a sort of finality around what you've done, which is really satisfying. I was surprised to find that I wasn't really doting too much on the final appearance of this creation. The glass that came with the frame got a little bit scratched, the pen plots aren't perfect, I tore the paper when cutting them by hand, but none of this really matters too much to me and none of it is really visible to the viewer. I'm learning to identify imperfections in whatever I'm working on and starting to see when they really matter vs when only you will know they exist.

This was also a great follow-up project to creating Electrolight and publishing it. I wanted a break from gamedev before embarking on another game. This project took about three months to execute, but that was spread out over only, say, six or seven sessions of focused work.

I look forward to coming back to the Axidraw, creating playful art for just myself, and seeing what I can come up with, maybe on different surfaces with different kinds of pens, or maybe something more experimental.

Thanks for reading.

Footnotes


  1. Side note, I never really realized where the word Bristol board came from, but Bristol is kind of paper I guess. It's often used for markers, making comics, or anything that needs a smooth tooth. ↩︎
  2. Small lesson/note to self: just tell your friends what you're working on. If I hadn't mentioned my search for a frame, I wouldn't have gotten this helpful advice. I've been way too bashful to talk about my projects in the past. ↩︎