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 had this failed attempt back in 2018: for(i=3e4;i--;x.fillRect((C=i%213)*9,(T=i/213|0)*9,9,9))x.fillStyle=R((C%21+1)**T%255,T**(C%21+1)%255) for(i=9;i--;)x.drawImage(c,X=400+i*100,400,50,200,X-9,400,50,200)
still trying to figure out why the other one had artifacts and this one seems not to, maybe something to do with randomizing the background you mentioned
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)