An open API service indexing awesome lists of open source software.

https://github.com/killedbyapixel/virtualplotter

A 3D pen plotter simulator in the browser.
https://github.com/killedbyapixel/virtualplotter

3d generative-art pen-plotter plotter plotter-art svg threejs

Last synced: 7 days ago
JSON representation

A 3D pen plotter simulator in the browser.

Awesome Lists containing this project

README

          

# Virtual Plotter

A 3D pen-plotter simulator in the browser. Drop in an SVG and watch a little
AxiDraw-style machine draw it on virtual paper — arm sliding, pen lifting,
stepper motors whirring. It doesn't make anything real but it's nice to watch.

# [LIVE DEMO](https://killedbyapixel.github.io/VirtualPlotter/)

![Virtual Plotter](screenshot.png)

## How To Use

Drag any SVG file onto the page and it loads onto the plotter. Then:

- **▶ Plot / ❚❚ Pause** — run or pause the drawing
- **Reset** — rewind the plot and send the pen home. The ink stays on the
sheet — plot over it as many times as you like, and loading another SVG
keeps the sheet too, so you can layer different drawings. The paper's
**Fresh** button (or picking a new sheet/type/size) is what clears it
- **Speed** — 1× (real time) up to 1000× for the impatient
- **Plot** — draw all layers, or just one
- **Pens** — every layer starts with its own fresh 0.5 fineliner in the SVG's
color; each row edits its pen directly (color, pen type, tip size). Click a
pen in the caddy to load that actual pen instead — color, tip, and ink
level come with it, and layers sharing a caddy pen share its ink. Customize
a borrowed caddy pen and the layer quietly gets its own copy (the caddy pen
is untouched). Each pen type has its own line character
(the marker blobs, the ballpoint dry-starts, the brush swells) and its ink
runs down as you plot — levels persist between visits. **Fresh** replaces a
dead pen, or untick **Ink simulation** for perfect ink with none of that.
Pausing a plot unlocks the pens, so you can swap or recolor mid-drawing —
the machine picks up the change when you resume. (The paper stays locked
until the plot is done: no sliding a new sheet under half a drawing.)
- **Paper** — choose a paper type in the panel or click the stack beside the
machine: bristol, watercolor (toothy), cheap copy (bleeds a little), or
black card (that's what the gel and metallic pens are for). The color
picker overrides the sheet color, and the size dropdown swaps in a
different standard sheet (A5 up to Tabloid) — the machine resizes to fit.
- **Clock** — estimated plot time ticks next to the mute button: it runs at
the simulation speed, so whatever the Speed setting, it approximates how
long the plot would take on a real machine (pausing freezes it; finishing
leaves the total showing).
- **Layer colors** — pick a pen color per layer before you start (Inkscape layers
are detected automatically)
- **🔊** — mute the motor and servo sounds (they only play at 1× speed anyway)
- **F** — toggle a free-fly camera: the mouse locks for looking around and
WASD + E/Q fly you through the scene; press F (or Esc) to return to orbit
- **H** — hide/show the whole interface (handy for a clean screenshot)

Recently plotted files are remembered so you can replay them. On a first
visit the Recent list starts with a built-in sample, so there's something to
plot before you have an SVG of your own.

## License

Copyright (C) 2026 Frank Force.

Released under the **GNU General Public License v3.0** — see [LICENSE](LICENSE).
You're free to use, study, share, and modify it, but any version you distribute
has to stay open source under the same license.