Universal Appeal
Kathleen Maher
Issue: Volume 34 Issue 4: (April 2011)

Universal Appeal

In 2004, on the 10th anniversary of his unveiling of VRML, Mark Pesce wrote in an article on the 3Dtest Web site: “No one talks about virtual reality anymore, except, maybe at SIGGRAPH, NASA, or in bad science-fiction movies. But real-time 3D can be found in a few hundred million households, courtesy of Sony, Microsoft, and Nintendo. No one calls it virtual reality, because it lacks the conspicuous clumsiness of head-mounted displays and data gloves. Thankfully. But make no mistake, whether it’s the imaginary world of EverQuest, Star Wars Galaxies, or GTA3, it’s all virtual reality—a mature technology used daily by hundreds of millions, on every continent.”

Today, WebGL is bringing 3D on the Web to life in ways we could only imagine just a few years ago.




The idea of immersive 3D has had a pull on people for as long as there have been screens, or looking glasses, wardrobes, rabbit holes, or caves. Humans are just never happy with the reality they’ve got.

Around the turn of the last century, it looked as if whole new worlds were opening up via 3D on the Web. Back then, from 1997 to 2001, we at Jon Peddie Research (JPR) conducted a series of studies, which were inspired by the arrival of Macromedia’s Shockwave (since purchased by Adobe), support for 3D in a Web browser via Flash. We projected that we would see about a half billion devices capable of getting 3D on the Web by 2007. We got that right. We also expected to see the end of plug-ins, with 3D supported natively in browsers. We were a little early on that one.

Right about the same time JPR was making predictions about 3D on the Web, the Khronos Group, a new standardsbody, was coalescing out of the gaseous ball of confusion around standards for devices, especially the just-emerging smartphones. Today, the Khronos Group has a number of Application Programming Interfaces (APIs) that enable dynamic media on a wide range of devices and across operating system platforms. Their APIs are open-standard and royalty-free.

Setting Standards

The world can be divided into two kinds of people. One kind looks at smartphones and says, “This will be a great thing to have in emergencies.” The other kind says, “Hey! Can I play Quake on this thing?” There are a lot of group 2 types in the Khronos organization.

One of Khronos’ first jobs was to take the big, all-encompassing OpenGL standard and streamline it for devices—and that became the OpenGL ES standard. OpenGL ES is now the standard for consoles, mobile devices, and Apple’s OS X and iOS; PC apps are very comfortable working within the OpenGL ES envelope, as well.

The current standard in this area is OpenGL ES 2.0, which brings programmability and hardware acceleration. Because it is programmable, OpenGL ES supports the transform and lighting capabilities available to developers in OpenGL via the ability to write shaders. Essentially, the Khronos Group has been able to take the best of OpenGL and distill it into a compact API that makes 3D hardware acceleration possible on all devices that support it.



Web APIs

The next step has been to develop an API for Web browsers. The Khronos Group first announced WebGL at SIGGRAPH 2009 in New Orleans. Over the next year and a half, the group hammered out a standard designed for the next generation of Web browsers coming as a result of the work on HTML 5 being done by the W3C standards body. The two groups are not affiliated, but their work is complementary.

The WebGL working group—which includes representatives from AMD, Ericsson, Google, Mozilla, Nvidia, and Opera—has integrated almost all of OpenGL ES 2.0 into the WebGL API. Mozilla’s Vladimir Vukićević, head of the WebGL working group, says, “Web­GL tracks OpenGL ES 2.0 almost directly.”

Vukićević notes that there were some changes made because features in OpenGL ES didn’t make sense for the platform. The group opted to use JavaScript in compliance with HTML 5, so mechanical changes were made to accommodate JavaScript. Features and restrictions were added for security. And, says Vukićević, “OpenGL ES, because it’s focused on performance, leaves edge cases undefined. In WebGL, we tried to make [the ones we caught] have precise behavior.”

It is an integral part of Khronos’ mission that its APIs be cross-platform so WebGL runs everywhere. “There have been many attempts for platform portability,” acknowledges Vukićević. “What we’ve learned is that the hardware OS vendors hate cross-platform tools, but the irony is that they’re supporting HTML 5 functionality—the ultimate portability tool.” Like so many things in this world, it is as important for the time to be right as it is for the technology to be available. To this end, HTML 5 is enabling the arrival of the next generation of browsers, and in developing WebGL, the working group has been careful to ensure compatibility with HTML 5.

WebGL complies with HTML 5 in its use of the “canvas” element for graphics. The canvas element, along with video and audio, are defined as part of the HTML 5 DOM (Document Object Model). HTML 5 defines canvas as “a resolution-dependent bitmap canvas that can be used for rendering graphics, game graphics, or other visual images on the fly.” With WebGL support in browsers, it also can be used as a space for 3D graphics. A Web page can have one canvas area or several, or it can be the entire page. When WebGL is supported by a browser, no plug-ins are needed to view the content.

