Smokescreen Project Promises ‘Flash Without the Plug-in’
The new project is called Smokescreen, and it’s the creation of a programmer named Chris Smoak. Basically, Smoak’s code dissects the SWF binaries (the meat of any Flash animation) and re-renders all the elements as web standards-compliant code as the animation plays. If you’re producing Flash animations, you don’t need to futz with your code or redeploy any SWFs.
There are several demos on Smoak’s site. We like this Strongbad example the best.
Simon Willison, a programmer and blogger, has an excellent high-level technical description of the behind-the-scenes stuff on his website:
Smokescreen runs entirely in the browser, reads in SWF binaries, unzips them (in native JS), extracts images and embedded audio and turns them in to base64 encoded data:uris, then stitches the vector graphics back together as animated SVG. Open up the Chrome Web Inspector while the demo is running and you can see the SVG changing in real time. Smokescreen even implements its own ActionScript bytecode interpreter.
Smoak says he will be releasing Smokescreen under an open-source license soon. For now, we have some pretty slick demos. It’s not perfect, but it’s a clear vision of what a Flash-free future would look like.
Obviously, this bit of code won’t work for Flash videos. But there are already HTML5 workarounds for those. Smoak says his original goal was to build something that would let Flash-based banner ads play on the iPhone and iPad. As noble as those intentions are (cough), the possible use cases for Smokescreen extend beyond advertising.
Once optimized and streamlined, it could be used for games. Willison notes that news site infographics are a juicy target. It could also be used for rendering cartoon-like animations, such as the Strongbad episode in the demo. We’d love to see the classic Sex Slave series, originally built in Flash/Shockwave, reborn in HTML5.
There are concerns about how well Smokescreen will run on mobiles with slower, less-powerful processors. Again, we can expect to see improvements once the code is open sourced. Also, only the latest browsers are invited to the party for now — you’ll need Firefox 3.6, Chrome 5, Safari 4 or MobileSafari to experience the magic. It almost works in Opera 10.5x. IE8 is not supported, but Smoak says IE9 “looks promising.”