Seasons Of Code

Physicc : A Simple Physics Engine    • Rwitaban Goswami    • Sanidhya Anand   

WnCC - Seasons of Code

Seasons of Code is a programme launched by WnCC along the lines of the Google Summer of Code. It provides one with an opprtunity to learn and participate in a variety of interesting projects under the mentorship of the very best in our institute.


List of Running Projects

Physicc : A Simple Physics Engine

Physicc : A Simple Physics Engine


The goal is to build a fully functional 3D Physics Engine from scratch that can be integrated into any Rendering Framework

No. of mentees: 8

Pre-requisites: Some understanding of Object Oriented Programming, and enthu!

Description:

With this project you will get a very good idea of how the Rendering and Physics pipeline of a modern day AAA game works! We will give you an in house Renderer which you will use to render your objects. You will be required to first build a basic physics engine capable of performing the following tasks:

  1. Integration of Newton’s Equations of motion (figuring out positions from forces)
  2. Collision Detection
  3. Rigid body dynamics (including forces and torques)
  4. Constrained rigid body motion With these functionalities in place you will already have in your hands a physics engine pretty close to production quality With this finished, if time is left, you will explore more complex and efficient algorithms. You can also explore learning in detail and modifying the implementation of Rendering and our in-house Rendering Engine.

Proposal:

You need to submit a project proposal. Your proposal should include:

  • Motivation to study rendering and physics
  • Previous experience in coding
  • Previous experience in working in a large codebase, if any (not mandatory)
  • Previous experience in using any game engine, if any (not mandatory)
  • Ideas for extra functionalities you can add to the Physics engine
  • Ideas for other things you can explore once you are done adding functionalities

Resources:

  • Resources to learn about Physics Engines: https://www.toptal.com/game/video-game-physics-part-i-an-introduction-to-rigid-body-dynamics http://buildnewgames.com/broad-phase-collision-detection/

  • Resources to learn about Rendering: https://learnopengl.com

Link to Renderer: https://github.com/sanidhyaanand/Physicc

Tentative Project Timeline

Week Number Tasks to be Completed
Week 1 Learn about Physics how a Rendering Engine works and the functionalities you would be implementing
Week 2 Implement Newton’s Equations of Motion
Week 3-4 Collision Detection
Week 5 Rigid Body dynamics
Week 6 Constrained motion
Week 7 Buffer

Checkpoints:

Checkpoint Number Progress
1 Rendering a sphere and a box
2 Making an object move
3 Forces (Gravity)
4 Collision detection
5 Reaction Forces