Presenting FilmStrip

Written by Moses

I’m proud to present FilmStrip, an experimental AS3.0 library that lets you process code-based animations to video with natural-looking motion blur. Take a look at the sample video I showed at Flash on Tap here (MP4, 800k).

Yes, some sad little red dice — quite a demo huh? But pause it and step through the frames and you’ll see some very realistic motion-blur, produced by FilmStrip. This looks quite different from a standard directional box blur.

It also takes time to render, so what you’re seeing isn’t realtime. It’s a series of Flash-generated frames that have been saved out using AIR and processed into an MP4 after the fact using a utility called FFmpeg. So if it’s not realtime, is it useful? Well… possibly. :-) A spaceship game could feature cinematic explosions that are really pre-rendered video clips. These could be quite seamlessly integrated since they’re made from the real game models, and done easily without jumping into another 3D or video program. A website or kiosk could similarly feature fast, smooth navigational swoops. And so on.

In general FilmStrip is a small, snap-on utility that is designed to be used with your existing projects. It can render Papervision3D scenes or Sprite-based scenes, and even stack various 2D and 3D scenes in a single render. FilmStrip is extensible to other 3D environments and works with any tween engine – even that one your grandpa wrote last week. ;-) Capture modes include WHOLE_SCENE  for a fast snapshot series, EACH_OBJECT to generate unique blurs based on actual motion, and blur modes include NONE, MATTE_SUBFRAMES and SPLIT_SUBFRAMES — plus a bunch more blur settings for fine tuning. Toss in some animated Pixel Bender and BitmapFilters and you might be doing some fairly decent post-processing, right out of ActionScript!

Filmstrip and accompanying project filmstripAIR (frame dumper & playback utilities) are available here:
http://github.com/animoto/
http://github.com/animoto/filmstrip/
http://github.com/animoto/filmstripAIR/

This is by no means a finished product! It’s Open Source MIT licensed, and you’re fully encouraged to play with the code freely. Please spread the word about FilmStrip and post your feedback.

Many heartfelt thanks to everyone who’s supported this project along the way!

Share:
  • Digg
  • Facebook
  • Google
  • TwitThis
  • del.icio.us
  • E-mail this story to a friend!

6 Comments

  1. amadamala says:

    Hi,
    I really like the frame work. Do you have any documentation of how it works, except the read-me file.
    If you have any example project which is using the framework that would be great too.

    Thanks,
    Anil

  2. Moses says:

    Hey Anil, just noticed this comment, sorry so late. Most of the code is documented in javadoc comments, I never bothered to run asdoc but you could do that if you prefer to read the docs in HTML format. Let me know if you make any good use of FilmStrip!

  3. Matt Moon says:

    Hey I am looking through your code and want to use this but your instructions for patching the tween classes is out of date. I am using v11 TweenLite and TimelineLite but cant seem to figure out what needs to updated in these classes. Any ideas?

  4. Moses says:

    Matt — I could give it a shot. If you follow the bullet points I provided it might be doable, however I understand if digging around in tween engine code isn’t a lot of fun.

    By the way, any hints on what you plan to use Filmstrip for?

  5. Matt Moon says:

    We have a automated video rendering service similar to Animoto but is not open to the public like y’alls is. We create videos for our clients from a data feed. We are experimenting with a system that will render video from as3. I have built a way less modular system that uses TimelineLite and frame based time to pause on each frame and capture the screen but i really want to be able to use second based animations and only modify the tweenlite code to use the filmstrip class as this is in the rendering system i have created. I want to leave the tweenlites alone as these are in the modules that the rendering system load in. These will be built by our clients and I dont want to have to expose them to the modified tween classes. (and how our system works internally) I could really use your help on this. If you could email me maybe we can discuss this more? if not i totally understand.

    Oh by the way GREAT CODE! I HAVE HUGE RESPECT FOR YOU MAN!

  6. Matt Moon says:

    oops sorry I mean i only want to modify the TimeLineLite code and not the TweenLite code.

Leave a Reply