Projects

Xorg(Mesa): Implement presentation features in VDPAU state tracker

Mentor: Christian König (Senior Developer, AMD) Code

  • Implemented luma keying as part of color space conversion code and bicubic and lanczos interpolation algorithms as fragment shaders in TGSI
  • Reworked the VPDAU mixer implementation so that it uses temporary buffer while applying filters
  • Implemented DRI3 helper code for the Gallium interface for hardware with PRIME GPU offloading
  • Used the DRI3 to send handle of a texture directly to X to be used as back buffer and avoids extra copying

Analysing the effect of kernel mode switch on multithreaded applications

Undergradutae Project, Prof. Mainak Chaudhuri

  • Used a modified version of qemu and linux kernel to collect traces for mutlithreaded applications including traces for OS activity

evdev-rs: rust bindings for libevdev

Mentor: Peter Hutterer (Senior Software Engineer, RedHat)

  • Implemented a safe wrapper to use libevdev in Rust, libevdev is a wrapper library for handling evdev kernel devices
  • Used high level rust features to encorporate enum type safety, memory safety, and type inference

Analysing high performance cache replacement policies for CloudSuite

Course Project, Prof. Biswabandan Panda

  • Analyzed the CloudSuite for their performance with respect to Last-level cache replacement policies like Hawkeye, ShiP++, etc
  • Used CRC2 simulator ”ChampSim” which models a out-of-order superscalar processor with the entire cache heirarchy and a DRAM model

Java Compiler in Python (JCP)

Compiler Design, Prof. Amey Karkare

  • Implemented a Java to x86 compiler from scratch in python using ply
  • Incorporated advanced features like object heap allocation, classes, foreign funtion interface

Online Academic Registration System(OARS)

Mentor: Prof. P.P. Kurur and Prof. Satyadev Nandkumar

  • Build a web application using Ruby on Rails to facilitate the process of academic registration
  • Used docker for development and deployement of the system in production

Edge-disjoint spanning trees in undirected graphs

Mentor: Dr. Ovidiu Daescu (Professor, The University of Texas at Dallas)

  • Worked on finding 2 edge-disjoint spanning trees in a special class of graphs with 2n-2 edges and a double edge
  • Proved a lemma regarding allocation of edges of 2,3 and 4 degree vertex
  • Conceptualized an algorithm to construct the two trees using the lemma, currently trying to implement and prove it

Rust bindings for libevdev

Mentor: Peter Hutterer (Senior Software Engineer, RedHat) Code

  • libevdev is a wrapper library for handling evdev kernel devices
  • Implemented a safe wrapper to libevdev library, also wrote documentation and tests for the bindings

Social Robot

Mentor: Prakhar Jawre Documentation     Project Video     Code

  • Developed an animatronic head capable of human interaction via speech and through its Twitter handle
  • Used Radxa Rock as the main development board along with Arduino Mega for controlling servos and Python as the primary language
  • Implemented Speech to text using Google’s speech API, Artificial Intelligence through Pandorabots API, text to audio using eSpeak and connected to Twitter using TweetPony API

Social Robot Social Robot

NachOS

Course Project under Dr. Mainak Chaudhuri(Associate Professor, IIT Kanpur)Code

  • Implemented system calls pertaining to fork, exec, join, yield, sleep and exit for NachOS
  • Implemented process scheduling algorithms like UNIX scheduling, round-robin, SJF, non preemptive
  • Implemented page replacement algorithms such as random page allocation, FIFO, LRU and LRU clock

App Timer

Mentor: Prashant Jalan
AppTimer is a android library which provides the time spent by the user on each app. AppTimer supports until Android Kitkat. It uses GET_TASKS permission to retrieve the app which is running in the foreground.

  • Explored various ways to calculate the time spent by user on each ways and implemented the most efficient one
  • Developed a background service which would run at specific intervals and record the application which was running in foreground at that time and store it in SQL database
  • The Code is available on github

Stable Marriage Problem

Mentor: Dr. Rajat Mittal (Professor, IIT Kanpur)
The Report is available here

  • Studied the Stable Marriage Problem and Analysed the proof of the algorithm to solve it
  • Studied various standard techniques used in solving the problem and its variants
  • Analysed theorems regarding existence of a stable marriage in case of incomplete lists
-