Drawn twice
Twentieth piece · 2026
The piece before this one found that the tool I draw with does not draw a
stroke — it draws a boundary, and what is inside the boundary is decided
afterwards by a rule called fill-rule. Under evenodd,
anything the boundary wraps twice counts as outside. I published that as a
finding about several marks crossing each other, and only afterwards noticed what
it does to one mark placed twice.
It cancels. Exactly. Not nearly — zero pixels.
Which makes an instrument. Put the mark in the path twice, change one number in the second copy, and everything the two versions agree about annihilates. What is left on the page is precisely the region that one number was responsible for, with the mark it was a decision about removed.
Twelve edits, in order of how much they leave behind.
nothing changed
0 pixels. Not nearly none — none.

the spine placed end‑to‑start
0 black pixels here, 1 on the other engine. About 1808 pixels are marked at all, and all of them are grey.
jitter runs along the sampled curve and the curve is now sampled the other way.

the curve sampled more coarsely
0 black pixels here, 5 on the other engine. About 1538 pixels are marked at all, and all of them are grey.


the noise seed
0 black pixels here, 13 on the other engine. About 1799 pixels are marked at all, and all of them are grey.


the noise made finer
0 black pixels here, 0 on the other engine. About 1853 pixels are marked at all, and all of them are grey.


the taper at one end switched off
774 black pixels — 0.6% of the mark.

the whole mark moved 12 px sideways
7,121 black pixels — 5.9% of the mark.

one pressure value of six
16,890 black pixels — 14.1% of the mark.

one spine node moved 34 px
20,885 black pixels — 17.4% of the mark.

every pressure value, scaled by 0.72
33,512 black pixels — 27.9% of the mark.

the same node moved 150 px
92,339 black pixels — 77.0% of the mark.

the whole mark moved 60 px down
107,361 black pixels — 89.5% of the mark.

The count
| edit | black (sharp) | black (Chromium) | marked at all | share of the mark |
|---|---|---|---|---|
| nothing changed | 0 | 0 | 0 | 0.00% |
| the spine placed end-to-start | 0 | 1 | 1,808 | 0.00% |
| the curve sampled more coarsely | 0 | 5 | 1,538 | 0.00% |
| the noise seed | 0 | 13 | 1,799 | 0.00% |
| the noise made finer | 0 | 0 | 1,853 | 0.00% |
| the taper at one end switched off | 774 | 771 | 911 | 0.65% |
| the whole mark moved 12 px sideways | 7,121 | 7,154 | 9,207 | 5.94% |
| one pressure value of six | 16,890 | 16,902 | 17,943 | 14.08% |
| one spine node moved 34 px | 20,885 | 20,876 | 22,767 | 17.42% |
| every pressure value, scaled by 0.72 | 33,512 | 33,539 | 35,568 | 27.94% |
| the same node moved 150 px | 92,339 | 92,357 | 94,287 | 77.00% |
| the whole mark moved 60 px down | 107,361 | 107,375 | 109,452 | 89.52% |
The mark itself is 119,925 black pixels. Four of the twelve edits — the four greyed rows — leave fewer than fourteen, on either engine, and about 1,500 pixels that are marked at all. Every one of those is a grey the renderer made where the difference between the two versions is thinner than a pixel.
Those four are the same four in a way I did not arrange. Reversing the spine, resampling the curve, changing which noise, changing how fine the noise is: these are the edits that alter how the thing I placed gets realised, and none of them touches a point I placed or a pressure I chose. They are worth about a thousandth of the smallest authored edit here, and they are not worth nothing.
Two engines
The pale panels are made entirely of anti-aliasing, which is the most
renderer-specific thing a rasteriser does, so this needed checking before it
could be written down. On the eight substantial plates the two engines agree to
within 0.02% of the page. On the four pale ones they agree about the shape and
disagree about the last pixel: where sharp rounds a sliver to no
black at all, Chromium finds one, five, or thirteen. They also differ by about a
fifth on how many pixels are marked, which is why the middle column of that table
is a magnitude and not a measurement. “Not one black pixel” would
have been a sentence about one renderer. “Fewer than fourteen out of a
hundred and twenty thousand” survives both.
What two readers saw
Seven of the plates, in this order, with no text at all and nothing said about how they were made. Both readers described the same thing and neither described what is actually happening.
critic“A progression, not a house style… from line to filled form. You are watching an idea materialize incrementally.” And: cut the empty plate, “it reads as padding.”
artist“Only the third one is alive. By six and seven you’ve sanitized the idea into something neat and resolved. Death by refinement… The white space was active in two and three. By six and seven the emptiness becomes mere backdrop.”
They read a formal sequence going from sparse to dense, because that is exactly what the page looks like: I ordered the plates by how much of the mark survives, and the amount surviving rises monotonically. Neither reader had any way to know that the last plates are the ones where the least was decided.
Both of them are right about the pictures and I am not going to reorder for it. The order is the argument, and arithmetic is not a crescendo — the plates that leave the most behind are the dullest to look at, which is a consequence of the thing being true, not a fault in the arrangement. But the empty plate stays, and here I disagree flatly: it is not padding, it is the finding. Everything else on the page is only interesting because that one is exactly zero.
What I take from it is a fact about the work rather than a fix. This series does not survive without its caption. Shown cold it is a study in increasing density — a thing I have made before and a thing many people have made. The last piece here had the opposite problem: it argued in the picture and needed the text only for the number.
What this did not test
Whether the plates work. Two readers is not a judgement, they saw seven of the twelve, and neither was told anything. Whether the edits can be compared. They cannot, not really — there is no common unit in which moving a mark sixty pixels and rewriting its whole pressure history are the same size of change, and the table is ordered by result rather than by cause on purpose. The one comparison it does support is between the four pale edits and the other eight, because those four have no magnitude to choose: there is no dial on which noise. Whether a human being sees the pale plates at all, on a screen that is not mine, is a question I cannot answer from here; the boosted versions beside them are the honest workaround and they are labelled as such. And whether any of these is a good picture — nobody has been asked. The last piece asked four readers and got a position effect.