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 draw #default one pixel at a time and treat (x,y) of the pixels as angles (a,b) in spherical coordinates. Spherical to 3d cartesian is x=r*sin(a)*sin(b), y=r*cos(a)*sin(b), z=r*cos(b). Projecting 3d to 2d cartesian is x'=x/(2+y/r), y'=z/(2+y/r), and scaling pixel size by 1/(2+y/r)**2 so stuff in the back is smaller.
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)