Blackwork Embroidery Using Excel as a computation engine
When Catherine of Aragon arrived in England to marry Arthur (and later Henry VIII), she brought Spanish fashions with her. One of those fashions was black embroidery on linen.
She brought Spanish needlework traditions with her from Castile when she arrived in 1501. The style was sometimes called "Spanish work" in England before "blackwork" became the common term.
Blackwork in Catherine's time was characterised by geometric repeating motifs — running stitch outlines, interlocking diamonds, stylised flowers, and vine scrollwork. It was stitched in black silk on white linen, often on cuffs and collars.
Types of Blackwork
1. Counted blackwork
Think of it like cross-stitch's mathematically inclined cousin. You count the threads in the fabric and build repeating geometric patterns.
It's almost algorithmic. Think of Squares, Diamonds, Stars and interlocking motifs. If you like procedural generation and tessellations... you'd probably enjoy designing blackwork.
2. Free blackwork
Instead of geometric repeats, it fills illustrations with flowers, animals, portraits and leaves. The outlines are stitched, then the interior is shaded using increasingly dense geometric fills.
It's almost like vector art with embroidery.
Tudor art: Hans Holbein the Younger
Hans Holbein the Younger arrived at the English court around 1526–1527. His portrait work is where we get most of our visual evidence for what Tudor blackwork actually looked like — the embroidered cuffs, collars, and partlets on his subjects are rendered in enough detail to extract the actual stitch patterns. Researchers and embroiderers have literally reverse-engineered working patterns from his paintings.
The stitch itself — Holbein stitch (also called double running stitch) — is named after him for exactly this reason. It's a reversible running stitch that looks identical on both sides, which is what gives blackwork its clean geometric quality. It's the foundational stitch for the style.
Can we code it and allow people to touch it?
For fabrications, I would use OpenSCAD. However, Blackwork is fundamentally 2D discrete geometry, not solid modelling. The natural stack is:
- Python for generation and constraint solving
- SVG for the pattern output
- Optionally PDF/PNG for printing
- Maybe a graph library for stitch routing
OpenSCAD only becomes relevant later if you want to turn the pattern into a physical object, for things like embossing plates. stamps (on the cards for our own ink), a stencil, etc.
Excel as a computation engine
I’ve always been a fan of Microsoft Excel. While it can be a reactive and functional programming environment with a grid UI. For this project, I will be treating it as a 2D deterministic computation engine where each node automatically recomputes when its dependencies change.
Quite often I would write dataflow programs with conditional formatting acting as a renderer.
In order to execute the task, I will be considering Excel through the lenses of modulo, symmetry, transformations, Boolean logic and dependency graphs.
Excel Computational Embroidery
Our “canvas” is A:AZ and 1:80 sized to 20×20 px.
The phases:
Prove the Concept
Making a Motif
Phase 1: The Proof of Concept
If we pause for a moment on embroidery. Our first hypothesis is if we can make a pixel engine. Not manual colouring of cells.
The Formulas:
Apply the below as conditional formatting with a fill colour of black
-Checkerboard Pattern: MOD(ROW()+COLUMN(),2)=0
-Vertical Stripes: MOD(COLUMN(),4)=0
-Diagonal: MOD(ROW()-COLUMN(),6)=0
-Diamonds: MOD(ABS(ROW()-40)+ABS(COLUMN()-20),6)=0
Phase 2: Making a motif
Used BA2 as a radius controller. Typed “1”
Replaced the first checkboard pattern with below and maintained the Black fill:
=ABS(MOD(COLUMN()-COLUMN($A$2),2*$BA$2+2)-$BA$2)+ABS(MOD(ROW()-ROW($A$2),2*$BA$2+2)-$BA$2)=$BA$2