As the final design project of my Praxis II course, I worked with the Toronto Bonsai Society to develop Bonsense, an iOS application that helps bonsai beginners monitor the moisture levels of their plants using computer vision and IoT sensor. We hope that this can make the art of bonsai more accessible to everyone.
[Read More]Trainify
Watch your AI agent come to live!
Generate 3D environments from real world images and train reinforcement learning agents in the cloud with Trainify. Our platform, built on GCP, powered by agentic LLM, and natively integrated with core RL toolkits, simplifies the process of creating and training AI agents in 3D environments.
[Read More]NeuroSteady
Wearable tech for hand tremor stabalization in neurosurgery
In the 24-hour BMEC hackathon, we used few-shot transfer learning with CNN-LSTM to detect slight hand tremors of neurosurgeons during surgery, ensembled with a simple majority voting system with a sliding window time-frequency analysis. This triggers an intervention using a wearable device consistent of servo actuators to stabalize the hand of the surgeon during operation.
[Read More]MemoryMake
Turn single 2D photos into immersive, navigable 3D worlds
As memories pile up in our camera rolls or remain abstract ideas, we wanted to create a way to truly experience them. MemoryMake was born from the idea of transforming ordinary photos and text prompts into dynamic, navigable, and visually engaging 3D environments—so users can explore their cherished moments instead of merely scrolling past them.
Paul, Nelson, and I built Memory Make by taking the unconventional route, stepping away from common hackathon LLM apps and focusing on cutting edge computer vision research. We won the best social hacks at Queen’s University’s QHacks 2025.
[Read More]Eidos
Building a C++ Deep Learning Library from Scratch
Eidos is a project for educational purpose to build a simple deep learning library from scratch in C++. Inspired by libtorch, PyTorch’s C++ frontend, we implemented MLP, CNN, RNN using only Eigen for parallelized linear algebra. James Zheng and I started this project during my final exam month in 2024 and got me grinding it for a month alongside 6 major course finals. Install and try Eidos:
git clone https://github.com/supreme-gg-gg/Eidos
mkdir build && cd build
cmake .. && make
sudo make install
MapMatch
Finding roommates with NLP powered by AWS
What if looking for a roommate was as easy as a google search – only but more accurate? Our answer is MapMatch. Inspired by retrieval augmented generation (RAG), we integrated semantic search, mind-map navigation, with AWS cloud technologies to match roommates based on their preferences and personalities.
[Read More]Introductory RL
Assorted Collection on Deep Reinforcement Learning
Reinforcement learning (RL) is a way of training an agent to make sequences of decisions by finding the optimal action-taking policy through trial and error interactions with the environment. It is a powerful tool for solving complex problems in robotics, finance, and gaming. To broaden my knowledge in ML, I worked on a few small projects to learn fundamental deep RL algorithms such as (Double) DQN, REINFORCE, DDPG, and PPO. Please see this project if you are interested in NEAT and Pong instead.
[Read More]Pong and NEAT
Neuroevolution beats human players
NEAT, or NeuroEvolution of Augmenting Topologies, is a genetic algorithm for evolving neural networks. Hayson and I used the neat-python
library to train a neural network to play Pong as an optional course project to develop an AI that compete in Pong tournament. The agent maximizes the reward by learning to hit the ball back to the opponent.
[Read More]Checkout Hayson’s amazing blog post where he explained the theory of how NEAT works!
Pendulum Tracking
OpenCV for PHY180 Lab
Using OpenCV, I made my own script to track the motion of a pendulum in for my PHY180 (Mechanics) lab. The script detects the pendulum bob and track its motion in real-time for a directory of videos (samples taken) using cv2
. The module supports:
Generating plots for amplitude vs time, period vs time, period vs length, etc.
Performing curve fitting using
scipy
with uncertainties and residuals.Calculating quantities such as period and Q-factor.
Block ML
Drag and drop neural network builder like Scratch
Most programmers were introduced to coding through Scratch, a block-based programming language that simplifies the process of buliding games, animations, and stories. Why not make machine learning as easy as Scratch, or even better – directly with the framework that made Scratch? (IgnitionHacks)
[Read More]