Carnegie Mellon University’s educational graphics software package. Includes projects in interactive 3D mesh editing, path tracing, dynamic animation, and physics-based simulation.

During my three semesters as a teaching assistant for CMU’s introductory computer graphics course (15-462/662), I re-wrote the infrastructure students use to implement course projects. I’m now helping maintain our codebase as an open source project.

Scotty3D has many of the technical and GUI features of a full 3D package like Blender, but many algorithms are stripped out for students to implement. Students are given code scaffolding and instructions for the following assignments:

  • Software rasterization with lines, triangles, textures, mipmaps, depth, blending, and super-sampling
  • Mesh editing and geometry processing with half-edge meshes
  • Path tracing with BVHs, various material models, next event estimation, and environment lighting
  • Animation with splines, keyframes, skeletal rigs, inverse kinematics, and particle based simulations

Scotty3D also features an instanced scene graph editor and a custom scene file format.

You can read more about the course on the CMU website and find Scotty3D on GitHub.

If you’d like to learn computer graphics, assignment instructions are publicly available on the documentation website, and all lectures from the fall 2020 semester are available on YouTube courtesy of professor Keenan Crane.

Student Work in Scotty3D

meshes pt0 pt1 pt2

Written on June 26, 2021