A curated list of code and resources for computer-controlled drawing machines and other visual art robots.
- Hardware
- Software
- Inspiration, Instruction, and Research
- Manuals and Ephemera
- Community
- 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.
- 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".
- BrachioGraph - A cheap and simple plotter made from sticks, servos, and a Raspberry Pi running Python. Here's video of a BrachioGraph talk at PyCon UK from the creator.
- 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.
- EBB Driver Board - USB-based dual stepper motor controller board, originally designed for the EggBot.
- 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.
- 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.
- 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 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 G-code interpreter and simulator.
- svg2gcode - Node.js command line utility for converting SVG to G-code.
- svg2gcode - Python utility for fast SVG to G-code conversion.
- jscut - A web-based utility 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)
- gcodeplot - Python utility to convert SVG and HPGL to G-code for a 3-axis CNC machine.
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.
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.
- PlotterFun - Browser-based Image to SVG converter similar to SquiggleDraw.
- SVG.js - Dependency-free lightweight library for creating, manipulating, and animating SVG.
- Components AI - Experimental computational design platform for exploring generative space.
- DrawingBotV3 - Cross-platform software for converting images to line drawings.
- linedraw - Python tool to convert images to sketchy vector line drawings.
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.
- SVG Cropper - A browser-based tool to crop SVGs using different primitives, custom shapes, or other SVGs.
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.
- 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.
Blog posts, articles, tutorials, galleries, videos, et cetera.
- An Intro to Pen Plotters - Good info on getting started with old HPGL plotters.
- An Introduction to Pen Plotting - Another getting started article with modern 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.
- 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.
- What is a pen plotter 2022? - Nice video introduction to modern plotters in 2022.
- Tools, Tricks, and Hacks: Exploring Novel Digital Fabrication Workflows on #PlotterTwitter - Research paper on the novel workflows of the plotter community (Video Summary).
- Orbis Tertius - An immersive digital installation with plotter output of Martian topography.
- Tech Tangents: Plotting For The First Time - HP 7470A - Nice video showing an HP 7470A operated from an HP 85 computer.
- CuriousMarc: HP 7475A Plotter and HPGL Demo - Video of an HP 7475A plotting some demos.
- CuriousMarc: Refilling or Replacing Vintage HP Plotter Pens - Video showing how to open, clean, and refill vintage HP plotter pens.
- Commodore 1520 Plotter Demonstration - Video of the Commodore 1520 plotter in action, including a cover-off shot of the mechanism.
- Vera Molnar: Toward Aesthetic Guidelines for Paintings with the Aid of a Computer
Scanned plotter manuals and marketing ephemera, mostly from the Internet Archive
- Apple Color Plotter User's Manual
- Atari 1020 Color Printer Owner's Guide (1982)
- Atari 1020 Color Printer Field Service Manual (1983)
- Programming CalComp Pen Plotters (1968)
- Commodore 1520 Printer Plotter Manual (1983)
- Commodore 1520 Printer Plotter Manual
- Control Data 165/165-2 Plotter Manual
- Gerber GS750 Plus User Manual (1995) (manualslib)
- Gerber Signmaker IVB User's Manual (1983) (manualslib)
- Houston Instrument DMP-160 Plotter Operation Manual
- Houston Instrument DM/PL Command Language (1984)
- Houston Instrument DMP-40V Operation Manual (1988)
- Houston Instrument HIPLOT DMP-51/52 Operation Manual (1985)
- Houston Instrument Interface Notes for DM/PL Intelligent Plotters (1983)
- Houston Instrument Stand Assembly Procedure DMP-50 Series Plotter
- HP 7470A Interconnection Guide
- HP 7470A Operator's Manual (manualslib)
- 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)
- Olivetti PL10 Microplotter User Guide (1983)
- Radio Shack TRS-80 Plotter Printer Manual
- Radio Shack TRS-80 Color Graphic Printer Operation Manual
- Radio Shack TRS-80 Color Graphic Printer Service Manual
- Roland DXY-880 Operation Manual (1984)
- Roland DXY-980 Operation Manual (1985)
- Roland DXY-990 Operation Manual (1986)
- Roland DXY-1300 -1200 -1100 Command Reference Manual
- Roland DXY-1350A -1150A User's Manual (1997) (manualslib)
- Roland DPX-2000 User's Manual
- Roland DPX-3300 Operation Manual (GitHub)
- Roland DPX-3300 Service Notes (1987)
- Roland DPX-3300 Schematics (1987)
- Roland DPX-3700A DPX-2700A User's Manual (Roland Direct Download)
- Rotring Tubular Plotter Points Practical Tips and Information
- Rotring NC-scriber CS 50 Operating Instructions (1989)
- Siemens C1613 Plotter Manual (German)
- Silver Reed Colour PenGraph EB-50 Operating Manual (1984)
- Tectronix HC100 Instruction Manual (1987)
- Panasonic RK-P400C 4-Color Graphic Penwriter Manual
- [Unknown Brand] LP 2002 Photo Plotter Attachment Operating Manual (German) - Also see Martin Bircher's thread with pictures of this device.
- 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 10 - Multiple articles about the development of the HP Model 7580A plotter.
- 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)
- Roland DG Plotter Ad in Byte Magazine Vol 12 No 4 (1987) (via @OldTechAdverts)
- Auerbach On Digital Plotters And Image Digitizers (1972) - A book about plotters and digitizers.
- CalComp Graphics Products Brochure (1981)
- CalComp Plotters in 1968 - Promotional video showing a flatbed CalComp plotter and its output.
- Houston Instrument DMP-41 and DMP-42 Plotters Brochure
- Houston Instrument DMP-51/52 Series Brochure
- Houston Instrument Omnigraphic Plotter Brochure
Where to find other plotter and drawbot friends.
- 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.
- #PenPlotter - Mastodon/ActivityPub hashtag that plotter folks are mostly congregating under.