Extreme Makeover, IE11 Edition: WebGL now in IE (Live Report from Microsoft Build)

No more rumors; it’s confirmed: today, Microsoft announced that IE 11 will ship with WebGL.

!#@$ng pinch me. They finally, really did it.

I am blogging live from Frank Olivier’s talk, Hyper-Fast Web Graphics with WebGL, at the Microsoft Build conference in San Francisco. Frank is a senior program manager responsible for getting their WebGL out the door. Some tasty tidbits from Frank’s presentation:

  • Frank has been working on IE since IE9, when they started rendering with hardware acceleration. They have been building the IE WebGL support “for a while…”
  • Great demos: the popular Minecraft voxel world, Three.js physics that shows off Microsoft’s kickass JavaScript VM. and some very photorealistic rendering using postprocessing.
  • Demo of Photsynth 2 – preview built with WebGL – take your own photos, upload to web service, it stitches them all together and presents in a browser. This is a very exciting application.
  • According to Frank, the power of WebGL is, you get to control and program the GPU yourself. It’s for more than just 3D. You can do a lot of things, really fast, programming each pixel on the canvas using the hardware to accelerate and parallelize your processing.
  • Tutorial on WebGL API – photo warping – basically 2D intro – actually a good tutorial! Will get link later.
  • Overview of GLSL. Very good, made accessible for Web devs.
  • Frank called WebGL the “best choice” for web content that requires 3D or GPU programming – but also consider CSS Transforms, 2D Canvas or SVG. Also hardware-accelerated but simpler to use, helps you avoid “gratuitous 3D.” Or of course go Direct3D if you are OK building a native app.
  • Status of the implementation: common WebGL/three.js functionality works; they’re happy with perf so far but looking for performance feedback.
  • WebGL will be ON BY DEFAULT in ALL IE11 DEVICES – this includes Windows RT. Also in web-based Windows apps such as in the Store. Talk about burying the lead… !
  • Architecture: API translation to DirectX runtime. Is it slow? No, it’s a very thin layer. (Chrome does this kind of thing on Windows already with ANGLE, right?)
  • r/e Security: Frank related that the IE team is “happy that things have changed a bit,” – spec updates w image security via CORS and context loss handling. Whew.
  • MS also has their own security innovations: they sandbox GLSL via translator that reconstructs it to be safe; they also do GPU recovery to halt a wayward driver or shader program. In addition, they leverage various secuirty improvements that come with the DirectX 11 runtime. Plus GPU driver source code audits. Finally, they have a software renderer as a fallback. Sounds very robust!
  • The presentation covered techniques to help with interoperability across devices, and best practices e.g. use requestAnimationFrame(), avoid background rendering, don’t overdraw. Hear, hear!
  • From the Q&A… somebody asked if you could also write a shader in HLSL. Thankfully, Frank said, “no.” I’m glad, because that way lies madness…

This was good stuff. A great talk for the MS audience, and in my opinion, a shot in the arm for 3D web developers. With Microsoft in the mix, WebGL is only going to get better, stronger, faster. If you’re interested, follow Frank on Twitter @frankolivier.

Microsoft used to know how to win developer hearts and minds. They didn’t have to bully developers (though they did their share of that), they just built great tools and delivered huge audiences, despite having a so-so platform. But that was the old days. Now they have to work at getting people back. Adding WebGL to IE is a step in the right direction. We’ll see if it’s enough to get Windows 8 and IE11 some developer mindshare.

For the WebGL faithful, this news is monumental. Lack of WebGL support in IE has been a serious impediment to adoption in certain circles; elsewhere it has been a continued perception problem. As part of this initiative, Microsoft has also about-faced on its hard stance about WebGL and security. In one fell swoop, we have universal adoption and endorsement. Huzzah!

Ahem. But there is still one significant WebGL holdout. So I have to ask– not being one to see an elephant sitting squah in the middle of the room without saying something–

When the hell is Apple going to build WebGL into Mobile Safari?