There has been some questioning of the use of JavaScript to implement WebGL in browsers because Java carries with it the stigma of overhead. This, too, is a matter of timing as well as standards. Neil Trevett, Khronos president, contends that given the pace of hardware improvements, the complaint about JavaScript is no longer relevant. “The hardware is already fast enough, and it’s just going to get better,” he says. “Besides, HTML 5 calls for JavaScript.” In other words, it’s really not negotiable. The whole point of standards bodies is to define and enable compliance with standards.



Ready to Release

WebGL made its official debut at the recent Game Developers Conference (GDC) in San Francisco. It has been warmly welcomed by the game development community, which is coping with fundamental changes in the industry. One pioneer of 3D on the Web is Tony Parisi, who, along with Mark Pesce, developed that long-ago forerunner, VRML. Parisi was at GDC, and he was thrilled. He has been a long supporter of the Khronos APIs, as the group has picked up the ball from earlier attempts to create open 3D standards.
 
At a celebratory dinner the Khronos crew threw for themselves at a local sushi joint,
Parisi knocked back his sake and said, “It’s finally here. This is what we had been working on all along.”

But even before the official arrival of Web­GL, the API has gained wide acceptance in the Web development community. The Khronos Group reports that an active development network has sprung up around WebGL, and the spec has been downloaded thousands of times.

The browser companies supporting Web­GL have been hard at work creating demos, and there are many more being created by 3D enthusiasts. In fact, there is quite a bit on show for public consumption, but there is much, much more work going on in terms of creating new content that will arrive with the release of the next-generation browsers. For an idea of what can be done, download the latest beta browsers from Mozilla, Opera, or Google, and then go to the Khronos Group’s Demo repository at www.khronos.org/webgl/wiki/Demo_Repository to play with the available demos. Google also has a showcase of great demos at www.chrome-experiments.com/webgl. Both sites provide a fabulous way to waste an afternoon.

So, while everyone is having a 3D party, is there an evil fairy stepmother out there plotting to ruin everyone’s fun? Microsoft is not a participant in the WebGL working group, and while its sphere of influence is declining, Internet Explorer is still among the most widely used browsers in the world.

Ironically enough, Vukićević thinks that if worst comes to worst, WebGL could be implemented in Internet Explorer by way of a plug-in. However, Microsoft is a supporter of HTML 5, and as 3D on the Web gains momentum, it does not benefit Microsoft to be on the sidelines. As an open standard, WebGL can be adopted by Microsoft free of charge and with little loss of face. As a result, many observers believe that Microsoft will add support for WebGL.



WebGL in Action

WebGL enables 3D content to exist on a Web page without windows, and it enables immersive worlds such as Second Life, Active Worlds, Evolver Friends Hangout, and, of course, many others. It’s almost as if the 3D worlds have been waiting for an enabling technology like WebGL.

Google Body takes a completely different approach. It was created by volunteers at Google. Vangelis Kokkevis, Google’s representative in the WebGL working group, describes it as something like Google Earth for the human body. The application presents a 3D rendering of the body with multiple layers, allowing the explorer to move from skin, to muscles, to organs, to the skeleton, with plenty of stuff in between.

The Google team implemented Google Body so that it is an integrated element on the Web page with no telltale window and, of course, no plug-in needed. At the Khronos unveiling of WebGL at GDC, Kokkevis also demonstrated a 3D aquarium full of fish and sharks equipped with ray beams for no better reason than to illustrate the advanced lighting effects supported by WebGL and, well, because you gotta have ray beams if you’re one of those people who want to play 3D games like Quake wherever possible.

When asked what kind of WebGL implementations we would start seeing, Parisi and Trevett said they expected to see 3D elements within the Web page implemented in ways similar to Google Body: embedded 3D objects that are rotatable and interactive.

There is already 3D content online courtesy of plug-ins. For instance, 3D content is being used quite a bit by the car companies to allow customers to “configure” their new car. Back during the first years of enthusiasm for 3D on the Web, we saw a lot of product models, 3D mobile phones, kitchen appliances, and so on. But, the public’s dislike of plug-ins became abundantly obvious. Now that WebGL is enabling 3D without plug-ins, expect to see 3D models of everything from cars to clothing. eBay is going to go 3D at least for some company stores and the geekier eBay sellers.

But hey, let’s not forget those gamers, the VRML folks, and the denizens of 3D worlds that exist out there in cyberland. After all,
3D gaming can be a much more integrated part of the Web experience now. (And getting actual work done will get that much more difficult.)

Furthermore, that clunky, old VR model of 3D chat rooms could well make a return. Back then, banging into walls and talking to strangers got old really fast. Now that social networking sites, including Facebook, Twitter, Four Square, and others, have done such a good job of establishing social neighborhoods where people know they can go to find friends or people they’re interested in hearing from, you can still bang into walls, but at least you’ll be among friends.

Right now, the experience is still gated by broadband speeds, but all that is set to change thanks to 4g, with speeds up to 100x that of 3g. As 4g is rolled out and eventually becomes affordable, 3D life online will become much more practical. It’s up to you how you’ll want to live that life.

Kathleen Maher is a contributing editor to CGW, a senior analyst at Jon Peddie Research, a Tiburon, California-based consultancy specializing in graphics and multimedia, and editor in chief of JPR’s “TechWatch.” She can be reached at Kathleen@jonpeddie.com.