Math 155B - Geometric
Final Class Programming Project
Due date: TBA (probably last weekend before finals)
Choose a substantial project, either from the list below, or choose a project
of your own. The project should involve programming and some substantial
use of graphics or animation. All project plans need prior approval from Buss, NO
LATER THAN FRIDAY, MAY 25.
Results: should include several JPEG/GIF images suitable for posting
on the web (with your permission). If you write an interactive program, then you
should save screen shots showing the basic functionality. Grading will be individual
as usual. In addition, we will schedule a "demo session" during the second
half of final exam week where you can demo your program and see your fellow students'
- A ray traced scene. This should incorporate some distributed ray
tracing, and show use lighting, transmission, reflection, etc. to good effect. This
should extend what you did in the third programming assignment. Check out some of
the examples on the web in the Univ. of Waterloo's
488/688 graphics course if you want to get some ideas.
- Backwards ray tracing. Implement either an illumination map or
photon map. Generate focuses light caustics.
- Animation. Use animation with the aid of splines or Bezier
curves. One of the following, for instance:
- An articulated object (such as humanoid or animal or "Pixar lamp").
Animate via forward kinematics.
- Build a dancing teapot that maintains a smooth surface during its movements.
- Quarternion interpolation of orientation.
- Implement inverse kinematics for a linear chain of jointed rigid objects. [This is hard
to do well!]
- Spline investigation. Extend the second homework by writing a
program that implements more sophisticated spline interpolation. One or both of the
- Implement B-spline interpolation based on inversion of a tridiagonal matrix.
- True chord-length parameterization.
- Computer game. Write a simple computer game with a significant
graphics or animation component.
- Procedural, noise-based textures. Learn about procedural,
noise-based textures and create textures such as wood-grain and marble. Optionally
incorporate into the ray tracing code.
- Other. You may also think up your own project. Again, must
be approved by Friday, May 25.
Grading standards: You will be graded on (a) Artistic merit,
i.e., attractiveness of the results and/or on how the scene illustrates features of your
code; and (b) Technical difficulty and/or mathematical difficulty of the project (c)
Ambitiousness of the project and how well you succeeded in the project.
Turn in: You will need to turn in at least one JPEG and a GIF
thumbnail sketch. Plus, you may make a separate web page if you wish.
Here are the overall instructions on what to do. By following
these directions, you may make (a) a thumb nail sketch and (b) a web page of your own with
at least one JPEG. This will allow me to quickly set up the course web page showing
- Copy the files FinalPageTest.html and PersonalPage.html
from the public folder P:
- Use your favorite editor (Notepad is fine) to open PersonalPage.html
and change the student name to your name. You make other changes later to this file
if you wish.
- Create the files Prog4Img1.jpg and Prog4Thumb.gif by
following the directions below.
- Check that everything looks OK by pointing your browser to your own file FinalPageTest.html.
- Use anonymous ftp to send the three files PersonalPage.html, Prog4Img1.jpg
and Prog4Thumb.gif to the computer math.ucsd.edu,
directory pub/sbuss/Math155/ma155wxx where ma155wxx
is your course userid. Place the three files in that directory. If you place
more than one JPEG file please make the appropriate change to your PersonalPage.html
file to display all the JPEG's. (Just copy the line which loads the JPEG image, and change
the name to the other file name.)
- I will set up a common web page showing everyone's image.
Here are the instructions on creating the final JPEG/GIF. Please
follow them EXACTLY, including the file names and their capitalization.
- Use ALT-PRINTSCEEN to dump a screen image to the clipboard.
- Run Photoshop (not the Kodak Image program!!!). Under the File
nenu, select making a new image. Accept the default size (which will match the size
of the clipboard contents). Paste the clipboard contents into the new image.
Save the file as Prog4Img1.jpg (use "Save As..." under the file
menu). USE EXACTLY THIS NAME.
- If you want to save more JPEG files use the names Prog4Img2.jpg, etc.
- Under the Image menu, choose Image Size..., then
change the height to 144 pixels (not inches!!).
Let the width change automatically proportionally.
- Save the resulting small picture as GIF file named Prog4Thumb.gif (named
exactly this way!). For this, go to the File menu and choose Export.