2024
The final project is the culmination of this class. You will demonstrate your expertise in graphics by creating a compelling project that is beyond the scope of previous assignments. It can be an extension of any previous assignment or a completely new project. If you would like, you may also work in groups of up to 3 people, but your groups must be set by the proposal deadline (no switching groups after the proposal is turned in).
Basic Requirements #
This project explores combining interactive and graphics to create a video game. You will create a game with rules of play, a control scheme using the keyboard or mouse (or both!), a visual display, and a scoring system.
This project explores simulation and other rules-based systems. This project is intended to be open-ended, so that you have the opportunity to explore the aspects of simulation that interest you most. You may choose between three types of simulation to implement:
This project extends the ideas of the previous assignment to explore 3D animation. To do this, you will create a 3D animation within Processing that will loop indefinitely. This animation is expected to be complex enough to require multiple objects (and therefore multiple classes) and have several levels of scene or object transformations in order to create a range of interesting, cohesive movements.
This project explores the use of object-oriented programming in graphics, as well as scene hierarchies to perform transformations for 2D animation. To do this, students will create an animation withing Processing that will loop indefinitely. This animation is expected to be complex enough to require multiple objects (and therefore multiple classes) and have several levels of scene/shape transformations in order to create a range of interesting, cohesive movements.
This project explores visualization of a book using Processing. You will choose a novel from Project Gutenberg and write programs to extract, analyze, and visualize data about the text.
Basic Requirements #
Book Text #
Choose an English-language book from
Project Gutenberg and download
it as a plain text file. Strip out all the preface information (e.g. copyright,
blurbs, word to the readers, etc). You can do this step manually in a text
editor. Place the result in a file called source.txt
in your project
directory.
Project Description #
In this project, you will explore per-pixel manipulation in order to create a series of commonly-used filters. You will also implement basic input-handling and image buffering. Your file will open an image within the Processing window upon clicking “Run.” Filters will be applied to this image when the user clicks the number keys. Each filter will be applied individually. That is, filters should not stack, and you will include a key that returns the image to its original state.
In this project, you will write a simple Processing program which generates an image. The main goal is for you to get used to the Processing coordinate system and generate a creative artifact. The secondary goal is for you to get used to the project format and submission requirements for this class, which can be somewhat complicated compared to previous classes.
You may use language models such as GPT, Claude, Mixtral, LLaMA, etc. for projects in this class, subject to the following rules:
- You may not attempt to obtain the entire project solution in a single query.
- Any code within your project that is sourced from a language model must be clearly marked as such with attribution comments.
- All queries and responses made to a language model for the purposes of the project must be submitted alongside the program. This applies even if code/info generated by the language model is not used in the final submission.
This document contains instructions for what to include in the language model logs.
Every project you submit will have a report, with the name “README.md” or “README.txt”. The contents of the file should look like this:
<Project Name> Report for <Your EID>
====================================
## Instructions
<Project instructions go here>
## Report
<Project report goes here>
Replace the text between <
and >
with the appropriate information.