Swiffy: Google’s Flash to HTML5 Converter

Since Larry Page took over at Google, the Googleplex appears to be trying to do a remake of the movie The Fast and the Furious. Google Plus, Google Sites for Mobile and now Swiffy, “Swiffy converts SWF files to HTML5, allowing you to reuse Flash content on devices without a Flash player.” -all of this was introduced in one week.

Swiffy is pretty simple to operate as you can see from this screenshot:

However, there are 4 restrictions. First, the .swf file cannot be greater than 512KB in size. Second, the SVG-based HTML5  output will only run in the Webkit browsers [Chrome and Safari effectively]. Third, the current Swiffy eats up your .jpg files and spits out :
“data:image/jpeg;base64,/9j/4AAQSkZgAAAQABAAD…x8k4tu9z//2Q==”
A binary  encoded version of each jpg file. Fourth and importantly, Swiffy cannot convert audio stream files like .mp3 embedded in Flash. These are not trivial restrictions, the implications of which will be considered in the summary below.

But first here is an example of Swiffy conversions.

Swiffytest in original Flash .swf file format

Next here is the conversion of that file into HTML5 which works-in-Webkit -browsers-only format:
[iframe: src=”http://theopensourcery.com/swiffyed.htm” width=”560″ height=”350″ ] Trust me non-Safari and non-Chrome browser users, the Swiffyed HTML5 output is very hard to distinguish from the original Flash file. And it retains the same timings as the images move identically the same and fall into place at exactly the same time. The Swiffy conversion involves vector graphics, jpg image files and some complex color/transparency and image motion [with a little help from ye Editor’s favorite 2d animation tool, SwishMax 4 from Swishzone, which put Flash Pro to shame for ease of use]. The ActionScript used is relatively straight forward – no challenging loading of scenes nor any  advanced scripting UI or  data import/export operations.

Swiffy Misses

The next example shows where Swiffy missed.

The original Flash Audio Test file

[iframe: src=”http://theopensourcery.com/swiffyedaudio.htm” width=”560″ height=”410″ ] The Swiffy generated HTML5 file
Note that there are a number of “errors in translation”. First, the embedded .mp3 audio[can you hear the two Cicada chirps in the original Flash?] is rejected by Swiffy[but conversion proceeds without the audio]. Second the image translation is slightly but noticeably off. Third, the iamge color is more than slightly off. But most disconcerting the HTML5 converted file is 329KB versus the original Flash .swf files size of 241KB. In general our tests found the Swiffy conversion added 10-40% more to the original file size. This is very much dependent on the use of media and images in the original Flash .swf file. In sum, Swiffy is a GoogleLabs projects showing all the beta or even alpha warts of software in the evolving state.

Summary

Swiffy is awkward or an embarrassment – or both. Imagine if someone provided a better editor for Google Mail – oops, Mozilla has done that with its ThunderBird mail program. Okay, imagine some third party showing Google  how to really take advantage of social media – oops, Facebook, Twitter, Tumblr and a half dozen others have forced Google+ out the door as major rewrite of the Google client  interface for its stable of products. Swiffy is awkward because Google is into Adobe’s business when there is no real business case for Google getting involved in Flash.

Swiffy is also awkward because Swiffy’s  limitations are non-trivial. There is no conversion of .swf files greater than 512KB, no conversion of audio files, failure to convert all font types, imperfect conversion of some complex .JPG and .PNG image files plus a host of other mishandlings of .swf file features. Also a major concern is that Swiffy HTML5 files only work with the Apple Safari and Google Chrome Webkit browsers. If you are out not to make Swiffy a business product but rather to show Adobe how… shouldn’t the demo be pretty rock tight. So clearly Swiffy is still “demonstration software”.

But what is Swiffy demonstrating? This is where the embarrassment comes in. Are Google developers trying to show to Adobe Flash developers that Adobe’s Wallaby approach to converting .FLA files and their media resources is not the right approach? Is this a Google Wave-like demo exercise? Swiffy proves that some of the conversion can be done but as for producing an industrial grade conversion utility, graphic designers and Web developers are still without a real resource.

So why do Swiffy? Is Swiffy going to be Open Source? Is it intended for just lightweight simple conversions? Is it designed to be a just a demo of what is possible for the Adobe shop? As one cans see for a sometimes very impressive demo of what can be in HTML5 [but only, ultimately for Webkit browsers, another awkward turn]- Swiffy also raises quite a few embarrassing questions.