code: function() {
              var _this = this;
              requestAnimationFrame(function() {
                  _this.runAnimation();
              });
  
              // Only redraw when necessary
              if (!this._redrawCanvas) {
                  return;
              }
              this.calculateViewport();
              this._redrawCanvas = false;
  
              //this.adjustForPixelRatio();
  
  
              // Clear drawing area so transparency works
              this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
  
              // Redraw current image
              if (this._image instanceof IMSoftcrop.Image) {
                  this._image.redraw({
                      guides: this._guidesToggle.on,
                      focuspoints: this._focusPointsToggle.on
                  });
  
                  // Redraw all crop previews
                  var softcrops = this._image.getSoftCrops();
                  for (var n = 0; n < softcrops.length; n++) {
                      if (softcrops[n] instanceof IMSoftcrop.Softcrop) {
                          this._renderUpdatedPreview(softcrops[n]);
                      }
                  }
              }
  
              if (this._debug) {
                  this._renderDebug();
              }
          }
docs: Run animation