Spring 1999 CS302 Assignment #1

by Dan Garcia (ddgarcia@cs.berkeley.edu)

1. Choose the course you want to design. It should run for ten weeks and should fit into a quarter system curriculum as a three- of four-unit course.

CS5 - Introduction to Computer Animation

This course will cover the fundamentals of computer animation using a hands-on approach. It is intended for those with little or no experience with computer graphics or animation. Enrollment will be limited due to lab space, and preference will be given to freshmen and sophomores. There will be three hours of in-class lecture and one hour of lab a week. The Macintosh animation lab will be open 24 hours, and will be staffed by former CS5 students working on independent animation projects. Grades will be determined from several projects and one large team final project. There will be a department-wide film show at the conclusion of the class, and students will be encouraged to submit their animations to local animation festivals.

2. Describe the course prerequisites and design a short entrance exam to help verify that students have the prerequisite knowledge.

The prerequisites for the course are high school trigonometry and vector notation; no prior computer experience is required. A light course-load might be a tacit prerequisite. Animation is a very time-intensive process, so students are discouraged from taking this course and other time-intensive courses simultaneously.

The purpose of this short exam is to verify that you have basic fundamentals necessary for computer animation. If you have trouble, you may wish to consider a crash refresher course.

  1. Plot y = 0.5 + sin(2 p w t + a ) from [0,2p] for the following values of w , a : ((1,p/6), (1/2, p))
  2. Find the parametric representation of a line between points P0 and P1 as P(t)
  3. A positive rotation of ninety degrees around the cartesian Z-axis carries the X-axis to what vector?
  4. What is the angle of rotation required to take the vector (1/2, sqrt(3)/2) into the X-axis?
  5. What is the magnitude of the vector (1,2,-3)?

3. Identify the course content by giving a brief description of what's in each of the ten weeks. (Don't forget to leave time for exams, holidays, and end-of-course reviews.)

The grades for this course are based on the weekly projects, which saves class time. We have also allocated time for an additional midterm evaluation. Any class vacation will be compensated by a corresponding reduction of the CG overview at the end.


Monday's Class (1.5 hours)

Monday classes will be mostly critique-based, where students have a chance to present and critique each others' work, much like an art or photography class. It is during these classes that I hope to help engender a group spirit, a pride in one's own work, and convey to them what works and doesn't in each stage of the animation process. If appropriate, we will look at the best work from previous year's students' for the upcoming assignment.

This week's homework

Each Monday the students will handed assignments that will build toward a larger, group project. The assignments will cover the history of animation, from their first hand-drawn assignment, to their second computer-based drawn assignment to the more traditional 3D modeling / lighting / sound and motion assignments later on. In general, there will be sharing of previous week's work with appropriate crediting, as if we were all working in a small animation house. Students will post their work on their www pages so others (other CS5 students, graders, etc) can see and evaluate their work.

Wednesday's class (1.5 hours)

These classes will be given in a more traditional format, with lectures and discussion. We will also augment lectures with films whenever appropriate.

Lab Section (1 hour)

Lab sections are essential in this course. These sections will typically be taught by the teaching assistant or the professor if teaching assistants aren't available (as they often aren't in small schools). Here is where the wheels meet the road, and the students get first-hand lab experience with the animation programs we'll be using in a group-led format. The animation lab will be staffed by former CS5 students who will be working on their own animations. 

