Instructor: Jarek Rossignac, email. Office hour: Tuesdays and Thursdays 12:30pm to 1:25pm in CCB commons.
TAs: Office hours: Scott McManus: 2-3 MWF CCB Commons, Jesse Swidler: 12-1 MWF Study Area outside Klaus 3303, David Zimmermann: 10:30 - 11:30 CCB Commons
Henry Dooley, email | Stephen Pettett, email | Jesse Swidler, email | David Zimmermann, email | Scott McManus, email |
Course overview slides.
The course material is posted on the syllabus page, which describes the 15 modules that make up this course and provides links to accompanying slides, reading assignments, and demo applets.
Students are responsible for learning all the material that was either covered in class, or on the posted slides, or in the required reading papers and handouts that are posted on the sylabus page. They are also responsible for understanding the implementation of the example applets provided.
Grading: First midterm=15%, quizzes=10%, second midterm=25%, projects=50% (These modified weights reflect the agreement reached in class on October 20, 2009.)
Extra-credit points will be awarded for outstanding projects. There will be no final exam.
Reading:
Projects:
Projects are due on the due date before class on T-square uner the corresponding rubrique (project x).
Please enter the name of the student, the name of the partners if this is a group project,
the link to the web page containing the project (Project number and title, authors' names, report in PDF, interactive applet, zip file with the applet, the source code, the data). Students who plan to use a different language for programing the applet should contact the TA in advance. Students must ensure that their interactive applet runs on a web browser over the Internet,
in particular, they must remember to copy the data folder with images, fonts, and models to their applet folder. Note that fonts posted with the starting applets were created on a mac and may not work on other machines. Late submission of projects or missing documentation will result in severe penalty. Copying even parts of a project from another student is strictly forbidden. Publicly available resources may be used, but must be clearly acknowledged and the links provided.
Project 1: Due Thursday September 2 at noon.
Your web page should contain the following:
For extra credit, include a short and easy to understand justification or proof that your approach works (provide a reference to prior art that contains the inspiration for your short proof) Further extra credit: extensions to more than 3 points. Further theoretic considerations on this constructions. Please clearly describe on the web page what extra credit you did. It may be a good idea to include a separate web page or a separate applet for the extra credit part.
Project 2:
Use the code provided.
1) Replace my name and picture with yours
2) Write a nice filterMouse function that moves a point to follow the mouse but smoothly, with a delay and possibly with inertia. One way is to return a weighted average of the mouse positions during the last 30 frames. Another way is to treat the ball BB[0] as a dynamic object on a spring pulled by the mouse (you may need friction)
3) Change the aim function so that it computes the velocity V of the ball so that it hits the target in 2 seconds assuming constant aceleration G. Use integration of C(t)"=G to derive C'(t) and C(t) as a quadratic function of time so that C(0)=starting corner and C(2)=target Set the velocity V to be C'(0)
4) Change the move method of ball so that it updates the velocity and position to perfectly track the free-fall parabolic motion. Use the full Taylor series expansion of the motion to compute the position C(t+1/30) from C(t) and derivatives
5) Change the predict function to predict where your face will be in 2 seconds. You need a filter to ensure that this prediction is not jumpy. You should do better than the linear prediction I have provided. Take the acceleration into account. For example, if the player moves the face in a cirlce, your prediction should not be too far from the actual future position.
6) Change processcollisions so that you detect collisions between your face and other balls. Update the collision count. Make sure that you do not double count these collisions.
7) Turn this into a nice game
8) Produce a web site with course and project title, your name, your face picture, an interactive applet for your game, instructions on how to play, descriptions (short code snippets or pseudocode for the implementation of the above functions), a description of the extra credit you have done, a link to a zip file with your entire project folder.
EXTRA CREDIT
a) Implement a bounce-off that changes the "normal components of the velocities) when two balls collide. Check my Sumo game for more details.
b) Explosion when the face ball is hit
c) Additional effects (including sound when there are collisions)
Previous year projects
Assignments and exams schedule
Assignment P1 was due Sept 1 before class: Study the class notes on Processing, Geometry, and Curves.
Implement the applet as described in the cyan highlighted sections of Curves. Start with the applet P1. Modify the place-holder (incorrect) implementations marked with "***" in the "action" and "UI" tabs. Make sure that you replace my picture with one of you showing your face clearly in the help pane. When correct, your applet should produce images like the one below. Do not change the GUI.
We will have one more quizz. We will not count your weakest quiz. Your best twoquizz grades will count for 5% each. The next quiz will cover:
- perspective transformations
- arrangement of tangent balls
- light refletions off a Lambertian surface
The second midterm will be on Nov 19. Closed books, no computers or notes of any kind, except for one single-sided sheet of notes that you may bring. It will cover everything we studied until then, including the projects. In particular, it will cover slides from sections 09, 10, and 12.
If you have a conflict with that date (Nov 19), please let the instructor and TA know before Nov 19. (We can make a special arrangement for you to take a final on December 11 from 11:30 to 2:30.
This final will cover all material studied during the semester. It will be closed books. You will be allowed one single-sided cheat sheet as well.)
Project P3 has 3 phases with deliverables and deadlines for each phase and has a fourth phase (animation) for extra credit. The complete project submission will be accepted until November 24. Project description: PDF. If you find the project too ambitious, you may attempt to produce a 2D version for partial credit.
Project presentations will be scheduled on December 1 (if a sufficient number of students wish to present) and on December 3. Please notify the TA before Nov 24 if you wish to present your project. If your final numeric grade puts you at the very top of the B group, an excellent presentation could help you pass the bar to an A grade.
See video demo of Jesse Swidler's project
Projects given in 2008