WebGL ES
WebGL is based on the OpenGL ES 2.0 specification. If you've done any 3D programming for modern mobile devices, this specification should be very familiar. WebGL is a set of JavaScript bindings for OpenGL ES. You might also find the spec to be somewhat familiar if you've used JOGL, the Java bindings for OpenGL.
OpenGL ES 2.0 is a modern 3D API. It dispenses entirely with the fixed-function pipeline and does everything using shaders. This design makes it quite well-suited to integration with JavaScript, because very little work needs to happen in the (relatively slow) JavaScript code. You provide vertex and fragment shaders to the WebGL context as OpenGL Shading Language (GLSL) programs, which are compiled and run on the GPU. The JavaScript code then just needs to tell the GPU which programs to run on which data, which isn't particularly taxing. Even purely interpreted JavaScript is likely to be fast enough.
The downside of this approach is that writing a WebGL program takes quite a lot of effort. You need a lot of boilerplate code just to get a simple demo working. By contrast, earlier APIs such as VRML made it easy to do simple things, but didn't scale up to very complex applications.
WebGL scales quite nicely once you get away from simple demos. My first encounter with it was when I visited Google London in February 2010, where I saw a (now public) demo of Quake 2 running entirely in Google Chrome with no browser plug-ins, and the whole display was 3D-accelerated.