Last updated April 2024
Click on project title to be directed to its GitHub repo
This was a final group project for Professor Vásquez’s class Building Interactive Machines. We used reinforcement learning to teach the robot shutter how to play Zip Zap Boing with 2 human players.
We built an intricate finite state machine robot architecture in the webots robot simulator that drives a rover that uses various sensors. The integration of lidar data and a color camera feed allowed us to autonomously control a robot to collect simulated resources in an environment with simulated zombies that it tries to avoid.
This research project focuses on two different approaches to addressing the problem of the processing bottleneck that comes with running multiple models across camera feeds capturing different angles of an environment. The first part attempts to use image stitching to combine different camera perspectives into one feed to remove the need for running the same body and face-tracking models across two different feeds. The second attempts to establish a global coordinate system using aruco codes for the two cameras. This coordinate frame would then allow the robots to run body tracking models selectively based on which feed provides the best view and easily feed it into an intention predictor upon transforming the models' landmarks.
We focus on improving the accuracy of captions for the NIC image to caption model from the paper Show and Tell: A Neural Image Caption Generator. We retrain the network from the paper using an open-source TensorFlow adaptation of their model. The bulk of our contribution is modifying the codebase so that (a) the user can optionally train on a subset of the downloaded dataset instead of the entire dataset, (b) the user can train on COCO data but can now also optionally train on the SBU caption dataset, and (c) instead of taking images from the local disk, the user can select to pull images via URL using the COCO API.
Fuzzme is a web app designed to protect your privacy by flooding the internet with images that spread false information about you. By flooding the internet with enough false information, it will become impossible to distinguish fact from reality. Your name can no longer be tainted online because we will taint it according to your choosing first! At FuzzMe, we think of anonymity, not as its Greek translation “no name”, but rather “so many names that you might as well have none”.
Catfish is a CLI application that uses OpenAI’s language model to create streamlined requests for text data. Catfish also allows the user to upload any image into a specified directory and when its filename is entered in the similar images feature, it automatically generates, saves and opens a file that is a significantly altered yet similar version of the inputted image.
skate-nhv.com was a website for a newsletter that attempts to explore and evaluate different skate spots around New Haven.
Dayveloper is a web app that uses widget-like modules to create a hub for recurring Google searches like the weather while also acting as a space to build routines like a widget designed for improving one’s vocabulary.
This is a web app designed to organize and track workouts that I built with a partner for the Flatiron full-stack web development class.
A multiplayer checkers game built using ruby that is played on a command line interface.
This was another hackathon project where we wrote code that would rank the contamination level of different beaches using camera feed data from an autonomous rover.
This was a group hackathon project that used Java’s standard draw library to generate the first level of Super Mario Bros.
Tailoring Visual Object Representations to Human Requirements: A Case Study with a Recycling Robot
SleepSafe is a product designed to provide a simple solution to noise complaints in shared living spaces. Through the use of Arduinos, a digital sound sensor, bluetooth modules and led indicators, SleepSafe allows for ambient noise sensing along with manual triggers to notify friends and family of noise disturbances.
We converted an abandoned shopping cart into a motorized cart by mounting and powering 2 cim motors onto a custom welded frame. We then connected the motors to a power distribution board and electronic speed controllers powered by a 12v battery and used potentiometers to enable differential drive for steering.