Drawing With Machines: Colors

2025

Tools: Python, P5.js, vpype, AxiDraw

Overview

A drawing system designed to translate images into layered, hatched SVGs for pen plotting with colored markers. The project combines color segmentation with physical ink layering to produce plotted paintings that negotiate between mechanical precision and painterly abstraction.

Creative coding, Generative Art, Pen Plotting

Pen plotters are designed for precision. This project explores how to make them behave otherwise. I wanted to explore working with less controlled materials that bleed, layer, and has more texture. Over the course of this project I experimented with watercolor, acrylic, and alcohol markers on yupo, printmaking, watercolor, and Xuan paper. These led to the development of a custom pipeline that converts photographs into multi-color hatched drawings that read more like paintings than prints.


Key challenge - Colors!


A photograph contains way more values than a set of markers. The algorithm identifies a small palette of foundation colors that span the perceptual range of the original input. It then assigns regions of the image to those inks and generates hatching at different angles for each layer, so overlapping strokes optically mix the way inks do on paper.

The layering logic is similar to painting, light colors first as a base layer, and darker tones build on top. Colors in the same hue family share territory and contrasting colors stay strictly separate.


Paper absorbency, marker pressure, and ink bleed introduce variation that the artist nor the algorithm can fully control.

How it works

input photo → SLIC superpixels → hue clustering → SDF inflation → hatching → SVG → vpype → Axidraw

Process

Iteration 1