WebGL framework