This is a listing of some of my software projects. Things which are not on my list: my (nonexistent) hardware projects, my music projects, my (nonexistent) embroidery, my contact lenses, my (nonexistent) sense of self-worth.


GitHub link:

Screenshot of Tsukiyo displaying a truncated icosidodecahedron

Tsukiyo is a program that displays and rotates various polytopes in 4D. I spent about four months developing it as the focus of my International Baccalaureate Extended Essay and Math Internal Assessment, and then two more years on and off until I released v1.0.0 in February 2016. You can enter in a Schlafli symbol or Wythoff symbol, set the viewing axes and rotation axes, and rotate your polytope to your heart's content. Although it seems simple, this is my proudest project, since I personally developed all its (very simple) algorithms from scratch, without any external references!


GitHub link:

Screenshot of 2do creating notifications in awesome

2do is a simple program that schedules tasks and creates notifications. After realizing that my eyesight was seriously deteriorating due to staring at my laptop for 25 hours a day, I finally took my parents' advice and decided to take a break every half hour. Unfortunately, I didn't know how to notify myself every half hour until I wrote 2do to do that for me. Along the way, I also had 2do change my wallpaper every ten minutes, suspend my laptop when battery is low, and nab me the Fanatic badges on Stack Exchange!


GitHub link:

Screenshot of a webpage made by cvx compared to the original LaTeX

cvx is a simple LaTeX to HTML translater written in Haskell. I made it for the sole purpose of converting my resume, cv.tex, into an HTML file I could put on this website. Turns out cvx's translating capabilities aren't limited to just resumes, but cvx's translating capabilities are limited in every other way. Maybe I'll improve it after taking a course on compilers or computational linguistics.


GitHub link:

Screenshot of grd automatically writing input to a C script

grd is a simple tool to help me grade C programming labs. I was a marking TA for UBC's APSC 160 in 2015WT2 and got frustrated at having to manually compile every single lab and manually quit to move through them all, so I made grd to automatically compile every single lab and automatically move through them all. Ultimately, I spent more time making grd than I saved, and I won't use it ever again, so...


GitHub link:

Screenshot of me typing 'KBR IS THE BEST' in kbr

kbr is a simple typing tutor that teaches touch typing. I often want to use my laptop with one hand while eating an apple/sandwich/snail/ice cream cone with the other hand, but my hand gets tired after jumping across the whole keyboard for an hour (I eat very slowly). The way I taught myself the Dvorak layout was by generating all the words that only contained the letters I knew how to type, retyping them, and gradually adding in new keys. I thought I might as well turn it into an actual program, and here it is. I typed this entire page with one hand using the dvorak-l layout.


GitHub link:

Screenshot of req displaying all the APSC and CPSC courses at UBC

req is a simple program that takes in data about course prerequisites and corequisites, then turns that into a tree of some sort. Currently it's more trouble than it's worth, since most of the data has to be input manually anyway, but it does have some meditative benefits from just clicking random courses and watching the colours gently change with the wind.

Tax Avoider

GitHub link:

Screenshot of Tax Avoider with enemies, explosions, and no taxes to avoid

Tax Avoider is a game that has nothing to do with taxes and everything to do with avoiding. This was my first programming project, which I started all the way back in 2008 (!) and didn't give up until 2013, by which time I was too old to be programming stupid Flash games. And also Flash games were too old to be played by people. The game sucks I can make a better one during a Global Game Jam. :(