Homework 2: Clown

Please read the standard instructions for all assignments.

Feel free to use the template pen as a starting point.


The main goal of this programming assignment is to help you feel comfortable with building things out of other objects.


Build a figure that looks roughly like the clown given in the Model Solution section below.

Some additional tips and requirements:

  1. You’ll need to learn about the THREE.TorusGeometry object, the THREE.RingGeometry object, and the finer points of spheres.
  2. Use embedded frames to make your coding clearer and easier.
  3. Look back at the Teddy Bear for inspiration.
  4. Mark the origin using a yellow dot, as in the model solution. The origin must be there, between the clown’s feet, so that it’s easy to put the clown on a surface. This is the clown’s origin.
  5. Try to avoid magic constants for positioning, angles, scaling, and so forth (meaning unlabeled, undocumented numbers directly in the modeling code). Some of these are inevitable, of course, but there are connections among them, too. The positioning of the hand is related to the length of the arm, for example. Try to make these relationships clear in your code.
  6. Also, try to make your clown flexible. For example, suppose your boss at Pixar says that the head needs to be bigger, flatter, wider, or whatever: what needs to be changed in your code? Try to make it easy to adjust things like this, either by coding or documentation.

Model Solution

Here is a model clown solution.

I give you this to clarify what I’m looking for. I expect that you will not try to reverse-engineer the solution. I have made it difficult (so you won’t accidentally see the solution), but it would not be impossible. Please don’t try.

Submission and Security

Submit the URL to your pen via the dropbox on blackboard. Do not change your code after the deadline.

How you will be graded

Grading will be broken down into two parts, basic functionality and style and documentation

  Rating Actual Points
Basic functionality (80%)    
  a good start 50
  significant progress 60
  good 70
  excellent 80
Style and documentation (20%)    
  missing 0
  fair 10
  good 15
  excellent 20
Total (100%)    

Grading of the basic functionality will be in terms of the following requirements:

  • proper geometry
  • inclusion of all parts including facial features and hat
  • origin in center of base
  • proper hierarchy of body parts and use of embedded frames
  • use of different materials for different parts
  • flexible code / no magic constants


This page is based on https://cs.wellesley.edu/~cs307/assignments/hwk2-clown.html. Copyright © Scott D. Anderson. This work is licensed under a Creative Commons License.