About SWIFT

Update: SWIFT has become Lightningbeam. Much of this page refers only to the old version.

SWIFT (which stands for "ShockWave Is Free Territory") is a free, open-source alternative to Adobe Flash. It is written in Python, and uses PyGTK for a GUI, swfc for compiling, and Cairo for image processing. It has the ability to export to HTML5 as well as .swf, allowing for viewing on non-Flash-compatible devices (such as the iPhone or the Kindle), and can pack all resources into a single HTML file for portability. Swift supports ActionScript, allowing for interactive content creation.

History:
In April 2010, I wanted to make a simple Flash app - a dial which rotated in response to JavaScript input. I wanted to use Flash because I didn't know how to rotate things in JavaScript, and most solutions I found either used Flash or a third-party library. I assumed that the FOSS world would have a program that worked like Flash, the same way we have Gimp for Photoshop, OpenOffice for Microsoft Office and so on. I was surprised to learn that there was no such program.
I did some more research and found that, although there was no graphical program to do so, there was a text-based one called SWFC. I did some experimenting with it and found that yes, it worked quite well. But it wasn't very easy to use. So, I figured, "Well, I'll just write a GUI for swfc then."
I had never written a program before; I had only written scripts for use in programs. Because Python was what I was familiar with, and because I was using only Ubuntu at the time, I found an application development environment called Quickly and decided to use it. I wrote it, learning PyGTK in the process, and over the course of a year and a half I rewrote it to use Cairo and other speed enhancements. I learned more about HTML5 last winter and decided to integrate that, as this is something Adobe Flash still doesn't have (probably because it is a direct competitor to Flash.) I have been working on an ActionScript wrapper for JavaScript, so that you can write all code once in ActionScript and have it seamlessly run both as Flash and as HTML5. (This isn't done yet.)