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.
c.width=-1 is a trick I saw here (probably from u/pavel) that makes width=300 pixels. I used throw(c.width) to see "300". So it's a compact form to create a medium-low resolution image.
300px is the default canvas width. What's particularly odd is that while setting negative numbers causes default value, everything else that ordinarily coerces to NaN will result in 0. e.g throw Number({}).toString() // NaNc.width={}; throw c.width.toString() // 0
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)