Projects

(updated Feb 2021)

Extra Curricular

Robotic hand imitation

I used mediapipe, palm detector, finger detectors, some fancy linear algebra, and the robotics simulator Drake to build a robot hand that follow my hand. There is some weirdness in detecting my middle finger (I think it has to do with the fact that there are only 3 fingers on the Allegro hand). Anyway, this was a fun project that I can use for data collection down the line. Enjoy! Watch the video here.

Palindrome Colors Video Game

I have ok experience in web dev, but have never done much video game work. I worked with a new game engine and made a fun little web based game. I even got to use Depth First Search, which counts for my algorithm practice for the month! I enjoyed working within the constraints and being creative. Now I have a personal little zen game to enjoy.

Search engine for itch.io racial justice bundle

There was a huge bundle of games for a small fee to raise money for various racial justice organizations. I bought the bundle, but there was no way to really search or see what was there. I wanted to contribute a little bit more than just cash. So I made a really simple linear search engine with all the games listed. Most of the work was parsing and collecting the data from disperate sources. Then I wrote a little bit of Javascript and BOOM. There you are. It's tiny, but a rewarding way to give back to the community.

WebGL Shader

I have been exploring the amazing (and intimidating) world of graphics recently. I implemented this shader using WebGL. My code is running ... on the GPU! This was a big step for me and I found the process extremely enjoyable

Autonomous Car

In addition to the computer vision (below) we made the car follow at a certain distance using control theory and the computer vision distance finding algorithm. It was built on a Raspberry Pi in Python. Watch the video here.

Computer Vision, Depth

We worked to build a small RC car that could be used as a learning platform for control theory university students. As part of that, I developed and algorithm using heaps, computer vision, and statistics to get distance from a cheap video camera and some electrical tape. Watch the video here.

Multi Person Non Contact Heart Rate Tracking

Here is a novel method we developed for our computer vision course that uses EVM, MSVCG, and Facial Detection to get real time heart rate data from a web camera. It is robust to motion, and accurate within ~6 BPM

Computer Vision, Hand Tracking

Hand tracking application that changes the system volume based on the vertical position of the hand. Built using deep learning and cv2

Computer Vision, Pong video link 1
Computer Vision, Pong video link 2

Custom game of pong that you can control with your hands. Built using deep learning and cv2. This won 2nd place at the 2019 BYU ACM Hackathon. It is interesting how slow the ball goes at times because my poor computer is trying to run inteference on the hands and render the video all at once.

Natural Language Processing, Legal Search

Proof of concept for larger product that takes in a legal query and outputs a law practice area. Built using word embeddings and random forests.

Hackathon 2017

Our team again won 1st place at the annual BYU ACM Hackathon. We built a system that used screen shots of the browser, taken at 60 FPS to play the legendary chrome dino game perfectly. We used a combination of image recognition, and deterministic decision rules to solve the game which allowed our agent to play perfectly.

If you really want to see our hacked (not production standard) code, you can go to my github or view the powerpoint here.

Hackathon 2016

Our project won 1st place at the annual BYU ACM Hackathon. We used polynomial interpolation to graph user input and return the math equation for the words you entered. Follow the link above to try it out for yourself. It is written in Python and uses the Django framework to render the data.

Example of my Data Science ability

Here I performed an analysis of the relationship between market health and US retirement activity. This projected involed web scraping, data cleaning, feature engineering, and basic data analysis along with several insightful visualizations. I believe it highlights my abilities as a data scientist.

Control Theory

Use LQR while solving the algebraic ricotta equation to balance a pendulum at an arbitrary starting position. This is an example of optimal control. What is most interesting is that this problem could be solved much easier with modern RL techniques. But it is still possible and interesting to do with traditional control theory.

Machine Learning

My primary field of interest is Machine Learning. I love using the computer to find patterns and insights in data. This link takes you to my github page where I have played around with several methods on some datasets. This experience is mostly a comparison of common machine learning methods with insight into which ones work well on different types of data.

Video game machine learning: Machine Learning Project

In depth analysis using machine learning and clustering methods of player skill level in the popular League of Legends game. In this project I use machine learning techniques to answer the question "as player skill increases, are we better able to determine win percentage using in game actions." The answer is NO. We actually get worse at predicting skill. This is a fascinating discovery discussed in the paper.

Thompson Sampling

Traditional wisdom says that A/B testing is the best (sometimes the only) way to optimize web pages. However, Thompson Sampling uses probability to ensure that you get faster results (learn which page is better more quickly) and lose less revenue during the testing process. I made a small example that uses Thompson Sampling to optimize between two simple pages. click here to see the code behind the scenes.

Natural Language Processing Visualization

