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
- Browser Based PDF manager
- Resume Script Generator
- Physicc : A Simple Physics Engine
- Image Colorization
- Language Model Based Syntax Autocompletion in a Text Editor
- Computer vision based web app
- Cribbit Cribbit (Open for PGs Only)
- Techster Texter
- Language Detection
- Book Tracker
- ResoBin - Not the bin we deserve but the bin we need!
- Moodify
- Agree to disagree
- Unscripted
- Watson (World's smartest assistant in your pocket)
- IITinder
- BriefKing
- Meta Learning - Learning to Learn
- Break free of the matrix, by building one!
- Procedurally Generated Infinite Open World
- Introduction to App Development
- PAC MAN
- Introduction to Web Development
- (Un)Clear
- Goal ICPC
- Traffic congestion modelling and rendering
- PyRated
- Tools for Data Science
- Machine Learning Based Metropolitan Air Pollution Estimation
- Audio controlled drone
- NLPlay with Transformers
- DIY FaceApp
- A Deep Dive into CNNs
- Competitive Coding
- Snake AI
- Facial Recognition App
- Gaming meets AI !!!
- R(ea)L Trader
- Computational Geometry
- Deep reinforcement learning - 2048 AI
- Reinforcement Learning to Finance
- Developing Hybrid ANN-Statistical Model for Robust Stock Market Prediction
- Si-Phy
- Astronomical Data-modelling and Interpretation
- Visual Perception for Self Driving Cars
- Convolutional Neural Networks and Applications
- Quantum Computing Algorithms
- Algorithm Visualizer
- Anime Club IITB Website using Django
- Machine Learning in Browser

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:
- Integration of Newton’s Equations of motion (figuring out positions from forces)
- Collision Detection
- Rigid body dynamics (including forces and torques)
- 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 |