Awesome Plotters 
A curated list of code and resources for computer-controlled drawing machines and other visual art robots.
Contents
Hardware
Plotters
- AxiDraw - Pen plotter from Evil Mad Scientist, very popular on #plottertwitter.
- Line-us - A cute little kickstarted robotic drawing arm.
- Makeblock XY Plotter - Hackable XY plotter kit (discontinued?).
- Drawing Robot - 3d-Printable AxiDraw clone w/ Arduino CNC Shield controller running grbl firmware.
- 4xiDraw - Yet another 3d-printable AxiDraw clone w/ Arduino CNC Shield controller running grbl firmware.
- WaterColorBot - XY art robot and software to plot with watercolor paints.
- EggBot - Pen plotter for egg-shaped and spherical objects.
- HP Pen Plotters - Vintage desktop and floor-standing pen plotters from the creator of the HPGL standard. Model 7475A is very common and can usually be found on eBay.
- Roland Pen Plotters - Vintage flatbed HPGL pen plotters. Search eBay for "roland dxy".
- Polargraph - The original polargraph hardware and software project.
- Makelangelo - Open source polargraph artbot.
- BrachioGraph - A cheap and simple plotter made from sticks, servos, and a Raspberry Pi running Python.
Motor Controllers
- grblShield - All the stepper motor control hardware needed to turn an Arduino into a G-code-based motion controller using the grbl firmware. (adafruit)
- TinyG - More featureful and robust 6-axis G-code-based motion control hardware. (adafruit)
- Arduino CNC Shield - Grbl-compatible stepper motor control shield for Arduino, similar to the grblShield.
- Raspberry Pi CNC Hat - Raspberry Pi add-on board w/ stepper controllers and a microcontroller running grbl. Interfaces with the Pi's serial pins.
Accessories
- WiFi232 - Wifi to RS-232 serial via a DB25 plug. Control your serial plotter wirelessly.
- Plotter Cable Pinout - Schematic for a plotter cable that will work for most HP and Roland plotters. Search eBay or Amazon for
DB9 to DB25 Serial Null Modem Cable
or similar to find them for sale.
Pens
- Sharpie Fine Point Plotter Adapter - 3d-printed adapter to fit a standard Sharpie in an HP-GL plotter.
- Parametric 3d-Printable Plotter Pen Adapter - Adjustable model to print adapters for various pens.
- Plotter Pen STL Models - Accurate STL models of both short and long standard plotter pens.
- Pens for AxiDraw - List of pens suitable for general plotter abuse.
- Pens for EggBot - Egg- and glass-focused pen recommendations but still generally applicable information.
- JetPens – The Best White Ink Pens - A comprehensive review of many white ink pens, with pictures of their coverage characteristics.
Software
HPGL
HPGL is a serial/text-based protocol used by most old pen plotters, and even many new vinyl cutters.
- Chiplotle - Python library for generating HPGL and interfacing with serial plotters.
- HPGL Reference Guide - HTML-based HPGL Reference.
- HP 7475A Interfacing and Programming Manual - Scanned PDF manual that contains a full HPGL reference.
- djipco/hpgl - A Node.js library to communicate with HPGL-compatible plotters and printers.
- hp2xx - GNU tool to convert HPGL into other vector and raster formats. Can also be used as a previewing in X11.
- vec - Example C code for generating HPGL, with a turtle graphics interface.
- d3-hpgl - An adapter for the HTML Canvas API so you can output HPGL using the popular D3 library.
- HPGL Viewer - An HPGL Viewer using JavaScript and HTML5 canvas.
- HPGL Sender - A web interface for previewing HPGL and sending it to your plotter.
- HPGLGraphics - A Processing library for writing HPGL files.
G-code
G-code is a text-based standard for controlling CNC machines. Though it was designed for industrial machines, its use in many hobbyist 3d printer firmwares has made it ubiquitous in small-scale DIY projects as well.
- grbl - A high-performance G-code interpreting firmware for the Atmega 328 microcontroller and Arduino.
- cncjs - A web-based interface controlling CNC machines running grbl, TinyG, or other G-code-based firmware.
- node-gcode - Node.js-based G-code interpreter and simulator.
- svg2gcode - Node.js-based command line utility for converting SVG to G-code.
- svg2gcode - Python-based utility for fast SVG to G-code conversion.
- jscut - A web-based utiltity for converting SVG to G-code.
- Universal-G-Code-Sender - Java-based grbl-compatible cross-platform G-code sender.
- ChiliPeppr Hardware Fiddle - Modular web-based workspaces to visualize G-code and control hardware.
- gcode-generative-for-processing - Processing library, aiming to create gcode from simple shapes. (Designed for usage with the Creality CR10)
Plotter-Specific
Software that is specific to a particular plotter or controller.
- axidraw - Official AxiDraw extensions for Inkscape.
- axi - Unofficial Python library for the AxiDraw v3.
- xy - Utilities for the Makeblock XY Plotter Robot Kit.
- LaserGRBL - Laser-optimized Windows GUI for grbl controllers. Could be repurposed for DIY pen plotters that use a solenoid for pen up/down movements.
- Line-us Inkscape Plugin - Sends drawings to the Line-us plotter directly from Inkscape.
- Line-us API Examples - Example code for the Line-us plotter's G-code-based API.
- @beardicus/line-us - JavaScript library for controlling the Line-us machine from Node or the browser.
- PenPlotter - Polargraph controller that uses repetier firmware.
- Makelangelo-firmware - Firmware for the Makelangelo polargraph robot.
- RoboPaint - Software for the WaterColorBot.
- AxiTurtle - Turtle graphics for AxiDraw in Processing.
- GRBL-Plotter - Plotter-optimized Windows GUI for grbl controller with SVG and DXF import, and flexible pen up/down control.
- saxi - Driver and library for the AxiDraw. Uses constant-acceleration motion planning and automatically resizes to paper.
- MP2300-Tools - Software for converting HPGL to Graphtec's GPGL format, as well as CAD files for a Graphtec plotter pen adapter.
Vector Creation
Tools to create vector artwork from scratch or by conversion from other formats.
- Inkscape - Popular cross-platform open source vector graphics editor.
- p5.js - "JavaScript library that makes coding accessible for artists, designers, educators, and beginners".
- Paper.js - "The Swiss Army Knife of Vector Graphics Scripting".
- ln - Vector-based 3D renderer written in Go.
- autotrace - Converts bitmap images to vector graphics.
- stipplegen - Creates interesting stippled drawings from bitmap images. (blog post)
- SquiggleDraw - "SquiggleDraw will create a SVG file from an image, using the brightness to change the amplitude of sine waves".
- svgurt - Web-based PNG to SVG creative noodler.
- maptrace - Produce watertight polygonal vector maps by tracing raster images.
- Drawbot_image_to_gcode_v2 - Creates G-code for use on drawbots.
- blackstripes - Turns a PNG image into a SVG line drawing.
- Ribbon - Ribbon diagrams of proteins in written in Go.
- penplot - A development environment for plotter art in JavaScript.
- penkit - A Python library for creating line-based SVG graphics.
- generativeExamples - Example Processing code that generates plottable PDFs.
- Let's make map - Web-based tool to export an SVG map from Mapzen tiles.
- SuperformulaSVG for web - A generative line art web app.
- scribbleplot - Scribbly image transformations in Processing.
- Maker.js - Library for creating 2D vector drawings for CNC and laser cutter machines.
- Turtletoy - Browser-based JavaScript turtle graphics API with SVG export.
- cozyvec - Web/Standalone terminal environment for plotter art and tweet plots.
- makio135/plotter - An Observable notebook collection full of plotter-oriented work.
Vector Utilities
Tools to manipulate and optimize vector-based file formats.
- svgsort - Path planning for plotting SVG files, reduces time spent moving with the pen up.
- svgo - Node.js-based tool for optimizing SVG files.
- Polargraph Optimizer - Optimize drawing plan for a polargraph.
- penkit-optimize - An SVG optimizer that uses a vehicle routing solver to minimize plot time.
- svg-crowbar - Chrome-only bookmarklet for extracting SVG from an HTML document.
- vpype - Plotter-focused Python-based CLI utility for generating and manipulating SVGs, including scaling and optimizing paths.
Fonts
Single-line vector fonts or "engraving fonts".
- Summary of single line fonts - Good information and links to other resources and fonts.
- Hershey Vector Font -
.fnt
format of vector fonts from the 60s. Includes a good overview of the original data format of the fonts. - hershey-fonts - C library and original font data for the Hershey fonts.
- OneLineFonts.com - Commercial site with some single-line fonts available for purchase.
- svg-fonts - Single-line fonts in an SVG format, mainly for use with the Hershey Text Inkscape plugin.
Inspiration and Instruction
Blog posts, articles, tutorials, galleries, videos, et cetera.
- An Intro to Pen Plotters - Good info on getting started with old HPGL plotters.
- 1980s pen plotters of the future - Another intro to vintage pen plotters.
- Pen Plotter Programming: The Basics - Some basics of programming vector paths, including sorting, joining, and simplifying.
- On Generative Algorithms - Nice 13-part walkthrough of interesting algorithms.
- Roland DG DXY-990 - Quickstart guide for a Roland flatbed plotter.
- The Cohen-Sutherland Line Clipping Algorithm - Detailed explanation and examples of an interesting algorithm.
- Vera Molnár - OG plotter artist.
- Hektor - The original cable-based drawbot from 2002.
- Pen Plotter Art & Algorithms - A two-part intro to creating generative graphics for plotting.
- Surface Projection - Deep dive into surface projection and hidden line removal using Python and penplot.
- Fractal Generation with L-Systems - Techniques for creating line-based fractal graphics.
- Pen Plotter Art & Algorithms - Introduction to plotters, AxiDraw, walkthrough of the
penplot
library. - Introduction to TSP art - Resources for traveling salesman problem (single path) art.
- Hidden wireframe removal - Discussion and links to code for wireframe removal of STL files.
- How to Draw Generative Art with an Axidraw Pen Plotter - Lots of nice tips, not all specific to the Axidraw, plus some pen reviews and handy 3d-printed tools.
- The Best XY Plotters in 2020 - Good overview of the AxiDraw and its clones, plus some DIY options.
Community
Where to find other plotter and drawbot friends.
- #plottertwitter - Twitter hashtag with lots o' plots.
- PlotterArt Subreddit
- AxiDraw Subreddit
- Generative Art Subreddit
- Plotter People - In-person meetups (SF and NYC so far) with talks and plotter art galleries.
Plotter Art For Sale
- Paul Rickards
- Michael Fogleman
- inconvergent
- Customized Streetart - Customizable maps with optional pen plotter output.
- Monica Rizzolli
- EmergentDesign
- BustBright
- Martin O'Leary
- Geoffrey Bradway
- Yuin Chien
- Andrew Heumann
- brubsby
- Arjan van der Meij
- Nadieh Bremer
- Michelle Chandra
- Jessica In
- WBlut
- Pedro Alcocer
- AndyMakes
Other Awesomes
License
To the extent possible under law, Brian Boucheron has waived all copyright and related or neighboring rights to this work.