Computer Science 112
The Art & Science of Computer Graphics

Fall 2015, The College of Saint Rose

Studio/Lab 9: Programmed Replication
Due: 11:59 PM, Wednesday, November 18, 2015

For this next Studio/Lab exercise, you are to develop your most complex scene so far. Using the programming techniques we have discussed and will discuss in class, you can develop a scene with replicated components.

Replicated Objects

You may model any scene you wish, but it should meet the following requirements:

Start by defining the objects that you will use in your scene, whether replicated or single instances. You can work on these even before we have seen all of the replication techniques in class.

As the models become more complex, good code organization and documentation becomes essential. Use constants to define sizes and locations. Continue to develop objects hierarchically. Use plenty of comments. Caution: another issue that arises as your models become more complex is that rendering times will increase. Please plan ahead! You might consider using a lower image quality when developing your models, increasing it only when you wish to generate final images.


  1. Email a copy of the source code for your Ambrosia model (the Python file, which should always be saved with a .py extension) and your best image (which should always be saved in PNG format and using a .png extension) as attachments to terescoj AT Please include a meaningful subject line (something like "CSC 112 Studio/Lab 9 Submission"). Make sure your name is included in a comment in your model code, and that you have comments throughout the source code to make it easier to understand.
  2. Rename your best image to include your name, then upload it to the wiki. For example, if you generate an image of a clone army and your name is Obi-Wan Kenobi, you might call your image "OWKenobiClones.png".
  3. Add a section to your wiki page named "Programmed Replication" that includes a link to your image and a description of your model that generated the image.


This assignment is worth 40 points, which are distributed as follows:

> FeatureValueScore
New object(s) developed for this lab 5
Programmed replication 15
Use of random numbers 4
Coherent overall scene 2
Cameras and lighting 2
Code organization and style 4
Model documentation and formatting 2
Image(s) on wiki page 1
Model description on wiki page 4
Emailed source code (Python/Ambrosia model) 1
Total 40