CPSC 424 Computer Graphics Fall 2025

CPSC 424 Final Project

Topic/Output Option Due: Mon 11/24
Progress Update Due: Wed 12/10
Final Handin Due: Thu 12/18 8:30am
Presentations: Thu 12/18 8:30-9:30am

The goal of the final project is to explore some topic in the field of computer graphics beyond what was covered in class. In addition, it addresses the "a significant written, oral, and/or visual presentation of work beyond the program code itself" component of a capstone course.

Collaboration and Use of AI

This is an individual project. You may get technical help from others, but the effort and ideas that go into producing solutions should be yours.

You may use AI as outlined in the Use of AI policy — Copilot's inline coding suggestions, explain, fix, review and comment features but not code generation from English prompts. Also:

Use of Internet Resources and Researching Programming Topics

Looking for examples to explain technical and implementation-related topics is a common way to learn new things, and is allowed but be careful to keep within the spirit of the type of project you are doing — researching how to implement something does not mean looking for an implementation and then copying it or using it as an example for large chunks of code that you are handing in as your own creation for an implementation or programming project. Also be sure to include sources you use in your list of references.

Handin

Topic/output option: Email your project topic, project type, and choice of output options. I would like to see everyone working on a different topic or at least different aspects of a large topic. If you choose something that someone else has already chosen, you may be asked to pick something else. The sooner the better for getting your first choice!

Progress update: This is a few sentences or paragraphs summarizing your progress so far and what you have left to do. Hand in a hardcopy of your update in class, otherwise email your update.

Project: Hand in the following elements as applicable for your project type and output option:

Hand in hardcopies in class.

Hand in your code and any other electronic materials by copying them to a folder project within your handin folder (/classes/cs424/handin/username, where username is your username). All elements handed in must be in a format I can view/run — use PDF for documents, make sure any images used with Blender are packed so they are contained in the .blend file, and for WebGL programs make sure you use relative paths and (for provided things) follow the directory structure we've been using or (for everything else) put elements in the same directory or a subdirectory of where your program is (and copy those subdirectories when you hand in your files) If you have other kinds of files or formats, check with me before the last minute to determine the best way to hand in your work.

Check that the result is that your files are contained in /classes/cs424/handin/username/project — if not, fix it!

Presentation: Presentations should be approximately 10 minutes long and will be done in class during the first part of the final exam timeslot.


Project Information

Project Types and Output Options

Projects can take several different forms, with the option of a presentation and/or a paper.

Project Topics

There are many aspects of computer graphics that could be investigated — the main criterion is that you go beyond what was covered in class. A number of possible topics are listed below. You can also, with approval, choose another topic of your own.

Specifications

Page lengths are based on single spacing with a standard font size and margins. Please do not play games with font size and margin to either inflate a too-short paper to minimum length or squeeze a too-long paper into the maximum length.

All projects (paper and/or presentation) must have a bibliography listing references used, properly cited. The most common citation styles for CS are the ACM and IEEE styles, but the specific style you use here matters less than that you include citations with the appropriate information.

For technical references consulted for coding tasks, include a comment with a URL at the relevant point in the code if there's a distinct bug or task that the reference helped with as well as a (briefly) annotated list of all references used. "Briefly annotated list" means a list of URLs along with a short identification of what each resource is about / was used for — grouping URLs together into categories with a label or short description for each category is fine. Be thorough about listing everything you found helpful, but you do not need to include pages you looked at but did not learn anything from.

A research paper should include relevant background, context, advantages/disadvantages, etc while a paper or short paper (for other project types) can focus primarily on the technique itself.

For papers, the quality of writing and explanation is important. Explain your topic to your reader, which you can assume is someone who has taken this course but may not know more about computer graphics than that. Your writing should also convey that you understand the topic. Explain terms in your own words. Proper grammar and correct spelling and punctuation are expected, and your paper should be well-structured and appropriately organized.

Presentations should convey the key points of your topic. You should plan and practice your presentation ahead of time so that it is polished and uses (but does not exceed) the allotted time (10 minutes). For larger topics (such as a research paper) you should focus on an interesting or important part of the topic and cover that well rather than trying to cram too much into the presentation. Pitch the presentation for your classmates — assume a shared background in terms of material covered in the course, but do not assume knowledge of your particular topic outside of that.