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