Projects done


CoinRun - Game AI

Spring 2019

Guide: Prof. Mark Riedl, College of Computing, Georgia Tech
  • Implemented a Deep Reinforcement Learning agent using PyTorch that plays a platform game CoinRun
  • Trained a Deep Q Network which predicts the best possible action based on a reward function

Real Time Mesh Simplification on GPU

Summer 2018

Guide: Prof. Amitabh Varshney, Maryland Blended Reality Center, University of Maryland
  • Implemented a parallel version of the the Quadric Error Metric method to perform Mesh Simplification on GPU using CUDA
  • Simplified the mesh in Real Time in under 100ms compared to the traditional 700ms for a serial implementation

Mesh Tetrahedralization

Fall 2017

Guide: Prof. Jarek Rossignac, College of Computing, Georgia Tech
  • Computed the Delauney Tetrahedralization of two given clouds of balls located at two horizontal planes
  • Computed a high-resolution water-tight triangle mesh that approximates the boundary of the union of balls
  • Detailed Report   Source Code

Rage Race : A 3D racing game

Fall 2017

Guide: Prof. Jeff Wilson, Interactive Media Technology Center, Georgia Tech
  • Created a 3D single-player racing game in Unity
  • Created a player character with animated 3D mesh character controller having real-time control
  • Implemented a real-time steering, path planning and state-machine based AI which controls 3 NPCs
  • Added physics event-based feedbacks like particle effects and 3D audio
  • Final Presentation   Source Code

Face Detection with a Sliding Window

Fall 2017

Guide: Prof. James Hays, College of Computing, Georgia Tech
  • Loaded cropped positive trained examples (faces) and converted them into a HoG template
  • Sampled random negative examples (non-faces)
  • Trained a classifier from these examples
  • Ran the classifier on the test set and achieved 82.5% average precision
  • Detailed Report   Source Code

Scene Recognition with Bag of Words

Fall 2017

Guide: Prof. James Hays, College of Computing, Georgia Tech
  • Classified scenes into one of 15 categories by training and testing on a 15 scene database
  • Used features like tiny images and SIFT and classifiers like nearest neighbor and linear SVM
  • Also experimented with RBF kernel for non-linear SVM, GIST descriptors and Fischer encoding
  • Achieved best accuracy of 65.5% using SIFT and linear SVM
  • Detailed Report   Source Code

Camera Calibration and Fundamental Matrix Estimation with RANSAC

Fall 2017

Guide: Prof. James Hays, College of Computing, Georgia Tech
  • Calculated the camera projection matrix and camera centers for given 2D and 3D points of an image
  • Estimated the Fundamental matrix for 2 input images using Singular Value Decomposition
  • Used RANSAC to find the best Fundamental matrix for matches of 2 images found using SIFT
  • Detailed Report   Source Code

Local Feature Matching

Fall 2017

Guide: Prof. James Hays, College of Computing, Georgia Tech
  • Implemented the Harris Corner Detection algorithm to find interest points of two similar images
  • Implemented a SIFT like feature detection algorithm to find local features for each of the interest points
  • Used Nearest Neighbour Distance ratios to find the feature matches between the two images
  • Detailed Report   Source Code

Image Filtering and Hybrid Images

Fall 2017

Guide: Prof. James Hays, College of Computing, Georgia Tech
  • Created a filtering algorithm which applies a filter to a given image
  • Created low pass and high pass filters of two different images and merged them to create a hybrid image
  • Detailed Report   Source Code

Procedural Modeling of cities

Spring 2017

Guide: Prof. Siddhartha Chaudhuri, CSE Dept, IIT Bombay
  • Created a parser for a grammar of a city and parsed it to create a syntax tree
  • Iterated over the faces of a manually generated road network and called a render function at each leaf node
  • Probabilistically generated different types of buildings like schools, offices, residential homes etc
  • Coded it in C++ using graphics libraries like OpenGL and GLUT

Object tracking using Mean-Shift

Spring 2017

