SIGGRAPH 2022 Course
Description: Efficient simulation of contact is of interest for numerous physics-based animation applications. For instance, virtual reality training, video games, rapid digital prototyping, and robotics simulation are all examples of applications that involve contact modeling and simulation. However, despite its extensive use in modern computer graphics, contact simulation remains one of the most challenging problems in physics-based animation.
This course covers fundamental topics on the nature of contact modeling and simulation for computer graphics. Specifically, we provide mathematical details about formulating contact as a complementarity problem in rigid body and soft body animations. We briefly cover several approaches for contact generation using discrete collision detection. Then, we present a range of numerical techniques for solving the associated LCPs and NCPs. The advantages and disadvantages of each technique are further discussed in a practical manner, and best practices for implementation are discussed. Finally, we conclude the course with several advanced topics such as methods for soft body contact problems, barrier functions, and anisotropic friction modeling. Programming examples are provided in our appendix as well as on the course website to accompany the course notes.
Teaching assistant at New York University (Fall 2019)
Description: This course provides an introduction to the field of Computer Graphics. We will cover the basic mathematical concepts, such as 2D and 3D transformations, study the interaction of light with geometry to derive shading models, and implement rendering algorithms such as ray tracing and rasterization. We will investigate how these fundamental components are integrated into current graphics processors and study the corresponding programming APIs.
Outcomes: Be able to explain and apply the fundamental mathematical concepts used in image synthesis algorithms. Implement a basic rendering system based on ray tracing and rendering pipeline based on rasterization. Develop simple graphics programs in C++ using OpenGL and GLSL.
Instructor at iD Tech (Summer 2015)
Description: Design and develop your very own mobile game with the power of the Unity game development tool, one of the most popular tools for independent game developers. The engine is accessible to beginners, but powerful enough for professionals. The next blockbuster indie game has your name on it!
Outcomes: Learn to create games optimized for mobile devices; receive input from players; modify and manipulate game objects; use Scenes in Unity to create levels, menus, and coherent polished projects; and program with C#, utilizing object-oriented programming design methods.