Cubequest

Advisor: Prof. Subodh Kumar

In this project we developed a single player game. The objective of the game was to make a cute little cube traverse through a map of hurdles using navigation keys to the winning points. The difficulty of the hurdles evolved with the level of the game. We aimed at developing a game with easily customizable gameplay and rich graphical effects. There were 2 important components of the game, first, the map on which the game was played and second, the cube. In order to make map easily customizable we created a strongly typed XML format for defining a custom map. Different Tags could be used to place different kind of objects in the map including wall, skip hurdle, abyss hurdle etc. This made it easier to design and use a custom map in the game. To give a more appealing feel to the whole playing field we utilized bloom effect. Bloom effect is a post processing effet which gives a glowy effect (Tron like) feel to whole field. Also the field could be huge which in turn would effect the rendering speed of the game. To solve this problem we made use of offline rederning (now a deprecated feature) and depth testing to greatly enhance the rednering speed of the game. Additional techniques such HDR anti aliasing were used to remove the jagged effects from the field. Most of the code was written in C++ and GSL utilizing libraries such as OpenGL, freeglut, xmlreader.


Pintos

Advisor: Prof. Sorav Bansal

As part of Operating System course we were required to add some functionalities to a bare bones instructional operating system named Pintos. First we added system call functionality to the OS. The system calls implemented included fork, wait, kill, ls, exec etc. Then we added virtual memory management facility to the OS. This involved adding swap management facilities, implementing eviction policy and evaluating the tradeoffs of various eviction policies. Finally, we implementing the filesystem for the OS. Adding ls, cd, mkdir system calls. Since the basic source code is in C, most of the coding was done in C apart from some bash scripts.


PyShell

Advisor: Prof. S.K. Gupta

In order to demonstrate the principles of Software Development, we developed an online interactive python tutor. We took inspiration from tryhaskell.org and adapted our idea for python. The goal of the project was two fold. First, develop an online interpreter which gave you a terminal like interface to try out python commands. Second, develop a method for learning from interactive python tutorials. In order to accomplish our first goal we utilized the codemirror js library for code highlighting and a python script for running the commands and saving the interpreter state for a particular user. Our job was made easier since we utilized view and controller seperation facility of python MVC framework called web2py. For the second goal, we wrote custom javascript functions which analyzed the commands entered and made progress based on the output of those commands. A better approach could have been to utilize backbone.js library and modelled interative tutorials as various views using this library. The project's frontend was developed using HTML, CSS, javascript and backend was written mostly in python.


Alpha Table Summarization

Advisor: Prof. Niladri Chaterjee

This project was pursued as an independent project in the field of mathematics. We studied the problem of Alpha Table Summarization which is classified as NP Hard problem. The problem basically tries to summarize a given table into chunks where each chunk is a compressed form of exactly alpha rows in the original table. We analyzed various solutions to this problem and tried to come with some improvements over the present solutions. To improve upon the current solutions, we redefined the problem as Weak Alpha Table Summarization taking into account the field constraints. Essentially we weakened the exactly alpha constraint to on an average alpha. This relaxation allowed us to approach this problem as a clustering problem. Utilizing the domain knowledge and some heuristics we came up with a solution that allowed us to come with a seemingly faster way to summarize tables. The quality metric for summary evaluation was borrowed from Candan et. al..


Networked Ping Pong Game

Advisor: Prof. Sorav Bansal