r/PlotterCode Feb 10 '26

👋Welcome to r/PlotterCode: The Workshop for Generative Hardware

6 Upvotes

Hello and welcome! If you’ve found your way here from r/PlotterArt, you’re in the right place.

Why does this subreddit exist?

As our community grows, the "how" behind the art has become just as fascinating as the physical results. However, deep technical debates about G-code optimization, Python libraries, or firmware configurations can sometimes overshadow the aesthetic appreciation of the finished pieces.

To keep r/PlotterArt focused on the physical results, we created r/PlotterCode as the dedicated home for the "engine room" of the plotter world.

🛠 What should I post here?

This is the place for technical deep-dives. If your post answers the question "How did you build that?" or "How does this work?", it belongs here.

* Code & Libraries: Share your Python scripts, Processing sketches, Rust crates, or custom P5.js implementations.

* Toolchains & Workflows: Discuss how you get from a digital idea to a physical pen—using tools like vsketch, vpype, Inkscape, or custom CLI tools.

* Math & Geometry: Deep dives into algorithms (Perlin noise, flow fields, TSP solvers, etc.).

* Hardware & Firmware: Troubleshooting GRBL, Marlin, servos, steppers, or custom-built plotting rigs.

* G-code & SVG Optimization: How to make your plotter faster, quieter, and more efficient.

🎨 The Gallery vs. The Workshop

We view these two subreddits as a duo:

* r/PlotterArt: The Gallery. Post photos of your finished physical plots, pen tests, and paper choices.

* r/PlotterCode: The Workshop. Post your source code, screen recordings of your algorithms, and technical questions.

Cross-posting is highly encouraged! If you have a beautiful plot, post the photo to r/PlotterArt, then share the logic/code here with a link back to the photo. This keeps the conversations focused and helpful.

🚀 Getting Started

* Introduce yourself: What hardware are you running? What’s your preferred language?

* Share a Snippet: Got a clever way to optimize a path? Post it!

* Ask a Question: Stuck on a coordinate conversion?

This community is here to help.

We aren't here to bury you in rules—we're here to build better tools for physical art. Let’s see those repositories!

— The r/PlotterCode Team


r/PlotterCode 18h ago

Procedural Powerlines

Thumbnail
reddit.com
4 Upvotes

I created a video breaking down how I created the procedural power pole generator for this project:

https://www.youtube.com/watch?v=CA7jGRh-py4


r/PlotterCode 6d ago

Frustrating experience with updated custom polargraph - what works in 2026?

6 Upvotes

I built a polargraph according from the very popular instructable https://www.instructables.com/Polargraph-Drawing-Machine/ about 10 yrs ago and it was amazing. It just worked with Arduino Uno, motor shield v1, and some adafruit nema 17 steppers and cheap servo, with very few software issues.

Jump forward to now and I resurrected some of the old parts and decided to put it back together, but despite upgrading several parts, it just won't work correctly. Here's what I've tried:

Original polargraph firmware https://github.com/euphy/polargraph_server_a1 with the somewhat janky and bare bones polargraph controller app - only runs on my Mac M1 through Processing, and is slow and no longer maintained - using Uno + motor shield

Makelangelo controller app, using new Arduino Mega 2560 + Ramps 1.4 board and A4988 drivers - the firmware https://github.com/MarginallyClever/Makelangelo-firmware despite following recommended config changes and/or dedicated https://github.com/MarginallyClever/Marlin code, the arduino connects with "OK" message but will not respond correctly to basic Gcode commands through the jog controller

GRBL firmware with Inkscape generated gcode sent through Universal GCode Sender controller, there's no response from the ? handshake messages send from USG no matter how many config changes I tried.

The only thing that's worked so far is to create a complete firmware including the draw instructions for the Mega/Ramps build from scratch (with AI help of course, this is beyond my coding skills) https://github.com/smatto/polargraph_custom using the included "drawing.h" as the source. This grew out of a small test script in Arduino IDE and I kept adding functions and features, so it works. But I can't make complex designs in this nor show my kid how to use it as there's no visualization or pause/etc. But this confirms that the motors and pen lift work properly, and I've got the machine dimensions worked out through trial and error enough to draw pretty straight lines in the right size. Applying these confirmed dimensions to the marlin/GRBL firmware config.h files doesn't seem to make a difference in response


r/PlotterCode 8d ago

Is this sub only for open source / free software ?

Post image
2 Upvotes

Just like the title says


r/PlotterCode 10d ago

Kurvengefahr - browser CAD/CAM for pen plotters

