Programming Assignment 3: 3-D Vivarium
Due Monday November 13 at 11:59pm

The purpose of the assignment is to introduce you to 1) the use of OpenGL display lists and OpenGL transforms for hiearchical modeling, and 2) collision detection and clipping.

You will program a 3-D vivarium: a simulated 3-D world with polyhedral creatures moving around.

Hints:

  1. You will likely want to change the 3-D view of the tank during simulations.  Here is a simple example program that allows you to change the 3D viewpoint by clicking the left mouse button + dragging. It shows a spinning teapot in a 3D tank.
  2. You will likely need to define callbacks for glutIdleFunc, or maybe glutTimerFunc.

Extra Credit I (required for CS680)

For extra credit on this assignment add more creatures to the vivarium, then make it possible for creatures to engage in group behaviors, for instance flocking together. This can be achieved by implementing the Boids animation algorithms of Craig Reynolds. 

Extra Credit II (undergrads may only do one Extra Credit, either I or II)

Implement stereo viewing of the vivarium using red/blue anaglyphic glasses.  If you are interested in obtaining a pair of these glasses, please ask.

Demo

Part of your grade for this programming assignment will be based on your giving a short demo (10 minutes) in the CAS cluster. You will be expected to talk about how your program works, and we will see how well your program performs on some test examples. You will be asked to sign up for a demo slot in class.

Source Code Submission

Your program's source files are to be submitted electronically. Use the submit program on CAS.  NOTE: make sure to submit all files needed to compile and link your program.  The code you submit should conform with the program assignment guidelines.

Grading (Out of 100 points)

CS480
Use OpenGL transforms and display lists to produce two creatures with moving parts 20 points
Creatures face in direction they are moving 10 points
Collision detection and creatures react to each other 20 points
Creatures stay inside window as described above 15 points
Food can be added, creatures find and eat the food as described above 15 points
Programming style 20 points
Group behavior modeling, etc. OR stereo viewing (choose one extra credit option only) 10 points extra

CS680
Use OpenGL transforms and display lists to produce two creatures with moving parts 15 points
Creatures face in direction they are moving 10 points
Collision detection and creatures react to each other 15 points
Creatures stay inside window as described above 10 points
Food can be added, creatures find and eat the food as described above 10 points
Programming style 20 points
Group behavior modeling, etc. 20 points 
Stereo viewing
10 points extra

Late Assignment Policy

Late programming projects and problem sets will be levied a late penalty of 10% per day (up to three days). After three days, no credit will be given.

Collaboration/Academic Honesty

All course participants must adhere to the CAS Academic Conduct Code. All instances of academic dishonesty will be reported to the academic conduct committee.


Stan Sclaroff

Created:  October 3, 2006