CS 151: Project #5

Project 5: Ken Burns Style Collages

Main course page

With this assignment, we're continuing to work with lists, files, and general coding skills. Note that this project is due at midnight on the Thursday before spring break. But don't wait until then to start it.


The tasks this week are all of the same kind: make a movie or a sequence of images you can convert into an animated gif. For converting to a gif, if you name all of your images something like frameXX.png, where XX is a 2-digit number, then you can use the following.

convert -delay 30 -loop 1 frame*.png movie.gif

The number after the delay option controls the speed at which the frames go by, and the loop option controls how many times the gif will loop. You can remove the -loop and the 1 if you want the gif to play continuously, or use an argument of 0 (continuous play).

  1. Create a function collageBuildMovie1() that takes in a collage and builds a movie, or writes out a sequence of images for making an animated gif, of each picture fading into the collage (from invisible to visible) in sequence.
  2. Create a function collageBuildMovie2() that takes in a collage and builds a movie, or writes out a sequence of images for making an animated gif, where all of the images are given offsets of (0, 0) and appear one after the other on top of each other with a smooth fade.
  3. Create a function collageBuildMovie3() that implements some other interesting effect and generates a movie or a series of images for making an animated gif. Examples include:
    • Having each image appear in the middle and then move to its final location.
    • Having each image appear and then slide out of view.
    • Having an image appear in place and then transition between all of its possible effects
    • Have multiple images flying around simultaneously, such as having them all appear in the center and then float to their final locations in the collage.


There are no extensions this week. Do something creative for item #3 above and use good coding style with lots of comments and useful print statements.

Code Handin

Hand in your code for this assignment using the Moodle drop box. There will be a drop box for each week's assignment. Hand in your python code file. If there are any specific images required for your system to work, zip them up with your code file.

In the unlikely (we hope) event that Moodle is down when you need to hand in your assignment, please email the python file to Professor Maxwell.

Please do not place code anywhere public. Do not include it in your writeups on the wiki, for example.


Each of you should create your own wiki page for your writeup. The writeup can be brief, but should include the following components.

  1. A brief abstract (200 words or less) describing the project.
  2. A more detailed description of what you did. This week, focus on your use of lists and loops to make the code more flexible and efficient. Also, describe how you make use of files.
  3. Include any images or other output your program created. For this project, include your movies and/or animated gifs.
  4. Describe any extensions you implemented and show results for them.
  5. Give a brief (1 paragraph) description of what you learned.

Colby Wiki

Please put the label cs151s09proj6 on your writeup page (down below the editing window on the edit tab). Please make sure you type the label exactly as given above.