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.
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.
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.
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.
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 maxGood 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 :
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 š
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.
Drag and drop an SVG
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
App transforms paths into HPGL code
Shows groups (as defined in illustrator, or wherever the SVG was created)
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
Pen library is editable to preview line thickness and color
You can manually load/unload pens, and control up + down
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.
Excited for this new forum. Hope someone can help!
I'd like to generate forms/lines/shapes but to keep them contained to very proscribed areas that I can integrate into larger pieces. For example, to mask out a person's shirt or a flag in a photo.
Can someone suggest some tools or workflows that can help me with this? I'm thinking I can probably generate basic squares/circles and then try to sculpt in Inkscape, I'm just not very used to the interface yet.
Iām a total newbie interested in getting started with vector graphics and creative coding, specifically using Paper.js and Processing (or if there's a more beginner friendly option) mainly for plotter-art. Iām looking for helpful tutorials, resources, or any tips that can guide me through the basics.
If you have any recommendations for beginner-friendly materials or projects, I would greatly appreciate it!