let cp = ["#588B8B", "#FFFFFF", "#FFD5C2", "#F28F3B", "#C8553D"];
w = min(windowWidth, windowHeight);
for (let y = g / 2; y <= w; y += g) {
for (let x = -g * 2; x <= w + g * 2; x += g) {
fill(random([0, 120, 255]));
rect(0, 0, g + 1, g + 1);
rotate(int(random(4)) * 90);
ellipse(-g / 4, -g / 4, g / 2, g / 2);
translate(-g / 4, g / 4);
for (let sx = -sg / 2; sx <= sg / 2; sx += sg) {
for (let sy = -sg / 2; sy <= sg / 2; sy += sg) {
let ser = random(sg / 2, sg);
ellipse(sx, sy, ser, ser);
arc(0, random(-g / 2 + ar / 2, g / 2 - ar / 2), ar, ar, 270, 90);
arc(g / 2, random(-g / 2 + sar / 2, g / 2 - sar / 2), sar, sar, 90, 270);
translate(g / 4, -g / 4);
let rr = random([g / 4, g / 3]);
drawingContext.shadowOffsetX = 0;
drawingContext.shadowOffsetY = 0;
drawingContext.shadowBlur = rr / 2;
drawingContext.shadowColor = "black";
let rc = color(random([0, random(cp)]));
drawingContext.shadowOffsetX = 0;
drawingContext.shadowOffsetY = 0;
drawingContext.shadowBlur = lr * 4;
drawingContext.shadowColor = "black";
if (int(random(2)) == 0) {
line(0, g / 2, g / 2, 0);
line(z, g / 2, g / 2, z);
line(0, 0, g / 2, g / 2);
line(0, z, g / 2 - z, g / 2);
let fer = random(g / 4, g);
random(-g / 2 + fer / 2, g / 2 - fer / 2),
random(-g / 2 + fer / 2, g / 2 - fer / 2),
rakkan(rw/2.5, w-rw/1.25, rw, 0);
function rakkan(posx, posy, r, csw) {
rect(0, 0, r / 1.4, r * 1.5, r / 5);
for (let i = 0; i < 10; i++) {
let z = random(lr / 20, lr / 2);
vertex(nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(random(-z, z), -nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), random(-z, z));
vertex(random(-z, z), nr / 2 + random(-z, z));
vertex(nr / 2 + random(-z, z), nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), random(-z, z));
vertex(nr / 2 + random(-z, z), random(-z, z));
vertex(nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(random(-z, z), -nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), random(-z, z));
vertex(random(-z, z), nr / 2 + random(-z, z));
vertex(nr / 2 + random(-z, z), nr / 2 + random(-z, z));
vertex(nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), nr / 2 + random(-z, z));
vertex(nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(nr / 2 + random(-z, z), nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), random(-z, z));
vertex(nr / 2 + random(-z, z), random(-z, z));
vertex(nr / 2 + random(-z, z), -nr / 2 + random(-z, z));
vertex(-nr / 2 + random(-z, z), nr / 2 + random(-z, z));