- Computer Animation - Fall 2006
Project 2 - Alphaboids
Idea 1 : - Vowels
chasing down unruly alphabets
Idea 2: - Egyptian Hieroglyphics
Idea 3: - Fairy tale told by alphaboids
Final Idea: - Mechanical widgets affecting the boids' movements
paper texture courtesy
of >> http://www.monolithic.com/plan_design/house_plans/3/3075x.gif <<
environment map >> courtesy of: ATI CubemapGen v1.1<<
Fig 1. The engineer's paper on the table. A couple of mechanical widgets - A gear and a wind tunnel
- Structures used to store boid objects, distances between each boid, positions of a boid, velocities of each boid etc. (all at time 'dt')
- The structures are traversed based on the neighbourhood size
- Velocity matching - is done by updating the velocities of the boids w.r.t the closest boids in small increments
- Collision avoidance - is done by checking the distance with the radii of a boid and are moved along X axis in opposite directions
- Flock centering - is done by checking angles between the boids and turning them in small increments until an average orientation is achieved automatically
- Extra Stuff - The gear is just an object that collides with the boids and turns them away to make them move in random directions. The wind tunnel is a one-way path into which boids are zwooped when they get too close. A fan makes the motion a bit more realistic. The spring is just there in the table doing nothing.. it was first planned to do a spring motion on the boids.
Fig 2. The table zoomed out - Initial state - Space bar will start action
Fig 1. Another view of the paper and the alphaboids in action
Fig 4. Looking through the tunnel
For your flock centering, you said that the angles are turned in small increments. Since you are not making the boids collide with the boundary and turn back, but making it appear at the other end, what happens to the flock centering when a group of boids gets close to the boundary and starts centering and a few of them actually goes through the boundary and reappears in the other side. would centering still work?
It would start working as the neighbours arrive behind the boids that enter
the boundaries and are close enough to be neighbours. It will not work when
the split up neighbours are on two ends of the boundaries.
Code - Have a look..
Code & Required files to run - Download
This program requires Electro 7.46 to run. Get it at www.evl.uic.edu/rlk/electro