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.
Here are notation-only moves for(c.width|=f=g=>(k%16&&1+k%2*.414)*g(a=.7854*(k+y*2/(1+1e3**(t%1*4-i)))),k=57;i=--k>>4;x.fillRect(960+700*X/z-s,540+700*Y/z-s,s*=2,s))[X,Y,Z]=[y=i-2,X=f(C),f(S),y,X].slice(t%3),z=3+Z,s=99/z/z
That's not what technically means. You have a mental model that only permits sides to move, and you have that model because adding middle rotations would be notationally redundant in that model. This does not mean middle rotations are somehow impossible or that they definitely consists of two side rotations.
Still seems like this is a matter of perspective. You are chosing a perspective in which the core is always fixed, even though the motion I am describing specifically involves holding the two sides fixed and rotating the core... In my reference frame the core is rotating. So what if the core contains more parts than the side pieces when you take the cube apart?
maybe they dont actually move like this... but they should!
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)