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.
Normal human beings, would just have done something like this: for(c.width=99,i=18;i;x.stroke(new Path2D('M'+[4+i,47-i,14,4,43,7,A=43-S(t=S(t*2))*i/.6,B=7+C(t)*i/.3,A+9,B+1,52,8,80,11,83+i,53-i])),x.fillText('๐งโโ๏ธ',A,B))i-=9
Some might even put in the effort to test their code: for(c.width=99,i=18;i;i%2&&x.fillText('๐',A,B-2))i-=9,x.stroke(new Path2D('M'+[4+i,47-i,14,4,43,7,A=43-S(t=S(t*2))*i/.6,B=7+C(t)*i/.3,A+9,B+1,52,8,80,11,83+i,53-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)