Home

  • M.S. Graduate - UC Irvine

  • RL in Partially Observable Games
  • Self-play with More than Two Opponents
  • Master's Thesis, Learning with Sparse Rewards
  • Full-Stack Web-Dev Internship
  • Undergraduate - UC Santa Barbara

  • HoloLens Object Recognition
  • HTTPS Proxy Attack
  • Simulated MPTCP Client
  • Social Media Web App
  • Personal Website
  • Android Calendar UI
  • Unreal Engine Multiplayer Game
  • IOS Weather App
  • Emily and Connor Build a Bridge
  • A Man, A Mustache

Tackling Large Imperfect Information Zero-sum Games

UC Irvine, Current

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.

Multi-agent Environments

UC Irvine, Spring - 2018

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.

Check out ColosseumRL to see it yourself!

Learning with Sparse Rewards

UC Irvine, Winter - 2018

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.

Read the paper on arXiv

Full-Stack Web-Dev Internship

Novacoast, Inc. Summer - 2017

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.

HoloLens Object Recognition

UC Santa Barbara, Spring - 2017

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.

Your browser does not support the video tag.

I used the YOLOv2 architecture on a GTX 980Ti for object recognition

HTTPS Proxy Attack

UC Santa Barbara, Winter - 2017

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.

Simulated MPTCP Client

UC Santa Barbara, Winter - 2017

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.

Social Media Web App

UC Santa Barbara, Fall - 2016

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.

Check It Out on Github

Personal Website

UC Santa Barbara, Summer - 2016

As soon as school was finished, I tried my hand at HTML, CCS, and Javascript to build this responsive portfolio website. Using the JetBrains WebStorm IDE, I handle HTTP requests with Node.js

This website is regularly updated and revised.

Android Calendar UI

UC Santa Barbara, Spring - 2016

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.

Check It Out on Github

We used Alam Kanak's Android-Week-View library for calendar visualizations

Your browser does not support the video tag.

Unreal Engine Multiplayer Game

UC Santa Barbara, Winter - 2015

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.

Check It Out on Github

IOS Weather App

UC Santa Barbara, Summer - 2015

Your browser does not support the video tag.

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.

We used the Dark Sky Forecast API to make weather queries

Check It Out on Github

Emily and Connor Build A Bridge

UC Santa Barbara, Spring - 2015

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.

A Man, A Mustache

UC Santa Barbara, Spring - 2014

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.