View Based 3D Shape Descriptors

Spring 2017

  • Description :
  • Key Points :
    • Implemented shape descriptors for 3d shapes using two different types of CNN architectures
    • Tested the performance on a small subset of shapes using smaller network sizes
    • Compared the performance to other view based shape descriptors like Zernike moments and Fourier descriptors

Distributed Key Value Store

Spring 2017

  • Description :
  • Key Points :
    • Implemented a scalable, fault tolerant distributed key value store in Go programming language
    • Designed the system to prevent any single point of failure using chord architecture and consistent hashing
    • Built the system to support features like load balancing and replication

Carrom Agent

Fall 2016

  • Description :
  • Key Points :
    • Designed an agent to play the Carrom game in one and two player modes
    • Trained the agent using Q-learning and neural networks to accurately pocket the coins
    • Designed the agent to improve tolerance to random noise added to its actions

Unsupervised Learning with CNN

Fall 2016

  • Description :
  • Key Points :
    • Used Deep Convolutional Generative Adversarial Network (DCGAN) architecture for learning the distribution of a database of images
    • Developed an application to apply makeup on face images using the trained generator network by performing arithmetic on vector representations of images from the database

Assited Drawing for Novices

Fall 2016

  • Description :
  • Key Points :
    • Realized the scope for deep learning in assisted painting and sketching by conducting literature survey on the existing methods
    • Identified and tackled challenges in using deep learning by experimenting with various approaches to solve the problem using a pre-trained VGG network
    • Used the pre-trained network for designing a method to provide feedback to the user on improving the aesthetics of the drawing depending on the activation responses of the network

Star Wars Droids

Spring 2016

  • Description :
  • Key Points :
    • Generated a photo realistic scene using RIB format on PRMan
    • Used the BRDFs and PRMan’s bi-directional ray tracer to produce indirect illumination effects like soft shadows, colour bleeding, caustics etc.
    • Added additional effects like motion blur and depth of field

Procedural Modelling of Cities

Spring 2016

  • Description :
  • Key Points :
    • Implemented a research paper on procedurally modelling large cities quickly from simple input maps
    • Involves a variant of context sensitive L-systems to generate the road pattern of the city
    • Used OpenGL to render the 3D model of the city generated as a graph of roads and collection of buildings

Planet Wars

Fall 2015

  • Description :
  • Key Points :
    • Developed an automated bot which chooses between defensive and offensive strategies to play the game of Planet Wars
    • Applied famous AI techniques such as alpha-beta pruning, A-star search with good heuristics to adjust according to the current status quo

Character Animation

Fall 2015

  • Description :
  • Key Points :
    • Generated an animation clip on Star Wars containing fully textured humanoid and non-humanoid droids
    • Notable rendering concepts include Hierarchical modeling trees, indirect illumination, Cel Animation

UART Design

Spring 2015

  • Description : Universal Asynchronus Receiver/Transmitter is a piece of computer hardware that translates data between parallel and serial forms. UARTs are commonly used in conjunction with communication standards.
  • Language : VHDL
  • Software : Xilinx ISE
  • FPGA board : Xilinx Spartan-6
  • Implementation Details :
    • Included separate modules for tramsmitter, receiver and clock generator using finite state machines
    • Implemented the design on Xilinx Spartan-6 board using a loopback interface to connect the transmitter and receiver

Seat Allocation

Autumn 2014

  • Description : The objective of the project is to admit students into different academic programs in various colleges across the country based on their merit and preferences. This takes into account the various reservation categories and their corresponding eligibilities after de-reservation.
  • Language : Java
  • Key Algorithm : The project implements the allocation using two different strategies.
    • The first is Merit List Order Allocation which combines different category merit lists and allocates seats
    • The second is a modified version of the celebrated Gale-Shapeley Algorithm
    • Using the first one has certain drawbacks, while the second one completely satisfies the need

Data Analysis & Statistical Inference

