CS4451B Fall 2003: Project 1

Aug 25: Team Project 1, phase A: Study examples of OpenGL programs

Arrange, compile, and run 5 OpenGl programs: 3d.c, light.c, unproject.c, spinner.htm, viewer.htm and texture.htm
    (See  OpenGL instructions and examples on how to get and compile 3d.c)
Change some of their parameters and capture an original image of it showing the effect of your changes
Make a web page with the names and emails of all of the team members
    Insert a description of what each program does, how you have changed it, and a picture (low res)
        (Keep each description to less than 100 words.)
Email URL of project web page to the instructor and to the TA before class on Aug 25.

Sep 03: Team Project 1, phase B: Make bugs slide randomly

Write an interactive program that shows a floor with a 20x20 checker board and 3 bugs sliding on it.
Each bug should fit inside a sphere of radius 1 centered above ground at height 0.5.

Each bug has a body (ellispoid made by scaling a sphere) and a small head (sphere).
Decorate the bugs with cool wings, tail... (no legs) using colored OpenGL/GLUT shapes and transforms

Demonstrate that you have mastered the use of transforms and of the stack
Pick nice colors and material properties for the different parts (personalize YOUR OWN bug)
Make a couple of nice trees (about 4 times higher than the bugs)
OPTIONAL: make floow shadows of the bugs

For each bug, store its (x,y) position, angle w, and their derivatives
Write a controller that randomly changes the derivatives by small amounts (personalize your controller)
Let the animation run for a short time and make pictures of the initial and final configurations
On your project page, make a link to a new page for Phase B
On the Phase B page, explain what you have done and insrt the images and the link to commented source code
Specifically, include on the page the commented portion of your code that displays each bug

Sep 08: Team Project 1, phase C: Motion Control

To avoid collision, make the body of each bug repelled by other bugs and trees where they are too close
Give each bugs a behavior pattern (for instane be attracted to the head or tail of the closest bug)
Let the user interactively select one of the bugs (using keys or preferably the mouse with a graphic pick)
Let the user control a small red disk on the floor (its screem projection follow the mouse when the button is down)
The selected bug shold be attracted by the red disk
Put more bugs in the scene
Capture a short, low resolution video of an interesting animation
On your project page, make a link to a new page for Phase C
On the Phase C page, explain what you have done and insrt links to the video and to commented source code
Specifically, include the commented subset of the code that selects the bug and moves the red disk

Sep 15: Team Project 1, phase D: Moving legs and inverse kinematics

Use transforms and 2 cone primitives to make a limb and use 2 limbs to make an articulated leg

Assume the hip, the tip of  cone 1 is at the origin of the local coordinate system
Write a program that draws the leg given its toe (end-point of the ourth cone tip).
Assume the two parts of the leg have equal length and the hip, knee, and toe are in a vertical plane
Devise a controller that maintains the toe fixed on the floor as the bug is moving as long as possible)
Decide where the toe should go for the next step when it can no longer stay on the floor
Write a controller that puts it there
Put all 3 controllers together to produce a walk sequence
Attach 6 legs to each bug and use a different starting position for each toe (3 on the floor initially)
Finetune the parameters and the controllers to produce realistic motions
Make the camera get close to a bug and track it as it walks

Capture a short, low resolution video of an interesting animation of a single bug walking
On your project page, make a link to a new page for Phase D
On the Phase D page, explain what you have done and insrt links to the video and to commented source code
Explain in details of how you have computed the transformations that display the leg given a toe position

Explain how you manage to keep the toe fixed on the floor as the bug is moving (translation and rotation)

Include drawings, images from your program, and the commented subset of the code for these

Sep 22: Team Project 1, phase E: Invent a game

Design a game where the user interacts with the bugged universe by controlling either one bug or an attractor that attrtacts all bugs that are sufficiently close to it.

Provide menus for starting and ending a game and possibly changing some game parameters

For example, the user-controlled bug may have the mission of defending its tree from other bugs

Implement the game and finetune the parameters to make it playable
On your project page, make a link to a new page for Phase E
On the Phase E page, explain the rule of the game
Also explain how you have modified Phase D to implement the game

Be ready to give a demo in class live (on a lap top or computer in 102). Try it before.