Projects
A collection of my work
Uncertainty Quantification of Neural Radiance Fields
for Enhanced Safety Validation
SISL & CS 231N
Augmenting safety validation of autonomous systems with uncertainty quantification of volumetric density in NeRFs.
In this project, we enhanced autonomous systems’ safety validation by integrating uncertainty quantification from Neural Radiance Fields (NeRFs). We used Gaussian and Bayesian Laplace Approximations to estimate uncertainty in volumetric density predictions. Disturbance vectors, which could lead to failure modes, were generated through various sampling and optimization algorithms. This approach significantly improved the robustness of our safety validation framework.
DeepQHoldem
CS 238 & CS 221
Applying deep Q-learning and neural networks to develop a cost-effective and proficient No-Limit Texas Hold'em poker agent, exploring strategic decision-making in a game of imperfect information.
Understanding and mastering strategic decision-making is a critical pursuit in artificial intelligence, with applications extending to fields such as game theory, decision science, and autonomous systems. By exploring the complexities of decision-making in a game characterized by imperfect information and individual play, this project seeks to contribute valuable insights into the broader realms of strategic artificial intelligence and competitive environments.
Swish Science
CSCI 1951A
Predicting NBA Success using Data Science and Visualization
Our research project aims to revolutionize NBA team performance prediction through advanced modeling and analysis of historical and current season data. We seek to understand the factors that influence a team's success and create an accurate prediction model by exploring team and player statistics. Our findings have implications for NBA enthusiasts, sports analysts, team owners, and sports bettors, providing improved decision-making and precise projections of team performance. Ultimately, our research has the potential to significantly impact the dynamic world of professional sports.
WikiArtGAN
Personal Project
Using a Deep Convolutional Generative Adversarial Network to Generate Art.
Generative Adversarial Networks (GANs) are a framework for teaching a DL model to capture the training data’s distribution in order to generate new data from that same distribution. They are made of two distinct models, a generator and a discriminator. My goal in this project was to form a direct extension of a GAN that explicitly uses convolutional and convolutional-transpose layers in the discriminator and generator, respectively. By training this model on the WikiArt dataset, I was able to produce resulting generated images that genuinely embody elements of real artwork.
GeoGuessing With Photo Localization and Deep Learning
CSCI 1430
GeoGuessr is a geographic discovery game. We've automated it.
Our goal was to utilize a trainable convolutional neural network (CNN) model to predict the geographical location of a set of images. By first thoroughly training the model with Google Street View images, we then put the model to the test by feeding it scraped images directly from GeoGuessr games based in the United States. Our model then decided on which states it believed that GeoGuessr had placed them in geographically.
Contrastive Self-Supervised Image Classification with SimCLR
CSCI 1470
Training an image classifier without using labels by building a model that can generate labels needed for training from the images themselves!
Implemented a contrastive self-supervision model to learn image representations from unlabelled data and investigate its performance for an image classification downstream task. The overall outlined learning framework is semi-supervised and trained in two stages. First we implemented simCLR to extract image feature representations without using labels. Then, we used a labeled dataset to train a classifier on top of our learned feature backbone for the classification task.
genClassBezier2D
Personal Project
A short project with the goal of generating a small 2D image dataset of abstract shapes (formed using Bezier curves) and then training a model to classify them.
Recognizing shapes is an essential task in computer vision. An amalgamation of different application areas rely heavily on shape recognition, including robotics, healthcare, security systems, and assistance for the impaired. My goal with this project is to first provide a procedure for generating a few datasets of abstract 2D shapes (formed using Bezier curves). I then prepare the architecture for a simple convolutional neural network (CNN) to classify said shapes based on complexity.
MindMap
YHack 2019
Revolutionizing education through transcription and visualization
MindMap is a web application that can create a transcription from a video lecture that is then condensed and compiled into a simple to use and fun word-map diagram. MindMap utilizes the Google Cloud's Speech-to-Text API (through both Python and Java) in order to create a seamless transition in a fraction of the time that it would take to sit and watch the lecture.
CelebrityJumble
Personal Project
Scrambles the thoughts of popular celebrities
CelebrityJumble is a Twitter bot that I created in Python. It utilizes Tweepy and the Twitter API along with OAuth to collect and reproduce tweets. On top of this, extensive error handling is needed in order to successfully run CelebrityJumble. I personally have CelebrityJumble on my laptop set to run 7 times a day automatically with Automator and the Unix crontab command. This tweets to the account @CelebrityJumble, which I made for this project.
Weather Scraper
Personal Project
Quickly retrieve the current weather in any US city
Weather Scraper is a tool that fetches the current temperature and other useful information of any city in the United States. It's a data scraping project written in Python. Weather Scraper retrieves data using GeoPy, parses it through Beautiful Soup, and finally returns it to the user in a simplified form.
Music Visualizer
Personal Project
Generate unique graphics based on audio
This project visualizes audio. Written in Java, Musical Visualizer utilizes the Processing graphical library with basic drawing and another library called Minim to analyze any audio file. I created and taught children about this project as an Online Instructor with iD Tech Camps.
Opening Night
BRGD
A multiplayer trap setting game
Opening Night is a top-down game where one player must design a maze of traps for the other player to navigate. Player 1 acts as the trap setter, choosing where to place traps that will slow, stop or divert the other player. Player 2 is the trap navigator who must use limited light to navigate the traps all while being chased by the slow moving Player 1. Created in Unity; written in C#.
autoTagger
Signs.com
A small script I've built to help reduce tagging time
This functional program automates and expedites the tagging process for my part-time work. Written in Python, autoTagger integrates Selenium WebDriver APIs to optimize agent tagging with a 25-33% reduction in process duration.