Final Project

 
 

Your final project will be due during the exam period for this course, Thursday, December 16 at 2PM. You will be expected to give a brief presentation and demo of your project. In addition, you must submit your source code and related files including a write up. Your project must compile and run on the graphics machine or my laptop in order for me to grade it. Be sure you test this out in advance of the due date.

In addition to the final deadline, you are required to submit a project proposal by Monday, November 22 during class. This proposal should describe your project and include a bibliography citing relevant work as well as detailed milestones spaced about a week apart. (Your grade for the final project will be based, in part, on how well you stick to your schedule.) You will give a brief presentation on Monday, November 22, describing your project and (hopefully) giving a demo of your initial prototype.

Be careful to design your project with several intermediate goals so you have SOMETHING to turn in by the due date. You should also read the advice about selecting a project from the following document published at the University of Waterloo : http://www.student.cs.uwaterloo.ca/~cs488/a5.pdf.   For ideas on a project, you may want to explore projects assigned in graphics courses at other universities. (Stanford is a good place to look.) Or you may consider implementing an algorithm presented at a recent Siggraph conference; I have proceedings in my office.

Here are some additional suggestions that may interest you:
 

  1. Extend your image processor to include a paint program.
  2. Extend your ray tracer. There are countless (ok, so they are countable but you know what I mean) extensions you can make to your ray-tracing project.  Do a web search on ray-tracing for some ideas.  In addition to implementing extensions you must also create some images/movies that demonstrate the effects.
  3. Virtual Mudd:

  4. This is an advanced modeling project.  You should create a "room" in the Libra complex that a user can explore interactively.  For example you may want to build the "robotics lab."   The lab might include some of our very own robots from project 3.  It might include Zach Dodd's head!  The goal is not to realistically model the actual space! Rather to make a room around a course theme that is fun, interesting to explore, visually appealing, and that incorporate a variety of advanced modeling techniques beyond those you used in project 3.
     
  5. Radiosity or photon mapping:

  6. Write a program that implements global illumination using radiosity or photon mapping.  For details see  http://freespace.virgin.net/hugo.elias/radiosity/radiosity.htm  or  http://www.cs.utah.edu/~bes/graphics/radiosity/.
     You must also create some images/movies with your program.
     
  7. Non-photorealistic Rendering:

  8. A major focus of computer graphics is to produce photorealistic images.  Is this always a good idea?  See David Salesin's (UWash) page  http://www.red3d.com/cwr/npr/ , which describes the objectives of NPR and previous work in the area.  You might try reproducing some of these projects OR think up something new!
     
  9. Interactive Modeler:

  10. Build an interactive program to help a user build a model that incorporates one or more of the following:
      a.)  Metaballs:  see  http://www.cs.wpi.edu/~matt/courses/cs563/talks/metaballs.html
      b.) Particle Systems:    see   http://www.intel.com/ial/3dsoftware/particle.htm  and  http://www-2.cs.cmu.edu/~baraff/sigcourse/notesc.pdf for info
      c.) Surface Subdivision:  see  http://www.cs.princeton.edu/courses/archive/fall01/cs426/assignments/assn3/assn3.html
      d.)
      e.) Fractals.  (See the warnings in the Waterloo notes about this one.)
    You should use your program to create some interesting models.
     
  11. Image Based Rendering:

  12. Image based rendering uses photographs (or other other images) in lieu of 3D models to create new images.  See the Siggraph tutorial  http://www.debevec.org/IBMR99/  for details.  You might try reproducing some of the work described OR think up something new!
     
  13. Video Game

  14. Yes, you may write a video game.  But you should follow the guidelines of the video game assignment in Stanford' graphics course. http://graphics.stanford.edu/courses/cs248-01/proj3.htm.