Assignment 2

Handed out: Friday, January 30, 1998
Due: 5pm, Thursday, February 12, 1998


Your assignment is to write a set of plug-ins for a video-editing system and then create a special-effects video that shows off the plug-ins you implement. The idea behind this assignment is to extend the Adobe Photoshop paradigm of editing a single image using image-processing techniques to editing a sequence of images that make up a video sequence. We will provide a basic video-editing framework that allows you to choose a sequence of frames and specify the image processing algorithms you wish to run on that sequence. The video-editing framework will also let you compose the image processing operations so that you can perform several operations on each frame. We will also provide you with a variety of content--images and animations that you can use as input to your plugins. You will design and implement the image processing plug-ins that perform the image processing algorithms on the images.

Here is a quick overview of what is required for the assignment. We will provide more information about the video-editing system and how to implement the image-processing plug-ins below.

For this assignment the following sets of plug-ins are required:

In addition, you may implement two or more of the following sets of plug-ins: You are encouraged to work on this assignment in groups of two.  Every person is responsible for implementing four sets of plug-ins. For two-person groups each person must implement two sets of plug-ins from the required list and two from the optional list. If you choose to work alone you must implement all four of the required sets of plug-ins.

Note: Most of the plug-ins you write will not require much coding. We have provided a few simple plug-ins as examples and most of your plug-ins will not contain much more code than our examples. However, there are subtleties involved in implementing the plug-ins correctly and efficiently. You should spend some time thinking about how you will implement each one. We provide some hints below.


In addition to submitting the code for each of the plug-ins you implement you are required to submit two video sequences.

Sequence 1

To create the output example video sequence teapotHand.qt we used only the four required sets of plug-ins. Once you (and your partner) have written the required plug-ins you should attempt to replicate our work and create a similar video. More information is available about how this video was made.

Sequence 2

Create a second video sequence using all of the plug-ins you (and your partner) developed.

To turn in your final video sequences you must create a web page with links to both sequences.
The complete submission process will be described later.


The assignment will be graded on a scale of 100 possible points. Up to 20 points will be awarded for each of the sets of plug-ins you write. Groups of two must clearly specify which group member implemented each set of plug-ins. The plug-ins will be checked for correct functionality. We will also check to make sure you implemented the plug-in in a strightforward manner and that it is relatively fast. Speed is not a major concern, but you should try to write your plug-ins to be efficient. Up to 5 points will be awarded for replicating the first video sequence and the majority of the remaining 15 points will be awarded for creative and interesting uses of your plug-ins in the second video sequence.

Extra Credit Up to 10 points of extra credit is available. To get extra credit each person in a group must implement two more plug-ins from the second list above. Up to five points will be given for a correct implementation of the plug-ins and up to five points will be given for creatively using the plug-ins in the second video sequence.

Additional Information

A number of additional documents are available to help you with this assignment.

CS248: Introduction to Computer Graphics, Pat Hanrahan, Winter 98