These notes are intended to be used as a memo to recap the main definitions and results for our 2021 SIGGRAPH course. More details regarding the algorithms and their applications can be found in the book , while more theoretical aspects are treated in details in .
Differentiable simulation is emerging as a fundamental building block for many cutting-edge applications in computer graphics, vision and robotics, among others. This course provides an introduction to this topic and an overview of state-of-the-art methods in this context. Starting with the basics of dynamic mechanical systems, we will present a general theoretical framework for differentiable simulation, which we will specialize to rigid bodies, deformable solids, and fluids. A particular focus will be on the different alternatives for computing simulation derivatives, ranging from analytical expressions via sensitivity analysis to reverse-mode automatic differentiation. As an important step towards real-world applications, we also present extensions to non-smooth phenomena such as frictional contact. Finally, we will discuss different ways of integrating differentiable simulation into machine learning frameworks.
The material covered in this course is based on the author's own works and experience, complemented by a state-of-the-art review of this young but rapidly evolving field. It will be richly illustrated, annotated, and supported by examples ranging from robotic manipulation of deformable materials to simulation-based capture of dynamic fluids. The theoretical parts will be accompanied by source code examples that will be made available to participants prior to this course.
Mathematics is recognized as common basis for CG technology, but sometimes used as a black box in a CG software tool. We expect better understanding of maths will conduce to not only better CG tools, but also innovative ideas for a future production pipeline. The goal of this course is to pull the trigger for the graphics people to know more about usefulness and fun of the maths behind the scenes.
Coding empowers automation. Scripts can handle mundane and repetitive tasks in an efficient and precise manner. This course will offer will use an hands-on interactive format to walk attendees through representative scripting projects, selected to be useful for everyday workflows. It is intended to be an intermediate course. The goal is to cover provide enough information for attendees to build on later. Python scripting can automate many tasks in Maya, from running simple commands to developing plug-ins. Attendees will learn how to automate simple tasks using the magic of scripting, through four distinct projects. The course will placing objects randomly in a scene, designing custom User Interfaces (GUIs) in Maya, scripting MASH (motion graphic) networks, and scripting a leg rig, with foot-roll. By the end of the course, attendees should walk away with a solid understanding of the power Python scripting and Maya commands provide, and the the ability to build their own advance projects for Maya. This course will equip attendees with the tools, confidence, and initiative to explore more advanced scripts independently. Attendees should have programming experience, preferably in Python, but a solid grasp of the foundational programming constructs should suffice. Attendees should have Autodesk Maya, Python, and Visual Studio Code pre-loaded on their devices if they intend to follow along.
Story (content) is not just the domain of directors and producers...anymore. Today, it is as important for technical directors, animators, VFX creators and interactive designers whose work is essential in making "the story" come to life. This information is particularly useful when communicating with screenwriters, directors, and producers. This course answers the question, "What is Story?" (and you don't even have to take a course in screenwriting). Knowing the basics of story enables the crew to become collaborators with the producer and director. A director may talk about their story goals; and the crew will know what specific story benchmarks they are trying to meet. This information builds from a story being more than "a sequence of events (acts) but can become a dramatic story that that builds from setup through resolution.
Having an understanding of story structure allows one to understand a story's elements in context (i.e., theme, character, setting, conflict etc.) and their relationship to classic story structure (i.e., setup, inciting incident, rising action, climax, resolution, etc.). This information is for all whose work makes the story better, but their job is not creating the story. The following course notes have been adapted from Story Structure and Development: A Guide for Animators, VFX Artists, Game Designers, and Virtual Reality Creators. CRC Publishers, a division of Taylor and Francis. Available on <u>Amazon</u>.