HTML5 / Canvas / SVG is good for static images, but not for a 3D application that allows you to navigate.
HTML5 and SVG do not implement three-dimensional mechanisms, so creating such a scene can quickly become terribly difficult. A canvas is just some kind of surface that will require further logic or drawing methods on it.
Another consideration is that different browsers can have very different performance, for example (at the moment I'm writing this answer), comparing Chromium and Firefox, it is better to move one huge image, while the other is better to move thousands of small ones.
WebGL is an OpenGL simplification for the web that uses a graphics card to render complex scenes, such as games. This will allow real 3D and realistic rendering. The price is complex: it takes some time to learn and apply correctly.
For simple 3D effects and styles, WebGL is redundant, and SVG will be a simpler alternative. For real 3D, WebGL gives you full power.
source share