Brace yourself for the 3D Web.
At least, if you use Firefox, Chrome, Opera, or Safari. Those are the browsers that support--though sometimes only in developer-preview editions--a technology called WebGL. And today, the Khronos Group standardizing the graphics interface announced that WebGL 1.0 is finished.
Although WebGL has significant momentum, its prospects are significantly hampered by Microsoft's lack of enthusiasm. When I've asked Microsoft its feelings about it, the company expressed a preference for "using existing standards to build 3D today," pointing as an example to the Sky Beautiful demo site.
Granted, Microsoft has bit off a lot trying to modernize Internet Explorer with IE9, but WebGL is arguably a pretty important piece of the Web technology platform. Perhaps some reluctance can be explained by the fact that WebGL is based on the OpenGL graphics interface used on Mac OS X, Windows, iOS, and Android and that competes with Microsoft's DirectX.
If there's enough interest among Web developers, though--and those developers long have shown a fondness for IE alternatives--Microsoft could conclude that WebGL support is as important as other Web technologies such as Scalable Vector Graphics that only now are top priorities. WebGL is one of a suite of developing Web technologies that are gaining clout as a foundation for Web-based applications.
Jay Sullivan, Mozilla's vice president of products, thinks there's enough browser support already to attract programmers. "Between Firefox and Chrome, people will build stuff," he said in an interview.
And WebGL has some compelling possibilities. Microsoft's own Fish IE Tank demo, used to show off IE9's hardware acceleration, runs vastly faster in a Jeff Muizelaar's Fish IE demo rewritten to use WebGL--although not using its 3D features.
And Facebook sees WebGL's performance advantages for its nascent JSGameBench speed test. "Implement WebGL!" pleads Facebook's Bruce Rogers in a blog post about WebGL's benefits. "WebGL powerfully expands the design space available to Web developers and is not just for 3D content. Don't force developers and users to abandon their browser of choice in order to experience great Web content."
WebGL no doubt will enable Web developers to put annoying rotating cubes on their sites. But there are plenty of serious uses for the interface as well.
For example, the hardware-accelerated 3D graphics of WebGL are well suited to many games--not necessarily top-end first-person shooters, but certainly for maze exploration, rollercoaster rides, and races. Also, WebGL is good for bringing a 3D element to Google or Bing maps.
WebGL, though, is a very low-level interface many programmers can't be expected to master, especially in the sometimes lightweight world of casual online gaming. Happily, libraries are sprouting up to automate its usage.
"There is already a thriving middleware ecosystem around WebGL to provide a wide diversity of Web developers the ability to easily create compelling 3D content for WebGL-enabled browsers," Khronos said. "These tools include: C3DL, CopperLicht , EnergizeGL, GammaJS, GLGE, GTW, O3D, OSG.JS, SceneJS, SpiderGL, TDL, Three.js and X3DOM."
Some big competition for WebGL comes from Adobe Systems' Flash, which already is a major force in online gaming. Flash has lacked true 3D support, but that's changing. In the last week, Adobe released a preview version of Molehill, its 3D programming interface, in a Flash Player 11 "incubator build."
And like WebGL, Molehill is accompanied by higher-level libraries and is useful for more than just 3D.
"The power of Molehill does not stop [at] 3D," said Thibault Imbert, a product manager for Flash runtimes, on the Molehill announcement. "You should think about it as a new rendering engine tied to the GPU [graphics processing unit]. If you architect your application, Web site, or game correctly (by using classic techniques to leverage the GPU) you will be able to use Molehill in many situations, [including] 2D on GPU."
Another challenge will be reaching mobile browsers. It's coming though, as shown with work in the mobile version of Firefox, for example. With Android and iOS also supporting OpenGL ES 2.0, it should be mostly a matter of time before those influential operating systems' mobile browsers add the feature.
With WebGL version 1.0 released, though, and companies like mobile-phone chipmaker Qualcomm endorsing it, WebGL comes with a greater assurance of stability and support. Now it's up to allies and developers to build WebGL a full-fledged programming ecosystem.