add 3D renderer setup, revert to canvas if no WebGL support