What is vpype?
In a nutshell, vpype is an extensible CLI pipeline utility which aims to be the Swiss Army knife for creating, modifying and/or optimizing plotter-ready vector graphics. Let’s break this down:
CLI: vpype is a command-line utility, so it is operated from a terminal
Pipeline: vpype operates by assembling ‘commands’ in sequences in which each command generates or process geometries before passing them on to the next command. Here is an example:
vpype read input.svg scale 2 2 linesort write output.svg
Here the geometries are loaded from a file (
read input.svg), their size is doubled in both directions (
scale 2 2), paths are reordered to minimize plotting time (
linesort), and an SVG file is created with the result (
Extensible: new commands can easily be added to vpype with plug-ins. This allows anyone to extend vpype with new commands or to write their own generative algorithm.
Plotter vector graphics: vpype focuses on the niche of vector graphics for plotters (such as the Axidraw) rather than being a general purpose vector processing utility.
Swiss Army knife: vpype is flexible, contains many tools and its author is Swiss.
Download and install
For Windows, an installer is available here (note: plug-ins cannot be installed when using this installation method).
For other platforms, and when plug-ins are required, vpype can be installed from the Python Package Index using the following command (Python 3.8 recommended):
pip install vpype
Check the installation instructions for more details, in particular on how to use a virtual environment (recommended).
Using this documentation
For a deep understanding of vpype, take a dive in the section on fundamentals.
- Laying out a SVG for plotting
- Make a previsualisation SVG
- Optimizing a SVG for plotting
- Merging multiple designs into a multi-layer SVG
- Filtering out small lines
- Converting a SVG to HPGL
- Defining a default HPGL plotter device
- Creating a custom configuration file for a HPGL plotter
- Using arbitrary paper size with HPGL output
- Batch processing many SVG with bash scripts and
- Repeating a design on a grid
- External scripts
- CLI reference
- API reference