WebGL Comes of Age

The time is ripe for ubiquitous 3D


Last night I attended the “All about WebGL at SFHTML5” meetup at Google San Francisco and was lucky to see some of the bright people central to WebGL explain where the technology is at and where it is headed. The entire meetup was recorded, and the video is below. Below the video is my summary of the initial presentation, an insightful and efficient overview of WebGL by Tony Parisi, and brief summaries of the content that followed, which included a practical explanation of performance optimization Don Olmstead of Sony, a talk on WebGL and real-time web communication with Victor Sand and Peter Moskovits, a poetic 3D-centric vision by Isaac Cohen of Leap Motion, and some demos of the capabilities of this amazing technology.

http://www.youtube.com/watch?v=sIhtcUvi0BQ#t=10078

The atmosphere: SF HTML5 culture is fantastic these days

There are now nearly 10,000 members of the SF HTML5 meetup, and that gives an indication of how wonderful this region is for technology. While Silicon Valley and the SF Bay Area have been central to advances in computing for 50 years, currently there is an energy similar to the more exciting phases I am old enough to remember, like the 1970s when the PC was born and the 1990s when the Internet/Web took off: there is a mood of excitement around “new stuff” at meetings like this that is contagious.

WebGL is one of the hottest new technologies, and this event was in great demand, with a long waiting list. It did not disappoint. This event even had wine and beer.

Great beer and wine selection at this event (photo: Carlos Justiniano)

The past is our future, only now it actually works

In the first summary presentation, Tony Parisi began by acknowledging that WebGL did not just sprout up from nowhere. He is extremely well-qualified to explain WebGL’s historical background, as he was co-creator of the VRML standard twenty years ago and later the X3D standard, and the author of two books on WebGL. There is a deep history of 3D graphics technology, including attempts to web-enable 3D that go back many years. WebGL stands on the shoulders of older technologies such as OpenGL and VRML, and a typical WebGL expert has experience with numerous other forms of 3D technology.

Traditional 3D imaging required expensive hardware and software (Tony Parisi’s presentation)

Tony pointed out how opportune this time is for WebGL, first pointing out the power of the context of the web itself. 20 years ago, there was far less meaningful data one might visualize or navigate with 3D. In that era, for a CD-ROM project visualizing information in 3D, the information itself would typically be licensed content from a proprietary encyclopedia (at great cost), while today one can freely access greater, continuously updated, free stores of information from sources such as Wikipedia.

Now not only is software and hardware exponentially more affordable, many data sets are freely available (Tony Parisi’s presentation)

And of course advances in hardware capability and the ubiquity of high-powered devices with GPUs levels the playing field in terms of the places one can experience powerful 3D. Early 3D computing required expensive dedicated hardware, while today WebGL can run computation-intensive 3D on relatively low-end devices such as the Kindle Fire HDX “like a bandit.”

Hardware is no longer holding back 3D. There are only a few things holding it back, and in the case of WebGL the main factor we see is the same demon we saw back in the late 1990s/early 2000s: proprietary interests afraid of open standards. Today Apple is playing the same role with WebGL that their mentor and role model Microsoft played with SVG, XML, XSLT, HTML, and virtually every other standard back in their heyday: just as Microsoft refused to support SVG for 10 years (until they were forced to by market forces), Apple refuses to turn on the WebGL functionality of mobile Safari for anything but iAds.

“Tim Cook if you’re listening, let’s talk. I’ll even come down to Cupertino”
— Tony Parisi

Tony explained what WebGL is at a fundamental level:

  • It is the 3D API standard for the web
  • It is essentially OpenGL ES in a browser
  • It is programmed via JavaScript API bindings
  • It is available in nearly every desktop and mobile browser (with the notable exception above)

He went on to explain how it works: it is a JavaScript drawing API, which lets you draw to an HTML5 canvas element using a special context. There is no file format, no markup language, no DOM. He went deeper, showing code demonstrating WebGL in action, explaining the basics of how you could code at a low level if desired.

“High end rendering, brought to every machine on the planet”

Of course while a seasoned game progammer may wish to program at such a low level to attain insane performance, the majority of WebGL creators will inevitably work with higher-level constructs. So Tony spoke of the most popular WebGL library, three.js. He explained that while three.js is great, he builds yet higher-level constructs on top of it in his own work.

He then spoke of the content creation pipeline, acknowledging that it is not perfect yet. He made the analogy between WebGL tooling at this point in time with the move in human history from the stone age to the bronze age.

One recent progression is the advent of glTF, the gl transmission format, which is a way to efficiently send scene structure (JSON) and model data (binary buffers) to the browser. XML has its place, but a more “predigested” transmission format like glTF (compared to Collada) is far more performant.

Tony demonstrated the very fast loading possible with glTF

Tony made a very strong case for the power of the technology and provided a succinct summary of how it works and how it is evolving. The rest of the evening went more in depth with specific dimensions and perspectives on WebGL:

  • Don Olmstead of Sony explained in depth how he hit performance challenges in building much of the PlayStation 4 with WebGL.
  • Victor Sand of Goo Technologies and Peter Moskovits of Kaazing demonstrated real-time communication as well as WebGL authoring with Goo Create and the Goo Engine.
  • Isaac Cohen of Leap Motion gave a very poetic presentation “Finding (and Making) your Happy Place” with intense 3D graphics and insightful, humorous poetry.
  • Several developers between presentations and at the end presented demonstrations of various WebGL implementations and prototypes: this included a demo of the Beach Planet Demo by Fabrice Robinet (the Collada Working Group chair) which is one of the Montage.js sample applications.
  • There was discussion among some of the Google engineers present about the state of the specification and its implementations. It was very clear that WebGL is taken very seriously by Google: even Apple, while they have been slow to enable WebGL on iOS, is participating quite seriously in the specification (note that the editor is Dean Jackson of Apple). It does seem inevitable that WebGL will attain ubiquity.

WebGL is moving forward extremely rapidly, if the energy from this meetup is any indication. It seems that the convergence of technology advances is finally enabling visions that people like Tony Parisi had 20 years ago.

UPDATE: Monday June 2nd, 2014, Apple finally publicly flicked the switch and has let WebGL flourish on their “last holdout” devices. Exciting times ahead, this meetup would appear to be a glimpse of the future of computing.