Autumn 2014

  • Description : The project is to analyse and predict what kind of relation the numbers expressed in a given set of sentences, which describe about one or more country/countries, have with the meaning of the sentence, along with assigning a confidence score to the relation predicted. The analysis is based on a given large knowledge base of various countries and associated numbers, along with a specific set of target relations.
  • Software : Scilab
  • Ideas Used :
    • Considered adjectival and demonymic forms of country names
    • Implemented a distance based approach in assigning confidence score

Tic Tac Toe

Autumn 2013

  • Description : Tic-tac-toe (also known as Noughts and crosses or Xs and Os) is a game for two players, X and O, who take turns marking the spaces in a 3x3 grid. The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row wins the game.
  • Language : C++
  • Graphics Library : simplecpp
  • Features :
    • The game includes two versions namely, Against Computer & Two Player
    • In against computer mode, there are three difficulty levels against computer
    • Designed attracting color schemes & animations

Amazon Developement Center, Bangalore, India

Summer 2015

  • Job Profile : Software Development Engineering Intern
  • Platform : iOS
  • Features Developed :
    • Developed a popup feature that triggers on predefined criteria enabling the customers to give feedback on the Amazon iOS app
    • Experimented with new feature changes in the app to improve the customer experience

Function Space Labs Pvt. Ltd., Bangalore, India

Summer 2015

  • Job Profile : Software Development
  • Platform : Nodejs
  • Framework : Express
  • Details : The job involved the development of an interaction framework "Splash" which is a platform to create interactive animations for the use of teaching concepts in basic sciences.
  • Features Developed :
    • Designed new method of project management system to efficiently and securely store individual project data.
    • Implemented User Authentication to the Application so that projects can be made private.
    • Additionally developed intuitive animations to serve the purpose of understanding various academic concepts to students.

Modeling Viewing Pipeline in Computer Graphics

Autumn 2015

  • Description : The purpose of this application is to understand the different parts of the modelling viewing pipeline in OpenGL. See this for more details.
  • Language : C++
  • Graphics Library : OpenGL (GLUT and GLEW)
  • Features :
    • It consists of two modes namely, modelling mode and inspection mode.
    • The modelling mode allows us to draw convex polygons by taking input through mouse clicks.
    • Inspection mode includes features like rotation, translation and change of origin.

Client-Server Communication System

Spring 2015

  • Description : A simple client-server chat system using TCP sockets where the server keep listening on a specific port and the client has a command line interface to interact with the server.
  • Language : C
  • Features :
    • Single client and multi-client models
    • In single client model, when one client is connected with server, the server refuses additional connections.
    • In multi-client model, server accepts connection to many clients where each client is distinguished by their IP address and port number. Clients can view the list of existing connections to the server.

Rube Goldberg Simulation

Autumn 2014

  • Description : A Rube Goldberg Machine is a contraption, invention, device or apparatus that is deliberately over-engineered or overdone to perform a very simple task in a very complicated fashion, usually including a chain reaction. The expression is named after American cartoonist and inventor Rube Goldberg (1883–1970).
  • Language : C++
  • Graphics Library : OpenGL (GLUT and GLUI)
  • Physics Engine : Box2D
  • Task : The task of the machine is to display a message at the end of the simulation, which includes complicated arrangement of pulleys, see-saw, dominoes etc.

IIT-JEE Entrants Programme Preference Application

Autumn 2014

  • Description : In the age of Internet and the increasing student strength entering the IIT’s, a web application is a essential utility to ease the process of admissions into IIT's. This web application allows the students to give their preferences for different programs in different IIT's online.
  • Framework : Django
  • Language : Python
  • Features :
    • Included User Authentication
    • Implemented access to view and edit the student preferences
    • Predicts the possibility of getting a particular programme based on previous year's data

Tetris

Spring 2014

  • Description : Tetris is a Soviet tile-matching puzzle video game originally designed and programmed by Alexey Pajitnov.
  • Language : C++
  • Graphics Library : FLTK
  • Features :
    • Uses tetrominoes
    • Increasing gravity based score obtained by the user
    • Appealing UI