This page is out of date! Will be updated with my recent projects soon.
Java, Arduino, C++
One-pixel camera that can capture a 300-by-300 photo in under 5 minutes. This was achieved using a lens-phototransistor module with two stepper motors to control direction. It was created by a team of four with nothing more than basic electrical components along with an Arduino MEGA2560.
The software controls the motors and sensors, undistorts the captured fisheye image, can demosaic a Bayer colour filter image, and balances colours and brightness.
Python, Pandas, Scipy, Scikit-learn, Seaborn, Jupyter
I set out to predict a Pokemon’s competitive tier based on its in-game characteristics. So, I scraped data from Smogon, Bulbapedia, and Veekun using BeautifulSoup for Python. I then cleaned and analyzed various properties about pokemon with respect to their tiers in a Jupyter Notebook. Finally, I built a regression model using Scikit-learn.
Simulates a complex dinosaur ecosystem. Over a dozen species of carnivores, herbivores, and omnivores interact in a forest-type environment. Phenomena such as natural disasters, breeding, hunting, disease, aging, and simple genetic variation are factored in. For this project, I wrote a 3D ray-casting engine from scratch.
Every time a tab is opened, this extension will predict what website the user will want to visit. Given a user’s browsing history, this chrome extension will train an artificial neural network to make these predictions based on the day and time.
Python, TensorFlow, Matplotlib, Jupyter/Colab
This kernels-only competition involved classifying insincere questions. I experimented with 1D CNNs and various types of RNNs, particularly LSTMs and GRUs. For each of these, I tried adaptive optimization technique such as RMSProp and Adam. Since there was a limited training time of 2 hours, I elected to use a custom training loop along with an efficient text preprocessing pipeline.
Created at Hack the North 2017, this web app helped users find and purchase a sofa. The app presents users with photos of sofas that they rate. Each rating will train a convolutional neural network with their preferences to suggest sofas that they may like.
Node.JS, Amazon Web Services
App receives a keyword through Facebook messenger or the Amazon Echo and finds a matching rap line based on rhyming and context. Created in a team of 5 using Node.JS, Amazon Alexa, and Heroku, this application won top developer hack and top use of Amazon Web Services out of 40 teams at StarterHacks 2017.
Python, Pandas, TensorFlow, Keras, Matplotlib, Jupyter
A quantitative measure of rating was extracted from qualitative descriptors in the data set. Two neural networks were trained on various features, including talk sentiment and themes, to predict this measure, achieving good accuracy. Created with Lawrence Pang.
Android (Java), MYO SDK, Google Location Services
Android application that allows users to discretely call for help using the MYO armband. A simple hand gesture will make your smartphone send out a distress call or text to trusted contacts.
Simulates and visualizes magnetic field interactions between two or more solenoids. Parameters include the physical and magnetic properties of the solenoids, including the length, width, thickness of coils, number of windings, and strength of the current.
Written in C#, this program simulates a 2D elastic collision between two identical stress balls. The compression of the balls is factored into the simulation. A spreadsheet is outputted with the force, acceleration, velocity, and positions of both balls with respect to a dynamic time interval.
Created at Hack the 6ix, this web app keeps track of money you owe and money owed to you.