“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.
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.
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.