if (frameCount % 3 == 0) {
rect(0, 0, width, height);
translate(width / 2, height / 2);
for (let i = 0; i < seconds; i++) {
let circle = 180 + 50 * sin(millis() * i * 0.00005);
let r = map(circle, 150, 250, 3, 2);
fill(54, 65, 220, seconds);
ellipse(circle * cos(i), circle * sin(i), r, r);
stroke(54, 65, 220, seconds * 2);
line(circle * cos(i), circle * sin(i), circle * cos(i - 1), circle * sin(i - 1));
for (let i = 0; i < minutes; i++) {
let circle = 150 + 40 * sin(millis() * i * 0.00003);
let r = map(circle, 150, 250, 4, 3);
fill(60, 150, circle * 2, minutes);
ellipse(circle * cos(i), circle * sin(i), r, r);
stroke(60, 150, circle * 2, minutes * 2);
line(circle * cos(i), circle * sin(i), circle * cos(i - 1), circle * sin(i - 1));
for (let i = 0; i < hours; i++) {
let circle = 100 + 30 * sin(millis() * i * 0.00002);
let r = map(circle, 150, 250, 5, 4);
fill(80, 226, circle * 3, hours);
ellipse(circle * cos(i), circle * sin(i), r, r);
stroke(80, 226, circle * 3, hours * 2);
line(circle * cos(i), circle * sin(i), circle * cos(i - 1), circle * sin(i - 1));
function drawTimeAsText() {
text(nf(hours, 2) + ": " + nf(minutes, 2) + ": " + nf(seconds, 2), 210, 275);