This is primarily a data visualization project. I used NLTK to perform a sentiment analysis of the top 100 billboard songs of the past 50 years to see if music is getting more negative or positive. It was interesting to reflect on the results. Follow the link above to see my full analysis.

Data Visualization

This is a D3.js project where I collected, cleaned, and visualized letter relations in the english language from the constitution. The width of the connections between letters (and the number of letters they're connected to) is a representation of the strength of the connection.

3D graphics

Fun little side project using perlin noise to procedurally generate "terrain" and simulate fly over mechanics. Built in Processing.

Algorithms and Data Structures

I enjoy using code to solve problems, here are a few examples of projects I have done that either solved a problem, or could be used as a tool in problem solving.

Mathematical Diet

I love working with math also, so I decided to combine math and fitness to make a weight gain plan for myself. I have always struggled a bit when it comes to weight, and so I modeled my body type, activity level, etc and made a caloric intake eating plan for myself.

I then exported the data to a csv, and pulled it in to by Google Calendar to have 'weigh ins' every 10 days to track my progress.

Code for the modeling portion can be found on my github

Here we have a project where I worked with images to build a facial recognition system. It is fairly accurate, but the method is quite simple, and doesn't always generalize well. It was a great learning experience. This project uses eigenfaces and comparitive analysis in a Facial Recognition system.

Research

BYU CS Department
I am currently working on a machine learning project with a member of the Computer Science department, we are researching low cost MRI configurations and applying generative machine learning to improve relatively poor quality imaging, thus allowing for widespread medical imaging.

I also designed and constructed a CNN with custom loss function to removed background noise (e.g., restaurant) from conversational audio. This has application in audio assistance technologies such as hearing aids.

My research also includes learning dynamics of neural networks

BYU Math Department
We worked to discover proper boundary condition equations to more accurately model pressure waves using numerical methods, resulting in a method of approximation that was 3x faster than previous methods. This project was mathematically rigorous, and required a great deal of effort. It was very successful, and we were able to present our findings at the BYU spring research conference.

Research Presentation

Carnegie Mellon University - IT Lab Fellowship
I excelled in Data Science course work earning top marks. I worked with TechBridgeWorld to analyze data and develop custom web games to help refugees learn English. I also presented secondary research to peers and mentors.

CMU Research Presentation

Entrepreneurial

Throughout my college career, I have been a member of several tech start-ups. While none of them got off the ground, I learned extremely valuable lessons and gained some great skills and perspective that have served me well, and will continue to do so.

Legal Leaf
As part of the global legal hackathon, we made Legal Leaf. A chrome extension that uses NLP to summarize terms and conditions for you in the browser. Visit http://leaf.legal to learn more.

T-shirt Gallery
I made a small t-shirt company to make a little extra money. All designs are of my own construction and are available for purchase. Visit http://tshirt-gallery.ml to see the designs and merchandise.

Exhibit Solutions
I love management, and strategy design. I designed and wrote a full business plan for a profitable business. Click here to read the document.

Vizr
This was a marketing start-up aimed to end the need for expensive marketing consultants. It was aimed to use Google trends and other expert information to help small businesses know how to market effectively.

On this project, I was the User Experience lead. I worked to make mock-ups and design the user interactions for our product

Tagz
This was a personal start up where I was making an online note-taking app without all of the extra "fluff". It had a unique "tagging" system that allowed for easy retrieval and organization of information.

Writing and Communication

Technical skills aren't the only important skills. There isn't much point in solving a problem, if you don't have the ability to convince someone you've solved their problem through written and verbal communication. Here are just a few samples of my writing.

Video game machine learning

In depth analysis using machine learning and clustering methods of player skill level in the popular League of Legends game. In this project I use machine learning techniques to answer the question "as player skill increases, are we better able to determine win percentage using in game actions." The answer is NO. We actually get worse at predicting skill. This is a fascinating discovery discussed in the paper.

Stats Final Project
Essay Contest Entry

I also enjoy public speaking. I have given numerious speeches, lessons, informational sessions, and presentations.

Globally Impactful Service

I am very passionate about helping others and doing work that has social impact. Here are two examples of volunteer work I have done.

I led a team of ~20 people that worked 300+ man hours to collect and send over 1,000 lbs of school supplies, hygiene kits, and clothes to orphans in Syria. This project was one of the first socially impactful things I worked on. It was very rewarding and taught me a lot about working with others, and gave me great leadership experience.

I worked for 2 years as a volunteer missionary in the Phillipines. I primarily spent my time teaching life skills, building basic infrastructure, serving the people through song and council, and leading other groups of missionaries in their efforts. During this time I developed a love for the Filipino people, their language, and culture.