Guide: Prof. Ajit Rajwade, IIT Bombay
  • Designed a system for real-time tracking of non-rigid objects from a moving camera using Mean Shift
  • Used Bhattacharyya Coefficient based metric for better target localization

Undergraduate Thesis: Kinect based Reconstruction

Autumn 2016

Guide: Prof. Parag Chaudhuri & Siddhartha Chaudhuri, CSE Dept, IIT Bombay
  • Designed a system that scans a human body using multiple Depth Sensors like Microsoft Kinect
  • Robustly reconstructed a synthetic mesh of a person using these partial, noisy scans
  • Detailed Report   Presentation

Comparison of Feature Selection Methods and Significance Tests for Sentiment Analysis

2016

Guide: Prof. Pushpak Bhattacharyya, IIT Bombay
  • Studied and Compared various feature selection methods like TFIDF, Delta-TFIDF, Relief, Χ2 test and Welch’s t-test
  • Performed In-domain, Cross-domain and Cross-lingual SA in and across various domains/languages
  • Showed that t-test achieves higher accuracy than Χ2 test in In-domain, Cross-domain and Cross-lingual SA
  • Detailed Report   Presentation

Optimal Scheduling Strategies for Dense DSDS Deployment Scenarios

Summer 2016

Guide: Pradeep Dwarakanath, Sr. Chief Engg., Samsung R & D Institute Bangalore
  • Studied the behavior of secondary SIM in case of switching from one SIM to another in Dual SIM phones
  • Used various probabilistic models to learn and predict the behavior of the secondary SIM
  • Employed smart scheduling strategies at network to minimize the loss of "On Air" resources
  • Tested the code with multiple configurations and showed improvement in resource utilization at NW

Real-time Performance based Facial Animation

Spring 2016

Guide: Prof. Parag Chaudhari, IIT Bombay
  • Created a low-cost facial animation system using a non-intrusive, commercially available 3D sensor (Kinect)
  • Reconstructed the set of user-specific blendshapes that best reproduce the example expressions
  • Represented dynamics of facial expressions using a generic blendshape rig
  • Coded it in C++ using PCL tools and library to generate and store point clouds
  • Detailed Report   Source Code

Droids in RenderMan

Spring 2016

Guide: Prof. Parag Chaudhari, IIT Bombay
  • Designed a humanoid (our own creation) and a non-humanoid (BB-8) bot, inspired from the Star Wars movies
  • Used multiple point lights which acted as an area light and generated soft shadows
  • Used indirect illumination for Color Bleeding and Photon Mapping for Caustics
  • Coded it in RSL and rendered in RenderMan, a renderer by Pixar
  • Detailed Report   Source Code

Incremental Development of a Compiler

Spring 2016

Guide: Prof. Amitabha Sanyal, IIT Bombay
  • Implemented a compiler for a subset of the C language using tools like FlexC++ and BisonC++ askk
  • Source Code

Animation of Droids

Autumn 2015

Guide: Prof. Parag Chaudhari, IIT Bombay
  • Designed a humanoid and a non-humanoid (BB-8) bot, inspired from the Star Wars movies
  • Textured the bots and surrounding environment and added light sources for the background
  • Added features like constrained rotation and translation of every part of the bots along 3 specified axes
  • Coded it in C++ using graphics libraries like OpenGL, GLFW and GLEW
  • Detailed Report   Source Code

Buy and Sell platform

Autumn 2015

Guide: Prof. N.L. Sarda, IIT Bombay
  • Built a Java based web portal where people in an organization (like IIT Bombay) can Buy and Sell stuff they want
  • Used HTML5, JSP, Java, CSS, Javascript for designing the web pages and PostgreSQL for handling the database
  • Added features like profiles, messaging, searching and filtering of items
  • Detailed Report   Source Code

Music Classification based on Genre

Autumn 2015

Guide: Prof. Siva Kumar G., IIT Bombay
  • Developed a Music Genre Classifier using Neural Networks
  • Tested the classifier on various kinds of inputs for classifying them into pop, classical, metal, rock etc
  • TStudied different parameters like total error, sensitivity and specificity and achieved > 80% accuracy
  • Coded it in Python using libraries like Pybrain and Neurolab
  • Detailed Report   Source Code

