Currently I am focused on developing general techniques for solving very large imperfect information games. Although methods involving abstraction have been successful in poker, achieving superhuman performance in larger games such as Stratego will require general learning techniques for finding approximate Nash equilibria. I'm currently studying the connections between multiagent reinforcement learning and evolutionary game theory and have developed a new technique that can asymptotically converge to an approximate Nash equilibrium. I have also developed a novel ranking algorithm that is Condorcet, clone-proof, and always ranks Nash first. Preliminary experiments are very promising, and my end goal is to create an agent that can play Stratego at a superhuman level.
Along with my research partners, I developed an online multi-agent reinforcement learning environment framework, ColosseumRL.
This framework provides online matchmaking services to allow developers to train and evaluate their agents against other's agents to foster robust behavior. We hope that this framework can help facilitate effective population-based approaches to training deep RL agents in more-than-two-player free-for-all games, and that agents can learn collaborative behavior to team up against common threats and goals.
Currently, ColosseumRL supports the Blokus board game and the Tron light-cycle game, and we will be holding a large scale competition to train agents on these games in fall 2019 at UC Irvine.
For my master’s thesis in deep reinforcement learning, I used curiosity-driven exploration with a multi-criteria variant of hindsight experience replay to allow an agent to learn to stack blocks in arbitrary towers while given extremely sparse rewards.
Curiosity-driven exploration was facilitated by training a dynamics model on environment state transitions visited by the agent and then treating this model’s error on newly visited transitions as a reward, encouraging our RL learner to visit new, never-before-seen trajectories.
At Novacoast, Inc. I helped develop a full-stack PKI management system with multiple microservices to enable key management and distribution to untrusted environments with secure and fault tolerant transfer and storage. The frontend was developed with Ruby on Rails, and backend applications were done in Java with MongoDB and PostgreSQL. We managed our microservices managed with Docker.
As a research assistant at UC Santa Barbara's Four Eyes's Lab, I used a server-based object-recognition convolutional neural network to provide real-time image annotations for the Microsoft HoloLen's augmented reality view. 2D annotations are projected onto the 3D environment to sit by their real-world associated objects. 2D to 3D annotation projection is done using the HoloLen's spacial map and raycasting to determine the exact real-world location of pixels on the HoloLen's webcam.
The video below was made by filming directly through the HoloLens as the webcam stream was unavailable while also using the camera for the app.
As part of my undergraduate Advanced Networking class, I created a malicious HTTP/HTTPS proxy that uses dynamic SSL certificate forging to decrypt, read, and modify encrypted HTTP/HTTPS communications. This allows an attacker to snoop on any communications by users that trust the proxy's CA certificate as well as modify the content of HTTPS web pages that they visit without raising red flags.
As part of my undergraduate Advanced Networking class, I implemented a simulated MultiPath TCP Client to quickly upload files across multiple varied and lossy simultaneous connections to a server.
Developed with undergraduate student Brain Sandler, Buzmo is a social web app created for a class SQL database design project. Using Oracle Database, Java for our RESTful server, and React js for our frontend, Buzmo allows users to send messages, form and manage chatgroups, post to public and private "MyCircle" walls, as well as search users and posts using a large variety of parameters.
This website is regularly updated and revised.
As part of a small class group project, I developed Meeting Mate for Android. Syncing events with your device's Google calendars, Meeting Mate helps locate and schedule events during free spots in the various Google calendars that you've created and subscribed to. Press the "+" floating action button to look for free slots, and if you only care about certain calendars, select which ones you want Meeting Mate to show and schedule between in the navigation drawer.
Superfast is an online multiplayer platformer game inspired by the popular game, SpeedRunners, created as a quarter-long class project. With the help of my partners, I developed Superfast with Unreal Engine 4 and used the Steamworks platform to help handle match finding. Players race around a circular track as the shared camera focuses on whoever is in the lead. Anyone who falls out of the camera's view is eliminated, and the last man standing wins the round.
The IOS App, WeatherLazy, was developed as an initial foray into Model-View-Controller design principles. WeatherLazy keeps track of the weather in the background and gives you weather notifications either everyday or only when it's likely to rain or storm, so you can be lazy about tracking the weather. Just specify the minimum percent chance of rain and time for which you want to be notified.
Written and directed by Sophia Vaccaro, I recorded and mixed this adorable animated film's musical soundtrack written by original composer Camden Boyle. This film was unfortunately never realised due to time constraints with the animators.
Written by Keenan McGuckin and Johnny Rafter, I had the privilege to record and mix this award wining silent short film's soundtrack with composer Camden Boyle.