📙 #048 - Truncated Optimisation
Learning to let go of control and embrace randomness in pen plotting, then immediately regaining control, because that's how we roll; uptightly.
I’m in London today, well, not really as I’m writing this last week, but when this goes out I’ll have been here the past couple of days. I’m attending a workshop about preservation, more specifically cultural preservation. Even more specifically preservation of photos uploaded to Flickr.
Cultural institutions, museums, (and of course people) have entrusted Flickr with large collections of photos. So what options are there for permanence and provenance of these collections if and when Flickr and/or the institution shut down.
How, why, and should they even be preserved?
Important stuff, and no time for writing newsletters and so the scheduled option is my friend.
# Pen Plotting Optimisation
More of the Truchet tiling this week, and this is all about escaping rigidity and then enforcing control. Let’s grab a design in a continuation from last week…
This is where we have to recognise our roll as an engineer vs artist. For some people those are the same thing, I wish I was one of those people. For me it’s more of a general overlap.
I’ll start as an artist with an idea, and then promptly switch into engineer mode trying to “solve the problem”. In this case it’s “how do I fill the page with tiles?”, and having filled the page the problem is solved! Only, now there’s two new problems.
The first; is that now we have tiles that look like they join together, but don’t actually, and those tiles get draw in the order the were created in. In this case, large ones first, starting from the top down, then medium, then small and finally all the stuff around the border.
This causes trouble when we plot, as there’s often a small pause when the pen starts or finished a line, which means you get obvious “seams” where one line ends and the next starts. Particularly obvious when doing concentric circles. We want our design to be seamless!
Most sensible people would use this bit of vpype: https://github.com/abey79/vpype?tab=readme-ov-file#plotting-optimization the Line merging (“with optional path reversal and configurable merging threshold”) linemerge
command. Which will join the end of one line to the start/end of another line if they’re close enough (threshold), looping over the whole lot until there’s no more lines to join.
Often done along with optimising using Line sorting (“with optional path reversal”) linesort
. Which means the plotter will draw all the lines in a way the reduces pen-up travel distance; if you’re drawing lots of parallel horizontal lines, there’s no point drawing them all left-to-right, as the machine will spend half the time moving the pen to the start of each new line, much better to draw them going back and forth.
Because I’m the worst at prioritising what I should focus my efforts on, I created my own joiner & optimiser. Below on the left is the original (which I promise you is) made up of separate tiles. On the right we can see (by giving them “false colour”) which lines have been joined up.
The second problem (as I see it anyway), is that while it’s very satisfying to lay down the code needed to fill the page with a design, and for that code to actually work, the satisfaction of seeing the screen filled up with lines doesn’t always translate to the page.
I’d often find myself sometimes disappointed once the plotter had finished and the page filled, it was too regimented, too engineery.
The curious thing was that the process of taking the original design, where the lines were draw in code order, and running it through an optimiser and creating a new computer-logical order for drawing, would create plot designs that I hadn’t planned myself, and looked super satisfying to my artistic side when they were half plotted.
I often found myself stopping a plot before it’d finished, so it looked something like this.
By surrendering to the optimising code, who’s logic I understood but could in no way predict, I’d end up with designs that were a proper combination of my original intent, the mysteries of the optimiser and the drawing of the machine.
Beautiful!
But also, we can’t have that now can we!
What if we could preview what it’d look like if we stopped the plot halfway through?
What if we could throw away the last 20%, 40%, 60% of the lines? What if we could throw away the first 20%, 40%, 60%, whatever % of lines??
What if we could throw away the first and last 40% of lines, keeping just the middle 20%, and then invert that, throwing away the middle 20% and keeping the rest?
Well then we can start to do fun things like this…
Although, I’m once again falling into the engineer trap of letting it fill the whole page, when really I should be experimenting with overlapping different truncated designs, rotating the page 180 between plot, using different types and thicknesses of pens and so on.
I guess if I started doing that, then I’d also eventually write the tools that’d allow me to preview those outputs.
All of which is to say, I think this reinforces the feeling we often get; that we, as artists & engineers, are working in collaboration with the code, the tools, the machines and the materials.
It’s the back and forth between what I was expecting, what I saw and then what I rolled back into code that gives me joy in exploring the endless paths we can take with our pen plotters.
I’ll be publishing the tools used above to create the ‘70s Pop’ design, and the optimiser/truncator after the next newsletter, ‘cause I have “One more thing” to write about. Although it should be noted that the optimiser/truncator was written to specifically work with the SVG created from my own generator. It’s not a universal tool.
For that you need vpype, which I’m pretty sure can do everything shown above (and more, faster), I’m just kinda a control freak who likes to build, understand and (yuck) maintain his own tools.
# THE END
That’ll do it for this time. By the time the next newsletter comes out (28th November btw) I should have my studio floor all painted and everything back where it’s supposed to be, which will be a huge relief. I’m looking forwards to having a few clear weeks before the end of the year where I can just do studio-artist things rather than panic/floor-painting/admin things!
I’ve still got a bunch of stuff to throw out (boxes of cables I haven’t used in years, various bits and bobs that I thought would be useful at the time and have never used, and so on), and some plan chests to keep paper, plots & prints flat and safe, and an Epson SureColor SC-P900 (the reliable choice for generative artists it seems) to order.
Then I’ll all be set up to get back into print & plotting fresh in the new year 🤞 it’s likely I’ll need the distraction.
I’m also, finally writing the script for the “My Generative Handwriting” video, with a eye to getting it out early next month. Mainly so I can point people at it when I get asked “How do you do handwriting on a drawing machine”.
Love you all
Dan
❤️