18 Upvotes

Hi, I wanted to share this app I've been working on for a while. It started out as a simple G-code generator around a handwriting model I was using with my Prusa MK4 pen attachment but thanks to Claude it quickly grew into something quite a bit more complete - it integrates vector design tools, some common generative art and hardware integration into a single app.

See it live here: https://kurvengefahr.org

Kurvengefahr

Some cool features it supports:

  • Graves RNN handwriting synthesis
  • Built in Logo interpreter for turtle art
  • 3D model wireframes (STL import)
  • Non-destructive filters/effects
  • Many of the basic vector tools and operations you'd expect (polylines, Beziers, boolean operations, clipping, align & distribute, ...)
  • Direct control of EBB and GRBL plotters via Web Serial
  • PrusaLink integration (through Bridge for PrusaLink extension)

It runs fully in the browser, with the geometry engine parts written in Rust and loaded in via WASM. The only server component is the share feature - but that one respects your privacy too (designs are encrypted client side and the server never sees them - key is appended to the share link on the client side).

It is also fully open source and GPL 2.0 licensed - the code is available on GitHub

Happy to answer any questions. I'd especially appreciate feedback if you have an AxiDraw or some GRBL plotter - I only have a Prusa so my testing for those was done with a hardware mock.


r/PlotterCode 11d ago

Code Share Uuna Tek 3.0 Alternative Software

4 Upvotes

Hey fellow Uuna Tek users. We all know how absolutely awful their software is. Out of frustration I made my own that is solid and simple. It's only for SVG files and USB connection but it just works. Would love feedback!

https://github.com/LordKromdar/uunatek_3_software


r/PlotterCode 15d ago

Xdraw/Inkscape questions - setting home location, plots coming out mirrored

3 Upvotes

I just got an Xdraw and have a few issues - anyone seen these before?

One is easy - anything I plot out comes out mirrored on the Y axis. The fix is simple - flip along the vertical axis in Inkscape - but it throws off my alignment since I can't quite tell where it hits against the margins.

The other is trickier. The Xdraw homes to the top-left corner, where the limit switches are, but it starts all its plots from the bottom-left. This is kinda confusing since the Xdraw board is aligned with its 0 point to the top-left.

Is there some way for me to get the Xdraw to start from the top-left? If I have it start plotting there it just crashes into the top. Likewise is there a way for me to fix the mirroring? Checking off the setup option to mirror does not change anything.


r/PlotterCode 19d ago

I'm teaching a free pen plotting webinar where I give away all my best techniques, August 29th !

Thumbnail
designmorphine.com
23 Upvotes

Plotter Paths V1.0 teaches a complete Grasshopper workflow for computational pen plotting, from generative geometry to physical output. Instead of focusing only on design algorithms, the session follows the full making pipeline: setting up a paper and machine workspace physically and digitally, creating a simple plotter art algorithm, cleaning and validating geometry, optimizing drawing order to reduce travel and cycle time, converting curves into plottable format, visualizing drawn and travel moves, and creating basic G-code. Participants will learn how to think about plotter drawing as machine-aware toolpaths rather than just an image or curves. The session covers practical production details such as margins and bounds checks, plottability warnings and errors, safe return moves, setup commands, paper alignment checks, and multi-layer registration techniques. By the end, participants will understand how to build a reusable Grasshopper pipeline for turning computational drawings into cleaner, faster, and more reliable pen plotter outputs.


r/PlotterCode 18d ago

Hardware/Firmware Xdraw keeps crashing into top using Inkscape extension

3 Upvotes

I just got an Xdraw, basically an Axidraw clone. As far as I can tell it's running on an EBB knockoff board.

I can get it to home, jog, and move with the Xdraw extension for Inkscape and its manual functions. Whenever I actually have it plot an SVG, it moves from 0 into the top of the plotter and crashes repeatedly until it gets to a point when it's far enough down into the test SVG to begin drawing. It's almost as if auto-homed 0 point isn't actually 0.

I can connect to it using Putty and move it using basic gcode commands. I tried Universal Gcode Sender but it seems to expect the home point to be the lower-left, and the Xdraw home point is the top-right. It homes to the top-left, then moves to the top-right.

Anyone know how I can resolve this?

Edit: found the issue. I was originally testing the Xdraw out via UGS and had to set $3=3 and $23=3 to move via regular Gcode commands. Xdraw and apparently Axidraw clones all operate on a $3=1 and $23=1 basis - thus it was reversing instructions sent by the Inkscape extension.

