generative art

Getting Started with Generative Art for Pen Plotting

How to make generative art for your pen plotter: the best tools to start, core concepts like noise and flow fields, the screen-to-SVG-to-pen pipeline, and a first project.

By Pen Plotter Kit Team · Updated

Generative art is where pen plotting goes from “neat printer” to genuinely addictive. Instead of drawing something by hand or downloading an SVG, you write a little code that generates the artwork — and because the rules involve randomness, every run can produce a new variation. Then a real pen draws it in ink. The pairing is so natural that the modern plotter revival is basically a generative-art revival with a machine attached.

If you’ve never written a line of code, don’t bail yet. The tools below were built for artists, and you can make something worth plotting on your first afternoon.

What generative art is, and why it suits plotting

Generative (or algorithmic) art means defining a process rather than drawing a fixed image. You set up rules — “draw a thousand lines, each nudged a little by an invisible field” — and let the program execute them. Tweak a parameter and the whole piece transforms.

This suits plotting perfectly for one reason: code naturally produces vector paths, and vector paths are exactly what a plotter draws. There’s no awkward conversion from pixels to strokes — your lines are the drawing. And because you can re-run a design with a fixed seed, you get the plotter’s signature trait, repeatability, baked in from the start.

Tools to start with

All of these are free.

  • p5.js — the easiest on-ramp. It’s JavaScript that runs in your browser, with a friendly online editor, superb docs, and the largest tutorial ecosystem anywhere. Start here.
  • Processing — the desktop ancestor of p5.js, using Java. Same ideas, standalone app, rock solid for larger sketches. Great if you’d rather not work in a browser.
  • Drawingbot / Inkscape extensions — if you want generative-looking results with little or no code, these convert images into plottable line art. A fine gateway while you learn the real tools.

You don’t need all three. Pick p5.js or Processing and go deep.

Core concepts worth learning

You can build a surprising amount from just five ideas:

Randomness and seeds

random() scatters things unpredictably. The trick is the seed: set randomSeed(42) and your “random” output becomes identical every time. Find an output you love, note the seed, and you can reproduce or rescale it forever.

Noise (Perlin / simplex)

Plain randomness looks like static. Noise produces smooth, organic variation — gentle wandering instead of jitter. It’s the secret behind most flowing, natural-looking generative work.

Flow fields

Imagine an invisible grid where every cell points a direction. Release particles into it and trace their paths, and you get those gorgeous, hair-like streaming compositions. Flow fields are the single most popular plotter technique for a reason — they look incredible in ink.

Grids

Divide the canvas into cells and draw a variation in each. Grids are the backbone of countless designs and the friendliest structure for a beginner — easy to reason about, endlessly variable.

Agents

Tiny autonomous “walkers” that move and leave trails behind them. Set a few simple rules for how they wander and they’ll draw complex, emergent forms you never explicitly designed.

The screen-to-SVG-to-pen pipeline

This is the part beginners stumble on, so here’s the whole path:

  1. Make your sketch in p5.js or Processing, building it from lines and shapes (not filled pixels).
  2. Export an SVG. In p5.js use the SVG renderer or a save-SVG library; Processing has a built-in SVG export mode. The goal is a true vector file.
  3. Clean it in vpype. vpype is a command-line tool that optimizes plots — it merges duplicate lines, reorders paths so the pen travels less, scales to your paper, and crops to margins. A messy SVG can take twice as long to plot; vpype fixes that in one command.
  4. Send it to your plotter software (the AxiDraw tools, or your machine’s app) and plot.

One concept to internalize: single-line vs fill. Plotters draw outlines, not solid areas. A “filled” shape in your sketch won’t come out solid — the pen just traces its border. To get the look of fill you generate hatching: many closely spaced lines. Build your art around strokes from the beginning and the pipeline stays painless.

Learning resources

These three books are the canon, and they’ll take you from zero to fluent:

  • The Nature of Code — the definitive guide to simulating natural systems (noise, flow fields, agents) in code. If you buy one book, buy this.
  • Generative Design — a gorgeous, project-driven tour of generative techniques with full Processing code.
  • Processing: A Programming Handbook — the thorough reference for learning Processing properly from the ground up.

Pair them with the free tutorials at the p5.js and Processing sites and you have a complete curriculum.

A simple first project

Don’t start with flow fields. Start with this, tonight:

  1. Make a grid of, say, 20 by 20 cells.
  2. In each cell, draw one diagonal line — but randomly choose which diagonal, \ or /.
  3. Add randomSeed() at the top so you can reproduce results.

That’s the classic “10 PRINT” maze pattern, and it’s genuinely beautiful plotted in ink. From there, swap the random choice for a noise-driven one, vary line length by position, or rotate each cell’s mark. You’ll feel the whole medium open up.

Once you’ve got an SVG you love, make sure it lands well on the page — see how to choose paper and our best pens guide — then grab the gear below and start plotting.

Frequently asked questions

Do I need to know how to code to make generative art?

A little, but less than you'd think. p5.js and Processing are designed for artists, not engineers, and you can make compelling plots with loops, randomness, and a handful of drawing commands. You'll learn the rest as you go — copying and tweaking other people's sketches is a legitimate way to start.

What's the best tool for a complete beginner?

p5.js. It runs in any web browser with nothing to install, the documentation is excellent, and there's a huge body of free tutorials. Processing is its desktop sibling and works just as well if you prefer a standalone app. Both are free and open source.

How do I get my generative art from screen to plotter?

Export your sketch as an SVG (vector) file, clean and optimize it in vpype, then send it to your plotter's software. The key is making sure your artwork is built from lines and paths, not filled pixels — plotters draw strokes, not fills.

What is a seed and why does it matter?

A seed is the starting number for a random generator. Set the same seed and you get the exact same 'random' result every time. That lets you reproduce a design you liked, share it, and re-plot it at a different size — essential once you find an output worth keeping.