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.
The math in R() ensures the farthest voxels from the viewer are drawn first regardless of rotation. If a 2**X by 2**X grid is labeled the obvious way (with the numbers 0 to 2**(2*X)-1 left-to-right, top-to-bottom) and n is the index of a given corner, then i^n maps i to an ordering that starts at n's corner and ends at the opposite corner. Rectangles of 2**X by 2**Y might also work. The math in R() is somewhat obfuscated for golfing purposes.
n=[0,3,12,15][0];for(i=0;i<16;)console.log(i++^n)// try these 4 corner indices
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)