Ek, Anek aur Ekta (One, Many and Oneness)

Project Presentation for Computer Animation (CS 527 - Project 2)

The Inspiration

The idea for this piece was inspired by a clip on National Integration that used to be shown on National Television in India in the 1980's. That clip was called as Ek, Anek aur Ekta (hence the name). It can be seen here.

The Project

A Boid is an entity that (according to Craig W. Reynold) follows the three basic rules. More information here.

Using the three (and another) basic rules of Boids, I have tried to portray a story:

A bunch of letters want to eat apples in a tree. They try to get them independently, but fail miserably. Then, they get together and think for a plan. It flashes to them that unity among the group will help them get the apples. They join together and reach their goal.

This has been implemented by changing the amount of influence each rule has on the boids and modifying their goals from time to time.

Rules that I have implemented:

1. Move Towards Center of flock

2. Prevent Collisions between Boids

3. Tend to go Towards a Particular Point (with Velocity Matching)

4. Move Boid to a specific Point

Special thanks to my girl-friend Shruti for the idea and all the support during the course of this piece.

The Executable

Download Boids.zip. Unzip to a folder and run Vishu dot exe.

How it works

1. Setup Scene: Paper, Apples, Text.

2. Start with Scene (Step) 0 - Stationery position.

3. While (Animating)

4. For Each Boid in the Scene

Based on its current position, and step,

update its next position and step.

End While (Animating)


Q: I guess you would have used weights for your boids to make them fly differently base on their weights. If that is the case, did you use weight as a factor in determining the collision with the apples making them to fall down. Will a few boids of greater weight have a greater effect than the same number of boids of lighter weight in making the apple fall down? - Vijay Krishnamoorthy

A: Yes, the boids move differently because of the weight factor. But to make the apples fall down, I only used the fact that there has to be 10 or more boids around it in "close-vicinity".

Q: I have a few basic questions about your boid states - do yo switch states (jumping, talking, etc) based on location? Also, in class, I noticed that you create a new boid or apple object every time you change state. Isn't this constructor business computational expensive? - Lindsay Grace

A: I switch state of a boid based on its current step. Sometimes (Example: when it is about to jump) I change its state when it reaches its goal (position) and other times (Example: when they get together) I change the state of all boids at the same time. Also, an apple boid is created on the click of the mouse; when this is done, an existing apple is cloned and positioned randomly on the tree - so there is theoritically no loading from files involved; and the number of apples is very minimal, so I don't think it is very heavy of computation. But yes, I could have re-used the apples that were eaten up (if there were any) for new apples.