A curated list of code and resources for computer-controlled drawing machines and other visual art robots.
- Inspiration and Instruction
- Manuals and Ephemera
- 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.
- 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.
- Arduino CNC Drawing Machine - A fairly simple 3d-printed AxiDraw-style plotter with good video documentation.
- 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.
- JetPens – The Best White Ink Pens - A comprehensive review of many white ink pens, with pictures of their coverage characteristics.
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.
- Chiplotle on Parallel Port - Tweak of Chiplotle to work with a parallel port connection.
- 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.
- HPGLGraphics - A Processing library for writing HPGL files.
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)
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.
- cozyvec - Web/Standalone terminal environment for plotter art and tweet plots.
- makio135/plotter - An Observable notebook collection full of plotter-oriented work.
- PlotterFun - Browser-based Image to SVG converter similar to SquiggleDraw.
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.
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.
- svg-fonts - Single-line fonts in an SVG format, mainly for use with the Hershey Text Inkscape plugin.
- CNC Text Tool - Browser-based Hershey Text tool with export to SVG.
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
- 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.
- Journal Intime II - One of Vera Molnár's notebooks, dated 1983–1985
Manuals and Ephemera
Scanned plotter manuals and marketing ephemera from the Internet Archive
- Apple Color Plotter User's Manual
- Programming CalComp Pen Plotters (1968)
- Commodore 1520 Printer Plotter Manual (1983)
- Commodore 1520 Printer Plotter Manual
- Control Data 165/165-2 Plotter Manual
- HP 7475A Graphics Plotter Operation and Interconnection Manual
- HP 7570A DraftPro Plotter Hardware Support Manual
- HP 7585B Drafting Plotter Service Manual (1983)
- HP DraftPro Plotter User's Guide (1986)
- HP DraftPro Plotter Programmers Reference (1986)
- Radio Shack TRS-80 Plotter Printer Manual
- Roland DXY-880 Operation Manual (1984)
- Roland DPX-3300 Service Notes (1987)
- Roland DPX-3300 Schematics (1987)
- Siemens C1613 Plotter Manual (German)
- Time Share Peripherals TSP-212 Brochure
- Hewlett-Packard Journal Volume 29 Number 1 - Multiple articles about the development of the HP Model 9872A and 7221A pen plotters.
- Hewlett-Packard Journal Volume 32 Number 11 - Multiple articles about the development of the HP Model 7580A plotter.
- CalComp Precision Graphics System 900/728 Brochure (1970)
- Digital Plotting Newsletter (1967)
- Versatec Printers and Plotters Brochure (1977)
- Versatec Printer/Plotters, Plotters and Output Systems (1981)
- Roland Users Group Volume 2 Number 4 (1984) - Computers and Plotters Take the Place of Drafting Tables and Pencils article on page 36 (PDF page 40).
- Omega-t Systems FasPlot Plotter Brochure
- Commodore Computer Plotter CBM 8075 Brochure (German)
- Strobe Model 100 Graphics Plotter Brochure (1980)
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.
- DrawingBots Discord Forum - Discord forum with an active community.
- PlotterFiles - Community for sharing SVG files for plotters.
Plotter Art For Sale
- Paul Rickards
- Michael Fogleman
- Customized Streetart - Customizable maps with optional pen plotter output.
- Monica Rizzolli
- Martin O'Leary
- Geoffrey Bradway
- Yuin Chien
- Andrew Heumann
- Arjan van der Meij
- Nadieh Bremer
- Michelle Chandra
- Jessica In
- Pedro Alcocer
- Marcel Schwittlick
To the extent possible under law, Brian Boucheron has waived all copyright and related or neighboring rights to this work.