code: function Vivus(element, options, callback) {
    setupEnv();
  
    // Setup
    this.isReady = false;
    this.setElement(element, options);
    this.setOptions(options);
    this.setCallback(callback);
  
    if (this.isReady) {
      this.init();
    }
  }
docs: Vivus
  Beta version
  
  Take any SVG and make the animation
  to give give the impression of live drawing
  
  This in more than just inspired from codrops
  At that point, it's a pure fork.
   
  Class constructor
  option structure
  type: 'delayed'|'sync'|'oneByOne'|'script' (to know if the items must be drawn synchronously or not, default: delayed)
  duration: <int> (in frames)
  start: 'inViewport'|'manual'|'autostart' (start automatically the animation, default: inViewport)
  delay: <int> (delay between the drawing of first and last path)
  dashGap <integer> whitespace extra margin between dashes
  pathTimingFunction <function> timing animation function for each path element of the SVG
  animTimingFunction <function> timing animation function for the complete SVG
  forceRender <boolean> force the browser to re-render all updated path items
  selfDestroy <boolean> removes all extra styling on the SVG, and leaves it as original
  
  The attribute 'type' is by default on 'delayed'.
  - 'delayed'
  all paths are draw at the same time but with a
  little delay between them before start
  - 'sync'
  all path are start and finish at the same time
  - 'oneByOne'
  only one path is draw at the time
  the end of the first one will trigger the draw
  of the next one
  
  All these values can be overwritten individually
  for each path item in the SVG
  The value of frames will always take the advantage of
  the duration value.
  If you fail somewhere, an error will be thrown.
  Good luck.
  
  @constructor
  @this {Vivus}
  @param {DOM|String}   element  Dom element of the SVG or id of it
  @param {Object}       options  Options about the animation
  @param {Function}     callback Callback for the end of the animation