Jacob BrookDeveloper
← Return to Developer Showcase
Architecture Case Study

Image Quantization & Multi-Block Linocut Tooling Engine

Interactive React & TypeScript web studio alongside a custom Python GIMP 3.0 plugin for translating continuous tone artwork into physical reduction linocut ink passes, mother-color palettes, and carving guides.

TypeScriptReactHTML5 CanvasPython (GIMP 3.0 Plugin)

System Overview

A computational printmaking suite featuring an interactive browser studio built in TypeScript and React, alongside a custom Python GIMP 3.0 plugin for studio pre-press preparation. Translates continuous-tone imagery into discrete K-Means ink swatches, applies edge-preserving box blurs for carving gougeability, blends mother-color undertones for ink harmony, and generates automated reduction carving instructions.

๐Ÿ”ฎ Serendipitous Printmaking Discovery: False CIELAB

The Happy Accident Behind "View From A Distance"

Sometimes in computational printmaking, a software bug yields an unexpected masterpiece. While developing the GIMP 3.0 Python plugin (prep_transfer_cumulative.py), a byte-mapping bug falsely interpreted raw sRGB pixel arrays directly as CIELAB [L*, a*, b*] coordinates before running K-Means clustering and converting back to RGB space. Rather than corrupting the image, this happy accident generated the surreal, hyper-vibrant ink palette used in the physical reduction edition View From A Distance.

๐Ÿ‘‰ Select ๐Ÿ”ฎ Serendipitous False CIELAB ("View From A Distance") in the studio toolbar below to experiment with this exact color palette transformation live!

Interactive Browser Quantization Studio

Upload custom image artwork or test sample presets to experiment with palette reduction, directional carving blurs, mother-color undertones, step-by-step reduction layer accumulation, and automated carving guidesโ€”running live directly in the browser.

Interactive Reduction Linocut Studio

Quantization & Cumulative Transfer Engine

Inks
Up to 30 reduction layers
0px
Simulates gouge stroke smoothing
10%
#80828C
Pass 6 of 6
Drag to step through reduction cuts
#3b82f6
No locked colors. Click Eyedropper or + Custom Color to lock specific inks.
Continuous Tone InputOriginal Input
Reduction Layer Output (Pass 1โ€“6)
โณRendering preview...

๐Ÿ’ก Long-press on mobile or right-click on desktop to save/copy image, or click Save Image.

Studio Applications

Physical Prints Preprocessed with Image Quantization

Explore physical reduction linocut editions pressed in the studio using palette layers and carving scripts calculated by this computational engine.

Onto to the Next

Reduction Linocutยท8"x8"ยท4"x4"

"I've had the idea of a disembodied head leaning against an arm, as a print, for quite a while. This is just another interpretation of that using the same Blender model as Righty, another skeletal print of mine, but with the skull included."

Bottles

Bottles2026

ed. 12

Reduction Linocut

"A companion piece to "Bottle Caps", these are the bottles that I had in my recycling when I thought of doing this print. Think of it as a snapshot of what I was drinking around the time of this print."

Bottle Caps

Bottle Caps2026

ed. 6

Reduction Linocut

"A collection of bottlecaps that I had inadvertently kept around on my desk. I accidentally started to carve away a section that was supposed to remain for the final layer, and had to quickly adapt the print to remaining piece of that section. Small lesson in paying closer attention, dealing with what has happened, and adapting the best I can to the circumstances."

View From A Distance

Reduction Linocut

"This print came together as an accident. In the course of quantizing the image for better understanding of how it would look as a simplified relief cut, I accidentally translated the dark color of night into the CIELAB color space and ended up with the vibrant pink and teal colors seen in the finished linocut. I thoroughly enjoyed creating the flowing shapes and seeing the final product come together, even with the middle layers where I lost the vision of the final product."

Nora

Nora2025

ed. 7

Reduction Linocut

"An 8-layer reduction of my favorite dog in my immediate family, my own dog, Nora. This is the final print in my series of dogs in the family, after completing Ducky for my brother, Cash for my other brother, and Whiskey, my parents dog. A defect in the linoleum led to white dots appearing in each of the prints, a defect that I learned to accept."

Source Code & Repository

Inspect repository commits and architecture breakdowns.