Flint does Papervision3D and Away3D

Today I released a new alpha of version 2 of the Flint particle system. This version adds renderers for Papervision3D and Away3D to the library, so that particle effects can be integrated with a 3D scene in these libraries.

For Away3D Flint has one renderer, the Away3D renderer, that uses any Away3D Object3D type for displaying each particle inside an ObjectContainer3D. This lets you use 2D sprites or 3D objects for the particles.

For Papervision3D, Flint has three renderers -

  • A pixel renderer that displays each particle as a pixel in a Papervision Pixels object.
  • A particle renderer that displays each particle in a Papervision Particles object using a Papervision particle.
  • A basic renderer that displays each particle in a DisplayObject3DContainer using a Papervision DisplayObject3D object.

In all cases, the renderer sets the appropriate properties of the particle’s display object based on the state of the particle system and leaves the 3D engine to do the drawing.

Flint can be downloaded from the Google Code repository. Along with the source download, you’ll find documentation and examples using the new features.

Have fun with this, and if you find any bugs or spot a better way to do something please let me know via the Flint forum.

3D version of Flint Particle System

Today I released the alpha of version 2 of Flint. This version does 3D particle effects as well as 2D effects. The alpha is fairly stable and can be downloaded from Google code.

The 2D effects have some enhancements over previous versions. The 3D effects are all new, and include most of the features from 2D, along with some new stuff. At the moment, rendering is done via Flint’s own new 3D renderers, but I’m developing renderers for Papervision3d, Away3d and Sandy3d so that Flint can be used as a particle system with any of these 3d libraries too.

Here’s an example.

Use W,A,S,D keys to track in/out and left/right. Use cursor keys to pan and tilt. Use page-up/page-down to raise and lower the camera.

As always, find out more about Flint from the project website.

C# version of Flint Particle System

One keen user of Flint (Ben Baker) has ported it to C#. The project is called Flint-sharp and is on GoogleCode at http://code.google.com/p/flint-sharp/. There’s a few features still to implement, but most of it is working well. Ben’s not sure how much more time he can spend on it, so if you’re a C# developer and interested in working on the project please let me know.

The project will be supported through the existing Flint website and forum (I’ll be adding more info about it to the Flint website soon).

Garbage Collection

I recently received a support query on Flint regarding garbage collection. In discussions on the forum I was reminded that many Actionscript developers don’t know how the Flash Player’s garbage collection works.

For some developers that’s not a problem since memory use is quite low on lots of web sites, and all the memory is freed when a user leaves the web site anyway. However, with the development of rich applications on the web and in Air, garbage collection is becoming an issue that more developers need to understand.

I was going to write a long post explaining garbage collection, but Grant Skinner got there two years before me. Here’s his useful series about resource management in Flash.

When you’ve read that, this more recent post by Sean Christmann adds further insight – Kick starting the garbage collector.

Now there’s no excuse for leaving trash lying around.

After a couple of days relaxing

I’ve been working on a number of big projects for a client – working in-house planning and architecting the projects, writing code, and managing their Actionscript developers – which has meant I haven’t had much time over the last few months to work on the Flint particle system or any other of my own projects, to do research, or even to post very much on this blog.

Those client projects have now finished. I’m still working as an occasional consultant for the client but the in-house team can now manage the projects themselves.

This means, to all those clients and potential clients to whom I had to say no over the last few months, I now have time to take on some more work. Do get in touch if you need me.

It also means I can start working on Flint again (and maybe later a couple of other interesting projects I have in mind). There’s a 3D version of Flint in progress which I hope to release next month. This will eventually work with all the major 3D engines, as well as having its own stand-alone renderers. The code is already available in its early alpha version, and frequent updates will follow.