code: function(frameData) {
          var dt = frameData.dt / 1000; // Time in s
          var oldR = this._rotation,
              vr = this._vrotation,
              ar = this._arotation;
  
          // s += v * Δt + (0.5 * a) * Δt * Δt
          var newR = oldR + vr * dt + 0.5 * ar * dt * dt;
          // v += a * Δt
          this.vrotation = vr + ar * dt;
  
          // Check if direction of velocity has changed
          var _vr = this._vrotation,
              dvr = _vr ? (_vr < 0 ? -1 : 1) : 0; // Quick implementation of Math.sign
          if (this.__oldRotationDirection !== dvr) {
              this.__oldRotationDirection = dvr;
              this.trigger("NewRotationDirection", dvr);
          }
  
          // Check if velocity has changed
          // Δs = s[t] - s[t-1]
          this._drotation = newR - oldR;
          if (this._drotation !== 0) {
              this.rotation = newR;
              this.trigger("Rotated", oldR);
          }
      }
docs: /*
  s += v * Δt + (0.5 * a) * Δt * Δt
  v += a * Δt