Game Physics


SS 2017





7 ECTS credits


Note: This page is for a course from a previous semester.
Find a list of current courses on the Teaching page.
Course Dates:




Introductory Meeting 20.04.17, 10:15 - 11:45 Room 220, Building E3
Meeting 04.05.17, 10:15 - 11:45 Room 220, Building E3
Meeting 18.05.17, 10:15 - 11:45 Room 220, Building E3
Meeting 01.06.17, 10:15 - 11:45 Room 220, Building E3
Meeting 22.06.17, 10:15 - 11:45 Room 220, Building E3
Meeting 06.07.17, 10:15 - 11:45 Room 220, Building E3
Final Presentations 27.07.17, 10:15 - 11:45 Room 220, Building E3

The target of this practical course is to develop a game physics engine. The students will work in small teams and build upon a software framework written in C++ with OpenGL. Moreover, we will provide a server with version control system in form of a git repository. Within each team the students will be fully responsible for the distribution of the workload. This also requires the group to manage the software architecture of their project in order to be able to include the code contributions of each team member in a successful and efficient way. Besides the implementation all groups have to prepare a written report that elaborates the implemented methods, implementation details, results including comparisons and images representing the according simulation results.

Numerical Simulation

In order to simulate rigid bodies with constraints and motors constrained systems of ordinary differential equations have to be numerically solved. The students will learn about rigid body mechanics and the according kinematic equation and will discover how to use explicit time integration schemes in order to numerically solve the underlying equations. Furthermore, collision detection and resolution algorithms will be implemented to realistically handle contacts with friction.


All simulation results will be visualized using the OpenGL graphics pipeline. Moreover, the students are required to visualize debugging information such as contact points. collision normals, external forces etc. using geometric primitives. Depending on the progress of the students we will provide the possibility to export the simulation data using an appropriate file format in order to visualize the results using a photorealistic offline renderer.


When the implementation of the basic simulation methods are completed, the students will have to dk to demonstrate the applicability of the implemented method in real-world examples. The groups can therefore either use geometric modelling tools such as Blender or Meshlab followed by particle sampling or generate the scenarios using their developed code.

Organizational Details

  • Meetings: In every meeting each group has to present their implementation and results of the current topic and should discuss their problems and insights. This presentation should be prepared to take approx. 10-15 minutes. Please remember that attending the meetings is mandatory.
  • Report: Length of approx. 15 pages excl. cover, table of contents, bibliography, etc.
  • Implementation: Besides the code of the provided framework, the implementation should only consist of original code of the group members. However, we would like to encourage the groups to discuss occurring problems and to exchange information about their solutions.
  • Additional meetings: If there are any group-individual meetings necessary, please contact the organizers via e-mail in order to get an appointment.


  • Good knowledge and practical experience in C/C++ and object-oriented programming
  • Basic knowledge of numerics, algorithms and data-structures
  • Good knowledge in modern OpenGL
  • Knowledge of Computer Graphics on the level of the lecture "Basic Techniques of Computer Graphics"
  • Attendance of the the lecture "Physically-Based Animation" is recommended.


Will be announced in the introductory meeting.

Disclaimer Home Visual Computing institute RWTH Aachen University