Adventures in Flocking

So, about a year ago I worked on a couple of really fun projects with some classmates for our animation class. One of these projects was loosely defined as anything that leveraged a flocking algorithm, so we made a toy like game. As with many of my small game projects, we implemented this one in Unity to keep it simple. The game allows you to release ants into this apartment that will flock around in group and you can chose from a variety of objects to drop on them or put in their way. To help us learn about flocking algorithms, we put controls for all of the coefficients in the GUI so that we could tweak the algorithm on the fly.
I developed our collision detection between the ants and the walls, because the ant would need to be able to tell if the wall is on its right or left when it approaches it in order to avoid it properly. We also needed models for objects to drop on the ant so I made a few of them myself in Blender and created they prefabs for these objects in Unity. Finally, I also incorporated the stereoskopix scripts so that we could support the 3D functionality of the displays we had in the classroom.
If you’d like to play a browser friendly version of the game check it out here.
The project website can be found here.
GraviDarts is a game I developed for a Virtual Reality course. It was developed in Unity and was designed to run on a 2x2 array of passive stereoscopic lcd displays with a Vicon Bonita tracking system. The tracking system followed the player’s head and a wiimote. The head tracking was used to maintain a correct viewer centered perspective and the tracked wiimote was used to capture the throwing hand’s movements.
For this project I worked with scientists from Argonne National Laboratory. I had two main tasks in this project. The first, was helping to develop a visualization tool for nano-scale materials scientists to run on a custom built auto-stereoscopic workstation (3D without glasses). The second was to extend the libraries used for application development for that display to help future developers. It was a great learning experience and was the project I spent the majority of grad school working on. I learned about all forms of stereoscopic displays and how they produce a three dimensional images to ensure the visualization would appear correctly and so I could debug calibration issues in the hardware of the display. For the work on the library however, I had to do a lot of work with network programming and incorporating multitouch support.