Archive for the ‘Flash’ Category

Letting the Fnk out

Almost 4 years ago I went back to college, to get a “Digital Interface Design” bachelor degree. This meant putting on hold a lot of things in my personal and professional life, but it also meant having contact with a lot of new stuff.

One of those new things I had contact with was node-based programming environments – more specifically, Max and vvvv. I did a number of college works using these programs, and even ported Tweener to vvvv for one specific college project.

That kind of dataflow-based, visual programming environment was quite inspiring for me. It doesn’t replace our more imperative method of writing code, but working with a more concrete approach to graphic and sound manipulation was a lot of fun and I wondered what would it be like if an environment like that was built in Flash. For one thing, because it could bring the joy of dataflow programming for a broader audience (no installation needed etc); and for another, because in some specific points I believed the interface for those programs could be easier to work with.

It turns out this is my last year in college, and that year is used exclusively for a final thesis project. After a lot of ponderation, in december of 2007 I decided that I’d tackle the problem and try creating a dataflow-based visual programming language of my own. The result is what I almost incidentally came to call Fnk.

This video demonstration shows some simple math-based animation being built from scratch on Fnk.

While the editor and the language are far from done – it’s not even beta yet – the result is an editor that looks and works a lot like Max, vvvv or Puredata: you create nodes with different types of data, and everything is in constant execution; you can change values and the programming as you go. The biggest difference is that it’s meant to be ran inside a browser.

Now, before someone jumps the shark, I’ll be the first to say this is not meant to be revolutionary or anything. It’s not meant to improve your workflow, and it’s not meant to be anything more than Max/vvvv/Pd; if anything, I’m trying to make it more accessible, but the very fact that it runs inside the browser also means it has many limitations of its own. To be quite honest, the project has no clear goal; as an academic project, I’m just trying to make something that’s fun to use, can serve as a good learning environment to learn about dataflow languages (and maybe a step towards Max/vvvv and others), and can basically help you prototype visual/interactive pieces. There’s a few features I’ll be exploring in the near future, like an AIR-based standalone version, allowing normal ActionScript SWFs to load and execute Fnk patches, and allowing HTML embed of patch players, but this is still all quite experimental.

Again, it’s not finished as the editor’s missing a number of features, and the language vocabulary is quite limited; it can only do some rudimentary String and Number manipulation, as well as draw circles (duh). I’m finally getting into its last step, however, which is adding new nodes to the language.

More about it on the project website, which is also pretty much a work-in-progress. You can launch Fnk here (please notice: it requires Flash 10 to run, even though no Flash 10 feature is visible yet). There’s also a bigger explanation on the project’s About page, with a link to the draft thesis paper (in Brazilian Portuguese only for now!), a few more test videos here, and many development screenshots here.

So yeah, other than real work, this is what has been keeping me busy for the last 10 months. It’s good to get it out of the system I guess.

Finally, just before anyone brings this up: no, this is not like Aviary’s Peacock, or Source Binder. While the fact that all of those environments employ noded-based visual programming can easily fool anyone into thinking they to the same kind of stuff, that’s pretty much where the similarities end. If anything, it can look a bit like Source Binder in terms of possible application target, but Fnk’s approach is at the same much lower-level (because you do not use third-party classes; you have to build your own visual code using Fnk’s nodes) and also higher level (because you cannot use your own Actionscript code inside of it; you have to build your own visual code using Fnk’s nodes). Fnk runs on the Flash platform, but it tries to create a complete abstraction from ActionScript. Also, maybe I don’t need to say this, but the Fnk project was started before I knew either of those environments existed (and honestly I’m glad they’re pretty different so my work isn’t redundant).

Picnik now supporting Pixel Bender

Picnik, the official online image editing software for Flickr (and others), has just added support for Pixel Bender, Adobe’s pixel shader-like platform. Users can not only use Pixel Bender files they have created or found online (say, from Adobe’s Pixel Bender Exchange), but also use an assortment of readily available filters inside Picnik. There’s a photo thread about it here, with users showing off the results of said filters applied to their own images (you have to go to Picnik’s main app and activate the “Sandbox” feature to use it; editing from Flickr won’t work).

This, and a few other similar developments, make me believe Flash Player 10 will have the fastest adoption rate of all player versions – big websites and online applications will want to push it out. Call me crazy, but I think in 6 months it’ll have a 90% penetration rate already – previous versions needed around one year to reach that mark – and we’ll all be able to target it without feeling too guilty about it.

Here’s Flash Player 10

GPU compositing and surfacing. New drawing API. New text API. Simple 3d for accurate plane rotation. Custom effects with Hydra and AIF (now called Pixel Bender). New File Reference for local file reading. Support for larger bitmaps. New context menu goodies. Something for dynamic sound generation. Yes, Astro is now in public beta.