Setting $3 and $23 to 1 + ensuring "Rotate drawing automatically" in the Inkscape extension fixed the problem and I'm homing and plotting normally now.


r/PlotterCode 19d ago

I built a free, open-source Raspberry Pi plot server for AxiDraw-compatible plotters (Plotter Hub)

7 Upvotes

Plotter Hub

A few months ago I bought an AxiDraw compatible pen plotter but didn't want my Mac tethered to it for the whole plot. So I built Plotter Hub, a plot server that runs on a Raspberry Pi (a Zero 2 W or 3B+ is fine). Upload an SVG over WiFi, then start / pause / resume and monitor the plot from any device, with optional vpype optimization and physical pause-button support for pen changes between layers. Anyone with an AxiDraw-compatible plotter can use it — it's free and open source. Repo link and install instructions: https://www.synendo.com/plotterhub

Plotter Hub after receiving a 3 layer SVG file via GD Studio

Companion app: GD Studio

I also built a macOS app, GD Studio, for designing the artwork I plot — generative line-art patterns shaped with live sliders, plus layers for text and imported SVG. It exports plotter-ready SVG/PDF, but it can also send a plot directly to Plotter Hub over its API (with options for vpype optimization, plotter speeds, and pausing between layers). It's a paid app with a free trial.

One of the many patterns in GD Studio, combined with a text layer

r/PlotterCode 20d ago

i made a virtual pen plotter that works in your browser, just drop in a svg!

Enable HLS to view with audio, or disable this notification

38 Upvotes

i built a little axidraw style plotter simulator that runs in the browser. it's open source on github. just drop in a svg and it will plot it for you, no wasted ink or paper!

GitHub: https://github.com/KilledByAPixel/VirtualPlotter/tree/master

Demo: https://killedbyapixel.github.io/VirtualPlotter/

seriously though, would you ever use this for anything? what other features would you like to see added? i'm thinking about modeling real pens next including limited ink levels, failures, paper types, and other parameters that would be fun to mess with.


r/PlotterCode 25d ago

🖊️ The Plot (BETA) - A collaborative canvas drawn by a robot 🤖

Post image
1 Upvotes

r/PlotterCode 26d ago

Code Share Hatched Horned Owl

Post image
24 Upvotes

r/PlotterCode 26d ago

Community Update: Re-centering r/plotterart on Physical Output (Moving code discussions to r/plottercode)

Thumbnail
4 Upvotes

r/PlotterCode 28d ago

Workflow Watch it Plot

5 Upvotes

A really fun feature of Plotterfiles.com is downloading the plot animation as a GIF.

https://plotterfiles.com/artwork/gold-star-1-5kmu3


r/PlotterCode Jun 22 '26

ffm contour algo - online webbased version for play

Post image
7 Upvotes

r/PlotterCode Jun 10 '26

The Upgraded PlotterFiles

Thumbnail plotterfiles.com
6 Upvotes

Plotter artists of all stripes, as well as plotter art fans, should check out plotterfiles.com - under the curation of the team at Bantam Tools, it's really quite an upgrade.

Many thanks to Maks Surguy for starting this off.


r/PlotterCode Jun 02 '26

built a tool that turns any 3D model into clean pen-plotter line art

Thumbnail
4 Upvotes

r/PlotterCode May 30 '26

Plotting City Maps from OpenStreetMap

10 Upvotes

I built a little thing that pulls street/building/water data straight from OpenStreetMap and writes SVG paths directly. No raster step anywhere, so the lines are clean from source to pen.

Each feature type (streets, buildings, water, parks, rails) goes on its own SVG layer, so if you want to do a multi-pen run you can just pause, swap the pen, and keep going. Everything gets clipped to a circle or rectangle so there are no stray paths hanging off the edge to confuse your plotter.

There's a web version if you just want to mess around without installing anything: utrost.github.io/CityPlot — click a spot on the map or search an address, set a radius, pick a paper size, and it spits out the SVG in the browser. There's also a CLI if you'd rather script it.

A few presets so far: full color (separate layers per feature), minimal (just streets + water), buildings only, and mono for single-pen plotting.

Did a 1km circle of my hometown on A3 and it came out really nice. Curious what cities you all would run, and happy to take suggestions on styles to add.


r/PlotterCode May 29 '26

Math/Algorithms Adding data to create continuity

3 Upvotes

I'm thinking of this as the algorithmic reverse of JPEG style lossy compression - the idea there is to find the optimal balance in deleting data, increasing compression, while retaining image quality.

