docs: function fly(cam, rotPad, movePad){
      var xRot = Qt.fromAxisAngle(V3_(1, 0, 0), rotPad.x);
      var yRot = Qt.fromAxisAngle(V3_(0, 1, 0), rotPad.y);
      var zRot = Qt.fromAxisAngle(V3_(0, 0, 1), rotPad.z);
      var camX = Qt.rotate(cam.rot, V3_(1, 0, 0));
      var camY = Qt.rotate(cam.rot, V3_(0, 1, 0));
      var camZ = Qt.rotate(cam.rot, V3_(0, 0, 1));
      return Camera(
        V3.add(V3.add(V3.add(
          cam.pos,
          V3.scale(movePad.x, camX)),
          V3.scale(movePad.y, camY)),
          V3.scale(movePad.z, camZ)),
        Qt.multiply(Qt.multiply(Qt.multiply(
          cam.rot,
          xRot), yRot), zRot));
    }