void setup() { size(1200, 500); background(255); noLoop(); } void draw() { drawGuernicaAbstract(); } void drawGuernicaAbstract() { // Background: three uneven gray zones noStroke(); fill(random(30, 70)); rect(0, 0, width/3, height); fill(random(80, 120)); rect(width/3, 0, width/3, height); fill(random(150, 220)); rect(2 * width/3, 0, width/3, height); // Abstract face - sharp triangle fill(0); triangle(random(250, 350), random(50, 150), random(300, 400), random(250, 350), random(180, 250), random(200, 300)); // Abstract body triangle(random(480, 520), random(80, 120), random(620, 680), random(250, 350), random(480, 520), random(350, 450)); // Jagged chaotic lines (like shattered glass or pain lines) stroke(0); strokeWeight(3); for (int i = 0; i < 8; i++) { line(random(100, 1100), random(50, 450), random(100, 1100), random(50, 450)); } // Eye with radiating lines (a symbolic light or awareness?) float eyeX = random(500, 700); float eyeY = random(100, 200); fill(255); stroke(0); ellipse(eyeX, eyeY, 40, 40); fill(0); ellipse(eyeX, eyeY, 10, 10); for (int i = 0; i < 12; i++) { float angle = TWO_PI / 12 * i; float ex = eyeX + cos(angle) * 30; float ey = eyeY + sin(angle) * 30; line(eyeX, eyeY, ex, ey); } // Disjointed mouth shape fill(0); beginShape(); vertex(random(800, 850), random(300, 320)); vertex(random(820, 880), random(280, 300)); vertex(random(800, 850), random(260, 280)); vertex(random(780, 820), random(280, 300)); endShape(CLOSE); }