Demos here. Install here. More information here. See the release notes. This is another good third-party post. As always, Tinic Uro has some more details for the nerds.

Edit: oh f*ck, a new playerglobal.swc is available already (allowing people to compile Flash 10 content with Flex).

FIVe3D goes all the way

FIVe3D – the vector-based 3d rendering framework by Mathieu Badimon – has just received a significant update, bringing it to version 2.1. New features this version brings:

Back Face Culling, Flat Shading, Z-sorting, Space Drawing functions, Bitmap3D class, Video3D class, Sprite2D Class, Letter Spacing, Text Width

I’d be content with just z-sorting, but the number of new features is pretty overwhelming, bringing this class on par to the bitmap drawing features of existing 3d packages such as Papervision3d, Away3D and Sandy. Awesome.

As a showcase of the new capabilities, you can see an example of a 3d video being played here.

FIVe3D now available for AS3

FIVe3D, the vector-based 3d engine for Flash by Mathieu Badimon, has just been ported to Actionscript 3 and is available for download on the project page. Also important, Mathieu has made available the panel component used to create the Actionscript-based font data (describing the lines and curves of each font glyph for text drawing in 3d). With this in their hands, people can even create extrude and plane-creating functions for other 3d packages if they need.

I first posted about some adventures about FIVe3D here, and everything that’s written there still stands, so it’s worth reading for people who doesn’t know FIVe3D yet.

Adobe AIR for Linux Alpha released

Adobe has just released an alpha version of AIR for Linux. It’s not feature complete but now that the framework structure is there, I guess we’ll see it reach stable status in no time. An SDK is also available.

You know what’s funny? There’s a project I’m building that I’ll want to make available as a standalone download later this year. I knew AIR was available for Windows and OSX only, but the Linux demographic is an important part of my project’s target. So here was I thinking “Hey, I wonder if Adobe AIR will be ported to Linux some day?”, when I decided to go looking for information about it on Google, having one of the first results returned being the news that it has just been released. Creepy.

An initiative for more serious sound control with Actionscript

I had seen this before, but have to admit I ignored it at first (I had the impression it was just some random Adobe conference, based on the name): the Adobe, Make Some Noise initiative is a “campaign for enhancing Flash Audio”. Led by André Michelle, Joa Ebert and Kai-Philipp Schöllmann, they aim to convince the powers that be that Flash needs to support audio in a more powerful way. And even if AS3 is already a huge improvement in terms of audio support, I have to agree – with Flash 10′s great new visual features such as AIF support, advanced audio control would be a good match. Still, anyone in doubt can have a look at the audio projects these guys gave under their belt and know how well-founded their requests are.

Coincidentally, advanced audio composition and synthesis in Actionscript is one of the important points that I’m tackling on my graduation paper/project (due later this year), so I’ll be following these developments closely…

Source: Agit8

Tweener extensions

The fair lady time has been specially rigorous with me as of lately, not giving me too many opportunities to fall into the hands of my mistress of spare time experimentation and open-source maintenance. As a result, I haven’t posted here in a while and, worst of all, there are a lot of Tweener updates (including a considerable internal rewrite and updating the example sources) that I have to constantly pause. The world goes on, though, so here’s some long-distance winking she has been sending me.

While Tweener doesn’t have special property modifiers for Catmull-Rom curves yet, Makc has a great post explaining how to convert Catmull-Rom splines to Bezier splices. For some odd reason I seem to have missed his original post on the Tweener mailing list so I hadn’t seen the actual code, but let me take this opportunity to congratulate and thank him on some cool code.

Takayuki Fukatsu has also just sent me notice of an AS3 special property class he has created for Tweener. It’s called MatrixShortcuts and it can be used to Tween properties of a DisplayObject’s transformation matrix, as well as some global transformation properties.

Always a flirt.

New gotoAndLearn website

The year of 2008 starts with a bang as Lee Brimelow releases version 2 of the gotoAndLearn website. There are plenty of Flash and Actionscript tutorial videos featured on the website, including video, sound, and 3d, and I’m quite pleasured to find one of them being about animating with Tweener. Thanks, Lee! (also, thanks to Jeff Guthrie for the tip).

BulkLoader is released

Arthur Debert – lead developer at Gringo and also one of the contributors to Tweener – has just released his new ActionScript 3 loading class, BulkLoader, publicly. The class allows you to load data from files in an streamlined way, and provides a series of features – like maximum number of retries, cache bypass, and others – that makes the whole process a lot easier than it would normally be in AS3.

For more information, see his post here, or go straight to the BulkLoader project at Google Code.