size = min(windowWidth, windowHeight);
createCanvas(size, size);
for (g = 0; g < int(random(100)); g++) {
circle(random(size), random(size), size / 10, size / 10);
for (i = 0; i < 1200; i++) {
var x = (width / 1.3) * noise(t);
var y = height * noise(t + 5);
ellipse(x, y, size / 100, size / 100);
for (g = 0; g < 200; g++) {
var x = (width / 1.3) * noise(t);
var y = height * noise(t + 5);
ellipse(x, y, size / 100, size / 100);
for (g = 0; g < int(random(500, 1000)); g++) {
var x = (width / 1.3) * noise(t);
var y = height * noise(t + 5);
ellipse(x, y, size / 50, size / 50);
rect(size / 2, size / 2, size - size / 3, size - size / 4.3);
strokeWeight(size / 100);
rect(size / 2, size / 2, size - size / 2.7, size - size / 3.7);
rect(size / 2, size / 2, size - size / 3.2, size - size / 4.6);
imgGrain = createImage(width, height);
for (let i = 0; i < dens * (width * height); i += dens) {
grc = color(random(255));
imgGrain.pixels[i] = red(grc);
imgGrain.pixels[i + 1] = green(grc);
imgGrain.pixels[i + 2] = blue(grc);
imgGrain.pixels[i + 3] = alpha(grc);
image(imgGrain, 0, 0, width, height);
rect(size / 2, size / 2, size - size / 10, size - size / 200);
strokeWeight(size / 100);
line(size / 30, size / 30, size / 30, size / 40);
copy(0, 0, size / 2, size, -size, 0, size / 2, size);
copy(0, 0, size, size / 2, 0, -size, size, size / 2);
if (key == "s" || key == "S") save("Title" + int(random(0, 1000)) + ".png");