The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Subpixel Zoo: Capturing the Specimens

A Hacker News discussion led to the Subpixel Zoo, which led to thinking the patterns might make interesting layered “art”. After fetching the *.webp images and figuring out how to persuade Thunar to display them, the next step was converting them into paths suitable for laser cutting.

Although the images are algorithmically generated in a common layout, figuring out how to get the outlines as paths seemed to require a journey into the depths of the Pygame library and that would turn into a major digression.

Instead, start with one of the webp images:

sq_RGBY
sq_RGBY

The deliberate blurring apparently simulates what you see in real life.

Import the image into LightBurn, which converts it to grayscale under the plausible assumption you’re going to engrave the image on something. Then:

  • Create a rounded rectangle overlaying the lower-left-most subpixel to good eyeballometric accuracy
  • Turn it into a four-element rectangular array, twiddling the center-to-center spacing to match the subpixel layout
  • Duplicate those four upward in another array to create a subpixel block, as marked in the upper-left corner of the original image
  • Slam another array across the bottom row and upward, twiddling the spacing to match the subpixel block spacing along both axes

Which eventually looks like this:

SubPixels - LightBurn vector overlay
SubPixels – LightBurn vector overlay

I made the final array absurdly large, cropped it with a square to match the template I used for the layered paper patterns, resized the result to be 170 mm on a side, then dropped the square into the middle of the template:

Subpixel Zoo - Quattron RGBY - LightBurn black mask layer
Subpixel Zoo – Quattron RGBY – LightBurn black mask layer

One gotcha: crop the subpixels on a Fill layer so LightBurn will close the truncated edges, then put them on a Line layer for cutting. The doc explains why, although it’s not obvious at first, as is the fact that you must delete the group of shapes outside the square before it looks like anything happened during the cut operation.

The resulting layout contains all the subpixel rectangles, so it’s what you want for the top black mask layer. Duplicate the pattern and delete the subpixels corresponding to each color, until you have one template for each of the Red / Green / Blue layers:

Subpixel Zoo - Quattron RGBY - LightBurn layers
Subpixel Zoo – Quattron RGBY – LightBurn layers

The blank over on the right is the Yellow layer, which does get a quartet of layer ID holes cut in the lower right corner.

Then it’s just a matter of cutting the blanks, locating the fixture on the platform, dropping the appropriate color sheet in place, cutting it, then assembling the stack in the gluing fixture:

Subpixel Zoo - Quattron RGBY
Subpixel Zoo – Quattron RGBY

It’s kinda cute, in a techie way.

I did a bunch of layouts, just to see what they looked like:

Subpixel Zoo - 8x8 layouts
Subpixel Zoo – 8×8 layouts

In person, the RGBY patterns look bright and the RGB patterns seem dull by comparison. I’m using cardstock paper, rather than fancy art paper, which surely makes all the difference.

Comments

4 responses to “Subpixel Zoo: Capturing the Specimens”

  1. dithermaster Avatar
    dithermaster

    Dithermaster approves!

    1. Ed Avatar

      A much-appreciated stamp of approval! :grin:

  2. Subpixel Zoo: Wall Hanging – The Smell of Molten Projects in the Morning Avatar

    […] The layers for the 8×8 versions have 170 mm blocks with all the colors properly separated: […]