CS 324E Assignment 5


Assignment 5: 3D Animation



Project Description

This project extends the ideas of the previous assignment to explore 3D animation. To do this, students will create a 3D animation using MonoGame that will loop indefinitely. This animation is expected to be complex enough to require multiple objects (and therefore multiple classes) and have several levels of scene or object transformations in order to create a range of interesting, cohesive movements. It will also need to incorporate lerps for creating the motions.

Each student in the group will be responsible for at least one object's class design and implementation. The group is responsible for designing and implementing the final animation that incorporates these objects.

Basic Requirements

Your group will implement functionality for:
  1. A 3D scene that is drawn in MonoGame within the project group_yourgroupnumber_assignment5
  2. Multiple objects that are continuously animated in this scene. These animations do not need to loop seamlessly. For example, an animated object might jump from the last position back to the first position, but this is acceptable as long as the animation continues.

Each team member will be responsible for the functionality of:

  1. At least one class for animating objects in the scene. This class must have at least two levels of hierarchical grouping to allow for at least two distinct forms of animation, similar to what was expected in the previous assignment
  2. The Lerp function must be used at least once in each animated object

Extra Credit

All assignments have possible extensions that you might consider adding to your scene for extra credit. Note that if the submission is well beyond the scope of the assignment, we will consider giving extra credit even if the features implemented are not ones suggested below. All requirements of the assignment must be met before credit for this will be given.

Importing meshes (2 points)

Import a 3D mesh (can be .obj/.fbx/.dae etc)to create more complicated meshes to represent the objects.

Getting Started

To get started, your group will first decide on the animated scene you wish to portray. You will then decide on a project structure to break this scene into multiple classes, so that team members can work on them individually. This animated scene can be simpler than what you did in Project 4, but you will need to create more intricate movements using transformations and lerps.

Progress Report

This progress report, titled group_yourgroupnumber_a5_progress.pdf, will include the team's plan for, and current progress on, the animation. The progress report should state the team's intended animation. What are the objects being animated within this sequence? How long is the sequence expected to go?

The report will also break down the animation's technical considerations to assess questions such as what classes are necessary to create the animation? What sorts of transforms will be performed on these class objects? How much progress has been made on implementing these classes?

Finally the report will state which group member is working on which classes and objects. It will also outline the plan for integrating these separate pieces for the final submission.

One report will be submitted via Canvas for the entire team.

Project Submission

You will submit the following in the folder group_yourgroupnumber_assignment5:

  1. A MonoGame file group_yourgroupnumber_assignment5
  2. All necessary classes and subclasses this MonoGame project requires to run
  3. A README text file that tells us how to run your animation
  4. A project description text file, assignment5_description.txt, that summarizes what the intended animation was, what the included classes do, and any unexpected challenges. That is, this is mostly a rehash of the progress report but from the position of what you accomplished rather than what you were planning. Also document which group member worked on which part of the assignment. While group coding is allowed, each member is responsible for their individual parts -- this ensures all group members are participating and have mastery of the assignment.

Zip this folder and submit via Canvas.


Last modified: 10/05/25 by Sarah Abraham theshark@cs.utexas.edu