src/vivus.js
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();
  }
}
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();
  }
}
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 ( ) ; } }
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
Vivus Beta version