20,000 Processing Particles

by Andy Polaine on December 26, 2007

in Portfolio

I’ve played with Processing a fair bit over the years, but never really got stuck into anything solid – most of my time has been spent fixing up my students’ projects!

Over the break I’ve been playing with some other ideas, working through the very good book by Casey Reas and Ben Fry, Processing: A Programming Handbook for Visual Designers and Artists. It’s probably one of the best books I’ve ever read in terms of introducing and explaining how to code for people without a computer science background.

Inspired by Robert Hodgin’s wonderful Processing work I thought I’d have another crack at particles as they seem to be all the rage at the moment. The particle creation part is easy, but getting them to interact with decent physics was getting too much for my mathematically challenged brain. Thankfully I came across the Traer Physics Engine by Jeffrey Traer Bernstein, which handles a lot of that maths for you.

My “Hello World!” code for any platform tends to be a bouncing ball (or an array of them) because it covers most of the structures – if…then, variables, arrays, etc.

So I started building and engine that has a bunch of particles that are all attracted to each other, but more attracted to a single one which is following a target invisible bouncing ball around the screen. (It would make more sense to collapse the particles into the ball code, but at the moment I’m just plugging stuff together.)

It’s very simple at the moment – just an ellipse as the graphic with some trails going on. The above is a version that rendered out in non-realtime with 20,000 particles. I like the way they seem to rope together and struggle to break free. Sometimes there’s a kind of breakaway flare.

There’s also a bit of gravity going on, which drags everything down. Any particles that go off the bottom of the screen are simply recycled up the top (you’ll see this in the initial explosion). A interesting upshot of this is that sometimes the tail of the flare/rope falls off the bottom and those particles make a break for it from the top.

You can play with a 2,000 particle version of it here (and view the source code)..

There are also a couple of other versions on Vimeo.

[tags]processing, particles, generative, video, vimeo[/tags]

{ 2 comments… read them below or add one }

1 Matt Turnbull March 5, 2009 at 5:36 pm

Really nice, thanks for posting the source.

2 Andy Polaine March 5, 2009 at 8:26 pm

Matt – Thanks and no problem about the source code.

By the way, I think you might get an error with the version 1.0 release of Processing because the Traer physics library needs to live in the Libraries folder in the Sketchbook folder rather than with the Sketch or in the Processing folder. Other than that it should work – I haven’t tried running it for a bit.

Let me know how it goes and if you make anything with it!

Previous post:

Next post: