Project 2


In this project you will implement Craig Reynold's Boids.

These Boids are characters on a piece of paper that grow tired of their stationary existence and begin to move around and flock. They are limited to moving on the surface of the paper. Other characters and lines form boundaries.

Now, the specific rules for which characters are moving and what their goals are is up to you. The world could be a short set of paragraphs of text where the 'i's decide to escape and flock around eating the periods, or a set of equations where the variables decide to go on a road trip, or it could be a set of Xs and Hs recreating the attack on the Death Star from the end of Star Wars, or maybe someone is playing a game of hangman and the letters decide to rescue the guy, or tic-tac-toe where the Xs and Os try to bust out. Ideas with alternative language character sets are also welcome.

While the action will be taking on (or just above) the piece of paper, the user should be able to freely rotate the piece of paper in 3 dimensions (roll, pitch, yaw) and zoom in and out.

It would also be nice (ie you can get a higher grade) to have an option where the letters can fly up and over some obstacles.

It would also be nice to be able to specify lines, circles and other drawn landscapes for the letters to fly around and through.

The backdrop should look like a piece of notebook paper, but other styles of paper are possible if you clear it with Andy first.

The user should be able to use a Text Editor to create the initial conditions of the world (straight text, xml, LaTeX) and then your program should convert the text into the initial graphical state of the world with polygonal characters or texture mapped characters where some of the characters have the ability to move and turn on the page, and others form boundaries that can't be crossed.

You should also create a web page. The web page should include a screen shot showing what your paper world looks like, and then it should describe what you did in the project. The web page should also link to your surce code, instructions for compiling and running, and an executable that can be downloaded and run. You should then send email to andy giving the location of your web page, along with a small 320x240 snapshot of your work to be included on the course web page.

You have a pretty wide range of possible languages to use. C and OpenGL, Java, Blitz3D, Electro, etc.

Each person will give a short 10 minute presentation on what he/she h did in their project (most likely making use of the web pages that you created) and get feedback from the rest of the class. Be prepared to show your application, and discuss why you did what you did and how you did what you did.

last revision 8/6/06