final fun

Assigned: Monday, May 29th
Project Proposals Due: Thursday, June 1st, in class
Projects Due: The week of June 12th

Goals

Now that we've learned how OpenGL and the OpenGL Shading language work, this project is intended to give you (and a couple of friends) the creative freedom to make a visually interesting demo. Your exam grades are ephemeral, but this project should stick with you for years to come as an example of your best and most impressive undergraduate work.

getting started

By now, you've developed a codebase that allows you to load 3D objects, process their geometric structure, and apply various shading algorithms to render them. In this project, you'll be extending this codebase to create an interactive demo that showcases your graphics skills.

You may work in groups of up to three people for this assignment. Group projects are highly encouraged. However, the expectations for group projects will be (understandably) higher than those for projects done by individuals.

If you run into trouble while working on your project, you have several avenues available to you. Ask questions in lab, post a message on the course discussion group, or come to the instructor's office hours.

Using other systems or frameworks

Because libgfx is extremely platform independent, using it ought to allow you to develop your code on one system and trivially port it to another. However, we only officially support the library on the iMac machines in the College 8 lab, so if you run into machine- or platform-specific problems on another system, we may not be able to help you. In order for your project to be graded in lab, you must make sure that it compiles and runs on a machine that is physically in the lab. If your project does not compile when we attempt to grade it, you will receive very few points, if any.

You may use a different GUI toolkit (e.g., GLUT, SDL) if you like. If you decide to do this you must:

  1. Cleanly separate your GUI code from your project implementation so that the graders can easily find it
  2. Turn in all the files necessary to compile and run your program
  3. Clearly explain in your Readme file how to compile and run your code with your GUI toolkit of choice.

It is also possible to develop your project on another platform. However, you must be able to demo your project in the lab during your assigned demo slot. You may demo your project on a laptop if you wish, but you should note that OpenGL 2.0 and the OpenGL Shading Language are still not universally supported on all platforms and hardware configurations. Therefore, we strongly suggest that you plan to complete this assignment in the class lab.

Requirements

You have broad discretion in picking a project. There are no required features, and the instructor will approve any proposal that he believes will result in a visually interesting application.

Grading will be based primarily on the visual appeal of your project with consideration given to the originality of the idea and the technical challenge of the work. Note that extremely ambitious projects that do not work will receive basically no credit, while relatively simple projects that are executed well will receive high grades. Be careful not to bite off more than you can chew!

Project Ideas

Here are a few ideas that the instructor thinks would make good final projects. You should not feel limited by this list!

Since graphics is fundamentally a visual field, projects that are extremely impressive (especially those involving the OpenGL shading language) may be eligible for nontrivial amounts of extra credit.

Project Proposals

On Thursday, June 1st, at the beginning of class, you must turn in a written description of your proposed project. Your description should include: The instructor will review each proposal and contact you via email if any part of your proposal is unsatisfactory.

Handing in your Project

Follow all handin instructions carefully. If you do not hand in all of the required files in the proper fashion, your project will not be graded and you will receive no points.

You must turn in the following files:

To actually turn in your finished project, follow the hand-in instructions that we have provided. If you're working in a group, only one group member needs to turn in each project. Note that you must turn in your project by your scheduled demo time.

Grading

Before you begin work, you should make sure that you've read the policies on grading and academic integrity in the course syllabus. Any questions as to what constitutes acceptable behavior during the development of your project should be directed to the instructor via email or the course discussion group.

A required part of the grading process will be a live demo of your finished project. You will not receive any points for your project until it has been demoed. Signups for demo slots will occur in class on Thursday, June 1st. Teams that fail to show up for their demo slot will not have their projects graded and will receive no credit.

There will be absolutely no extensions of any kind given for this project, so don't even ask!