Chiun Lin

Hi, I am Chiun Lin!

Hello everyone. I'm Chiun Lin, a Ph.D. candidate at the School of Electrical and Computer Engineering, Cornell University.

This page is a partial compilation of the coding projects that I took on during my Masters and Ph.D. study as well as during my free time. For my academic site, please visit here

GW2Buildcraft - Guild Wars 2 Build Calculator (2012 - 2013)

I'm an avid gamer and around 2012 I started playing the MMORPG, Guild Wars 2.

Pretty soon I noticed the game lacked an end-game PvE build calculator and decided to build one during my free time while learning JavaScript from scratch.

The build calculator caters to the min-maxing players who wish to optimize their end-game builds. The game, though, lacks an API and does not have sufficient documentation explaining the interactions between game mechanics and it tooks me months of painstaking experimentation to figure it all out.

Visited by more than 7,000 users a day during its peak.

Approximation Algorithms (2011 - 2014)

As teaching assistant for a senior-level systems and optimization course in 2011, I had the opportunity to design a couple of optimization and approximation algorithms as part of the coursework. Over the years during my free time I continued to build on it and now maintains a small library of approximation algorithms for NP-hard problems. Part of it for which I am the sole author are available here at Github.

Sudoku Solver (2009)

This is a Sudoku solver that I built for fun and learning before I started my Ph.D. study.

The solver's algorithm is meant to mimic human technniques instead of following well-defined algorithms such as backtracking.

The download link contains the source code, the GUI, graphical instructions and test files.

The solver should work for easy to medium difficulty puzzles but would have trouble solving the difficult puzzles since I stopped improving it once my Ph.D. study started in August 2009.

Evolving AI for Chinese Chess Program (2008)

Combining my interests for Chinese Chess and evolutionary algorithms, I proposed this as my Master of Engineering design project and implemented it over the course of a year.

The primary objective of the project is to evolve the AI for a Chinese Chess program using the mechanisms of evolutionary algorithms, e.g. competition, selection, crossover, and mutation, for single population competitive coevolution and host-parasite competitive coevolution.

The project required a simulation of roughly 20,000 games of 100 moves each, which translates to a time constraint of around 1 second to search for a sufficiently good move. Standard game programming techniques such as Alpha-beta pruning, move ordering, quiescence search and null pruning are implemented to reduce search time.