B+ Trees: Bulk Loading and Analysis

Autumn 2015

Guide: Prof. N.L. Sarda, IIT Bombay
  • Implemented External Merge-Sort in PF Layer and Bulk Loading in AM Layer in B+ Trees
  • Analyzed different parameters like time to construct the tree and number of nodes in the tree
  • Studied the parameters in both Top-Down and Bottom-Up approach using pre-sorted and random data
  • Detailed Report   Source Code

JEE Mains/Advanced Counselling Portal

Summer 2015

Guide: Prof. Sharat Chandran, IIT Bombay
  • Built a Django based web portal where JEE Mains/Advanced students can enter their ranks and interests
  • Based on a statistical model, checked the available branches with different probabilities
  • Used HTML5, Bootstrap, Javascript, jQuery for designing all the web pages
  • Developed a feature using which students can directly upload final choices on official Seat Allocation portal

Branch Change Algorithm for IIT Bombay

Summer 2015

Guide: Prof. Sharat Chandran, IIT Bombay
  • Designed and implemented an algorithm to automate the Branch Change process
  • The candidates are taken in CPI order and are assigned a branch based on predefined rules
  • Implemented the algorithm using Java, it promises best possible programme to top candidate
  • Tested and verified the algorithm on the actual dataset constructed from last two years
  • Being used for the Branch change program in 2015 by the institute which was done manually till 2014

Chatbot: Socket Programming

Spring 2015

Guide: Prof. Kameswari Chebrolu, IIT Bombay
  • Implemented a chat system for both TCP and UDP protocols where we use the client to chat with a server
  • Coded it in C++ using networking libraries like socket.h, arpa/inet.h etc

Universal Asynchronous Receiver/Transmitter Circuit Design and Simulation

Spring 2015

Guide: Prof. Ashutosh Trivedi, IIT Bombay
  • Designed a UART to receive/send data to microprocessor through data bus from/to a laptop
  • Implemented it using VHDL and used Tera Term to transmit data frame by frame across FPGA and Computer

JEE Advanced Seat Allocation Portal

Autumn 2014

Guide: Prof. Sharat Chandran, IIT Bombay
  • Developed a Python based web portal using Django Framework which included registration, login and session handling
  • Implemented features like past year data analysis and available branches.

Gale Shapley Seat Allocation

Autumn 2014

Guide: Prof. Sharat Chandran, IIT Bombay
  • Studied the Gale Shapley Algorithm for finding a perfect matching and implemented it in Java.
  • Used the implementation of the algorithm to solve a practical seat allocation based problem.

Simulation of Rube Goldberg's model

Autumn 2014

Guide: Prof. Sharat Chandran, IIT Bombay
  • Modeled a simulation of a Rube Goldberg’s Machine using Box 2D , a physics simulation engine, in C ++
  • Designed a robust system to develop a simulation using objects like dominos etc

A Game of Tetris

Spring 2014

Guide: Prof. R.K. Joshi, IIT Bombay
  • Designed a game where different objects of changeable shapes fall from the top
  • Implemented it in C++ using a cross-platform graphics library - Fast Light Toolkit (FLTK)
  • Objective is to make complete lines at the bottom. Implemented a scorebox and future object prediction too

A Game of Maze

Spring 2014

Guide: Prof. R.K. Joshi, IIT Bombay
  • Designed a game where the player needs to reach the final destination from a starting point in a maze
  • Implemented it in C++ using a cross-platform graphics library - Fast Light Toolkit (FLTK)
  • Made it in two versions: one having hidden and the other having visible obstacles
  • It takes inputs from arrow keys and the hidden obstacle version also shows the nearby available paths in different colors

Doodle Jump

Autumn 2013

Guide: Prof. Supratim Biswas, IIT Bombay
  • Designed a game where the goal is to move an object to the top using jump and arrow keys to move sideways
  • Implemented it in C++ using a graphics library called Simplecpp
  • Added a feature in which the doodle (or object) changes shape and color when it touches the plank