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.
We're restricted to 140 unicode characters, not 140 bytes. I exploited UTF-16 to encode two ascii values per UTF-16 codepoint. Since the overhead is less than 70 bytes, I can exceed the 140 ascii char limit. The characters 㬻 and ⼯ are fun exercises for the reader.
sigveseb, admittedly I didn't think of that case. Partial dweet initial loops are easily fixed wrapping the payload in {} (or any other syntax error) at the cost of 1.5 codepoints (㬻 has one free byte).
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)