code: function (dt) {
      var data = this.data;
      var acceleration = data.acceleration;
      var easing = data.easing;
      var velocity = this.velocity;
      var rollAxis = data.rollAxis;
      var pitchAxis = data.pitchAxis;
      var el = this.el;
      var gamepad = this.getGamepad();
  
      // If data has changed or FPS is too low
      // we reset the velocity
      if (dt > MAX_DELTA) {
        velocity[rollAxis] = 0;
        velocity[pitchAxis] = 0;
        return;
      }
  
      velocity[rollAxis] -= velocity[rollAxis] * easing * dt / 1000;
      velocity[pitchAxis] -= velocity[pitchAxis] * easing * dt / 1000;
  
      var position = el.getAttribute('position');
  
      if (data.enabled && data.movementEnabled && gamepad) {
        var dpad = this.getDpad(),
            inputX = dpad.x || this.getJoystick(0).x,
            inputY = dpad.y || this.getJoystick(0).y;
        if (Math.abs(inputX) > JOYSTICK_EPS) {
          velocity[pitchAxis] += inputX * acceleration * dt / 1000;
        }
        if (Math.abs(inputY) > JOYSTICK_EPS) {
          velocity[rollAxis] += inputY * acceleration * dt / 1000;
        }
      }
  
      var movementVector = this.getMovementVector(dt);
  
      el.object3D.translateX(movementVector.x);
      el.object3D.translateY(movementVector.y);
      el.object3D.translateZ(movementVector.z);
  
      el.setAttribute('position', {
        x: position.x + movementVector.x,
        y: position.y + movementVector.y,
        z: position.z + movementVector.z
      });
    }
docs: *****************************************************************
  Movement