         sin = Math.sin(phi)
         # by Rodrigues' rotation formula
         rotated = vec3.add(vec3.expand(axisz, cos), vec3.expand(vec3.cross(axisx, axisz), sin))
-        axisy = vec3.cross(axisx, rotated)
+        axisy = vec3.cross(rotated, axisx)
         [axisx, axisy, rotated]
 
     rotater.left = (frame, step) ->

        sin = Math.sin(phi)
        # by Rodrigues' rotation formula
        rotated = vec3.add(vec3.expand(axisz, cos), vec3.expand(vec3.cross(axisy, axisz), sin))
        axisx = vec3.cross(axisy, rotated)
        [axisx, axisy, rotated]

    rotater.right = (frame, step) ->

        sin = Math.sin(phi)
        # by Rodrigues' rotation formula
        rotated = vec3.add(vec3.expand(axisz, cos), vec3.expand(vec3.cross(axisy, axisz), sin))
        axisx = vec3.cross(rotated, axisy)
        [axisx, axisy, rotated]

    rotater
