Antoine Beyeler vpype (Free)
The command-line Swiss-army knife for pen plotter SVGs — optimizes, reorders, merges, crops and prepares vector files for cleaner, faster plots.
Our verdict
The most important free tool in the plotter workflow. If you're sending raw SVGs to your plotter without running them through vpype first, you're leaving quality on the table.
Best for: Everyone — mandatory step between generative art and plotting
We earn a commission on qualifying purchases made through links on this page, at no extra cost to you. Learn more.
What we like
- Reorders strokes to minimize pen travel, cutting plot time dramatically
- Merges connected paths to eliminate unnecessary pen lifts
- Crops to exact paper size, removes stray out-of-bounds elements
- Plugins add noise, hatching, stippling, text rendering and more
- Fully scriptable — chain commands in a single pipeline
What to watch
- Command-line only — no GUI (though vpype-viewer provides a preview window)
- Python installation required
- Steep-ish learning curve if you've never used a terminal
Every generative art tool — p5.js, Processing, Inkscape, any of them — produces SVGs that are efficient for the screen but wasteful for a plotter. Paths are ordered by when they were drawn, not by where they are on the page. A plotter following that order lifts the pen hundreds of times to cross the bed for a nearby stroke. vpype fixes that.
What it actually does
At its core, vpype does two things: line merging (connects paths that share an endpoint into one continuous stroke, eliminating pen lifts) and stroke reordering (sorts the remaining strokes using a nearest-neighbor algorithm so the pen travels the shortest possible path between them).
On a complex generative plot, these two steps alone can cut plot time in half and reduce pen wear substantially.
The pipeline model
vpype works as a command pipeline. Each command reads the current state, transforms it, and passes it on:
vpype read art.svg \
linemerge --tolerance 0.5mm \
reorder \
crop 0 0 297mm 420mm \
write optimized.svg
You build up complex processing steps from simple, composable commands. The community has published plugins for everything from Gaussian noise to hatching fills to text rendering using Hershey fonts — all chainable in the same pipeline.
Why it’s the missing step
Most plotter tutorials cover generative art tools and plotter software but skip the middle. vpype is that middle: the translation layer between “SVG that looks right on screen” and “SVG that plots efficiently and cleanly.” Once you run a complex plot before and after vpype optimization, you won’t skip it again.
Install with pip install vpype[all] and start with vpype --help. The official documentation is thorough.
Specifications
| Platform | macOS, Windows, Linux (Python) |
|---|---|
| License | MIT (free, open source) |
| Input | SVG |
| Output | SVG, HPGL, G-code, preview |
| Plugin ecosystem | Active — 30+ community plugins |
Ready to plot?
Prices and availability change often — check the latest on Amazon.
More software we've reviewed
DrawingBotV3 DrawingBotV3 (Free)
4.6 (320)Free, open-source software that turns photos into plottable line art — sketch, stipple and hatch styles that export clean SVGs for your plotter.
Best for: Converting photos into plottable sketches and stipple art
Inkscape Project Inkscape (Free)
4.7 (2,100)The free, open-source vector editor that doubles as the native design and machine-control interface for AxiDraw and NextDraw plotters.
Best for: Design and machine control in one free application
Casey Reas & Ben Fry Processing: A Programming Handbook
4.6 (360)The foundational Processing reference from the language's own creators — the bedrock under a huge amount of plotter art, and the book you keep open while you code.
Best for: Properly learning the language behind plotter art