B.Sc and M.Eng in Computer Science
Clustering is an important component of understanding network structure. This paper develops a metric for analyzing higher-order clustering of weighted graphs.
Because I do not own the copyrights to PAC-MAN, I am currently unable to distribute or publish the source code to this project.
As part of a computer graphics course offered at Cornell, I worked with a partner to implement a ray tracer in Java. A ray tracer renders a computer image by simulating the way light propagates through space and interacts with objects. Given a triangle mesh, the ray tracer generates the scene along with shadows, light reflectance, and textures. The ray tracer supports orthogonal and perspective viewing, Monte Carlo illumination, and multiple surface shading models. My role in the project involved implementing ray generation and intersection, computing shading during the rendering process, integrating anti-aliasing, and implementing an acceleration structure for large models.
Throughout the course, I implemented a Blinn-Phong shader, a Cook-Torrance shader, as well as shaders based on environment mapping, normal mapping, and displacement mapping. Additionally, I implemented shaders for different types of materials, such as metal and glass.
Conceived at the RIT BrickHack Hackathon, and winning the Best Pebble Hack Award, Pokemon Pebble Edition brings the virtual Pokemon world to reality, using geolocation and player movement to create a location-based version of the classic videogame. Players can battle and capture Pokemon in the real world using their Pebble smartwatch, and use their Android smartphone as a Pokedex. I was responsible for developing all game mechanics on the Pebble smart watch, as well as integrating sensor data from the Android handset into game events. Despite high interest in further development, Pokemon Pebble was discontinued in late 2015 once Pokemon Go was announced, due to a large overlap in content.
Based on your playing style, the chess opening recommendation engine suggests chess openings which are a perfect match for you. You can find openings which are aggressive, passive, positional, tactical, theory-heavy, simple, open, closed, and anywhere in between. Descriptions for various chess openings are scraped from Wikipedia and analyzed for textual similarity to keywords corresponding to user input. The app is entirely implemented using JavaSript/jQuery, while Python was used for extracting the dataset from Wikipedia.