>> SPRING 2014 | [ SCHEDULE ] | [ GitHub ]
Instructors: Andrew Cencini (, Guy Snover (
Credits: 4
Meeting Time: Tu 8:20am-12:00pm
Location: Dickinson Computer Science Lab (Dickinson 233)
Office Hours:
  • Andrew: M 1-2pm, W 1:45-2:45pm, F 10-11am, Dickinson 211
  • Guy: TBD
Course Web Site:

What is possible when the work of art is a computational system and the means of production are robotic? This advanced computation course will lead students from abstract computational structures to physical two and three dimensional forms. The conceptual artist Sol Lewitt stated, The system is the work of art; the visual work of art is the proof of the System. Our platform will be to drive the NURBS modeling software Rhino using Python. Automating Rhino through Python is new, but well documented. Our research will add to the field and be made public. We will conduct a series of framed exercises with 2D and 3D digital outputs including CNC drawing, laser cutting, 3D printing, and digital projection. Students are expected to creatively respond to project conditions and undertake self-directed research to realize their project goals.


  • Miles Driscoll
  • Wesley Evans
  • Megan Farnham
  • Torrent Glenn
  • Mackenzie Katz
  • Zenji Oguri
Email acencini if you would like to link to your work/web site.

This class will be a combination of independent and group hands-on lab work, and a large group project carried out over the second half of the semester.

There is no textbook required for this class. It is assumed that students have completed the Rhino Python Primer prior to the start of the first class.


  • You will have sufficient working knowledge of Rhino and Python coming into the class to be a constructive participant.
  • You will attend every class. More than two absences (excused or unexcused) will jeopardize your standing in the course. Tardiness of more than 10 minutes is considered an unexcused absence; repeat tardiness also is considered unexcused absence.
  • You will submit all required assignments prior to the start of the class in which they are due.
  • You will be a productive and positive collaborator with your colleagues.
  • You will be an attentive and positive contributor to class discussion and activities.
  • You will seek out help promptly if you are struggling or falling behind.
  • You will submit your own ideas and work. Academic dishonesty will not be tolerated, and will be passed along without exception to college authorities.


  • Class participation and attendance (33.34%).
  • Periodic projects and investigations (33.33%).
  • Group project (33.33%).

If you are struggling in class, or would like to investigate a topic in greater depth, come see one of us.

Subject to change. Readings and assignments will be disseminated in class.

Week 1 (2/18) - Python/Rhino fundamentals (loops, variables, i/o, conditionals, randomness, functions).  HW1 assigned.

Week 2 (2/25) - Python/Rhino fundamentals (loops, variables, i/o, conditionals, randomness, functions). Pattern-making / gcode.  HW1 Due.

Week 3 (3/4) - Pattern-making / gcode. Interactive programs.  

Week 4 (3/11) - Object-oriented Programming + Inheritance.  Object interaction project assigned.

Week 5 (3/18) - Object-oriented Programming + Inheritance.

Week 6 (3/25) - Object interaction work session. 

Week 7 (4/1) - Object interaction demo.

Week 8 (4/8) - Group project work session.

Week 9 (4/15) - Group project work session.

Week 10 (4/22) - Group project work session.

Week 11 (4/29) - Group project work session.

Week 12 (5/6) - PLAN DAY NO CLASS

Week 13 (5/13) - Group project work session.

Week 14 (5/20) - Group project work session.

Week 15 (5/27) - Wrapup.