AI Projects (2023 - 2024)


Personal Website V2 + Blog 2024

Revamping the personal website, and finally creating a blog. Learned Eleventy rather than attempting to create my own SSG or working in pure HTML. Also looked into other options, like CMSs, especially for the blog. Link.

Adding Information to Large Language Models 2023

Trained LLMs to learn new information using 3 different techniques (pre-training, fine-tuning, kNNs) and compared their efficacy. For pre-training and fine-tuning, we also compared with and without LoRAs. We used GPT2 as the base model, T/F as its downstream task, FEVER as the base dataset (plus what it was pre-trained on), and 3 custom GPT-generated datasets (T/F questions on recent movies) to test adding data into the model. Project for CMPT 419 (2023 Summer) at SFU. Poster.

AI Explorations 2023
  • AI Livestreaming: Using the OpenAI API to generate scripts, emulating those procedural clip videos that algorithms recommend. Instead of recommending, why not generate?

  • Stable Diffusion Dreambooth: Trained SD on my face.

  • AI Tests: Reviewing material I learned in my Bachelors and beyond. Perceptrons, MLPs, RNNs, LSTMs, GRUs, seq2seq, enc-dec, attention, embeddings, ELMo, transformers, BERT, GPT, CNNs, MDPs, DQN, PPO, etc.

  • Transformer Study: Implemented transformers according to the Attention Is All You Need paper using PyTorch. GitHub.

Casual Projects (2022)


Personality Research 2022

I had a question about personality that I wanted answered, so I found a dataset online and looked into it.

Generative Art 2022

Learned Processing and recreated a few peices. Created the Mandelbrot set with shaders before halting the project. Video.

Resume Projects, Part 2 (2020 - 2021)


After graduating university, I still had a few areas I wanted to try out: Graphics, Robotics, and Embedded Systems. Someday I might get around to those last two.

"Ray Tracing in One Weekend" in One Engine | Realtime C++ Vulkan Ray Tracing Engine 2021

After learning some OpenGL, I wanted to try Vulkan. I created the entire graphics pipeline, but decided to use compute shaders instead. Based on the "Ray Tracing in One Weekend" series. Video.

OpenGL Projects 2021

Learned OpenGL basics and did some projects to stress test it: Cubes, FallingSand, First3DGameEngine, etc. Also learned LWJGL.

Resume Projects 2021

I wanted to improve my Big Data/Machine Learning and Web Development resume projects. For ML, I wanted a project that wasn't from a university course. For WebDev, I wanted a project using a modern framework.

  • Modern Frameworks: Learned React, Next.js, and WebSockets. No new project.

  • Rating Predictions: Using neural networks to predict how much a user would like a movie. Didn't get too far.

Personal Website V1 2020

Made as I was exiting university and entering the job market. Would be updated in 2022.

University Projects (2020)


Bitcoin Lite | Blockchain Protocol & Simulator 2020

A blockchain networking protocol based on Bitcoin's original whitepaper with networking, proof of work, longest chain, and mining functions. For CMPT 471 (2020 Fall) at SFU. GitHub.

Spaced Repetition Website 2020

After learning about spaced repetition, decided to build a quick website to help me study more efficiently.

Quantum Program Interpreter 2020

Takes in a user's program written in our custom language, then executes it. Our project simulates quantum programs - it uses qubits instead of bits and quantum gates instead of the usual binary gates. I was tempted to rewrite it after the group project was over, but never got around to it. Project for CMPT 409 (2020 Summer) at SFU. GitHub.

Guessing Game 2020

A multiplayer game where you and other players compete to guess what function is running on the server by sending it inputs and observing the outputs. Surprisingly difficult, yet fun. Project for CMPT 383 (2020 Summer) at SFU. GitHub.

Hotel Analysis | Data Science and Machine Learning 2020

Solid Big Data/Machine Learning project. Trained a model to predict a hotel's quality just from its location. I got to use Spark & Hadoop on SFU's compute cluster. Project for CMPT353 (2020 Summer) at SFU. GitHub.

Small Godot Projects 2020 - 2023

