June 2021

The Game of Influence


A game inspired by Go, but updated for the modern world. Each tile is influenced by its neighbor, slowly converting to the neighbor's color. The more neighbors of the same color, the faster the conversion! Created using Phase, a HTML5 game framework.

June 2020

Battlegrounds Stats


Building on my plugin for Hearthstone Battlegrounds, I created a dashboard to automatically track match history and calculate statistics from past games.

January 2020

Hearthstone Battlegrounds Match Tracker


I created a plugin for Hearthstone Deck Tracker to record the data (e.g. hero, finishing position, MMR, ending minions) from each Battlegrounds match. The match data can also be automatically uploaded to a Google spreadsheet.

October 2019

HDB Loan Calculator


When financing a new HDB, you can choose between a HDB loan or a bank loan. Find out which is better for you in the long-term.

September 2019

ETF Comparisons


Which ETF should you invest in? See the annualised returns of popular ETFs after accounting for dividends & splits.

August 2019

SRS Calculator


Contributing to an SRS account means missing out on returns from higher-growth investments elsewhere. Is the opportunity cost worth it? Use this calculator to find out.

November 2018

Neural Network Playground


Building upon an existing neural network visualisation, I added additional features such as being able to add, adjust, and remove links between neurons, and being able to control where neural layers are added or removed. This gives the user additional flexibility in sculpting the neural network, and helps to further build intuition.

March 2014

Webcam Gaze Tracking


My final project for the CS231A computer vision class. It's still a work in progress - there are quite a few other features (like face orientation and position of head) that I'd like to add that would probably improve the accuracy.

December 2013

Raytraced Water Pouring


This raytraced image was done in preparation for the final assignment of CS 148. The water was created in Blender, and rendering took 3 hours. I'm quite proud of it!

October 2013

OpenGL Image Rendering


I created this image render for the CS 148 class at Stanford. It's my first go at OpenGL. Most of the modeling and positioning work was done in Blender.

October 2013

Stanford Course Scheduler


Inspired by Schedulizer and the lack of a similar website for Stanford, I created a course scheduler that takes into account unit limits, time conflicts, and quarter availability. Hopefully fellow students will find this useful.

August 2013

Robot Rope Untangling


I worked with professor Ashutosh Saxena in his personal robotics lab to develop a new rope structure inference and manipulation process for the PR2 using a Kinect sensor. Our paper was published in the IROS 2013 conference.

November 2012

Friend-or-Foe Identification


A friend-or-foe identification system using a laser beam as a directional interrogating signal and a radio module as the omnidirectional responding signal. It was the final project for our ECE 4760 course, and was featured on hackaday as well.

May 2012

Interactive LED Panel


The LED panel lights up as you move your hand over it, creating an intriguing light display. We spent many late nights working on this final project for ECE 3140.

December 2011

Dancing Android Toy


I programmed an ATTiny85 microcontroller, and hooked it up to a few servos and a speaker to create this wonderful little guy! The Instructables steps were very useful in getting this up and running.