let angleSepMin, angleSepMax, angleStepMin, angleStepM;
let url = ["https://coolors.co/fec5bb-fcd5ce-fae1dd-f8edeb-e8e8e4-d8e2dc-ece4db-ffe5d9-ffd7ba-fec89a", ];
colorMode(HSB, 360, 100, 100, 100);
palette = shuffle(createPalette(random(url)), true);
let d = width - 2 * offset;
for (let i = 0; i < 1; i++) {
recursiveRect(x, y, d, this);
function recursiveRect(x, y, d, g) {
let step = int(random(1, 4));
for (let j = 0; j < step; j++) {
for (let i = 0; i < step; i++) {
if (random(100) < 90 && w > width / 3) {
recursiveRect(nx, ny, w, g);
rect(nx + w / 2, ny + w / 2, w - 10, w - 10);
circularGraphics(nx + w / 2, ny + w / 2, w * sqrt(2));
function circularGraphics(cx, cy, rMax) {
let colors = shuffle(createPalette(random(url)), true);
let a = int(random(1, 5));
let b = int(random(1, 5));
let c = int(random(1, 5));
let d = int(random(1, 5));
angleStepMin = min(c, d);
angleStepMax = max(c, d);
let rSep = int(random(2, 7));
for (let r = rMax / 2; r > 0; r -= rMax / rSep) {
let isFirstBigger = random() > 0.5;
let angleNum = int(random(angleSepMin, angleSepMax)) * int(random(angleStepMin, angleStepMax));
let angleWidth = (2 * PI * (isFirstBigger ? r : r2)) / angleNum;
let angleStep = 360 / angleNum;
let f = int(random(2, 5));
drawingContext.shadowColor = color(0, 0, 0, 10);
drawingContext.shadowBlur = width / 20;
if (r < rMax / 2 * 0.8) drawingContext.shadowBlur = 0;
drawingContext.shadowBlur = angleWidth / 3;
for (let angle = startAngle; angle < startAngle + 360; angle += angleStep) {
let x = cos(angle) * (isFirstBigger ? r : r2);
let y = sin(angle) * (isFirstBigger ? r : r2);
for (let e = 1; e > 0; e -= 1 / f) {
ellipse(0, 0, angleWidth, angleWidth);
startAngle = random(360);
angleNum = int(random(angleSepMin, angleSepMax)) * int(random(angleStepMin, angleStepMax));
angleWidth = (2 * PI * (isFirstBigger ? r2 : r)) / angleNum;
angleStep = 360 / angleNum;
for (let angle = startAngle; angle < startAngle + 360; angle += angleStep) {
let x = cos(angle) * (isFirstBigger ? r2 : r);
let y = sin(angle) * (isFirstBigger ? r2 : r);
for (let e = 1; e > 0; e -= 1 / f) {
ellipse(0, 0, angleWidth, angleWidth);
function createPalette(_url) {
let slash_index = _url.lastIndexOf('/');
let pallate_str = _url.slice(slash_index + 1);
let arr = pallate_str.split('-');
for (let i = 0; i < arr.length; i++) {
arr[i] = color('#' + arr[i]);