Computer Science 112
The Art & Science of Computer Graphics

Fall 2015, The College of Saint Rose

Studio/Lab 4: Working with Custom Objects
Due: 11:59 PM, Tuesday, October 6, 2015

For this next Studio/Lab exercise, you are to construct one or more new models that make use of several of the new techniques we have learned to create custom objects: Mesh objects, polygons constructed by a sweep, Spindle objects, Intersections, Differences, and extruded objects.

You have well over a week to complete this one, so expect to spend significantly more time developing model(s) than was required for the first few assignments.


You may model any scene(s) you wish, but you must use at least four (ideally more, as it's good to practice with them all) different custom object techniques to create objects in your scene. We have learned these techniques: Mesh, sweep, Spindle, Intersection, Difference, and extrude.

Be sure to continue to construct your model in a hierarchical fashion, grouping primitive objects into components that are, in turn, grouped into complete objects that you place into your scene. Define named constants that represent the sizes and positions of your objects as we have been doing in the most recent examples.

Your scene need not be overly complex, but should make an effective demonstration of your ability to create custom objects that would have been difficult if not impossible to model using only the primitive object types.

Include which four (or more) of the custom object types you are using as part of the comment at the top of your model. For each of these four, provide a more detailed comment describing it and how you generated it in the model code where you create it.


  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 4 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 rocket and your name is Buzz Lightyear, you might call your image "BuzzLightyearRocket.png".
  3. Add a section to your wiki page named "Working with Custom Objects" that includes a link to your image and a description of your model that generated the image.


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

> FeatureValueScore
Using at least 4 different custom object types 12
Appropriate grouping and hierarchy 6
Using defined constants and named components 3
Model documentation and formatting 2
Image(s) on wiki page 2
Model description on wiki page 4
Emailed source code (Python/Ambrosia model) 1
Total 30