A framework for WebGL demos