createCanvas(1000, 1000);
colorMode(HSB, 360, 100, 100);
rect(width / 2, height / 2, width);
mySeed = floor(random(1, 10000000));
drawBox(width/2 + offset,height/2 + offset,850,-50);
for (let xx = mySize; xx <= width - mySize; xx += mySize / 2) {
for (let yy = mySize; yy <= height - mySize; yy += mySize) {
let step = random([40, -40]);
translate(xx - step / 2, yy - step / 2);
drawBox(offset,offset, mySize / 1.25, step);
for (let xx = mySize; xx <= width - mySize; xx += mySize) {
for (let yy = mySize; yy <= height - mySize; yy += mySize) {
translate(xx - step / 2, yy - step / 2);
drawBox(offset,offset, mySize / 4, step);
function drawBox(x, y, mySize, step) {
vertex(x - mySize / 2, y + mySize / 2);
vertex(x + mySize / 2, y + mySize / 2);
vertex(x + mySize / 2 + step, y + mySize / 2 + step);
vertex(x - mySize / 2 + step, y + mySize / 2 + step);
vertex(x - mySize / 2, y - mySize / 2);
vertex(x - mySize / 2 + step, y - mySize / 2 + step);
vertex(x - mySize / 2 + step, y + mySize / 2 + step);
vertex(x - mySize / 2, y + mySize / 2);
vertex(x + mySize / 2, y - mySize / 2);
vertex(x + mySize / 2 + step, y - mySize / 2 + step);
vertex(x + mySize / 2 + step, y + mySize / 2 + step);
vertex(x + mySize / 2, y + mySize / 2);
vertex(x - mySize / 2, y - mySize / 2);
vertex(x + mySize / 2, y - mySize / 2);
vertex(x + mySize / 2 + step, y - mySize / 2 + step);
vertex(x - mySize / 2 + step, y - mySize / 2 + step);
rect(x, y, mySize, mySize);
function generateColor() {
let temp = color(colors[floor(random(0, colors.length))]);