OnQ Blog

Skate to Where the Puck is Going to Be: Three Reasons to Adopt WebGL

“I skate to where the puck is going to be, not where it has been.” Ice hockey great Wayne Gretzky said that, and that’s how I feel about the momentum behind WebGL. I think that this web-based graphics library is going to help tear down the walls that separate native app developers from web app developers today and allow them to inhabit the same world.

If you’re a native mobile application developer , what are you trying to do right now? You’re trying to deepen the user experience through high-end, high-performance graphics on the phone. You’re going the native-app route because that has been the only way to get close enough to hardware resources like GPS systems, sensors, camera and graphics processing unit (GPU) for a decent user experience. But you’d probably rather live in the web-world, where you’re not bound to an operating system and development environment.

And if you’re a web app developer today, you’re not bound to an OS or development toolset, but you can’t get close enough to the hardware for high-performance, high-quality graphics. You need to work through a browser, and browsers require plug-ins, so your graphics take a performance-hit.

Enter WebGL

At the recent Game Developers Conference (GDC) in San Francisco, Qualcomm, as a member of the Khronos Group, participated in their announcement formally ratifying the WebGL 1.0 standard. In a nutshell, WebGL gives applications written in web languages (HTML, JavaScript, CSS, XML) full access to the hardware acceleration capabilities in today’s GPUs, so they can enjoy native-app performance with web-app portability. This paves the way for hardware-accelerated 3D graphics in HTML5 web browsers without plug-ins. It means that WebGL moves the world one step closer to developers writing one application using web languages and running it on a wide variety of devices.

The puck is going to WebGL, so skate there, three proof-points:

1. Web-based gaming
Gaming really drives graphics, and it drives dedicated hardware. For example, have a look at the new Sony Ericsson Xperia™ PLAY, which marries a PlayStation™-certified game controller to a native, Android-based smartphone.

But for every hardcore gamer who will buy a device like the PLAY or pay for a complex game, there are 10 other people (friends, mom, gardener?) who won’t. These people want easy access to games that are easy to use; they don’t want to have to download a game just to play it, but they wouldn’t mind playing it over the web. The success of web-based casual games like Farmville, with tens of millions of daily active users on Facebook, shows that the popularity of web-based games is increasing. WebGL is made for this, because it lets developers add rich graphics and more realism.

2. Rich web content

Look at build-your-own websites that allow you to configure, say, a car without leaving the page or downloading an app. In the near future, with built-in browser support for WebGL, these sites will provide stunning 3D interaction and customization without the need for a plug-in.

How about a graphics-intensive, native app? At the Khronos event at GDC, Qualcomm and the Qualcomm Innovation Center, Inc. (QuIC) demonstrated a “web-Neocore” app for Android, in which we had hand-ported Java/OpenGL ES code to WebGL, HTML and JavaScript. It ran on a reference-design handset with our latest dual-CPU Snapdragon™ MSM8660™ processor and Chrome OS. The app performed remarkably well, reaching well over 25 frames per second and smooth graphics throughout.

3. Optimizations for hardware

To make rich graphics work, we’ve built the Adreno™ GPU into the Snapdragon platform. The many use cases for 3D-enabled, mobile web content have inspired Qualcomm and QuIC to optimize the code paths between the WebGL bindings found in the webkit browser and the Adreno GPU driver in the Snapdragon platform. It’s a direct pipe between the rich graphics APIs in WebGL and the dedicated graphics hardware of Adreno. Our goal is to enable web content owners and game developers to build stunning 3D content within the browser at speeds that are close to native code.

We also joined forces with Sony Ericsson to demonstrate the web-Neocore app running on Android. Sony Ericsson’s engineers developed a port of the WebGL bindings code, and together we were able to demonstrate the same modified Neocore app in an extended Android browser. The hardware we used was the single-CPU Snapdragon MSM8255™ found in the Xperia PLAY and Xperia Arc. Have a look at the WebGL Tech demo on Sony Ericsson’s blog to see how smoothly the application runs and how hard it is to distinguish it from a native application. You can also see this same type of user experience in the video of our demos from Mobile World Congress.

WebGL is one of many core technologies driving the next generation of HTML5-branded applications and content. Like our partners at Khronos and Sony Ericsson, Qualcomm believes that software development and web languages are heading toward the same future of cool, innovative user experiences.

What do you think is bringing native app developers and web app developers into each other’s world? Where do you think the puck is going to be? Let me know in your comments below.

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries ("Qualcomm"). Qualcomm products mentioned within this post are offered by Qualcomm Technologies, Inc. and/or its subsidiaries. The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.