Content-Type: text/html; charset=ISO-8859-1 CS559 Course News

Fall 2005


Sample Code

Project 1
Project 2
Project 3

Basic Info

C++ hints

CS559 Course News

Are you looking for the Basic Course Information page?

News Pages: [ 1 ]

Fri, 23 Dec 2005


Either later today or Wednesday I will email everyone with their Project 3 grade, their final exam score and grade, and their unofficial final grade. (I am not allowed to tell you your official final grade, only the registrar can do that).

I want to get them sent out today, but I'm not sure I will get them all done.

Yu-Chi has the exams and the Project 3 score sheets, so if you have questions about them, please ask me after January 8th (since I will be traveling and he will be traveling).

Final Exam Key and Results

The answer key to the final exam is posted here.

Mean score = 64.3 Median score = 61

I tried two grading systems: one was the "it was a hard semester, give everyone a Holiday Gift" scale

A > 78, AB > 64, B > 55, BC > 48, low scores gvein C

The other was the "how it really should be graded" scale:

A >= 90, AB >= 80(*), B >= 65, BC >=55, C >= 51, CD >= 43, D >= 40 In all 32 exams, only 1 person was "on the fence" so I gave them the extra point (*).

What's amazing about this is that switching between these two grading systems give very different final exam scores, but did not change anyone's grades. (Actually, its not so amazing, the final doesn't count for much. And we were very generous with the grades for the Assignments - 2/3s of the students got As.)

So I've chosen to use the harsher scale. That way, I can feel like the exam was graded fairly. Your exam grade indicates how well you really did on the final. And no one's permanent record is affected.

Overall, the class grades were very good. The mean and median grade is an AB! (I don't mind the final grades being so high - this is a hard class, and you've all put in a lot of effort.)

Tue, 20 Dec 2005

The Final

A reminder: The final exam will be at 12:25pm on Thursday, December 22th, in room 1325 CS.

The exam is cumulative - it will cover topics from the entire course, although there will be an emphasis on topics discussed in class after the midterm.

A Sample Solution for HW4

Is posted here.

Note: there are some cases where I gave "more correct" answers than the student did. For the purposes of the homework, the answers given were fine.

And thanks to Mohamed for writing up his answers so nicely and allowing me to share them.

Thu, 15 Dec 2005

GL Issues

Some of you have had some problems using "new" OpenGL features on the CSL machines. Multi-texturing is one example.

The OpenGL libraries on the Storm machines should be up to date (although, some people have had some problems that we are looking in to). However, the header files defining the new functions are missing.

For now, you can try including the "glext.h" header in your project. We have put a copy at There is a chance that this might not work.

Just using a better header doesn't help. The correct solution is to use an extension manager that determines what the driver is capable of and provides access accordingly. If at this late of a date you're still trying to figure this out, you're probably in trouble.

Tue, 13 Dec 2005

P3 Demo Signups

The signup sheet is posted outside of Yu-Chi's door. I will also bring it to class on Thursday.

Articulation and P3

Just to be clear: an articulation is when two pieces of an object move relative to one another - like a hinge. To move an articulation means to make one piece move relative to the other. So, a windmill is an articulated figure and having it spin around would be moving the articulation.

Mon, 12 Dec 2005

Another Bug in the P3 Sample Code

There is a subtle bug in the P3 Sample code: If a car starts out in an intersection, it gets confused (since the direction it leaves an intersection depends on the direction it came from, so if it didn't have a from direction...).

By an amazing random chance (I think its about 1 in a million), this never happened because the random placement of cars in the example program never put one in the intersection. If you added more cars, or if you re-seeded the random number generator, you won't be so lucky.

The easiest solution is to avoid placing cars in intersections. I did this by changing my "main" routine to include the following (this is inside the loop that makes the cars):

// we need to pick a road to start on...
Road* startRoad = 0;
do {
   startRoad = theRoads[rand() % theRoads.size()];
} while (startRoad->is_intersection);
new RandomDrive(c,startRoad,.2f,rand() % 2);

Late Policy for Project 3

Because of the tight timeline (projects must be graded by the end of the semester), there will be no opportunity for "very late" projects. All projects are due at 1pm on Friday the 16th.

For the 19 students who have turned in their previous projects on time, there is of course no late penalty for this project (as you have saved your one free late project for this one).

For the rest of you, we would prefer that you focused on making a good project rather than turning it in on Tuesday morning. We will not assess the full half-grade penalty for projects turned in between Tuesday 9:30 (the original due date) and 1pm Friday.

In fairness to the people who have turned their previous assignments in on time, we will take lateness into consideration into our evaluation of Project 3. Because every Project 3 is different it is difficult to to assign a specific number, but the penalties will always be less than half of a letter grade.

If you prefer to turn your Project 3 in "on time" (e.g. by 9:30am Tuesday) so it is not considered late you may. Please notify Yu-Chi as soon as possible that you are choosing this option. Also, note that the late penalty will be smaller than a half letter grade, so it is probably worthwhile for you to take the extra time.

Previous grades are not be affected by this adjustment: it applies only to Project 3.

Project 3 Grading

Will occur Friday afternoon, December 16th between 1 and 5 (more specific details to be given later). Note: this means that no projects can be accepted after 1pm on December 16th.

Mon, 05 Dec 2005

Course Evals

We'll do course evals in class next Tuesday (the 13th). The lecture will be first (on computer animation) and we'll leave some time for you to grade me.

Wed, 30 Nov 2005

Undergraduate Project Opportunities

There may be some opportunities to do graphics/visual computing projects both within the graphics group and with other groups around campus. If you're interested, please let us know.

Bug in GrTown Sample Code

There is a bug in the GrTown sample code. You might notice that once the lights go on, all drawing gets messed up.

The problem is that in cars.cpp, blending is turned on to draw the headlights but never turned off. If you insert the line of code:

after the "glClearColor" line in Cars.cpp in the method Car::drawAfter, things will work correctly.

A second GrTown bug

The second bug causes the street lights not to draw, and will also preclude any use of drawAfter in a hierarchical model. To fix it, replace the for loop around line 108 of TownViewWidget.cpp with the line:

You can also remove the declaration of the variable g (since it will no longer be used).

Sun, 27 Nov 2005

Homework 4

Is posted here

Wed, 23 Nov 2005

Final Exam Time and Place

The final exam will be on December 22nd at 12:25pm in Room 1325 Comp Sci. This should be a lot easier to find than the midterm room.

Mon, 21 Nov 2005

Links Broken

Links to some of the sample code (particularly for Texture Mapping) were broken. They have been fixed.

An Issue with the GraphicsTown sample code

Note: the graphics town code is organized into subdirectories. When you unzip it, make sure to unzip the whole archive (so you get the proper directory structure).

Rendering Slides Available

Shaohua's slides from the rendering lecturer are available on the Lecture Notes page.

Tue, 15 Nov 2005

Project 2 Demos

Project 2 Demos will be spread out around Thanksgiving. There will be slots: Monday the 21st (3-4:30), Tuesday the 22nd (4-5:30) and Tuesday the 29th (4-5:30). A signup sheet will be posted by Yu-Chi's office. Please try to sign up for one of the slots.

No Office Hours on Thursday November 17th

I will be out of town Thursday November 18th and office hours will (therefore) be cancelled.

We will have a guest lecturer in class to talk about realistic rendering.

Project 3

Project 3 is now "officially" announced.

Mon, 14 Nov 2005

Project 3 (sortof)

A preview of project 3 has been posted (look here.)

It is unlikely that the project description will change much, but it might.

Sat, 12 Nov 2005

A Project 2 Grading clarification

For different features that have multiple parts, sometimes the parts do add up.

  • Having both rail ties and parallel rails is worth more than having either one, but probably not as much as having both (if it were really amazing you could get all 17 points, but it would have to be amazing). Just drawing a line for the rails and drawing lines for the rail ties is a simple way to do "fancy tracks" (better is to draw polygons to give the them some thickness).
  • The other "multiple parts of one things" vary. simple physics would be 5 points for momentum, and 5 more points for having the "ramp up".
  • for multiple cars, 10 points is for having multiple cars on the track at the same time with the correct spacing. 5 additional points (for a total of 15) if the cars are different designs.
You should also be aware that the point values are for doing things correctly. You will get some subset of the points for doing simpler variants.

Wed, 02 Nov 2005

An Errata in the Curves Chapter

This is a bigger mistake that you may run into should you implement cubic B-Splines. The matrix on page 340 is upside down (e.g. the bottom row should be the top).

Everywhere in the chapter, I use the convention that the u vector is [u^0 u^1 u^2 ... u^d]. Except here, so it should be fixed.

Tue, 01 Nov 2005

Calendar Changes

We have decided to change around the project and assignment due dates.

Projects 2 and 3 have been delayed 1 week. Project 2 is now due on November 15th, and Project 3 will be due on December 13th.

Note that the due dates of the written homework assignments have been moved up.

Project 1 Grades and Disputes

Yu-Chi will email everyone their project 1 grades. Basically, from your demo scoresheet you can figure out what grade to expect with a slight penalty if you didn't follow directions.

If you get your grade and it is different than what you expected, we will explain where it came from. If you think we've made an error, we will regrade your project, which may lead to a different result.

Similarly, if you think your exam has been misgraded, please let us know and we'll regrade it.

Midterm Key and Grades

The answer key to the midterm is posted here.

Yu-Chi will email everyone with their score and grade. If you'd like to see your exam, please stop by his office.

Tue, 25 Oct 2005

Seminar of Interest

There will be a graphics seminar on Monday, October 31st at 4pm in 4310 CS that may be of interest. The speaker is Pradeep Sen from Stanford University. He will be speaking on "Dual Photography" - the topic of his recent SIGGRAPH paper. I expect that the talk will be accessible to 559 students.

A Note on the Midterm - Don't Panic

Yes, the midterm was hard. Everyone thought so.

I am aware that there are some questions that were either incorrect or ambiguous.

I am also aware that the exam took much longer than I had thought. This is a problem since many people had to leave promptly at 10:45 to get to other classes (and at least one person had to go to another exam - YIKES!).

I haven't figured out what to do about it yet. Given all the effort that went into designing and checking the exam (yes, there were beta-testers, and at least one of the bugs in th exam was introduced in response to their comments), you would have thought I would have realized that there was going to be a problem.

For the 4 people who did not show up for the exam, please confirm that you have dropped.

Mon, 24 Oct 2005

Answers to written assignment 2

Were put on the web but not linked to (oops!). They are here.

Sun, 23 Oct 2005

Gl Tutorials

At least one student has discovered the tutorials at and found them useful. I will try to get them installed on the CSL machines so that you can play with them.

Fri, 21 Oct 2005

Homework 3

Written homework 3 has been posted here. Its not due until after the next project, however, the first 5/7ths of it may be good practice for the exam.

Thu, 20 Oct 2005

Bezier Curves

With Bezier curves, the first derivatives are obtained by multiplying the vector between the first two points by the degree of the curve. I have confirmed this in 2 other textbooks, as well as by deriving the algebra for the 2nd order case.

So, the CAPTION of Figure 15.10 is incorrect (and the literal scaling of the little vectors that symbolize derivatives). The equations are correct, and the text is correct.

This figure was added late in the game (it is not in the original draft that I sent to the publisher). Still, I should have caught this in proofreading.

(Update. I was told that this mistake was introduced at the last minute after my last chance to proofread, so there was no way for me to catch it.)

Tue, 18 Oct 2005

Info on the Midterm

I have made an outline of all the topics that we have covered in class and placed it here.

I have also fixed the calendar to better reflect what we actually covered, and to make sure that the readings actually correspond to the lectures.

Project 2

As many of you noticed, project 2 is posted. The links to it should now actually work.

Midterm Exam

The Midterm Exam will be held in B371 Chemistry on Tuesday 10/18 at 9:30am (it is the normal class time). The exam will be designed to take 1 hour, but you will have the full 75 minutes. The exam is closed book/closed notes and you should not need a calculator (you'll have to do some basic arithmetic).

All topics discussed in class (and their associated readings) are fair game. In particular, there will be questions on curves. However, there will not be questions about B-Splines (Section 15.6 second half), not are you responsible for the derivations of cubic basis functions (you'll find out about these soon enough).

I expect to post a "summary" of the topics that we've discussed in class (and therefore may appear on the exam), as well as some practice problems later this week.

Comment on Writing Assignment 2

Q1: Please notice the equation of the convolution equation, h(t_0) = integrate {f(t).g(-(t - t_0) }. You need to flip g(t) to g(- t) and then shift it t_0 unit to get g(-(t-t_0)). Thus you need to transform [1 -1] to [-1 1] before shifting it to do the convolution.

In project 1, we normally use symmetric kernel like [1 2 1] for LPF and thus it doesn't matter whether we flip it or not. However, to do correct convolution, you definitely need to flip the g(t) before convolution.

Q2: The kernel coefficients must be summed up to 1 or you will increase intensity( >1) or decrease intensity ( < 1) of the pixel. Some of you forget to put 1/256 in front of the 5 by 5 matrix.

Mon, 17 Oct 2005

Please sign up for demos

It seems that not too many people have signed up for demos. Please sign up soon. If you don't give a demo, we cannot grade you.

Fri, 14 Oct 2005

Sign Up for Project 1 Demos

Please sign up for a Project 1 Demo slot. The signup sheet is outside of the door where Yu-Chi sits (1346 CS).

We really don't want to schedule more slots because people forgot to sign up.

Thu, 13 Oct 2005

P1 Late Policy Clarification

There was a typo on the policy page that has been fixed.

Projects handed in before Friday morning at 9:30 (less than 72 hours late) are considered late, while projects turned in after that are considered "very late."

Because the first demo slot is Monday afternoon, no projects will be accepted after that. The first demo is at 1:20, so make sure that you turn in a project before then (if you intend to hand in a very late project).

A Very Cool Resource

Check out this page at Brown University for a variety of Java applets that are designed to help students understand graphics concepts. There are Applets for color theory, signal processing, ...

Highly recommended.

(this was supposed to be posted a few weeks ago, but I messed up the posting)

Signup Sheets for Project 1 Demos Posted

The signup sheets are outside of Yu-Chi's door (1346 CS). There are slots on Monday, Wednesday, and Thursday afternoon.

Slots are 20 minutes, and we'll schedule 3 people per slot. (The earliest slots are a little different since we alot more time while we work the bugs out).

Mon, 10 Oct 2005

The next few assignments are posted

Assignments for the next 3 weeks have been posted on the web. You can get to them from the calendar or the assignments page.

We have not yet posted sample code for programming assignment 5 (it will be coming real soon now).

Thu, 06 Oct 2005

Correction on Office Hours

My office hours on the course basic information page were wrong. It seemed that most people looked at my home page anyway (until today).

The correct office hours are Tuesday 1:45-2:30, and Thursday immediately after class (11:00-11:45)

Wed, 05 Oct 2005

More Red-Eye Images

I placed a few more TGA red eye images in

These are a bit bigger (but still far reduced from what the camera provides. This shows the problems of uncompressed image formats.

Errata in the Book

A first error caught in the book: on p. 102 in the psuedo-code, it should be

	s = s + a[j] f[x-j]
(all of the i's should be j's). This should be obvious if you understand what's going on.

Tue, 04 Oct 2005

Red Eye Examples

There are a few example red eye images here. More will be coming soon.

Mon, 26 Sep 2005

Project 1 Posted

Project 1 is now (pretty much) finalized. You should probably start soon. The description is here.

The project due date is only two weeks away. Programming Assignments 2 and 3 should give you a running head start on it.

Sat, 24 Sep 2005

Project 1 Preview

A preview version of project 1 has been posted here.

The project itself will not change much, however the web page is a rough draft and may have typos and things that need clarification. This should be good enough that you can get started.

I am aware that I am getting this project out late (the due date is less than 3 weeks away). Some compensation will be made.

Email Issues

In class, we determined that there is an issue with email. The class mailing list will deliver to your wiscmail accounts, but all "personal" correspondence (such as yu-chi sending you your grades for assignments) are sent to your CS email account.

If you don't read your CS email account regularly please (1) check it to make sure you have gotten email from yu-chi about your written homework 1 and program 1 grade and (2) arrange to forward your CS email to your wiscmail account. To do this, go to, got to the web forms page, then go to the email preferences page.

If you have not received your W1 and A1 grades (as email to your CS email account), please send a note to yu-chi.

Thu, 22 Sep 2005

PA1 & Forward CS e-mail

I have sent out my comment about PA1 to those who did not have enough contribution information or did not handin enough files for me to run it. If you did not receive anything, you did a good job in PA1.

Because part of you may not use the CS e-mail, you need to set up the e-mail forwarding for your CS e-mail account. Here is the CSL document about how to set up the forwarding.

Mon, 19 Sep 2005

Misleading directions on program handins

Yu-chi told some of you that you need to turn in a ".suo" file when you hand in a project. I told everyone that you didn't (in the program description). So, don't worry about it: if you turn it in, its OK, if you don't, its OK.

Your solution file ".sln" and project files ".vcproj" are necessary.

Sat, 17 Sep 2005

Issue with Tutorial ZIP files

The issues witht the tutorial ZIP files have been fixed (we believe).

There have been some minor typos fixed in the tutorials as well. All the changes have been minor.

Wed, 14 Sep 2005

Lecture Notes Ahead of Class

I have put up my notes (as power point slides) for tomorrow's lecture.

Given how little time there is, I'm not sure how valuable they will be, but I want to try it. I will try to get more than 1 day ahead.

Tue, 13 Sep 2005

Key for HW1 Posted

An answer key for homework 1 is posted here. The error in the solution to Question 4 has been corrected.

Note: it is less important that you got all the right answers than that you have the intuitions and concepts. What we wanted to ask you on the homework was do you understand what the (determinant, cross product, ...) means? It will be important to be able to use these concepts later in the class.

If you had no idea how to do the homework because you don't understand the basic linear algebra concepts, things might get pretty hard for you later in the class.

Lecture 3 Notes Posted

Lecture notes for Lecture 3 are posted. I am trying to get far enough ahead to make lecture notes (at least a draft of them) available a day or so ahead of the lecture.

Mon, 12 Sep 2005

Week 2 Readings

This week, we'll cover a variety of topics that fall under the category of "Basic Image Processing."

The assigned readings are the first part of Chapter 3 (for Tuesday) and Chapter 4 (assigned for Thursday). You should have seen this in the calendar. It is OK to read these after the lecture as they will present the same material in a slightly different way. In particular, give yourself plenty of time with Chapter 4 - it covers a lot of material.

Programming Assignment 1

Programming assignment 1 has been posted on the assignments page. Some tutorials to help you get started have been posted on the tutorials page. If you look carefully, you'll see that Tutorial 4 is a solution to programming assignment 1.

Sun, 11 Sep 2005

Update to Homework 1

A very minor update was made to Homework #1. Due to a typesetting error, the dot for the dot product didn't show up right. Also, a clarification: the "n" and "p0" in 5C are the same variables as in other parts of the question. I don't think this should effect anyone, but a student did point out these ambiguities, so I fixed them.

Thu, 08 Sep 2005

Lecture Notes Available

As an experiment, I am trying to do my lecture notes (my notes to myself) in a form that might be useful to someone else. I've put the 2nd days lecture (9/8) online.

Feedback on this experiment is most welcomed.

Wed, 07 Sep 2005

Written Assignment 1 Posted

Written Assignment 1 is posted here.

It is due on Tuesday, September 13th in class. (but you knew that from the course calendar)

Web Issue Fixed

Some of you might have noticed that there were issues with the course web site (such as, all of the links being broken). I believe that these issues are now fixed. If not, please let me know.

Mon, 05 Sep 2005

Readings for 9/6 and 9/8

As you've hopefully noticed from the course Calendar there are readings assigned for the first two days of class.

For 9/6, the reading assignment is the first Chapter of Shirley's book. This reading is not required for the lecture (notice that it is listed as *S1* in the calendar), but you should read it sometime soon.

For 9/8, the reading is the first part of Chapter 21 of Shirley's book (the entire Chapter is optional).

CS559 Announcements Page

This is the course announcements page for CS559. The rest of the course web pages are slowly being put into place. Most things are still subject to change.

Yes, I know that This initial entry gets repeated as being from 1969 - it's a bug in the web page generation software that I haven't yet figured out.

News Pages: [ 1 ]