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.
Full speed 138: p=i=>99*[0,0,3-i,1,6-i,2,i-5,i-7][~~i] for(c.width|=i=8,x.rotate(7);i--;m+7&7&&x.fillRect(p(m?i:T=t*5%8)+700,p(m?6-i&7:8-T),90,90))m=~~T-i
Nice! There is some flicker but you saved enough bytes to fix p=i=>99*[0,0,3-i,1,6-i,2,i-5,i-7][~~i];for(c.width|=i=8,x.rotate(7),T=8*t%8;i--;m+7&7&&x.fillRect(p(m?i:T)+450,p(m?6-i&7:8-T),90,90))m=~~T-i
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)