u(t) is called 60 times per second.
t: Elapsed time in seconds.
S: Shorthand for Math.sin.
C: Shorthand for Math.cos.
T: Shorthand for Math.tan.
R: Function that generates rgba-strings, usage ex.: R(255, 255, 255, 0.5)
c: A 1920x1080 canvas.
x: A 2D context for that canvas.
I think these would do better if they showed up all at once. I tried to muck around but your q logic is hard to compress for(k=99,m=t?0:5e4;X=S(m),Y=S(m*m--);x.fillRect(k*q*X,630-i-q/Y,q*q*m/9e5,i/Y))i=m%k,x.fillStyle=R(q=k/(1+S(k*X)),q=q%9*i,q-Y*k,k*Y*Y/q)
Thank you everyone for the compliments! And for bearing with me as I try different alternatives. And especially to u/pavel and others who have helped with coding/golfing.
u(t) is called 60 times per second.
t: elapsed time in seconds.
c: A 1920x1080 canvas.
x: A 2D context for that canvas.
S: Math.sin
C: Math.cos
T: Math.tan
R: Generates rgba-strings, ex.: R(255, 255, 255, 0.5)