Designing a thermal simulator for emerging computer chips
I am currently developing a new version of the HotSpot thermal simulator, which is a tool that is widely used by the research automation community to model the thermal properties of a processing system before manufacturing it. More precicely, I am working on the implementation of a dynamic simulator that would imitate a real operating system, and produce a more accurate power trace of a processor when it is under stress. For more details whatch the video above.
Drawing with Computer Vision
Drawing with computer vision is a program for hand shape recognition and finger identification that can be used to draw on a screen as well as indicate preferred colors for drawing. By identifying when a hand is closed and when it is open (through analyzing convex-hulls in the largest contoured area), the program "draws" in different colors depending on the hand shape. The program understands hand gestures and movements by tracking the palm and using it as a means of drawing.
Non Linear Classifier using Neural Nets
This project was one of my assignment in the AI course I took my Junior year. The purpose of this project was to design and implement a neural network in order to provide a curve-fitting model of a given non-linear dataset.
Given a set of data, I created a 3D Neural Network that outputs the probabilty of a specific point inside our dataset to belong to a certain class. Based on these propabilities, my program generated a curve in order to provide a fit to our data.
Intelligent Game Player
This purpose of this project was to implement a program that intelligently plays against the two-player game, Atropos. achieve intelligence approach, we designed a static evaluator (to determine how good the current state of the program is) and then applied the appropriate search algorithm (minMax with alpha beta pruning) to the Atropos game. Our program is able to win at a rate of 75%, and is quick at making decision.
Sea++ (Under the Sea)
SEA++ is a time dependent game in which objects are located in a two-dimensional word, they can move around and behave in various ways. In this game, the user can control a fish population (consisting of tuna and sharks) where they can mate, eat, and swim. This program runs in the terminal window, and is compiled using a Makefile.
Java, Android SDK, RecipePuppy API
Pigout is an Android application that provides the user suggestions on dishes, based on inputted ingredients. In other words, the app prompts the user to enter several ingredients, and Pigout returns dishes that can be made, along with recipes. It's a fast and easy way to decide what to make for dinner!
Objective-C, iOS SDK
Calcoolator is an iOS application. It incorporates various functionality of a hand held calculator. It prompts the user to input an expression, and displays the result of the expression inside a label.
Calcoolator takes into account the order of operation. The user can therefore input a complex expression using parentheses and copy the result to its clipboard. Before returning a result, our algorithm checks whether the the parentheses are balanced.
MSP430 Development Kit, C
My music player consisted of four external push buttons that can be used to control the state of the system (modify the tempo, replay a song, change songs, pause). I also used two on-board LEDs in order to provide feedback to the user on the state of the system. My music player is able to produce two songs: Fur Elise and Joy To The World.
MSP430 Development Kit, C
This project consists of the implementation of a guessing game between two MSP430s. The two MCUs communicate through SPI and the master outputs the result to PC via UART serial communication (on Putty). To start this game, the button on the Master MCU is pressed, based on how long the button is pressed, the processor generates a number. The slave applies a binary search algorithm in order to quickly guess the number. The generated number is of a size of 16-bit (the SPI protocol only allows a transmission of 8-bits at a time). I therefore had to implement a Finite State Machine in order which will simultaniously execute two SPI processes in order to send/receive the number.
MSP430 Development Kit, C, Sensors (thermistor, FSR406)
SmartCoaster is an intelligent coaster that detects the temperature and the fullness of a drink. This system was designed using the MSP430 microcontroller, and it takes full advantage of its low-power features. The temperature is measured using a thermistor; in order to accurately output the temperature, we developed a model which extrapolates the temperature in degree celcius from the digital value outputted from the thermistor.
Various LEDs are used in order to provide feedback to the user on the state of the system. Additionally, I used an LCD screen in order to display the output.
Objective-C, iOS SDK
Third party libraries: AFNetworking, Facebook SDK
RadAir is a flight tracker app implemented on iOS. The user logs in using Facebook, and gets to build his own travelling profile by searching for flights on the web using the flight number. In the background, RadAir searches for the appropriate flight, and provides all relevent information such as the time before departure, boarding gate, flight status, departure and arrival time.