In vector space, particularly for plotters, optimization is about increased continuity in the plotting process itself. As I see it, decreasing the number of times a pen-up event happens. In this case, we are adding data *into* the file to decrease the number of pen-up events, but also at the balance of not disturbing the primary geometry of the SVG. Fortunately, vector files are relatively small, and adding the data is an acceptable tradeoff. In my art, I resort to a lot of manual editing - adding an extra path to bridge nodes at strategic locations can result in a dramatic decrease in pen-up events. But too many alters the overall look of the SVG.

I don't have an automated way to do it, and am considering training an LLM to build a model for the various possible solutions to this. It isn't exactly a TSP as it connects paths rather than just nodes, but it is related.


r/PlotterCode May 14 '26

rust based solution to create and plot plots

8 Upvotes

Hi,

I open sourced https://github.com/stmh/plotta-studio which is a rust solution for generating plots and plotting them directly to an attached axidraw. It's far from finished, but hopefully still interesting for some of you. It is loosely architected around the concept of creating sketches similar to processing/ or other generative software.

Some highlights:
- simple scenegraph with primitives to create drawings
- Support for clippings and hatchings
- support for single-line-fonts (Hershey, some ported from p5js, and more)
- a viewer for previewing drawings on the screen
- import (a subset of SVG) and export to SVG
- plotting directly from the viewer, or via dedicated cli
- has some optimizations to optimize plotting time

Disclaimer: It's still far from perfect -- no support for layered, multicolored drawings, some rough edges here and there and missing features, only tested on Mac OS, but theoretically the source is cross platform.

I used AI to help me write the software, but I took a lot of time to review and polish the results and make it work.

For some background information you can read about the progress at my blog at https://stephanmaximilianhuber.com/posts/building-plotta-studio-with-claude

Hope you find it interesting!


r/PlotterCode May 13 '26

How to improve precision on a low cost plotter

3 Upvotes

Hi,
I'm a begginer on plotting and I'm not sure my question belongs her as it's more hardware related than "code".

I bought a cheap XY plotter like this one : https://static.wixstatic.com/media/04340a_06f6c6380dbe41fd907c74f4a2c81422~mv2.jpg

I'm realy enjoying coding and plotting things and, since I'm just a hobbyist, I'm quite pleased with the results.

Deformed circles close to y max
Good shapes close to y=0

But I notice a little issue : when I'm at the maximum Y-axis extension, I have a lot of overhang, and the precision isn't as good. This is especially noticeable when I try to make concentric circles :

Does anyone have any ideas on how to fix this?


r/PlotterCode Apr 13 '26

The beauty of explosions

Thumbnail gallery
10 Upvotes

r/PlotterCode Feb 21 '26

Code Share Simple SVG to Gcode converter

14 Upvotes

Hi!
I have recently started drawing stuff with my custom-made pen plotter and was really confused by the lack of free and easy to use tools to convert svg images into usable gcode.
That's why I made a little tool that parses svg, extracts lines and then optimizes toolpath onto oblivion to minimize extra travel and prevent it from drawing on the same spot multiple times.
Feel free to try it out, just please don't crash my server 😅

Project's GitHub - https://github.com/MrFrederic/plotter-gcode-optimizer

PS: Yes, I'm aware about https://sameer.github.io/svg2gcode and https://xyzbots.com/gcode-optimizer, but there was no single tool to do everything that I needed for my use-case


r/PlotterCode Feb 07 '26

Roland DXY-1200 Control App

7 Upvotes

Recently acquired a Roland DXY-1200 brand new in the box at an estate sale. Tried Inkscape for roughly 5 minutes before I had enough of that, so I made my own app. So far it's working really well. I'm fighting to get consistent results with anything over 2400 baud, 1200 is rock solid so far, 9600 just spits out gibberish, but I'm sure I'll solve that eventually.

  1. Drag and drop an SVG
  2. App scales the whole thing to fill the selected paper size, A3 or A4 - but you can manually pinch and zoom and then drag to scale it yourself and position it how you want
  3. App transforms paths into HPGL code
  4. Shows groups (as defined in illustrator, or wherever the SVG was created)
  5. Groups of paths can be assigned to pens (the DXY-1200 holds 8), or you can expand the groups and assign pens on a per-path basis
  6. Pen library is editable to preview line thickness and color
  7. You can manually load/unload pens, and control up + down
  8. There is an x,y origin offset that allows dialing in where your relative zero is at

Pretty stoked to start using this more. Next I plan to machine custom aluminum pen holders for it.
Anyway, fun couple day project that means I never have to open Inkscape again.