Sunday, June 26, 2011

Boid formations and Software Process

At the stroke of sunset laying on an old wooden bench, gazing at the sky and admiring the performances the fleets of birds roll out is a beautiful experience. The general fleet flights, flock splitting formations, obstacle avoidance structures are all done with such smoothness, sync and elegance. Its one of natures treats meted out to the human eye at no cost!

boids law
boids formation captured at Pinang, Malaysia

Craig Reynolds in his published work tries to bring this stimulation to computer graphics. In its most simplest form he defines three rules for each bird object, namely, separation (to avoid crowding to the flockmates), alignment (to head in the average direction of the flock mate)and cohesion(to head towards the center of the mass of the flock mates). Interestingly when the above three rules are applied by each bird object within its scope of bird view, hence each bird takes into consideration only the behavior of the birds close to it within a small range. When the above characteristics are applied to a simulation you could generate something similar to the natural experience.

To do a bit of bird watching online goto, http://gpolo.github.com/birdflocking/
and do the following so that you would understand the rules,
1. Set all the effects to 0% and then make one of the effects at 100% and observe the effect of each rule.
2. Then set the rules to hundred in pairs.
3. Set all rules to 100% and see the change.
4. To complicate things you can try the same but setting the debug with birds view or all.

Interestingly in boids formations individual birds individually exhibit limited or no intelligence at all; what they do is follow the defined process of following the three rules. As a result of that discipline they manage to give an illusion of being an intelligent flock! You would observe that they do not have a leader and the speed of the flock is set by each individuals need to reach the destination by night fall.

So the lesson learnt for me is when individual objects are non-intelligent, they are to repeat the same task over and over again and has individually the same goal to achieve; you don't need even a leader or control measures, but still the work group would achieve the expected productivity. Now that's where 100% process adherence should be applied and expected!

References

1. Craig Reynolds publication on Boids formations - http://portal.acm.org/citation.cfm?doid=37401.37406
2. Simulator http://gpolo.github.com/birdflocking/
3. Craig Reynold's page http://www.red3d.com/cwr/boids/

No comments:

Post a Comment