Verlet integration polygons with collision

Thursday, October 9th, 2008

I REALLY didn’t think it was gonna be this easy… no complex maths, just a bunch of looping and hitTest, hitTestPoint kind of code :)

Click for teh Collidin Verlet integratin kick butt multicolored polygons explorer demo

screenshot of colliding polygons application

While coding, I was sure I would roast my cpu, maybe run up to 20-30 polygons, but my trusty laptop can churn out 70 shapes at a time before the framerate starts to slowdown. I find it mesmerizing to watch… Cool with 70 shapes, but also very cool to watch a fewer number and actually appreciate the “realism” of the collisions (not perfect, but not bad). It’s late, the code is dirty, time to shut down and watch heroes :D

…but if you want the dirty source code, ’tis yours

More to come… am really enjoying this… :thumbsup:

Playing with Verlet Integration

Thursday, October 9th, 2008

Keith Peters presentation at FOTB was on the last day, at 9 am. Not necessarily the best time for “Advanced AS Animation” :D I was wide awake though, as soon as he started talking about Verlet Integration. The presentation slides are up on his blog. Keith also provided this gamasutra link for more info.

I was compelled try it out. It’s like magic, such simple math, yet, the result looks like the work of a physics genius! Here’s my first test : The Verlet Polygon Explorer

verlet polygons explorer screen shot1

It’s a Flex project, I added some widgets to make “playing around” easier. You can change the number of shapes, change the force of gravity, the “rigidity”, even add some wind and bounce the little bastards…


verlet polygons explorer screen shot1

verlet polygons explorer screen shot1

This really is a powerful approach in terms of performance. I only started to drop below 30 frames per second after 70 shapes… Naturally, “rigidity” adds a lot of overhead (number of times each “update” is calculated per frame).

Click the link above or images for the demo, source files can be downloaded here.

I’ve got a bunch of ideas for stupid experiments, but also for some real applications… This is a great tool to add to any flash developers bag of tricks! Thanks Bit-101!