Programming - - By Kevin Yank

OSCON 2006: No Flash Required: Interactive Browser Graphics

This week, Kevin Yank is reporting from OSCON 2006 in Portland, OR.

Gavin Doughtie has done stints in games development for Sony, web development for idealab, and software development for Picasa, but these days he works at DreamWorks Animation (yes, as in Shrek), and in his spare time dabbles in the heady world of in-browser interactive graphics. His buddy Jon Stewart (sorry Jon, I came in late and couldn’t find a bio for you) came along to offer Internet Explorer work-arounds for many of the things that aren’t supported in IE.

This talk was really a grab-bag of solutions that mostly work here and there, a few experimental things that are on the horizon, and a couple of stand-outs that could practically be used today. The slides are available online.

For vector graphics, the obvious choice is the W3C standard for such things: Scalable Vector Graphics (SVG). Though slick and all-powerful, SVG doesn’t yet work in Internet Explorer, but that browser has the Microsoft equivalent: VML. Safari will support SVG soon, but not just yet.

For raster (pixel-based) graphics, there is Canvas, which also works in everything except Internet Explorer. Again, Internet Explorer has its own proprietary alternative, DirectAnimation, although that is being removed in Internet Explorer 7. The solution for IE7 is looking to be Windows Presentation Foundation (WPF).

Of course, writing to these various and sundry APIs in a real-world application is not really practical, which is why we see so little in the way of dynamic graphics on the Web right now, but there are solutions in the offing, in the form of several cross-browser drawing APIs.

The ExplorerCanvas project, from Google, attempts to support most of the functionality of Canvas in Internet Explorer by converting drawing instructions to VML. IESVG does a similar trick for SVG in Internet Explorer.

Very basic SVG support can also be added to Safari using the CanvaSVG project until full support for SVG appears in a final release of this browser.

Most promising, though not yet ready for prime time, is the work that Doughtie is doing on a drawing API for the Dojo Toolkit. Named dojo.gfx, the library will combine many of the capabilities of the above-mentioned projects into a single API. The brief demos shown during this talk seemed promising indeed!