Personal Projects (High School)

Since I was young, I have always been passionate about building. I would create complex systems for various problems I encountered in life. In elementary school, I started off building various Flash games such as mazes. In high school, I learned to develop Windows applications and web apps as well and made more advanced programs. Here are some of my favorite ones.
  • Cantus (github): A Python-like programming language, graphing calculator, and IDE, made with windows forms. This is named after the telepathic power in Shinsekai Yori, one of my favorite animes.
    Cantus
  • (github): During high school I was for a time responsible for lighting control backstage in the school theatre. I developed a system to visually control lights, audio, backdrop in the school theatre using DMX512 interfaces. This also features ways to communicate between multiple backstage workers.
    Entity
  • Jiggly: a online multi-player jigsaw game for language learning. I demoed this in French class and let everyone play together! (Image TODO)
  • Harmony: a music transcription tool. First place in Startup Weekend Vancouver (Image TODO)
  • OngakuBeats: a online music library and player I built as a project with some friends (Image TODO)

Personal Projects (College)

During college, I started to specialize more in 3D graphics and computer vision.
  • In my first semester, I participated in the Hog Contest, a class contest in CS61A where you create a strategy which competes against the rest of the class. I ended up winning first place using dynamic programming in addition to some self-play system I made up. Some time later, I became a TA for the class and ran the contest for the students. Bacon2, a Python C++ extension, is a system for doing so very efficiently and updating status live. Project page
  • avatar: avatar is a fast real-time system to fit smpl (human body) model to a point cloud in real time on a cpu, similar to smplify, using ceres-solver. i trained a random-forest part segmentation system to segment the human point cloud using synthetic rendered data. Github: avatar
    avatar tracking demo
  • Nivalis plotter (funcplot.com): an open-source graphing calculator written in C++, with both desktop and online (using emscripten/wasm) versions. Github: nivalis
    Nivalis
    This is in some sense the successor of the Cantus project which I made in high school.
  • watplot is a fast interactive visualization system for SETI: Breakthrough Listen radio telescope data written in C++.
  • Berkeley SETI Open Data Archive, a modern web app for the public to access SETI data.
    Breakthrough Listen Open Data Archive
  • SMPL-X ++: SMPL-X, SMPL+H, SMPL implementation in C++ with built-in mesh visualizer. Project page
    SMPL-X demo
  • Boolean Function Complexity Measures (link): an editable and interactive online Boolean function complexity measure table
  • Quaternion SRUKF is a modern C++ implementation of Square Root Unscented Kalman Filter with support for quaternion vectors.
  • Crowdy: 1st place in CS170 algorithms competition, a solver for graph partitioning problems
  • Transmitting text using sound: this was my final project in EE 126. I was able to get it to achieve a 200 bits-per-minute transmission rate with good robustness using frequeuency modulation, Reed-Solomon and Huffman coding, which was one of the best in the class.