3D web environments are still in their infancy. In fact the HTML 5 canvas element does not have a 3d context and the most popular way to run 3D graphics in a web browser, WebGL, is not yet considered a web standard. WebGL is still very new. It originated as an HTML Canvas 3D extension which was retired in favor of a WebGL standard. It was developed by the Khronos group along with several other top technology companies and is based on the OpenGL ES 2.0 standard. This essentially means that any 3D environment that can be rendered on a mobile device can be rendered within your browser. WebGL is supported in every major browser except for IE 9. Thankfully there is a third party utility that will enable WebGL in IE9 (http://iewebgl.com/).
If enabling third party utilities is not an option, primative 3D graphics can still be run on IE 9 using the HTML canvas element. This process is considered psuedo-3D because the environment is actually rendered in the 2d canvas context in combination with ray casting to simulate a 3D environment. IE9 does have full hardware acceleration and will use the computers GPU to render graphics and an excellent frame rate. The frame rate at which IE9 can render 2d scenes is impressive, besting both Firefox and Chrome in many 2d benchmarks, but the lack of any native 3D solution for the browser is becoming a greater concern. Microsoft has already stated that IE10 will follow in the footsteps of IE9 in not supporting WebGL without the help of third party utilities.
Whether you are using WebGL or not, there are several mature graphics frameworks written in JavaScript to render 3D graphics. Three.js is an open source solution that can target both WebGL and the Canvas renderer drawing the same scene in either format. In my next post I will demonstrate creating a basic 3D application that can be rendered in both the Canvas 2d and WebGL context illustrating the differences between the two renderers.