A curated list of code and resources for pen plotters and other robots that draw.
- 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 (YouTube) – 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 (PDF) – 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.
- 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 (web site) – 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.
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.
- 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.
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.
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 –
.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.
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 Part I and II – A two-part intro to creating generative graphics for plotting.
- Surface Projection and Fractal Generation with L-Systems – Some techniques for creating line graphics suitable for plotting.
- Pen Plotter Art & Algorithms – Introduction to plotters, AxiDraw, walkthrough of the
penplot
library. - 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.
- Paul Rickards
- Michael Fogleman
- inconvergent
- Customized Streetart – Customizable maps with optional pen plotter output.
- Monica Rizzolli
- EmergentDesign