w = min(windowWidth, windowHeight);
colorMode(HSB, 360, 100, 100, 100);
for (let i = 0; i < num; i++) {
translate(random(-w / 4, w + w / 4), random(-w / 4, w + w / 4));
let mr = random(w / 6, w / 2);
fill(int(random(360)), 100, 100, random(15));
let xn = random(-g / 2, g / 2);
let yn = random(-g * 2, g * 2);
translate(-mr / 2, -mr / 2);
for (let cy = 0; cy <= mr; cy += g / 8) {
let a = map(cy, 0, mr, 0, 360 * k);
let nr = map(noise(rn), 0, 1, 0, mr / 4);
for (let cx = 0; cx <= mr; cx += g) {
let adx = map(noise(cx, xn), 0, 1, -g / 2, g / 2);
let ady = map(noise(cx, yn), 0, 1, -g * 2, g * 2);
curveVertex(cx + adx + shx, cy + ady);
for (let j = 0; j < num; j++) {
translate(random(-w / 4, w + w / 4), random(-w / 4, w + w / 4));
let mpr = random(w/4, w/2);
let mxr = random(1, mpr / 10);
for (let k = 0; k < num; k++) {
let sq = sqrt(random(1));
fill(0, 0, random(0, 100), random(100));
rect(((sq * mpr) / 2) * cos(b), ((sq * mpr) / 2) * sin(b), pr, pr);
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));