Estimating aesthetics and interestingness of images, Masters thesis, Spring ’10 + Fall '10
Approaching the problem of aesthetics detection by mapping low-level image features to elements that bring about photographic perfection. Ground rules of art such as the 'Rule of Thirds' and 'Vanishing Points' increase a photograph's aesthetic content with a high probability. Being able to computationally detect such features would be useful in measuring the aesthetics context of a photograph. The ultimate goal is to develop techniques which can be used to improve online image searches.

Illumination Estimation from a Single Natural Image, 2 member course projectFall ’09
Designed a system which uses three weak cues, the sky, shadows on the ground and shading on vertical surfaces, present in an image to estimate the sun’s position and illumination context of an outdoor scene. Based on the work of J.F. Lalonde, Alexei A. Efros and S. G. Narasimhan at ICCV 2009, this project gave me a true sense of what a complete machine vision system should be like.
(Detailed report and code)

Know-More - Inference detection in the age of Google, 2 member course project, Fall ’09
Designed a web search model which algorithmically predicts the inference capabilities of various searcher classes mining for information about an individual. Used statistical approaches to automate search query generation and principles of probability to estimate usefulness of search results.
(Detailed report and code)

RNA Secondary Structure Prediction, 3 member course project, Fall ’09
Developed a Simulated Annealing based algorithm to detect stable secondary structures of genomic sequences in constant time.
(Detailed report and code)

Virtual Classrooms - Proximity detection in virtual environments, Project for on-campus deployment, Fall ’09 
Programmatic implementation of projects related to virtual-reality environment simulation. We developed interactive online classrooms which could detect proximity, presence and interactivity in various group activities that Professors organize in classrooms. Got a first-hand experience of programming OpenSimulator, the open-source version of a Second Life server.

Flash runtime development, Nokia Research and Development, Bangalore, India, 2007 - '09
Part of a team that collaborated with Adobe’s Open Screen project to implement a Flash-runtime for Nokia’s Linux-based mobile platform, Maemo. Realizing the ubiquity of Flash in the age of Web 2.0, the Open Screen project was an initiative to have a common code-base across all desktop and mobile platforms. Porting a processor-intensive multi-threaded desktop-based system to a mobile platform was a challenge I cherished in this project. With an access to resources at both Nokia and Adobe, I added value to the emergence of Flash as a medium for the convergence of the Mobile and Desktop web usability experience. 
Also developed various modules of Flashlite, the Macromedia Flash port for Nokia’s Series 60 phones. 

USB/IP - Virtualization of Operating Systems, Internship at Hewlett Packard, STSD, Bangalore, India, Jan '07 to June '07
The use of thin clients were becoming ever-popular. However most thin clients, at that time, could not access access block devices connected to it, as it could not be mounted on the server's file system. We implemented this feature, using Xen virtualization, enabling applications on the server to access data on the USB device and fully utilizing the power of remote desktop technology. We also introduced the business model of offering customized thin clients as a web-service, charged on a time-of-usage basis. At a time when Cloud Computing was at its nascency, I was able to take a first hand look at its intricacies and also contribute to its ecosystem.
Selective Querying and other proposals for a less congested Gnutella Network, With Anuj Bhatt, Summer '07
We studied the intricacies of peer to peer networks, mainly Gnutella for its widespread usage and popularity and came up with suggestions for changes in the protocol that would potentially decrease the congestion caused by broadcasting of query packets. The idea primarily was to add intelligence to the query process so as to not have to flood the network with query packets. Our work led to a publication which was presented at the International Conference on Distributed Computing and Internet Technologies '07. 
Compression of Genomic sequences, Undergraduate research, at MSRIT, Bangalore, 2006 - '07
This work added novelty to gene compression techniques as it concentrated on compression of non-repetitive portions of the gene, unlike standard algorithms which take advantage of the repetitions and reverse palindromes in gene sequences. On sequences like HUMDYSTROP, which have a very low degree of repetition, the algorithm gave a compression ratio of 1.37. This work, under the guidance of Prof. K.G. Srinivasa and Prof. K.R. Venugopal of Indian Institute of Science, was presented at the Indian International Conference on Artificial Intelligence '07.
Publication   Presentation

Graphics Editor, Course Project, Feb ’06 - Jun ’06
Designed and implemented a system to create and edit images in bitmap format. As a first attempt at trying to adhere to the traditional Software Engineering principles, I learnt the nuances of actually putting them to practice.

Lexical Analyzer for a subset of C language, Course project, Aug '05 - Dec ’05
Designed and implemented a system that fits into a C compiler and assists in lexical error checking and analysis. It was my first detailed look into a system’s compiler, which forms one of the most important parts of the kernel.

Steganography of BMP and GIF formats, Personal initiative, Feb '05 - Jun ’05
Designed and implemented a system that enables concealing of a data stream by combining it with another stream of relatively infinite length. As a first attempt at designing a software system, I was fascinated by the vast scope of independent research.