Computer Graphics Semester Project

You and possibly a partner will create an interesting graphics scene that is either interactive (like a game) or animated (like a movie). You will demonstrate it in class on the last day of the semester. Your project must employ at least two of the major graphics concepts that we learn in the course, namely

If you do an animation, the animation should have at least two independently moving objects.

Your project should go beyond the relatively simple examples we did for homework and in class, either in complexity or scope.

I'm happy to talk with you to help you explore ideas for your project or to entertain different project ideas!

Description

In addition to the software you create and demonstrate, I would like you to create a simple web page describing your project. (I'll link to these from the CS 307 web site). Your web page must have still pictures of the project (using the "save frame" in TW callback or screen shots), converting them to PNG for display on a web page of your creation, describing your project. You must also create an MPEG movie of your animation. If your site is interactive instead of an animation, an MPEG of that interaction would be great.

Many of you already know how to code in HTML. For those who don't, check out the first two lectures of CS110, which you can find from the CS110 Syllabus. That will be enough for the basic structure of your page, and you can have paragraphs explaining what the pictures are. If you need any help, don't hesitate to ask!

In addition, you need to know how do to pictures. That's done with the IMG tag:

<img src="file.png" alt="short description of image">

You'll probably want to use PNG format, since you'll have a wide range of colors. You can convert your screen shots from PPM to PNG format using the Linux command "ppmtopng":

ppmtopng screen-shot.ppm > screen-shot.png

Finally, for your MPEG, you'll need the following tag:

<embed src="MovingMobile.mpg"
       pluginspage="http://quicktime.apple.com"
       cache=true
       height=532 width=512
       controller=true
       loop=false
       autoplay=false>

Of course, adjust the width and height to the size of your MPEG.

The techniques for creating animations is covered in our course, including the MovingMobile example shown above.

Finally, you might name your HTML file something perspicuous, like "graphics-project.html" and put it in your public_html directory, along with all the images and MPEGs. Make sure all the files are world-readable.

Let me know if you have any difficulty, or ask a fellow student who knows HTML. This is not supposed to be an elaborate web page. Please don't spend a lot of time on this; I just want a page that says "here's what I did."

Grading

As always, I expect that you will write code that works, is modular, has good style and is well-documented. In addition, I'll grade your project partly on how creative and impressive it is. I do want you to challenge yourselves and create something that you will be proud of, and those who truly excel should be rewarded. This judgment is not based on the size of the scene, number of objects, number of lines of code or anything simply quantitative. I'm looking for undertaking a challenge. Your project description should also make this clear. Feel free to consult with me on this.

Deadlines

The alpha version of this project is due on the last day of class, to be presented to the class then. Be prepared to talk about interesting aspects of the project, such as modeling issues, how you went beyond what we did in required figures and such.

The final version of the project in this class is due on the last day of exams. This gives you the maximum time possible to make this project as good as you want it to be. These projects are always amazing; I'm looking forward to them!

Written by Scott D. Anderson
scott.anderson@acm.org
Creative Commons License
This work is licensed under a Creative Commons License.

Valid HTML 4.01!