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.
Nothing new, it has all been done before. I just had to try again :-) #twisterfor(TW=I=>S(t*3+r+I*1.6)*60,c.width=y=700;d=TW(r=y/255),y-=2;)for(i=4;n=TW(i),m=TW(i+1),b=255*(m-n)/70,x.fillStyle=R(i%2?0:b,0,i%2&&b),i--;)n<m&&x.fillRect(n+d+350,y,m-n,2)
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)