close-up shot of a rotring .35mm pen on a plotted hatch fill test chart

Generating beautiful Python API documentation with Sphinx AutoAPI

Following a recent discussion on Twitter, I decided to take yet another deep dive in my Python projects' documentation and fix once and for all the issues I had with it. I first focused on the automatically-generated API reference section and this article details the results of my finding. Specifically, I’m using vsketch’s API reference, which I recently updated, as an example (documentation source. This article addresses the following objectives:...

May 10, 2022 · Last updated on May 11, 2022
close-up shot of a rotring .35mm pen on a plotted hatch fill test chart

Sketch: fill test pattern generator

Hatch fills or pixel art plotting requires a rather precise estimate of your particular pen/paper combo’s stroke width. For example, this test pixel art plot would benefit from a slightly thinner pitch to avoid the visible overlap between neighbouring lines: There is no way around experience to find the optimal pitch. I’ve created the fill_test sketch to create custom charts with test patterns precisely tuned to the pen of interest. There is indeed no point to testing a rotring isograph ....

April 28, 2022

How to scale a grid on a page for uniform margins?

The problem Several generative art algorithms, such as Truchet tiles, use a regular grid of square cells. For example, check this interactive demo from the Generative Design book or these few pieces of mine. Now, let’s say you want to generate an iteration of your algorithm for printing or plotting such that all margins around the grid are the same for the given paper size. You can of course adjust the number of cell rows and columns, but how should you size the cell such as to achieve uniform margins?...

April 13, 2022
vpype 1.10 screen shot

Annotated Release Notes: vpype 1.10

I originally intended vpype 1.10 to be a ‘quick-and-dirty’, bug-fix-only release but it ended up being quite substantial, so let’s dive in. New features and improvements Improved support for layer pen width and opacity in the viewer (#448) The “Pen Width” and “Pen Opacity” menus are now named “Default Pen Width” and “Default Pen Opacity”. The layer opacity is now used for display by default. It can be overridden by the default pen opacity by checking the “Override” item from the “Default Pen Opacity” menu....

April 7, 2022

TIL: aligning horizontal or vertical lines to the pixel grid with OpenGL

When I started using my new M1 Max MacBook Pro in December, a bunch of vpype’s tests started to fail. The failing tests were all image-based: an image is rendered and then compared to a previously-generated, reference image. This process is made easy thanks to this Pytest fixture. In this case, the reference images were generated long ago on my previous, Intel/AMD-based MacBook Pro. This GIF highlights the discrepancy I’d get with images generated on my new computer (notice how the ruler’s thickness varies):...

April 5, 2022
vpype 1.9 word cloud

Annotated Release Notes: vpype 1.9

vpype \ text -l1 -p 0 3.5cm "Custom layer name/color/pen width" \ text -l2 -p 5cm 4.5cm -s 24 "Properties" \ text -l2 -p 2cm 5.5cm -s 20 "Expressions" \ text -l1 -p 6cm 6.5cm -s 24 "Better/new block processors" \ text -l2 -p 3cm 8cm "...and much more!" \ layout -m 0.3cm -l 10x3.5cm \ penwidth -l2 0.5mm \ color -l2 "%Color(226,200,0)%" \ color -l1 "%Color(3,118,207)%" \ color -l1 blue \ show -- vpype 1....

March 3, 2022 · Last updated on March 4, 2022

First post

Hello again, world. ...

February 20, 2022