🔬 These three lines shape the melting clock outline. Each wob() call is multiplied by a small number (20, 10, 15, 10, 10, 15). What happens if you double all of them so the blob warps far more violently?
bezierVertex(0+wob(3)*20,-120,140+wob(4)*10,-90,150,-30);
bezierVertex(170+wob(5)*15,40,40+wob(6)*10,80,10,150);
bezierVertex(-30+wob(7)*10,190,-130+wob(8)*15,120,-150,-40);
🔬 This loop draws all 12 hour numbers. What happens if you change i<=12 to i<=6, so only half the numbers are drawn? What if wob(20+i)*18 becomes wob(20+i)*60 for way more droop?
fill(80,20,40);for(let i=1;i<=12;i++){let a=TWO_PI*i/12-HALF_PI;let sl=wob(20+i)*18;let r=70+sl;let x=cos(a)*r,y=sin(a)*(60+sl*0.4);push();translate(x,y+max(0,sl));scale(1,1+abs(sl)/30);textSize(20);text(i,0,0);pop();}
function drawClock(){push();translate(width/2+wob(1)*15,height/2-40+wob(2)*8);scale(1.2,1.1);fill(255,235,210,235);stroke(255,220,190);strokeWeight(2);
beginShape();
vertex(-140,-80);
bezierVertex(0+wob(3)*20,-120,140+wob(4)*10,-90,150,-30);
bezierVertex(170+wob(5)*15,40,40+wob(6)*10,80,10,150);
bezierVertex(-30+wob(7)*10,190,-130+wob(8)*15,120,-150,-40);
endShape(CLOSE);
noStroke();fill(240,220,210);ellipse(0,0,220,150);
fill(80,20,40);for(let i=1;i<=12;i++){let a=TWO_PI*i/12-HALF_PI;let sl=wob(20+i)*18;let r=70+sl;let x=cos(a)*r,y=sin(a)*(60+sl*0.4);push();translate(x,y+max(0,sl));scale(1,1+abs(sl)/30);textSize(20);text(i,0,0);pop();}
let s=second(),m=minute(),h=hour()%12;
let sa=TWO_PI*s/60-HALF_PI,ma=TWO_PI*(m/60+s/3600)-HALF_PI,ha=TWO_PI*((h+m/60)/12)-HALF_PI;
hand(90,sa,40,color(220,80,90),2);hand(80,ma,60,color(130,40,70),4);hand(55,ha,80,color(90,30,60),5);
fill(80,20,40);noStroke();ellipse(0,0,10,10);pop();}