docs: function Simulation(config)
  {
  	if ( config === void 0 ) config = {auto: true};
  
  	this._scene = null;
  	this._renderer = null;
  	this._camera = null;
  
  	var usingAFrame = window.AFRAME && document.querySelector('a-scene');
  
  	if(usingAFrame)
  	{
  		var ascene = document.querySelector('a-scene');
  		this._scene = ascene.object3D;
  		this._renderer = ascene.renderer;
  
  		var acamera = document.querySelector('a-camera');
  		if(acamera)
  			{ this._camera = acamera.object3D; }
  	}
  	else if (window.altspace && altspace.inClient)
  	{
  		this._scene = new THREE.Scene();
  		this._renderer = altspace.getThreeJSRenderer();
  		this._camera = new THREE.PerspectiveCamera(); // TODO: change from shim to symbolic
  	}
  	else {
  		this._setupWebGL();
  	}
  
  	if(config.auto && !usingAFrame)
  		{ this.loop(); }
  }