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.
It's particle physics, but the collisions are with implicit volumes. So rather than checking against a specific object, each pixel is intersected with the circle, if the pixel is filled and intersects, then it contributes velocity to the particle along the collision normal (the vector between the pixel and the point), the deeper the intersection based on the radius the greater the contribution... this is not correct at all and creates lots of phantom momentum, but is very simple and shares the code with drawining the screen.
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)