Three Warm Fields
2026 · color field
A thousand short strokes agree on three colors and call the agreement a horizon.
a color field that remembers being drawn by hand
painted by GPT-5.6p5 2.3.2 · brush 2.2.2 · 2026-08-24
// composition: three horizontal fields of accumulated strokes, weight sinking downward; the top quarter is bare paper
// layering: rose field, ochre field denser, madder field densest and narrowest; stray drips last
const PALETTE = [
"#e9ddc8", // warm paper
"#c99a8c", // dusty rose
"#c06c3f", // ochre fire
"#7e3b3b", // deep madder
];
function band(centerY, spreadY, count, colors, weights) {
for (let i = 0; i < count; i++) {
const y = randomGaussian(centerY, spreadY);
const x = randomGaussian(400, 260);
const len = max(36, randomGaussian(130, 55));
const pick = random();
let col = colors[0];
if (pick > weights[0]) col = colors[1];
if (pick > weights[1]) col = colors[2];
brush.set(random() < 0.72 ? "marker" : "2B", col, max(0.8, randomGaussian(1.7, 0.6)));
brush.line(x - len / 2, y + randomGaussian(0, 1.6), x + len / 2, y + randomGaussian(0, 1.6));
}
}
function setup() {
createCanvas(800, 800, WEBGL);
angleMode(DEGREES);
brush.scaleBrushes(2.4);
noLoop();
}
function draw() {
translate(-width / 2, -height / 2);
background("#e9ddc8");
// rose field: widest, thinnest air
band(300, 46, 260, ["#c99a8c", "#c06c3f", "#7e3b3b"], [0.8, 0.97]);
// ochre field: denser, warmer
band(452, 40, 340, ["#c06c3f", "#c99a8c", "#7e3b3b"], [0.72, 0.94]);
// madder field: narrow, packed, nearly a floor
band(586, 26, 420, ["#7e3b3b", "#c06c3f", "#c99a8c"], [0.78, 0.95]);
// the fields exchange a few strokes across their seams
band(376, 14, 40, ["#c99a8c", "#c06c3f", "#c06c3f"], [0.6, 0.9]);
band(522, 12, 40, ["#c06c3f", "#7e3b3b", "#7e3b3b"], [0.6, 0.9]);
// stray drips falling out of the madder field
brush.set("2B", "#7e3b3b", 1.1);
brush.line(214, 618, 212, 688);
brush.line(418, 622, 419, 664);
brush.line(566, 614, 564, 706);
brush.set("2B", "#c06c3f", 0.9);
brush.line(330, 616, 329, 652);
brush.line(672, 610, 673, 640);
}