Flocking and various emergent behavior from flocking
The project is about demonstrating emergent behavior in flocking systems and how relatively simple rules can bring about complex behavior among boids (members of flocks). Here is a screen shot of my project:
Platform usedI have used the Electro rendering engine which takes Lua scripts as input for my implementation. On hindsight, this seems to be a bad idea to me as performance is severely limited by Electro's capabilities. This is also another reason why the number of boids in the flock is relatively low. This is however not an inaccurate representation of a flock as real-life flocks are of similar sizes with typically less than a hundred individuals. A flock with more than that number of individuals could be categorized as a swarm rather than as a flock. Rules that are implementedThe following rules have been implemented in guiding the flocking behavior of this implementation:-
Source Code and ExecutableYou will need Electro to be able to run the following implementation:- Just double-click the Electro.bat file in the Project 2 folder and it will load The following key combinations must be noted;
QuestionsQuestion from Chaitanya Kamisetty Q: I observed that all the boids collide with the wall and change their direction. But, if the velocity matching principle is applied I would expect the flock to smoothly steer away from the wall. Could you explain? A: You are right. If I were to apply only the velocity matching principle then I would see that they smoothly veer away from the wall. But, there are two things you have to consider here that affects their behaviour as you see.
I hope this has answered your question to some extent. Post PresentationAfter I saw some of the other projects which had implemented hunter-prey relationships, I realized that I could do that with my boids pretty easily and this really got me going and I implemented a dynamic obstacle avoidance system where the boids avoid the threat which comes nearer and nearer to them. You can download this version along with source code here. |
