In Andy Grove’s book, “Only the Paranoid Survive”, he discusses what he calls strategic inflection points. A strategic inflection points, he says, is a point in the life of a business when its fundamentals are about to change. That change can mean an opportunity to rise to new heights. But it may just as likely signal the beginning of the end.
HTML5 is here. WebGL is here. These are mature technologies and they are being adopted. It is now possible to create high quality applications for the web. We are about to reach a point of inflection.
The most significant feature of HTML5 for user interface design and development is the
WebGL is the Khronos Group’s GPU accelerated 3D programming standard for the web. Based on OpenGL/ES 2.0, which is used in accelerated embedded systems, WebGL opens up the way to create GPU accelerated 3D graphics within web pages, in addition to what is available under the two dimensional API. The result is that HTML5 plus WebGL blurs the line between native and non-native applications.
Performance has always been considered one of the main benefits of native applications, the others being security and access to local services and data. When people say performance, they generally mean graphical performance. Once the graphics and 3D, is hardware accelerated, performance of the non-native application will equal the native application, and in some cases may surpass it.
The launch of Google’s Body Browser last week highlighted one way that 3D in web pages can be used. So now some users are getting their first exposure to 3D applications on the web, and that means a whole lot of developers are going to be interested in developing with WebGL.
The OpenGL API, along with the associated shader language, is low level. It requires the developer to write a lot of code to achieve a result on screen. And unless the developer is familiar with the OpenGL rendering pipeline and has knowledge of hardware, it will be difficult to acquire an in depth undersanding of OpenGL and its graphics drawing process as a whole.
To help the process of creating graphical applications more easily with OpenGL, frameworks are often used. Frameworks come with different emphases and the one best suited depends on the application being developed. For example the game engine GLQuake was developed to power 1996’s Quake. A game engine, however, would not be suitable to develop a WebGL accounting system or a video download service.
If developing for the Apple platform you would use Apple’s CoreAnimation framework. From the Mac OSX Reference Library: “Using Core Animation, developers can create dynamic user interfaces for their applications without having to use low-level graphics APIs such as OpenGL to get respectable animation performance.”
Apple’s choice to pass on Flash in favour of HTML5 makes a lot of sense once WebGL has been brought into the equation. In fact it would be not at all surprising if Apple brought the CoreAnimation API to WebGL, allowing their developers to leverage the same framework to create applications that will work across all the Apple platforms, iPhone, iPad, Mac and Web as well.
So what about developers on non-Apple platforms? Ideally they would be able to use a framework that was cross platform, covering the major systems and WebGL as well. For development of graphically rich 3D applications it would have to cover the main framework requirements being:
- Scalable from small screens (low end mobile phone) to big screens (1080p TV)
- High level, powerful API, to make developement easier
- Flexible, to be able to fit into different technology environments easily
- Provide consistency across application components, applications and platforms
These frameworks aren’t here yet, but it won’t be too long. The opportunity for framework guys, like us, is to empower the developers with just such a framework. Its an inflection point for graphics and user interface. For the developers, its an easy downhill ride from here.