New Orleans
2026 · city
I stood a little right of the axis so the facade would not cut out symmetrically, and left the white plaster as bare paper — only the returns that turn from the light take a plate. The central steeple is twice the flanking cones, as it is. The Cabildo and Presbytere keep their seven arches each.
st. louis cathedral from jackson square, a little off the axis — three slate spires over the white plaster front, the iron fence and jackson's rearing horse in front
painted by Claude Opus 5p5 2.3.2 · brush 2.2.2 · 2026-08-30
// composition: a letterpress vignette of St. Louis Cathedral seen from Jackson Square, standing a
// little RIGHT of the axis so the facade is not a symmetrical cut-out: the far (left) tower reads
// narrower than the near (right) one, and the tower axis falls left of the facade's screen centre.
// The cathedral sits left of the print's own centre; the Presbytere on the right is nearer and wider
// than the Cabildo on the left, and balances it. Sky is nothing — the paper is the sky.
// four facts:
// proportion — the central spire tip is 56m, the two flanking cone tips 30m, the facade cornice
// 18m; so the middle steeple is very nearly TWICE the flanking spires from the ground, and the
// spire above the clock tower is slender, about 2.8 tall to 1 wide. Drawn at 5.8px per metre.
// ordering — Cabildo left, cathedral, Presbytere right, all on one line; the square's live oaks and
// the one palm stand in front of them, the palm over the Cabildo where its crown clears the
// mansard into bare paper; Jackson's statue in front of that, right of the tower's axis so the
// central bay stays open; the iron fence nearest.
// material — the facade is WHITE PLASTER: it is bare paper, ruled with pen, with a stone halfPlate
// only on the returns that turn away from the light (light from the left). The three spires and
// the two mansards are slate; the flanking blocks are stone; the walk outside the fence is brick.
// site — Jackson Square is flat, open and planted; the cathedral stands back behind a fenced garden,
// so a band of bare paper separates the building's foot from the ironwork.
// counts drawn: 3 spires, 3 round-arched doors, 3 arched windows over them + 1 per flanking tower,
// 7 ground arches and 7 upper openings on EACH of the Cabildo and Presbytere, 3 dormers each,
// 6 belfry louvres, 86 fence pickets with 14 finialed posts, 5 people, 1 easel, 2 oaks,
// 1 palm of 7 fronds.
// layering: paper flecks, the two flanking blocks, the cathedral's white front and its three spires,
// then fine ink for cornices, arcades and slots, oaks and palm, the statue, the fence, the brick
// walk in broken dashes, then the last darks and one gilt cross.
const PALETTE = [
"#efe6d2", // paper — warm cream sheet
"#d9cfb6", // stone — the Cabildo and Presbytere, plinth, the plaster's shaded returns
"#2f3a44", // ink — slate-navy line and shadow plate
"#5d7f88", // slate — the three spires and the two mansard roofs
"#7a8c6a", // moss — the live oaks and the palm
"#a8452c", // brick — the square's brick walk, in broken dashes only
"#c9a24a", // gilt — the cross on the steeple, the one warm accent
];
const BASE = 588; // the cathedral's ground line
const g = (m, sd, lo, hi) => constrain(randomGaussian(m, sd), lo, hi);
const shift = (pts, dx, dy) => pts.map((p) => [p[0] + dx, p[1] + dy]);
const box = (x, y, w, h) => [[x, y], [x + w, y], [x + w, y + h], [x, y + h]];
// a solid grainy plate — the letterpress solid. noStroke: a plate never carries the last pen's outline.
const plate = (pts, col, w, dist, ang, rnd) => {
brush.noStroke();
brush.noFill();
brush.hatchStyle("charcoal", col, w);
brush.hatch(dist, ang, { rand: rnd, continuous: false, gradient: 0 });
brush.polygon(pts);
brush.noHatch();
};
// a half-tone plate — two crossed cpencil passes, paper breathing through
const halfPlate = (pts, col, w, dist, ang) => {
brush.noStroke();
brush.noFill();
brush.hatchStyle("cpencil", col, w);
brush.hatch(dist, ang, { rand: 0.25, continuous: false, gradient: 0 });
brush.polygon(pts);
brush.hatch(dist * 1.12, ang - 84, { rand: 0.25, continuous: false, gradient: 0 });
brush.polygon(pts);
brush.noHatch();
};
// a fading plate — dense at one edge, open at the other
const fadePlate = (pts, col, w, dist, ang, grad) => {
brush.noStroke();
brush.noFill();
brush.hatchStyle("charcoal", col, w);
brush.hatch(dist, ang, { rand: 0.3, continuous: false, gradient: grad });
brush.polygon(pts);
brush.noHatch();
};
const ink = (x1, y1, x2, y2, w, name, col) => {
brush.noFill();
brush.set(name || "rotring", col || PALETTE[2], w || 1.0);
brush.line(x1, y1, x2, y2);
};
// a dark rectangular slot — a louvre, a dormer
const slot = (x, y, w, h) => plate(box(x, y, w, h), PALETTE[2], 1.1, 1.5, 90, 0.2);
// a round-arched opening: semicircular head on a rectangle, printed solid
const archPts = (x, y, w, h) => {
const r = w / 2, cx = x + r, top = y + r;
const pts = [];
for (let i = 0; i <= 9; i++) {
const a = Math.PI + (i / 9) * Math.PI;
pts.push([cx + Math.cos(a) * r, top + Math.sin(a) * r]);
}
pts.push([x + w, y + h], [x, y + h]);
return pts;
};
const arch = (x, y, w, h) => plate(archPts(x, y, w, h), PALETTE[2], 1.1, 1.5, 88, 0.22);
// an octagonal slate cone: lit half left, shade half right, ink over the shade, two visible ridges
const coneSpire = (cx, baseY, halfW, tipY, wt) => {
const lit = [[cx - halfW, baseY], [cx, baseY], [cx, tipY]];
const shade = [[cx, baseY], [cx + halfW, baseY], [cx, tipY]];
halfPlate(lit, PALETTE[3], wt, 2.0, 74);
plate(shade, PALETTE[3], wt + 0.2, 2.0, 100, 0.3);
plate(shift(shade, 1.4, 1), PALETTE[2], 1.0, 3.2, 104, 0.3);
ink(cx - halfW, baseY, cx, tipY, 0.95);
ink(cx + halfW, baseY, cx, tipY, 0.95);
ink(cx - halfW * 0.4, baseY, cx, tipY, 0.7, "pen"); // the octagon's near ridges
ink(cx + halfW * 0.4, baseY, cx, tipY, 0.7, "pen");
};
// a live oak: an irregular moss plate with a darker ink plate over its shaded half, on one trunk
const oakAt = (cx, cy, rr, seedOff, footY) => {
const crown = [];
for (let i = 0; i < 13; i++) {
const a = (i / 13) * Math.PI * 2;
const k = rr * (0.66 + noise(i * 0.8 + seedOff) * 0.66);
crown.push([cx + Math.cos(a) * k, cy + Math.sin(a) * k * 0.74]);
}
plate(crown, PALETTE[4], 1.45, 2.0, 34, 0.3);
plate(shift(crown, 1.5, 1.5), PALETTE[4], 1.25, 3.2, 58, 0.3);
plate(shift(crown.slice(0, 7).concat([[cx, cy]]), 2, 2), PALETTE[2], 1.25, 2.8, 46, 0.35);
ink(cx + 1, cy + rr * 0.42, cx - 1, footY, 3.0, "charcoal");
ink(cx + 4, cy + rr * 0.5, cx + 7, footY - 3, 1.7, "charcoal"); // a low branch, as live oaks throw
};
function setup() {
createCanvas(800, 800, WEBGL);
angleMode(DEGREES);
brush.scaleBrushes(2.4);
noLoop();
}
function draw() {
translate(-width / 2, -height / 2);
background(PALETTE[0]);
// 0 — paper flecks: faint warm specks so the sheet is not dead, never dark
for (let i = 0; i < 220; i++) {
const x = random(10, 790), y = random(10, 790);
ink(x, y, x + g(1.4, 0.5, 0.5, 2.6), y + g(0, 0.4, -1, 1), g(0.45, 0.1, 0.3, 0.6), "2H",
random() < 0.7 ? "#bfb39a" : PALETTE[1]);
}
// 1 — the Cabildo, left of the cathedral and further off: two storeys, a 7-arch ground arcade
// under a 7-bay loggia, and the 1847 mansard. Foreshortened, so its bays are tighter.
const CBX = 164, CBW = 124, CB_FOOT = 583, CB_EAVE = 519, CB_RIDGE = 497;
halfPlate(box(CBX, CB_EAVE, CBW, CB_FOOT - CB_EAVE), PALETTE[1], 1.3, 2.3, 64);
plate([[162, CB_EAVE], [CBX + CBW + 2, CB_EAVE], [CBX + CBW - 6, CB_RIDGE], [CBX + 6, CB_RIDGE]],
PALETTE[3], 1.3, 2.7, 96, 0.3); // the mansard
fadePlate(box(CBX, CB_EAVE + 1, CBW, 8), PALETTE[2], 0.9, 3.6, 0, 0.65); // shadow under the eave
ink(CBX + 4, CB_RIDGE, CBX + CBW - 4, CB_RIDGE, 1.1); // ridge
ink(146, CB_EAVE, CBX + CBW + 4, CB_EAVE, 1.3); // cornice
ink(CBX, CB_EAVE + 30, CBX + CBW, CB_EAVE + 30, 0.85, "pen"); // string course
for (let i = 0; i < 3; i++) slot(CBX + 26 + i * 32, CB_RIDGE + 4, 7, 11); // dormers
for (let i = 0; i < 7; i++) {
const x = CBX + 3 + i * 17.7;
arch(x + g(0, 0.35, -0.9, 0.9), CB_EAVE + 5, 10, 23); // the upper loggia
}
for (let i = 0; i < 7; i++) {
const x = CBX + 2.5 + i * 17.7;
arch(x + g(0, 0.35, -0.9, 0.9), CB_FOOT - 26, 12, 26); // the ground arcade
}
plate(box(CBX + CBW - 8, CB_EAVE + 2, 8, CB_FOOT - CB_EAVE - 2), PALETTE[2], 1.0, 3.4, 90, 0.3);
// 2 — the Presbytere, right of the cathedral and nearer: the same building, read wider
const PBX = 470, PBW = 186, PB_FOOT = 593, PB_EAVE = 505, PB_RIDGE = 477;
halfPlate(box(PBX, PB_EAVE, PBW, PB_FOOT - PB_EAVE), PALETTE[1], 1.3, 2.2, 58);
plate([[468, PB_EAVE], [PBX + PBW + 2, PB_EAVE], [PBX + PBW - 8, PB_RIDGE], [PBX + 6, PB_RIDGE]],
PALETTE[3], 1.35, 2.6, 82, 0.3); // the mansard
fadePlate(box(PBX, PB_EAVE + 1, PBW, 9), PALETTE[2], 0.9, 3.6, 0, 0.68);
ink(PBX + 5, PB_RIDGE, PBX + PBW - 6, PB_RIDGE, 1.2);
ink(466, PB_EAVE, PBX + PBW + 4, PB_EAVE, 1.35);
ink(PBX, PB_EAVE + 40, PBX + PBW, PB_EAVE + 40, 0.85, "pen");
for (let i = 0; i < 3; i++) slot(PBX + 40 + i * 50, PB_RIDGE + 5, 8, 15); // dormers
for (let i = 0; i < 7; i++) {
const x = PBX + 6 + i * 26.6;
arch(x + g(0, 0.4, -1, 1), PB_EAVE + 7, 13, 31); // upper loggia
}
for (let i = 0; i < 7; i++) {
const x = PBX + 5 + i * 26.6;
arch(x + g(0, 0.4, -1, 1), PB_FOOT - 41, 16, 41); // ground arcade
}
plate(box(PBX + PBW - 9, PB_RIDGE + 2, 9, PB_FOOT - PB_RIDGE - 2), PALETTE[2], 1.0, 3.4, 90, 0.3);
// 3 — the cathedral front: WHITE PLASTER, so it is bare paper. Only the returns that turn from the
// light take a stone halfPlate; everything else is ruled. Facade 294..462, cornice at 486.
const FX = 294, FR = 462, FTOP = 486, PARA = 472;
const LTX = 294, LTR = 324, RTX = 430, RTR = 462; // far tower narrower than the near one
const TX = 372, TL = 347, TR = 397; // the clock tower — its axis left of the facade's screen centre
// shaded returns: the right-hand edge of each mass, and the recess shadow beside the near tower
halfPlate(box(LTR - 6, FTOP, 6, BASE - FTOP), PALETTE[1], 1.15, 2.4, 66);
halfPlate(box(RTR - 7, FTOP, 7, BASE - FTOP), PALETTE[1], 1.2, 2.4, 70);
halfPlate(box(RTX - 7, FTOP + 4, 7, BASE - FTOP - 4), PALETTE[1], 1.05, 2.8, 62);
halfPlate(box(TR - 8, PARA, 8, 414 - PARA), PALETTE[1], 1.15, 2.4, 68);
halfPlate(box(TR - 12, 414, 6, 32), PALETTE[1], 1.1, 2.6, 72);
fadePlate(box(FX, FTOP + 1, FR - FX, 9), PALETTE[2], 0.9, 3.6, 0, 0.72); // under the main cornice
fadePlate(box(324, 529, 106, 6), PALETTE[2], 0.85, 3.8, 0, 0.7); // under the string course
fadePlate(box(TL, PARA + 1, TR - TL, 7), PALETTE[2], 0.85, 3.8, 0, 0.7); // under the parapet
// the ruled front: cornice, string course, tower edges, pilasters
ink(FX - 4, FTOP, FR + 4, FTOP, 1.35);
ink(322, PARA, 432, PARA, 1.15); // the parapet over the central bay
ink(FX, FTOP, FX, BASE, 1.15); ink(LTR, FTOP, LTR, BASE, 0.95);
ink(RTX, FTOP, RTX, BASE, 0.95); ink(FR, FTOP, FR, BASE, 1.25);
ink(FX + 2, 528, FR - 2, 528, 0.9, "pen");
// the two pilasters of the bay the monument occupies stop where its mass begins — it stands in front
for (const px of [300, 318, 330, 424, 436, 456]) ink(px, 530, px, px === 424 || px === 436 ? 538 : BASE - 2, 0.7, "pen");
for (const px of [302, 316, 438, 454]) ink(px, FTOP + 6, px, 526, 0.7, "pen");
for (let i = 0; i < 3; i++) ink(328 + i * 49, PARA, 328 + i * 49, PARA - 8, 1.5, "charcoal");
// the three round-arched doors — the middle one larger, on a shallow flight of steps
arch(342.5, 554, 15, 34); arch(367.5, 548, 19, 40); arch(396.5, 554, 15, 34);
ink(336, 560, 414, 560, 0.7, "pen"); // the impost the arches spring from
ink(330, BASE - 3, 424, BASE - 3, 0.8, "pen"); ink(334, BASE, 420, BASE, 0.9, "pen");
// the row of arched windows above them, and one in each flanking tower
arch(344.5, 496, 11, 30); arch(370.5, 492, 13, 34); arch(398.5, 496, 11, 30);
arch(304, 498, 10, 28); arch(441, 496, 11, 30);
arch(304, 552, 10, 36); arch(440.5, 550, 11, 38); // the towers' ground-storey doors
// 4 — the three spires. The flanking towers carry short belfries and octagonal slate cones;
// the middle tower carries the clock, a louvred stage, and the slender slate steeple.
ink(296, 462, LTR - 2, 462, 1.15); ink(432, 460, RTR - 2, 460, 1.2); // belfry cornices
ink(296, 462, 296, FTOP, 0.85, "pen"); ink(322, 462, 322, FTOP, 0.85, "pen");
ink(433, 460, 433, FTOP, 0.85, "pen"); ink(459, 460, 459, FTOP, 0.9, "pen");
slot(305.5, 466, 7, 17); slot(442, 464, 8, 19); // belfry louvres
coneSpire(309, 460, 17, 412, 1.25); // far flanking spire
coneSpire(446, 458, 18, 404, 1.35); // near flanking spire — a shade bigger, being nearer
// the clock tower: bare plaster, ruled, with the clock as a plain pen circle and no numerals
ink(TL, PARA, TL, 414, 1.05); ink(TR, PARA, TR, 414, 1.15);
ink(TL - 4, 414, TR + 4, 414, 1.3); // tower cornice
brush.noFill();
brush.set("rotring", PALETTE[2], 1.15);
brush.circle(TX, 444, 12, true);
brush.set("pen", PALETTE[2], 0.8);
brush.circle(TX, 444, 9.5, true);
ink(TX, 444, TX, 436, 1.0, "pen"); ink(TX, 444, TX + 5, 447, 1.0, "pen"); // the hands
ink(TX, 444, TX, 444.6, 1.9, "charcoal");
// the louvred belfry stage, then the steeple
ink(351, 414, 351, 382, 0.9, "pen"); ink(393, 414, 393, 382, 0.95, "pen");
ink(347, 382, 397, 382, 1.25);
slot(357, 388, 8, 21); slot(378, 388, 8, 21);
coneSpire(TX, 382, 21, 263, 1.4); // 119px on a 42px base — the slender steeple
ink(TX - 21, 382, TX + 21, 382, 1.0);
// the cross — the one gilt mark in the print
ink(TX, 263, TX, 251, 2.2, "charcoal", PALETTE[6]);
ink(TX - 4, 256, TX + 4, 256, 1.7, "charcoal", PALETTE[6]);
// 5 — the ground the three buildings stand on: one thin stone plate, ruled once, ending ragged
plate([[148, 584], [658, 590], [658, 595], [148, 589]], PALETTE[1], 1.15, 1.7, 0, 0.22);
ink(152, 584, 402, 587, 1.25); ink(408, 587, 652, 590, 1.15);
// 6 — the square itself: two live oaks and the one palm, planted in front of the blocks
oakAt(204, 550, 40, 3.1, 592); // low enough that the Cabildo's mansard and loggia stay legible
oakAt(622, 556, 34, 8.4, 596);
// the one palm — standing in front of the Cabildo, its crown clearing the mansard ridge into bare
// paper: a thin curved trunk and 7 separate tapering fronds arching out and down from one point
const PLX = 271, PLTOP = 474;
brush.noFill();
brush.set("charcoal", PALETTE[2], 1.35);
brush.beginShape(0.45);
brush.vertex(PLX + 6, 592); brush.vertex(PLX + 4, 545); brush.vertex(PLX, PLTOP + 3);
brush.endShape(false);
for (let i = 0; i < 4; i++) ink(PLX + 5.4 - i * 1.4, 584 - i * 24, PLX + 3.2 - i * 1.4, 583 - i * 24, 0.65, "pen");
for (let i = 0; i < 7; i++) {
const a = (-171 + i * 27 + g(0, 2.5, -6, 6)) * Math.PI / 180;
const len = g(27, 3, 21, 32);
brush.noFill();
brush.set("charcoal", i === 1 || i === 5 ? PALETTE[4] : PALETTE[2], g(1.15, 0.15, 0.9, 1.4));
brush.beginShape(0.55);
brush.vertex(PLX + Math.cos(a) * 2.5, PLTOP + Math.sin(a) * 2.5, 0.9);
brush.vertex(PLX + Math.cos(a) * len * 0.6, PLTOP + Math.sin(a) * len * 0.6, 0.6);
brush.vertex(PLX + Math.cos(a) * len, PLTOP + Math.sin(a) * len * 0.9 + 8, 0.1); // the tip droops
brush.endShape(false);
}
// 8 — the square's cast-iron fence: fine pen pickets, a finialed post every sixth, two rails
for (let i = 0; i < 86; i++) {
const x = 162 + i * 5.62;
if ((x < 176 || x > 634) && random() < 0.55) continue; // the run breaks up at its ends
ink(x + g(0, 0.3, -0.7, 0.7), 600, x, 628, g(0.72, 0.08, 0.6, 0.9), "pen");
if (i % 6 === 0) {
ink(x, 600, x, 594, 1.5, "charcoal");
ink(x - 1.6, 595, x + 1.6, 595, 1.3, "charcoal"); // the tiny finial
}
}
ink(168, 604, 396, 604, 0.85, "pen"); ink(404, 604, 640, 604, 0.8, "pen");
ink(174, 624, 388, 624, 0.9, "pen"); ink(398, 624, 632, 624, 0.85, "pen");
// 9 — the brick walk outside the fence, in broken dashes only, and a few people for scale
for (let i = 0; i < 24; i++) {
const y = 634 + i * 0.46 + g(0, 1.5, -3.4, 3.4);
const x0 = 176 + random(0, 300);
const len = constrain(randomGaussian(68, 44), 12, 210);
if (x0 + len > 642) continue;
ink(x0, y, x0 + len, y, g(1.2, 0.28, 0.7, 1.8), random() < 0.6 ? "2B" : "cpencil",
random() < 0.62 ? PALETTE[5] : PALETTE[1]);
}
const folk = [[238, 9], [258, 8], [430, 10], [536, 9], [566, 8]];
for (let i = 0; i < folk.length; i++) {
const x = folk[i][0], h = folk[i][1];
ink(x, 636, x + g(0, 0.6, -1.2, 1.2), 636 - h, 1.8, "charcoal");
}
// the street artist's easel: a tripod and a small canvas turned to catch the light
ink(296, 618, 288, 640, 1.6, "charcoal"); ink(300, 618, 306, 640, 1.5, "charcoal");
ink(298, 618, 300, 638, 1.2, "charcoal");
halfPlate(box(289, 598, 16, 20), PALETTE[1], 1.15, 2.2, 56);
ink(289, 598, 305, 598, 0.85, "pen"); ink(289, 618, 305, 618, 0.85, "pen");
ink(289, 598, 289, 618, 0.8, "pen"); ink(305, 598, 305, 618, 0.9, "pen");
// 10 — last darks: crisp ends on the two flanking blocks and the deep shade at the cathedral's foot
ink(CBX, CB_EAVE, CBX, CB_FOOT, 1.0); ink(CBX + CBW, CB_EAVE, CBX + CBW, CB_FOOT, 0.9);
ink(PBX, PB_EAVE, PBX, PB_FOOT, 0.95); ink(PBX + PBW, PB_RIDGE + 2, PBX + PBW, PB_FOOT, 1.25);
// the shade at the cathedral's foot, broken where the monument's mass stands in front of it
fadePlate(box(FX + 1, BASE - 22, 411 - FX, 22), PALETTE[2], 1.0, 3.4, 90, 0.72);
fadePlate(box(447, BASE - 22, FR - 448, 22), PALETTE[2], 1.0, 3.4, 90, 0.72);
ink(FX - 1, FTOP, FX - 1, BASE, 1.0); ink(FR + 1, FTOP, FR + 1, BASE, 1.3);
// 7 — Jackson on his horse, well right of the tower's axis so it does not fight the central bay.
// Drawn last, so the foot shadow prints under it and the silhouette stays crisp. 42px overall:
// a pale stone plinth, then the horse in charcoal — barrel, forelegs raised and bent, hind legs
// planted, arched neck and small head, tail behind — with the rider upright, hat raised.
const SX = 415, SY = 580; // the plinth's left edge and its cap, which is the horse's ground
plate(box(SX, SY, 26, 16), PALETTE[1], 1.3, 1.7, 66, 0.25);
plate(box(SX + 20, SY + 1, 6, 15), PALETTE[2], 1.0, 3.2, 90, 0.3); // the plinth's shaded return
ink(SX - 1, SY, SX + 27, SY, 1.1); ink(SX - 2, SY + 16, SX + 28, SY + 16, 1.2);
ink(SX, SY, SX, SY + 16, 0.75, "pen"); ink(SX + 26, SY, SX + 26, SY + 16, 0.9, "pen");
// the barrel: one horizontal tapering mass, printed near-solid and ruled round so its edge is crisp
const BARREL = [[419, 570], [422, 565], [430, 563.5], [436, 565.5], [439, 569], [435, 573.5],
[425, 575], [420, 573]];
plate(BARREL, PALETTE[2], 1.2, 1.6, 34, 0.22);
brush.noFill(); brush.set("rotring", PALETTE[2], 0.9); brush.polygon(BARREL);
ink(422, 571, 416.5, 566, 1.15); ink(416.5, 566, 413.5, 570.5, 1.0); // near foreleg, raised and bent
ink(424, 572.5, 419, 568, 1.05); ink(419, 568, 415, 572.5, 0.95); // off foreleg
ink(434, 573, 433, 580, 1.15); ink(437, 572, 438, 580, 1.05); // hind legs, planted
ink(423, 565, 419, 557, 1.25); // the arched neck
ink(419, 557, 414.6, 559.2, 1.1); ink(414.6, 559.2, 413.4, 561, 0.85, "pen"); // small head, muzzle
ink(439, 566, 443.5, 570.5, 0.95); ink(443.5, 570.5, 442, 575.5, 0.8, "pen"); // the tail behind
ink(430, 563, 430, 552, 1.8, "charcoal"); ink(430, 551.5, 430, 548, 1.4, "charcoal"); // rider, torso and head
ink(431, 556, 434.6, 551, 1.0); ink(433.4, 550, 437.4, 549.3, 1.3, "charcoal"); // arm, raised hat
}