tag:blogger.com,1999:blog-4877825724674208292024-03-12T17:45:51.059-07:00SWIFT newsSkylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.comBlogger18125tag:blogger.com,1999:blog-487782572467420829.post-25416271960118105382012-01-21T14:22:00.000-08:002012-01-21T14:22:30.683-08:00Alpha 2 released!I have released the second alpha of the SWIFT/Lightningbeam project! This release brings several new features, such as:<br />
<br />
<ul>
<li>Full cross-platform compatibility: runs happily on Linux, Windows and Mac OS X without any dependency installation necessary</li>
<li>HTML5 vastly improved: framerates within 10% of Flash's, and a large subsection of ActionScript working</li>
<li>Shape drawing: Straighten and Curve modes are now usable</li>
<li>Text added (although you have to set the contents with ActionScript right now)</li>
<li>More forgiving of non-fatal errors, so you don't lose work if I make a mistake</li>
<li>And more!</li>
</ul>
<div>
<a href="http://lightningbeam.blogspot.com/p/downloads-and-installation-instructions.html" target="_blank">Downloads and Installation</a></div>Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-5425941605121226282012-01-10T14:15:00.000-08:002012-01-10T14:26:09.063-08:00RENAME - and Alpha 2 announcement<span class="Apple-style-span" style="font-family: inherit;">What happens if you Google 'swift'? There are half a billion results. Mainly this is because it's such a common word. But I also wasn't the fist person to use it to refer to Flash software: Electric Rain introduced the <a href="http://www.erain.com/">Swift 3d plugin for Flash</a> nearly 3 years ago. So I have decided to rename SWIFT to Lightningbeam.</span><br />
<span class="Apple-style-span" style="font-family: inherit;"><b><u><span class="Apple-style-span" style="background-color: rgba(255, 255, 255, 0.917969);"><br /></span></u></b></span><br />
<span class="Apple-style-span" style="font-family: inherit;"><b><u><span class="Apple-style-span" style="background-color: rgba(255, 255, 255, 0.917969);">Why </span><span class="il" style="background-attachment: initial; background-clip: initial; background-color: rgba(255, 255, 255, 0.917969); background-image: initial; background-origin: initial;">Lightningbeam</span><span class="Apple-style-span" style="background-color: rgba(255, 255, 255, 0.917969);">?</span></u></b><br style="background-color: rgba(255, 255, 255, 0.917969);" /><span class="Apple-style-span" style="background-color: rgba(255, 255, 255, 0.917969);">Lightning is the most dynamic thing encountered in nature, leaping miles in a fraction of a second. Lightning contains enormous amounts of power; the average lightning bolt produces 40 petawatts, or the equivalent of 100 million coal power plants.</span><br style="background-color: rgba(255, 255, 255, 0.917969);" /><span class="Apple-style-span" style="background-color: rgba(255, 255, 255, 0.917969);">But lightning is also known for being very hard to control. Thus, the beam indicates a focusing of this energy. It is the goal of </span><span class="il" style="background-attachment: initial; background-clip: initial; background-color: rgba(255, 255, 255, 0.917969); background-image: initial; background-origin: initial;">Lightningbeam</span><span class="Apple-style-span" style="background-color: rgba(255, 255, 255, 0.917969);"> to provide users with this power for creation of animated content.</span></span><br />
<span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="background-color: rgba(255, 255, 255, 0.917969);"><br /></span></span><br />
The second alpha of the SWIFT/Lightningbeam project will be released shortly. Along with the rename, the project has undergone a complete re-write from the ground up. This was allowed me to use a simpler object-oriented system, which made drawing and exporting simpler and more efficient, and to use a better GUI system for cross-platform compatibility.<br />
<br />
Summary of notable changes:<br />
<br />
<ul>
<li>Project renamed to Lightningbeam</li>
<li>Code re-written</li>
<li>Cross platfrom: runs without <i>any</i> installation on Windows, OSX (x86, x64, and PowerPC) and Linux (x86, x64, PowerPC and ARM [untested - awaiting screen for my BeagleBoard]). Further ports are in the works, such as a web app.</li>
<li>HTML5 animation runs <i>much</i> faster (it's actually usable now):<br /><table border="1"><tbody>
<tr><td></td><td>Chrome</td><td>Firefox</td></tr>
<tr><td>Old version</td><td>3-8fps</td><td>0.3fps</td></tr>
<tr><td>New version</td><td>50+fps</td><td>40+fps</td></tr>
</tbody></table>
</li>
<li>HTML5 code re-factored to run ActionScript methods natively (in progress)</li>
<li>And more that I can't remember off the top of my head.</li>
</ul>
<div>
It is still in heavy development, and I haven't completely finished re-implementing methods (such as movie clip creation), but I will release the alpha 2 when I have. In the mean time, I will be moving this blog to <a href="http://lightningbeam.blogspot.com/">Lightningbeam.blogspot.com</a>.</div>Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-70712315573174881482011-10-25T18:28:00.000-07:002011-10-25T18:28:59.418-07:00Progress reportThere isn't really anything new to see yet, but a lot is going on under the hood, so I figured I would make a post. The cross-platform GUI is working out (I already have an Android port), and in addition there are several useful features that were conspicuously absent from the last release (such as independent line and fill colors, paint bucket and layers).Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com2tag:blogger.com,1999:blog-487782572467420829.post-45473775532543711842011-10-18T09:46:00.000-07:002011-10-18T09:58:03.117-07:00Aha! Object-oriented programming!Well, I didn't intend to rewrite any of the internals of Swift, only the GUI interface. However, now I see that I should have been using objects all along instead of nested dictionaries. The rewrite makes it vastly easier to use. Consider this snippet:<br />
<blockquote>
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">objects[currentselect[level]].frames[objects[currentselect[level]].frames[0].index(currentframe[level])+1][currentselect[level+1]]["yscale"]</span></blockquote>
This now becomes:<br />
<blockquote>
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">root.descendItem().currentFrame().currentselect.yscale</span></blockquote>
<span class="Apple-style-span" style="font-family: inherit;">A bit more concise.</span>Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-2407476602760289642011-10-17T13:27:00.000-07:002011-10-17T13:27:44.423-07:00New system almost complete - much more stableI have mostly finished the framework underlying the second release of SWIFT. I have made a wrapper around most of the windowing functions I need, plus drawing functions which are now handled by the GUI library (which should allow me to make a Clutter backend as well!). Instead of using the buggy pixel-based hitTest I was using before, I am now using the even-odd algorithm. I was initially calculating exact intersections of lines, but I stumbled across <a href="http://www.bryceboe.com/2006/10/23/line-segment-intersection-algorithm/">this post</a>, which appears to be much more efficient. Early tests indicate that it is. I ran a benchmark; here are the results (from an Asus EeePC netbook!):<br />
10,000 hitTests<br />
total time: 1.735355 seconds<br />
average time: 0.000174 seconds/hitTest<br />
In other words, that's about 0.1 milliseconds per hitTest! This is better than I expected by a factor of 10 or more! And it all "just works", unlike the pixel version which was very finicky. So (judging by hitTests alone) you could be working with 1,000 objects on the Stage and not even notice a slowdown on a low-spec'd computer!<br />
I will re-write the HTML5 hitTest library to use this algorithm, it should speed it up quite a lot.Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-55918072856744068502011-10-13T19:30:00.000-07:002011-10-13T19:30:27.306-07:00Re-writing SWIFT from the ground upMost of my problems with SWIFT come from the interaction with PyGTK and Cairo. These are also my major source of pain in platform ports. So I have decided to abstract the GUI library so I can use GTK on Linux, Cocoa on OSX and whatever on Windows. This also lets me fix all the crude hacks I did to get input to the right place. However, this will mean a nearly full re-write of SWIFT (only the object processing functions can stay untouched). Time to get cracking.Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com2tag:blogger.com,1999:blog-487782572467420829.post-85880707324527130132011-10-11T06:27:00.000-07:002011-10-11T06:27:27.280-07:00OSX Working!I finally got it running on Mac OSX! It is not a one-click setup, and Gnash doesn't run, but it is a start. I will keep working on it and hopefully I can offer a package soon. For installation instructions, see <a href="http://swift-swf.blogspot.com/p/installation.html">http://swift-swf.blogspot.com/p/installation.html</a>.Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-86363279809795245772011-10-09T20:12:00.000-07:002011-10-09T20:12:27.969-07:00OSX difficultiesWell, I expected it would be fairly simple to get this up and running on Mac OSX, as it is "just another Unix", after all. It turns out I'm wrong. I managed to get all of the dependencies installed, and it loads, but then immediately crashes with the message "Bus error". I will work on fixing this; in the meantime, it could be run in Virtualbox or something.Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-27907605259436654782011-10-09T01:11:00.003-07:002011-10-09T01:31:25.448-07:00Alpha release coming tonight!<span class="Apple-style-span" style="background-color: white; font-family: inherit;">After a year and a half, the alpha release is coming tonight! Being alpha, not all features are implemented yet, and some are still buggy. But it is finally here!</span><br />
<span class="Apple-style-span" style="background-color: white; font-family: inherit;"><br />
</span><br />
<span class="Apple-style-span" style="background-color: white; font-family: inherit;">Download .deb for Ubuntu from:</span><span class="Apple-style-span" style="background-color: white; color: #777777; font-family: inherit;"> <a href="https://launchpad.net/~skykooler/+archive/swift-swf">https://launchpad.net/~skykooler/+archive/swift-swf</a></span>Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-69124302323077772082011-07-03T18:47:00.000-07:002011-07-03T18:47:13.521-07:00Full copy undo added!I now have implemented full copy undo, which tracks all object changes and additions. The result of this is that you can now undo every change. It is also unlimited, so it saves all changes going back to when you first opened SWIFT (since everything in the internal file representation is very small, I don't think that memory usage will be an issue. I will keep an eye on this though.)Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-51900729766923139302011-06-22T23:54:00.000-07:002011-06-22T23:54:18.050-07:00Added swftools to my PPA!I have now added swftools to my PPA! This means that one should finally be able to install swift on Maverick without dependency issues. I will add a Natty component tomorrow.Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-52414174606843767822011-06-20T07:58:00.000-07:002011-06-20T07:58:01.385-07:00Release delayed due to lost dataWell, I or my operating system accidentally replaced the entire contents of the executable with a single semicolon, so I need to re-write everything I have done since my last push to Launchpad (a good 5 hours of work). Since it is now the work week, I will have less time to do this, so I doubt the release will be before this weekend.Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-70859940078540006032011-06-19T10:35:00.000-07:002011-06-19T10:35:18.446-07:00Sound support added!I added sound. Currently you can only import a sound to the first frame of a project, but it will run and play in both SWIFT and the exported SWF (sound in HTML5 and videos coming soon!)Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-40308957758508063122011-06-18T23:49:00.000-07:002011-06-18T23:49:02.703-07:00Basic drawing support added.Well, for a while now, you have had the ability to draw rectangles and ellipses, and there has been that predefined curve object - but now you can actually draw shapes yourself! Right now it is limited, and buggy - many lines do not turn out smooth that should. But it is there, and I should have it done tomorrow. And <i>maybe </i>sound support also. We shall see.Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-88121928498184302672011-05-29T13:20:00.000-07:002011-05-29T13:20:39.939-07:00Drag and Drop added!I now have drag and drop support for images. It is pretty powerful - you can import any image type PIL supports (including png, jpeg, gif, pbm, pgm, ppm, tiff, targa, rast, xbm, and bmp among others). This should help speed up the workflow. Note that is converts all images to png internally to maintain compatibility with swfc - this may use up extra space if you are importing many images.Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com1tag:blogger.com,1999:blog-487782572467420829.post-78331560441124470412011-05-28T22:33:00.000-07:002011-05-28T22:33:25.726-07:00HTML5 animation working!HTML5 animation is now working in the latest build, available from <a href="https://launchpad.net/~skykooler/+archive/swift-swf">launchpad</a>. No actionscript yet.Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-16804259083733178802011-05-28T17:23:00.001-07:002011-05-28T17:23:25.053-07:00Demo videoI have made the first video showing some of the basic features of SWIFT. It is by no means a comprehensive list. Here it is:<br />
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/ss-WSu-wOnI?feature=player_embedded' frameborder='0'></iframe></div>Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0tag:blogger.com,1999:blog-487782572467420829.post-42082985965835726162011-05-28T13:54:00.000-07:002011-05-28T13:54:54.340-07:00Blog created!I have finally created a blog for SWIFT! For anyone who is seeing this for the first time, SWIFT (which stands for "ShockWave Is Free Territory") is an open-source animated content creator. Besides creating .SWFs, it can also create HTML5 content, making your web apps future-proof. SWIFT includes an ActionScript editor to bring advanced functionality to your applications. SWIFT uses swfc for compiling and GNASH for playback. It is still in early alpha stage, but can be used effectively already. It currently runs on Linux only. I <i>have</i> made a Mac port, but it is ugly (i.e. it takes upwards of 3 hours to install, doesn't completely work right, and installs a lot of useless junk on your system). Windows ports will come later.<br />
I will use this site to post about my progress on SWIFT. For general information, see my website (currently under construction.)Skylerhttp://www.blogger.com/profile/05204748074117265269noreply@blogger.com0