code: function renderDaemon() {
  			var i, node, media,
  				keepRunning = false;
  
  			rafId = null;
  
  			if (preCallbacks.length) {
  				keepRunning = true;
  				for (i = 0; i < preCallbacks.length; i++) {
  					preCallbacks[i].call(seriously);
  				}
  			}
  
  			if (sources && sources.length) {
  				keepRunning = true;
  				for (i = 0; i < sources.length; i++) {
  					node = sources[i];
  
  					media = node.source;
  					if (node.lastRenderTime === undefined ||
  							node.dirty ||
  							media.currentTime !== undefined && node.lastRenderTime !== media.currentTime) {
  						node.dirty = false;
  						node.setDirty();
  					}
  				}
  			}
  
  			for (i = 0; i < targets.length; i++) {
  				node = targets[i];
  				if (node.auto && node.dirty) {
  					node.render();
  				}
  			}
  
  			if (postCallbacks.length) {
  				keepRunning = true;
  				for (i = 0; i < postCallbacks.length; i++) {
  					postCallbacks[i].call(seriously);
  				}
  			}
  
  			//rafId may have been set again by a callback or in target.setDirty()
  			if (keepRunning && !rafId) {
  				rafId = requestAnimationFrame(renderDaemon);
  			}
  		}
docs: /*
  runs on every frame, as long as there are media sources (img, video, canvas, etc.) to check,
  dirty target nodes or pre/post callbacks to run. any sources that are updated are set to dirty,
  forcing all dependent nodes to render