Last week, in a blog post, Google said that O3D is switching from a plug-in project into a Javascript library that functions atop WebGL. Supported by the Khronos Group, WebGL employs the current OpenGL desktop graphics interface to hardware-accelerate 3D inside the browser.
The move, first sounded off by CNET, has the capability to simplify the effort to bring hardware-expedited 3D graphics to the Web, a concept that has appeal to those trying to refashion it as a foundation for applications such as games. However, it also means the functioning–if experimental–O3D technology is going back to the drawing board for a while.
“We did not assumed this decision lightly. In initial discussions we had about WebGL, we were concerned that JavaScript would be too slow to drive a low-level API like OpenGL and we were confident that a higher level approach like the O3D scene graph would yield better results. We were also cognizant of the lack of installed OpenGL drivers on many Windows machines, and that this could hamper WebGL’s adoption,” Matt Papakipos, Engineering Director, and Vangelis Kokkevis, Software Engineer at Google, wrote.
Google says that, when O3D was launched a year ago, it was worried that Javascript would not be speedy enough to drive a low-level API like OpenGL — and that so few Windows machines offer OpenGL drivers. Hence, O3D would be dispensed out as a browser plugin, which would ensure that apps written for it were as fast as possible.
This approach has one major advantage, performance, but several disadvantages. The biggest is that the need for a plugin would mean adoption would be very slow. But Javascript performance has improved significantly in recent months, with the introduction of new browsers from Mozilla and Opera and the continued evolution of Chrome, and in March, Google itself introduced an open source project – dubbed ANGLE – that lets WebGL work in tandem with Microsoft’s DirectX APIs.
Luckily for the venture, the top notch five browser creators–Microsoft, Mozilla, Google, Apple, and Opera–all are making significant improvements in JavaScript execution speed.
Meanwhile, WebGL moved from a project planned by Mozilla to well on its way of becoming a standard. Of course, there is another obstacle at hand — and that too is down to the fact that it is backed by all major browser manufacturers with the sole exception of, who else, Microsoft. The new O3D would not work with Internet Explorer, which lacks support for WebGL.
Asked in an interview this week about Microsoft’s WebGL stance, Internet Explorer General Manager Dean Hachamovitch said, “I think it is different markup,” meaning something not universally supported on browsers. “You are telling developers, ‘Go write something else.’”
To crack this problem, Google will turn once again to Chrome Frame, the plug-in it devised to add HTML5 to Internet Explorer. Chrome Frame does not include WebGL support, but Google indicates it soon will.
Thanks to the ANGLE project, which is designed to make WebGL work with DirectX, and boosted by increases in JavaScript performance, Google has now decided to get behind WebGL even more, but not in detriment of O3D. While the plug-in and the current APIs would not see much development anymore, Google is working on a JavaScript equivalent.
“The JavaScript implementation of O3D is still in its infancy, but you can find a copy of it on the O3D project site and see it running some of the O3D samples from a WebGL enabled browser,” the duo software engineers announced. “Because browsers lack some requisite functionality like compressed asset loading, not all the features of O3D can be implemented purely in JavaScript. We plan to work to give the browser this functionality, and all capabilities necessary for delivering high-quality 3D content,” they added.
“I spent a lot of time learning and developing for O3D and now I got stabbed in the back. Very disappointing,” said one O3D programmer, Angelo Franco, in a mailing list message. He did back down a bit, though, adding later, “Please keep up the good work with the JavaScript library. For sure, I will continue to use it, despite the WebGL.”
Google’s O3D plug-in and its source code will continue to be available for at least a year, but after a maintenance roll out, Google will discontinue development.