Discussion of Homework on Subdivision Curves

You showed an impressive effort and interesting results in this assignment, and I bet you all learned a whole lot in trying to invent your own subdivision schemes. I am particularly impressed by those of you who added an extra slider to study the influence of a parameter on their scheme, or who implemented the Lagrange interpolation scheme for comparison with your own attempts -- this I consider A+ work !

In some cases I marked your reports A-; this does not mean that I do not appreciate your effort that you put into this assignment. (I would typically denote apparent lack of effort with a B or C). When you see an A-, it indicates that I think you should have been more critical of your results and looked for a serious coding error or even a lack of understanding of the principles of subdivision. (E.g., in the circle-interpolation scheme, some of you picked the wrong one of the two arcs over the segment to be subdivided; others did not recompute the circles on the new subdivision vetices, but continued to use the ones first computed -- which clearly cannot lead to G1-continuity at the original vertices.)

Below are some of the checks that you should apply, and warning signs that may indicate that something is seriously wrong.

Keep these points in mind the next time you invent (or modify) a subdivision scheme. If any of these points are not satisfied, try to figure out whether something fundamental to your scheme prevents it from happening, or whether it may just be an implementation bug.

In general, when you design any methods or systems, explicitly write down what expectations you should have on your results, and then check your achievements against those expectations.