Plotters
Computer-controlled drawing machines and other visual art robots.
Contents
Hardware
Plotters
A coreXY plotter made from extrusion, 3d-printed parts, and an inexpensive 3d-printer control board.
Open source 3d-printable XY gantry and Z-stage designed for automated brush and pen painting.
Pen plotter built entirely of LEGO and programmed with PyBricks and Python.
Apple 410 Color Plotter documentation, drivers, and ROM dumps.
Motor Controllers
Software
HPGL
Python library for generating HPGL and interfacing with serial plotters.
Chiplotle fork updated for Python 3.x compatibility.
A Node.js library to communicate with HPGL-compatible plotters and printers.
Example C code for generating HPGL, with a turtle graphics interface.
An adapter for the HTML Canvas API so you can output HPGL using the popular D3 library.
An HPGL Viewer using JavaScript and HTML5 canvas.
A web interface for previewing HPGL and sending it to your plotter.
A Processing library for writing HPGL files.
A Processing library that allows for direct communication with HPGL pen plotters from within a Processing sketch.
G-code
A high-performance G-code interpreting firmware for the Atmega 328 microcontroller and Arduino.
A web-based interface controlling CNC machines running grbl, TinyG, or other G-code-based firmware.
Node.js G-code interpreter and simulator.
Node.js command line utility for converting SVG to G-code.
Python utility for fast SVG to G-code conversion.
Java-based grbl-compatible cross-platform G-code sender.
Processing library, aiming to create gcode from simple shapes. (Designed for usage with the Creality CR10)
Python utility to convert SVG and HPGL to G-code for a 3-axis CNC machine.
Plotter Control
Official AxiDraw extensions for Inkscape.
Unofficial Python library for the AxiDraw v3.
Cross-platform G-code sender and CNC control software for grbl.
Utilities for the Makeblock XY Plotter Robot Kit.
Laser-optimized Windows GUI for grbl controllers. Could be repurposed for DIY pen plotters that use a solenoid for pen up/down movements.
Sends drawings to the Line-us plotter directly from Inkscape.
Example code for the Line-us plotter's G-code-based API.
JavaScript library for controlling the Line-us machine from Node or the browser.
Polargraph controller that uses repetier firmware.
Firmware for the Makelangelo polargraph robot.
Software for the WaterColorBot.
Turtle graphics for AxiDraw in Processing.
Plotter-optimized Windows GUI for grbl controller with SVG and DXF import, and flexible pen up/down control.
Driver and library for the AxiDraw. Uses constant-acceleration motion planning and automatically resizes to paper.
Software for converting HPGL to Graphtec's GPGL format, as well as CAD files for a Graphtec plotter pen adapter.
Application for controlling 2D plotters, cutters, engravers, and CNC machines.
Command-line tool for controlling Silhouette plotters and cutters with SVG input.
Python library for controlling Silhouette plotters and cutters.
Python script to convert and send SVG drawings to the Panasonic PenWriter family of typewriter plotters.
Vector Creation
Vector-based 3D renderer written in Go.
Converts bitmap images to vector graphics.
Creates interesting stippled drawings from bitmap images. (blog post)
"SquiggleDraw will create a SVG file from an image, using the brightness to change the amplitude of sine waves".
Produce watertight polygonal vector maps by tracing raster images.
Creates G-code for use on drawbots.
Turns a PNG image into a SVG line drawing.
A development environment for plotter art in JavaScript.
Example Processing code that generates plottable PDFs.
Scribbly image transformations in Processing.
Web/Standalone terminal environment for plotter art and tweet plots.
Cross-platform software for converting images to line drawings.
Python tool to convert images to sketchy vector line drawings.
A simple web tool to create OpenStreetMap SVG maps for plotting.
"A toolkit for the design and fabrication of delicate punch needle embroidery using X-Y plotters".
Vector Utilities
An SVG optimizer that uses a vehicle routing solver to minimize plot time.
Path planning for plotting SVG files, reduces time spent moving with the pen up.
Python library to extract strokes and outlines from SVGs as line segments.
Node.js-based tool for optimizing SVG files.
Optimize drawing plan for a polargraph.
Chrome-only bookmarklet for extracting SVG from an HTML document.
Plotter-focused Python-based CLI utility for generating and manipulating SVGs, including scaling and optimizing paths.
Manuals, Ephemera, Papers, and Patents
Protocol Buffers - Google's data interchange format.
protoc plugin to generate OpenAPI v3 specification from protobuf files.
gRPC to JSON proxy generator.
protoc plugin to generate gateway clients for gRPC servers.
Field validation for Protocol Buffers.
Field validation for Protocol Buffers.
gRPC Java implementation.
The gRPC communication system.
Protocol Buffers library for .NET.
protoc plugin to generate JSON schema from protobuf definitions.
protoc plugin to generate Go code from Protocol Buffers.
protoc plugin to generate gRPC Go code from Protocol Buffers.
Docker image for Protocol Buffers compiler (protoc).
Generate documentation from Protocol Buffers definitions.
OpenTracing integration for gRPC.
Prometheus monitoring for gRPC.
gRPC to Thrift proxy generator.
gRPC over HTTP Web.
gRPC Go implementation.
a model of this plotter on GrabCAD