top of page

Catnip - Meow-nage Your Personal Finance

  • A multi-platform finance app to raise a virtual kitty while cultivating a good finance habit at the same time.

  • Still under development

    • React Native & Redux​

    • Realm as local database, authentication and cloud sync

Playgrounds: Theme Park Experience With Google Assistant


Working with Google’s Experience Studio team, Project Playgrounds consists of six cross-disciplinary team members tasked with designing Google Assistant driven experiences for Google Experience Centers.


In this experience, guests could have a conversation with a smart tablet which would recommend you a drink based on you answers. We created a custom table for this project which would change color based on Google Assistant's feelings and emotions. I am very grateful to Google for guiding us through this project and allowing us to use some proprietary technologies.

AliceAdventure 2D Adventure Game Engine

Alice’s Adventure is a 2D adventure game making tool for teaching game design and introducing programming concepts.

Website & Download:

Play Highlight Projects!

      Senior Thesis: Multi-Agent Simulation of the Battle of Ankara,1402

This is the simulation I wrote for my CS thesis in Union College. It will generate 4312 (changeable) files which contain data for battlegraphic.exe to demonstrate battle procedure under different settings.

The historical assumption, where Ottoman(Rectangle) stood defensive on the hills, and Tamerlane(Circle) took the offensive position and intended to flank Ottomans since Tamerlane had a much larger army.


Part of the Ottoman troops also deserted to the enemy's side.

The counterfactual Ottoman-Win simulation.

  • It tripled Ottoman army size, making the size only slightly smaller than Tamerlane's.  

  • No betrayal took place in Ottoman troops

  • Ottoman on the offense


Result: High rate of casualty on both sides, but Tamerlane retreated in the end.


          In 1402, at the north of the city of Ankara, Turkey, a battle between Ottoman Empire and Tamerlane Empire decided the fate of Europe and Asia. Although historians largely agree on the general battle procedure, the details are still open to dispute.

         Several factors may have contributed to the Ottoman defeat, such as the overwhelming size of Tamerlane’s army, poisoned water, the tactical formations of the military units, and betrayal by the Tartar cavalry in the Ottoman left wing.

          The approach is divided into two stages: the simulation stage, which provides data to analyze the complex interactions of autonomous agents, and the analysis stage, which uses data mining to examine the battle outcomes. The simulation is built on a finite state machine to evaluate the current situation of each agent and then choose the most appropriate action. To achieve historical accuracy, the simulation takes into account the topography of the battlefield, line-of-sight issues, period-specific combat tactics, and the armor and weapons used by the various military units at that time. The analysis stage uses WEKAs Attribute Selection Classifier to evaluate the association strength between the battle outcome and the various factors that historians consider crucial to the outcome.

bottom of page