Week 1 Introduction, class expectations, overview of syllabus, and motivate them by showing some of the highest quality animation available (Pixar's "Toy Story" or "A Bugs Life"). We'll watch last year's animation final projects to get a sense of the degree of animation sophistication they'll achieve. I'll tell them to start thinking about a story for their final animation. Create a flip-book animation using post-it note pads, log into Unix account, perform a few tasks, send TA email to verify they can send and receive it, and fill in template web page using GUI web page software. Describe the animation process (story - storyboard - block - sound - animate - light - render), squash and stretch, exaggeration, and the importance of the story in a high quality animation. Story, story, story. Handout Disney's "Illusion of life". Show and discuss "Celmates" and "Cat Came Back" which illustrate (no pun intended) the painfully tedious process of traditional animation. Take digital photos of student faces for www page and later morph, give UNIX, Emacs, Pine, and WWW brief intro, and show them their WWW page template creation.

Week 2

Group critique (GC) of flip-books in small group setting, where each student meets everyone else in the group (~ 5 people per group), and they hand around their flip-books. Rotate groups so students move around. TA and Professor float in and out of groups matching and faces names (which are on the www page anyway). Ask students for suggestions for top flip-books, and why. Have group discussion of virtues and differences between computer animation and traditional animation. What kinds are things are easier to do in each and why? Show and discuss last year's best stick figure animations.

Teams of two students must produce two small traditional stick-figure animations (one per person, but they work together so that the students meet each other and in case one has trouble) to be done on computer. Much like "Stick Figure Death Theatre" and others. They are also assigned to watch "Tron", one of the first examples of cinematic computer animation.

Review a history of computer animation, from its early days in research facilities to big studios like ILM and Pixar. This involves somewhat a discussion of the evolution of computers, as that often was the bottleneck for the quality at the time. Plug SIGGRAPH, encourage students to attend, and review old images from SIGGRAPH's history. Show and discuss "Hunger" (another early CG film). 

Show students how to use the simple 2D draw / paint program, saving their animations as Quicktime and putting them on the web.

Week 3

GC of simple stick figure animations. Comparison with earlier work to show if they learned the importance of the story. Explain other ways of creating animation, like morphing. Begin discussion of the initial stage of computer animation: modeling. Show last year's best model designs. Have students choose the order they will appear in the class morph.

Students individually design on paper a hierarchical figure, indicating limb constraints (e.g., knees must not bend backwards, etc). They are also assigned simple tasks in Infini-D, the animation tool we're using, just to get them familiar and warmed up. If they go through the official tutorial, these tasks are quite easy. As well, they are asked to morph their face into the next person in the morph order.

Continue discussion of modeling and object acquisition for computer graphics. Explain hierarchies with simple geometric primitives. Show and discuss morph examples and Pixar's "Luxo, Jr", a ground-breaking early CG short film. 

Explain Infini-D, and how they would create a simple animation. Also show them how to use the Morph tool.

Week 4

GC of figure designs and morph. Show last year's best animated figure assignments. Crash course in three dimensions. Explain all of the available 3D transformations: translate, scale, and rotate. Show them key-frames and how they are used in the process, as well as linear vs. spline-based interpolation.

Have students break up into two-new-person groups (students must choose a partner they haven't worked with before). Groups will model (build) their designs and animate them dancing or doing something small. This could be as simple as a dance move, juggling, tripping, or anything else showing off the articulation.

Continue to explain 3D key-frame animation techniques. Show and discuss Pixar's "Red's Dream"

Explain key-frame animation tools in Infini-D, such as ease-in, ease-out, and joint constraints.

Week 5

GC of model animation. Show last year's best texture / lighting / camera assignment. Begin discussion of textures, lighting and camera position (digital cinematography elements).

Students break up into two-new-person groups and create an animation that modifies last week's animation and adds interesting textures, lighting, and camera positioning.

Continue discussion of texture / lighting / camera positioning. Show and discuss Pixar's "Tin Toy"

Explain texturing and lighting in Infini-D. Show them how to import images from the web, from scans, and how to fake objects with images and movies. E.g. rather than having to build an entire version of NYC to use in the background, use a photo or movie of the actual city and insert it as a matte in the back. Standard Hollywood trick.

Week 6

GC of textures / lighting / camera animation. Show last year's best walk animation and story ideas. Explain forward and inverse kinematics, and textures / lighting / camera techniques.

Students individually create a forward kinematic walk animation. More importantly, they finally flesh out the final story ideas that have been simmering in their heads since the first week.

Continue to explain textures / lighting / camera techniques. Show and discuss Pixar's "Knick Knack". Hand out and collect midterm evaluations.

Explain how to use the forward kinematic walk motion program and how to save the animations as movies.

Week 7

GC of walk animations and stories. Have students pitch their own stories, as if we are the studio to whom they are trying to sell their ideas. Choose the best story ideas. (From now on we no longer show the best of last year's work, but we do show the final animations again and explain how they are going to produce something special step by laborious step). Students also choose the group they want to work with for the final animations. We allow three to five people per group. Give them some time to initially meet each other, and exchange contact information and initial ideas / workload breakdown.

The groups will design and implement all of their models (they're welcome to use models from previous assignments and from a clip-object CD). They'll also locate / create all of the sounds they'll use.

Graphics Q and A - students ask any and all questions about graphics. Seed the discussion with "have you ever wondered how they do this in a film?" (give examples), or "have you heard the term 'ray tracing' but never known what it meant?". Then begin the overview of computer graphics (CG) starting from polygons. This is the first time they've been exposed and responsible for the techniques behind the functionality. We finally open up the hood of the animation program and explain how things work in a mini-cs184 graphics sense. Allocate some in-class time for the groups to meet. Show and discuss Pixar's "Geri's game"

Explain how to input sound into the system, incorporate it into Infini-D, and keyframe based on sound.

Week 8

GC of models and sound. CG overview day 1 - modeling (polygons, different representations).

The groups will create the first draft of the figure animation and camera motion.

CG overview day 2 - splines for use in modeling. Show and discuss PDI's "Sleepy Guy" and "Magic man" 

Teach them shortcuts; how to model interesting and hard things by cheating (much like using a matte for NYC instead of the model). Groups have the remainder of class lab time to begin work on their final projects. Help the groups with questions about motion.

Week 9

GC of motion and camera first draft. CG overview day 3 - rendering (image-based, ray-tracing, radiosity, compositing, etc).

The groups will finish the final motion and camera positioning.

CG overview day 4 - animation (spline-based, skeleton-based, motion capture, etc). Show and discuss best of SIGGRAPH's animations from the past.

CG shortcuts part 2. Groups have the remainder of class lab time to work on their final projects. Help the groups with any questions.

Week 10

GC of final motion and camera positioning. Current CG research areas - what is hard, what are people working on? (Image-based rendering, geometry compression, surface representation, etc). This discussion acts as a jumping-off point for the students who wish to continue in this field.

The groups will finish the lighting and rendering of their animation.

Thank class, discuss where to go from here for them (other classes, help as a lab assistant for class next year, SIGGRAPH, research groups, etc), sum up, and have final evaluations.

Groups have class lab time to work on their final projects. Help the groups with any questions.

Final Exam week

Watch the final animations in a very festive evening setting to which members of the CS community are welcome. This is the first time I will see the animations. They will be graded after I've had time to watch them individually.




4. Identify one or two courses for which your course would be a prerequisite, describe what instructors of those courses should expect of your students, and design short entrance exams to help verify that students have learned it.

This course is a prerequisite for:

Instructors of these courses should expect graduates of CS5 to understand

The following is a short entrance exam to verify students have learned what they should have in CS5

  1. List three people and films who made significant contributions to computer animation.
  2. List three reasons one would use computer animation
  3. Illustrate all steps of the keyframe-based animation process.
  4. Hierarchically model a simple figure, like a bicycle, showing the tree and any reasonable constraints.
  5. What is "easing out" and describe a function y = f(x) that would implement it.
  6. What are fractals and what are they used for in computer animation?
  7. On the video screen you will be shown a rough animation. As a director, describe one thing wrong with it in each of the five areas (modeling, rendering, lighting, camera motion and sound) and suggest how to fix them.
  8. Contrast computer animation with traditional animation (e.g. what is hard in each, when would you use one over the other)
  9. Explain the difference between forward- and inverse-kinematics, and one way to solve the inverse problem.
  10. Explain how you would model the following objects: snow, clouds, fire and hair.
  11. Explain three research areas of computer graphics and animation.

WWW Maven: Dan Garcia (ddgarcia@cs.berkeley.edu) Send me feedback

Teaching cs302