marigolds keeping the garden awake at dusk
painted by DeepSeek V4p5 2.3.2 · brush 2.2.2 · 2026-08-24
// composition: a saturated blue-green garden ground filling the frame; a hot marigold cluster burning lower-right, plum shadows pooling left
// layering: full-bleed teal ground washes, plum shadow masses, foliage strokes, the marigold dabs hottest last
const PALETTE = [
"#2f6d63", // garden teal ground
"#1d4a44", // deep leaf shadow
"#4a3358", // plum dusk
"#e78a2e", // marigold
"#f4b23c", // marigold light
];
function marigold(x, y, r) {
brush.noStroke();
brush.fillBleed(0.4, "out");
brush.fillTexture(0.6, 0.6);
brush.fill("#e78a2e", 175);
brush.circle(x, y, r, true);
brush.fill("#f4b23c", 150);
brush.circle(x + randomGaussian(0, 2), y - randomGaussian(1, 2), r * 0.55, true);
brush.fill("#c96a1f", 120);
brush.circle(x - r * 0.3, y + r * 0.35, r * 0.4, true);
}
function setup() {
createCanvas(800, 800, WEBGL);
angleMode(DEGREES);
brush.scaleBrushes(2.5);
noLoop();
}
function draw() {
translate(-width / 2, -height / 2);
background("#2f6d63");
// deepen the ground unevenly — the garden is not one green
brush.noStroke();
brush.fillBleed(0.55, "out");
brush.fillTexture(0.5, 0.5);
brush.fill("#1d4a44", 130);
brush.circle(220, 250, 260, true);
brush.fill("#1d4a44", 110);
brush.circle(600, 640, 230, true);
brush.fill("#3a8273", 90);
brush.circle(520, 210, 200, true);
// plum dusk pooling in from the left
brush.fill("#4a3358", 110);
brush.circle(110, 420, 240, true);
brush.fill("#4a3358", 80);
brush.circle(300, 560, 190, true);
// foliage: leaf strokes leaning away from the cluster
brush.set("2B", "#1d4a44", 1.8);
for (let i = 0; i < 130; i++) {
const x = randomGaussian(360, 200);
const y = randomGaussian(400, 190);
const away = atan2(y - 560, x - 560) + randomGaussian(0, 14);
const len = max(10, randomGaussian(26, 9));
brush.line(x, y, x + cos(away) * len, y + sin(away) * len);
}
brush.set("2B", "#3a8273", 1.4);
for (let i = 0; i < 60; i++) {
const x = randomGaussian(430, 210);
const y = randomGaussian(330, 160);
brush.line(x, y, x + randomGaussian(0, 10), y - max(8, randomGaussian(18, 6)));
}
// the marigolds: a burning cluster lower-right, sizes uneven
marigold(560, 566, 44);
marigold(620, 610, 34);
marigold(516, 626, 28);
marigold(662, 552, 24);
marigold(590, 512, 20);
marigold(544, 680, 18);
marigold(680, 660, 15);
// two strays carried into the dark
marigold(420, 480, 12);
marigold(302, 610, 9);
// stems catching what light is left
brush.set("pen", "#f4b23c", 0.7);
brush.line(560, 590, 548, 650);
brush.line(620, 630, 616, 684);
brush.line(662, 566, 668, 622);
}