Wanting to develop in a game engine, I messed around with Unity, Unreal, and Godot - and decided on Godot. Like LOVE2D, I would mess around with various ideas while learning - though I wouldn't create a "capstone" project. My time with Godot was a lot more sporadic to previous projects and included more 3D modelling. My time with the engine would continue to 2023.

  • 2020: 2dtest

  • 2021: 2DGameSpeedrun, 2DNavigationDemo, TopDownController, UIGame, WarpsTest, WarpsTest2, WebsocketsTest

  • 2022: BlenderWorkflow, DynamicSpatialNode, PortalTest, PuzzleActionGame (Video), SceneStitching

  • 2023: FPSPlayerController (Video), SectionManager, VectorMatch

PostgreSQL-Project 2020

Implemented some complex SQL queries for my final database course project. Project for CMPT 354 (2020 Winter) at SFU. GitHub.

Resume Projects (2019 - 2020)


Asteroid Eater | 2D Video Game 2020

The player controls a spaceship and eats asteroids to grow. Asteroids are eaten by slicing parts off. Video. A bookend to my LOVE2D projects, made to be a cohesive & representative project on my resume. One day I may return to the ideas I had.

tree-chan | Social Media Website 2019 - 2020

A social media website organized according to the "tree" data structure. Live demo. Video. I wanted to make a site more "my own", plus I enjoyed making tchan.

TV Tropes Web Scraping Project 2019

Created a BFS algo to crawl TV Tropes and extract a graph of all its pages. Took 9 hours to run. With the data, I visualized it and ran some analysis - finding that there are 5 main groups all tropes fall into. Though I'm not to sure about the validity of the results.

Video Game Development (2019)


portal_game, laser_game, puzzle_game 2019 - 2020

Multiple attempts to create a game, but mostly playing around with mechanics. The main mechanics I created include lasers that cut objects, portals to warp objects & the player, and a warp-compatible rope that would be used in many planned puzzles. Out of all my projects, this is the one I spent the most time on.

  • The warp and rope portions of the project are too rough to show. Here are videos of the lasers and air resistance.

  • On the side, I made a visualization of that famous portal puzzle. Video.

space_game 2019

2D top-down game with space-ship building mechanics. Scrapped because movement on ships didn't feel right - I tried both artificial gravity in a side-scrolling perspective and top-down walking. I did not want to fake the gravity. Video.

  • Also investigated the available joints in Box2D (Video)

Web and App Development (2018 - 2019)


itemRanker | Android Application 2019

App where users rank items and create tier lists. Features a Versus Mode where users sort items with comparisons. Google Play Store page. Screenshot.

Sudoku Vocabulary App 2019

A Sudoku app whose main purpose was to teach us development in agile teams on projects with changing specifications. Project for CMPT 276 (2019 Winter) at SFU. GitHub.

city_game 2018

Tiny Tower inspired city-builder game in LÖVE2D. I didn't get very far, but did learn about mobile game development and procedural generation. Here are some islands it can generate: simple islands, complex islands.

tchan 2018

Social media site based on 4chan. Video.

Early Projects (2015 - 2017)


LÖVE2D Programs 2017

Learning about methods needed in a more graphical setting with programs like atan2_visualized, menu, monotone_chain_convex_hull_game, path_finding, rain_shader, walk, etc.

  • bg_map: Tiled screenshots of Google Maps for a player to walk on.

  • consyst: An overly complex conversation system.

  • quickhull_game: Finds the convex hull of a set of points.

  • line_of_sight: To prevent players from looking behind walls in a top-down view. Algorithm explainer.

Evasion 2017

A game in the command line using ASCII graphics. You control a player on a grid of randomly generated coins and enemies. Enemies chase you. Grab as many coins as you can. Turn-based.

Websites 2017

Learning HTML

  • colorChangeSite & ticTacToe: To learn CSS and JS

  • resumeSite: AKA Personal Website V0

  • simpleChat & ticTacToeOnline: To learn client-server interactions using express/socket.io

  • youwin8times: An absurd puzzle game. To win, you need to figure out what each button does. Impossible. Live Demo.

Python Scripts 2015

Learning the basics with simple scripts like: allMathFunctions, alphabeticalOrder, autoCollatzConjecture, coinFlip, CollatzConjecture, countLOOP, dice, Disemvowelr, findingAreas, GuessTheNumber, move, MultiplicationTable, palindrome, password, PigLatin, PrimeNumberFinder, rovarspraket, side2side, TreeGen, wheel, etc.

  • My Text Adventure Game: My first attempt at a "large" project. User would type commands like Look around and Use key.