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.
Each char is encoded as 5 bits (fitting 4 into each 20bit surrogate pair), representing the numeric difference between the previous and current ASCII codepoint. Since 5 bits only provides 32 values this is limited to shifting -16 to +15 codepoints each char, this makes it rather challenging to write code with since you can only reach a max of 1/3 of the useful ASCII codepoints at a time.
Here's the encoder if you are looking for a very contrived adventure: f=(s,x=96,b=16,o='')=>{for(p=0,i=0;i<s.length;){x+=d=s.charCodeAt(i)-x;p|=d+b<<((i%4^2)*5);++i%4?0:p=o+=String.fromCodePoint(p+0x10000)}return o;}; f('helloooworld')
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)