A curated list of code and resources for computer-controlled drawing machines and other visual art robots.
- Inspiration and Instruction
- Plotter Art For Sale
- Other Awesomes
- 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.
- 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.
- 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.
- 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 Cableor similar to find them for sale.
- 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.
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 Sender - A web interface for previewing HPGL and sending it to your plotter.
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.
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.
- 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.
Tools to create vector artwork from scratch or by conversion from other formats.
- Inkscape - Popular cross-platform open source vector graphics editor.
- 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.
- 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.
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.
Single-line vector fonts or "engraving fonts".
- Summary of single line fonts - Good information and links to other resources and fonts.
- Hershey Vector Font -
.fntformat 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.
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.
- The Recode Project - "The ReCode Project is a community-driven effort to preserve computer art by translating it into a modern programming language".
- Hektor - The original cable-based drawbot from 2002.
- Pen Plotter Art & Algorithms - A two-part intro to creating generative graphics for plotting.
- Surface Projection - Some projection techniques for creating line graphics suitable for plotting.
- Fractal Generation with L-Systems - Techniques for creating line-based fractal graphics.
- Pen Plotter Art & Algorithms - Introduction to plotters, AxiDraw, walkthrough of the
- Surface Projection - Deep dive into surface projection and hidden line removal using Python and penplot.
- 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.
Where to find other plotter and drawbot friends.
- #plottertwitter - Twitter hashtag with lots o' plots.
- PlotterArt Subreddit
- AxiDraw Subreddit
- Generative Art Subreddit
- Chiplotle-discuss - Fairly inactive mailing list for the Chiplotle HPGL Python library with some general plotter talk.
Plotter Art For Sale
- Paul Rickards
- Michael Fogleman
- Customized Streetart - Customizable maps with optional pen plotter output.
- Monica Rizzolli
- Martin O'Leary
To the extent possible under law, Brian Boucheron has waived all copyright and related or neighboring rights to this work.