Computer
Animation: Algorithms & Techniques
CSCI 712
(Fall 2023)
Syllabus
Instructor: Joe Geigel
Office: GOL (70)-3527
Office Hours: MW
12:30pm - 1:30pm (or by appt)
E-mail:
Joe.Geigel@rit.edu
URL:
http://www.cs.rit.edu/~jmg/
Class Lecture TR 3:30PM -
4:45PM
Classroom: WAL-4640
PREREQUISITE: CSCI 510
(Introduction to Computer Graphics) or CSCI 610 (Fundamentals of
Computer Graphics) or permission of instructor
Description
This course takes
a look at computer animation from a programmer’s perspective. It
will investigate the theory, algorithms and techniques for describing and
programming motion for virtual 3D worlds. Approaches
that will be explored include keyframing systems; kinematics, motion of
articulated figures, procedural and behavioral systems, and the use of
motion capture data. This course is a programming-oriented
course with major deliverables including the implementation of techniques
presented in lecture as well as a final project concentrating on an area
of a student’s choice. Students enrolling in this course are
expected to have proficiency in the use of at least one 3D API (e.g.
OpenGL, DirectX, Java3D) or a gaming engine (e.g. Unreal or Unity).
Readings and summaries of Computer Graphics literature will be required.
Texts
These
texts will supplement the material presented in lecture. In
addition, research papers from the computer animation literature
will be referenced. A list of papers, organized by topic is
available here. Note
that students will be required to submit short summaries of selected
papers.
Learning Outcomes
Upon completion of
this course, students will be able to:
- explain
and apply the fundamentals of keyframing and interpolation.
- apply
models of motion based on Newtonian Physics to animation.
- describe
and compare models of group behavior and apply them to animation.
- apply
techniques for animating articulated figures.
- explain
the basic principles of motion capture and apply them to an animation
application.
- comprehend
and summarize technical papers from the computer graphics
literature.
- specify,
design, implement, and document a large software project related to
computer animation.
Requirements and Grading
In Computer Graphics, much like
many other areas of Computer Science, the best way to learn is by doing.
Whereas the theory of animation will be discussed in the lectures,
the real learning occurs when implementing this theory into code.
Thus, this course relies heavily on programming tasks.
The major deliverables for this course
are:
- Programming Assignments-- a
set of programming assignments, each allowing the student to learn a
particular technique or algorithm by coding it up themselves.
Assignments can be coded in the language / API of the student's
choice. More info on assignments is available here
.
- Project -- a semester
long project that illustrates in-depth knowledge of one aspect animation
and motion control as presented in the course. The choice of
project should reflect the interests and motivations of each student in
taking this course. In short, it is hoped that this course
will provide each student with the opportunity to undertake a semester
long task in computer animation that he or she has just been yearning to
do. Team projects are acceptable, however, the complexity of the
project should reflect the number of members of the team and all team
members are expected to contribute equally to the final project.
More info on class projects is available here
.
- Weekly Activities -- A
collection of activities will assigned on weekly basis...The purpose of
these activities is to prime the students for the lectures to be given
each week. All of the activities deliverables are due before the
lecture on Monday and should be submitted via mycourses. The tasks
required each week will be posted on mycourses the week before it is
due. The weekly activities will usually involve:
- Readings -- In order to get
used to reading the Computer Graphics literature, students will be
required to read seminal papers corresponding to the topic to be given
in lectures. Papers are listed in the
READING LIST and will be linked from weekly posts in the
DISCUSSION area. On-line activities will be referenced by
and included as part of the weekly On-line activity (see below).
- On-line activities - Each
week, a simple (and hopefully fun) activity will be assigned for the
student to complete. Usually, this activity will involve running
an on-line applet or application, and taking (and submitting) a
screenshot of the application at work. It will also require
reading of the PRIMARY paper for the week. Except for week 1,
the online activity will be posted on the DISCUSSION area of
mycourses, the Wednesday before the week the topic will be discussed.
Students will have 1 week to complete the activity.
Submissions for the activities must be made before the start of the
Wednesday lecture.
- Animation viewing -- An
ulterior motive for this course is to provide a historical context for
the techniques being discussed by exposing the student to classic
computer generated animations that were created "pre-Toy Story".
On the SCHEDULE, a number of animations are listed for each
week. Many times these animations correspond to the PRIMARY
paper for the week. Links to the animation for the week
will be included in the DISCUSSION post for the weekly online
activity.
The final grade will be determined using the
following weights:
|
|
Project |
35% |
Assignments |
40% |
Weekly Activities |
25%
|
Policy on Late Submissions
It is extremely important to
continue to make progress as the course progresses.
If you forsee any problems with meeting deliverable deadlines, please see
the instructor well
in advance of the deadline that might be missed we can attempt to
work out alternate arrangements. Late submissions without
prior permission or notification will be heavy penalized.
Policy on
Academic Dishonesty
Please
be aware of the following policies on academic dishonesty:
In
short: ANY FORM OF ACADEMIC DISHONESTY WILL NOT BE TOLERATED
Consequences of any discovered academic dishonesty incidents will be
applied as specified in these policies.
A Note about Generative AI Tools
Generative AI
tools (such as ChatGPT, Bing Chat, GitHub CoPilot, midjourney, and
others) can be very helpful, but they also pose some risks--not just
because they may provide inaccurate responses, but also because they
make it very easy for you to avoid learning core concepts that are
fundamental building blocks in advanced work.
We will be doing
an awful lot of coding in the class, as a means for you to learn the
fundamentals of Graphics concepts and systems. The real
learning comes from the doing as opposed to presentation of the
solutions. As such, for this course, you cannot use
generative AI tools in any manner to write your programs. When learning
fundamental skills, you need to ensure that you master the basics. If I
doubt authorship, I may ask you to explain the code or re-create aspects
of the code in one of our labs – you must show that you have mastered
the fundamentals. Thus, for this class, use of Generative AI tools
will not be allowed.
Policy on Discrimination
and Harassment
RIT is committed to
providing a safe learning environment, free of harassment and
discrimination as articulated in our university policies located on our
governance website. RIT's policies require faculty to share
information about incidents of gender based discrimination and harassment
with RIT's Title IX coordinator or deputy coordinators, regardless whether
the incidents are stated to them in person or shared by students as part
of their coursework.
If you have a
concern related to gender-based discrimination and/or harassment and
prefer to have a confidential discussion, assistance is available from
one of RIT's confidential resources on campus (listed below).
-
The Center
for Women & Gender: Campus Center Room 1760; 585-475-7464; CARES
(available 24 hours/7 days a week) Call or text 585-295-3533.
-
RIT Student
Health Center: August Health Center, 1st floor; 585-475-2255.
-
RIT
Counseling Center: August Health Center, 2nd floor, room 2100;
585-475-2261.
-
The Ombuds
Office: Student Auxiliary Union/Room 1114; 585-475-7200 or
585-475-2876.
-
The Center
for Religious Life: Schmitt Interfaith Center, room 1400;
585-475-2137.
-
NTID
Counseling & Academic Advising Services: 2nd Floor Lynden B.
Johnson; 585-475-6468 (v), 585-286-4070 (vp).
last updated 08/23/2023