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 Larger Than Life "Bugs" rule R5,C0,M1,S34..58,B34..45,NM. You can introduce more entropy by adding spaces to the code (to restart) which causes i&1 to be combined with existing state in the rule's dead space.
This uses a sliding window to efficiently compute the sum of arbitrary radi Moore neighbourhoods (i.e box blur kernels). It naturally wraps to the next line giving it a kind of twisted toroidal space, which takes less code and is more efficient since it is only necessary to initialise the sliding window once per dimension: O(2n+2r). The FPS is half of what is displayed since every other frame is used to sum the transposed sum of x.
Other sized w must be a power of 2 and i must be at least w**2+r+1 (r=neighbourhood radius) to allow the sliding window to correctly initialise, otherwise a bad sum will propagate throughout the grid usually causing everything to die.
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)