createCanvas(windowWidth, windowHeight);
for (let i = 0; i <= 25; i++) {
inner.push(180 + random(30, 300))
speed.push(random(0.03, 0.08))
for (let j = 0; j <= 120; j++) {
let color = ["#db3a34", "#363537", "#82DDF0", "#2FBF71", "#f9e900", "#fc440f", "#1f01b9", "#0e131f", "#ffcae9", "#56e39f"]
translate(width / 2, height / 2)
for (let i = 0; i <= 10; i++) {
inner[i] = lerp(inner[i], newinner[i], speed[i])
strokeW[i] = lerp(strokeW[i], newstrokeW[i], speed[i])
ringPlaceNew[i] = lerp(ringPlaceNew[i], ringPlace[i], random(speed))
for (let i = 0; i <= 25; i++) {
rotate(frameCount / (20 / i))
for (let j = 0; j <= 30; j++) {
if (frameCount % 100 == 1) {
circle(ringPlaceNew[i] / 2 * sin(j * 12), ringPlaceNew[i] / 2 * cos(j * 12), ddd[j])
translate(-width / 2, -height / 2)
for (let i = 0; i <= 25; i++) {
newinner[i] += (width/2-mouseX+(-height/2+mouseY))*i/1000
line(0, 0, 40 * sin(180 - hour() * 6), 40 * cos(180 - hour() * 6))
line(0, 0, 50 * sin(180 - minute() * 6), 50 * cos(180 - minute() * 6))
line(0, 0, 60 * sin(180 - second() * 6), 60 * cos(180 - second() * 6))
rotate(frameCount / offSpeed[0])
arc(0, 0, inner[3], inner[3], (0 * 15 - 90), (-90 + (hour() + 12) * 15))
rotate(frameCount / offSpeed[1])
arc(0, 0, inner[2], inner[2], (0 * 15 - 90), (-90 + hour() * 15))
rotate(frameCount / offSpeed[2])
arc(0, 0, inner[1], inner[1], (0 * 6 - 90), (-90 + minute() * 6))
rotate(frameCount / offSpeed[3])
arc(0, 0, inner[0], inner[0], (0 * 6 - 90), (-90 + second() * 6))
rotate(-(hour() * 15 + (minute() / 60) * 15))
rotate(frameCount / offSpeed[5])
arc(0, 0, inner[4], inner[4], (2 * 15 - 90), (10 * 15 - 90));
rotate(frameCount / offSpeed[6])
arc(0, 0, inner[5], inner[5], (12 * 15 - 90), (18 * 15 - 90));
arc(0, 0, inner[6], inner[6], (18 * 15 - 90), (2 * 15 - 90));
arc(0, 0, inner[6], inner[6], (10 * 15 - 90), (12 * 15 - 90));
rotate(-((hour() + 12) * 15 + (minute() / 60) * 15))
rotate(frameCount / offSpeed[8])
arc(0, 0, inner[8], inner[8], (20 * 15 - 90), (8 * 15 - 90))
rotate(frameCount / offSpeed[9])
arc(0, 0, inner[7], inner[7], (9 * 15 - 90), (18 * 15 - 90))
arc(0, 0, inner[9], inner[9], (8 * 15 - 90), (9 * 15 - 90))
arc(0, 0, inner[9], inner[9], (18 * 15 - 90), (20 * 15 - 90))
function mousePressed() {
for (let i = 0; i <= 25; i++) {
newstrokeW[i] = (i + 1) * 15
newinner[i] = newinner[i - 1] + newstrokeW[i - 1] * 0.9
ringPlace[i] = 220 + i * 80
let a = [int(random(2)), int(random(2)), int(random(2)), int(random(2))]
for (let i = 0; i < width; i += grider) {
for (let j = 0; j < height; j += grider) {
if ((i / grider % 2 == a[0]) && (j / grider % 2 == a[1])) {
} else if ((i / grider % 2 == a[2]) && (j / grider % 2 == a[3])) {
function mouseReleased() {
for (let i = 0; i <= 10; i++) {
for (let j = 0; j <= 120; j++) {
newddd[j] = random(2, 5);
for (let j = 0; j <= 120; j++) {
ddd[j] = lerp(ddd[j], newddd[j], 0.1)