Computer Science 112
The Art & Science of Computer Graphics

Fall 2015, The College of Saint Rose

Studio/Lab 5: A Marble
Due: 11:59 PM, Wednesday, October 14, 2015

This is a very short lab exercise designed to give you some practice working with custom materials. Our goal (as a group) is to create a collection of marbles.

Getting Set Up

Create a new folder for your work on this Studio/Lab.

A Marble

Your task is to develop and submit a model of a single marble of your own design. Come up with an appropriate material (or materials) for your marble and use it to create a spherical marble with diameter 100, centered at the origin.

In addition to using a nice material for the glass of your marble, there should be some object on the inside of the marble. This is a good chance to practice your constructive solid geometry and custom object skills in preparation for the first exam.

Please make sure your name is included both in the name of the file you use and in the object names in your model. For example, if your name is Grace Hopper, you might name your marble object (the Group, Difference, etc., that defines your marble) gHopperMarble and your model file If you defined a new "shiny green" material for your marble, you might name that Material as gHopperShinyGreen. Your marble should be the only thing added to the scene, and it must be added as a single object. For example, the model described above would include something like:

from ambrosia import *

gHopperShinyGreen = Material()
# add other material properies

gHopperMarble = Group()
gHopperMarble.add(sphere, ...)
# add any components you wish to your marble

scene.add(gHopperMarble, gHopperShinyGreen)


It is important that you follow these naming conventions, as I plan to construct a model that includes everyone's marbles.

You may submit more than one marble for inclusion in the class marble collection, but if you do, please make it clear which one you would like to be graded.


  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 5 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 fancy glass marble and your name is Grace Hopper, you might call your image "GraceHopperGlassMarble.png".
  3. Add a section to your wiki page named "A Marble" that includes a link to your image and a description of your model that generated the image.


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

> FeatureValueScore
Main marble material 7
Interesting design encased in the marble 4
Naming conventions 1
Model documentation and formatting 2
Image(s) on wiki page 2
Model description on wiki page 3
Emailed source code (Python/Ambrosia model) 1
Total 20