About This Page
This is an accurate lens optics simulation; your mouse position (tap position on mobile) determines the focal length and camera distance in the setup. Mathematically, this was the hardest simulation to write out. This was largely because there isn’t an efficient way to do projection transforms for a physical lens without some shortcuts.
Not only does this program derive the characteristics of the lens from the focal length, but it also accounts for spherical aberrations, given the attributes of a non-ideal lens. Then, the most difficult part was efficiently computing the chromatic distortions near the edges of the lens, which was done by referencing a pre-processed hue LUT I’ve simulated in Python.
Project Quick Links
Fourier Analysis of Stock Options Algorithm
--In the works--
My largest project to date, this was an endeavor to learn more about the stock & options markets that quickly developed into a larger project with advice and implementation from both academics at the UofT Faculty of Applied Econometrics and industry experts.
Using a gradient optimization algorithm coupled with Fourier signal analysis, we’ve found some pretty incredible results that will hopefully be compiled and openly available soon. The primary focus of the algorithm has been on short- to medium-term options contracts (7 - 50 days). Through randomized backtests, we are seeing an average return of 11% across all contracts.

This is a particularly good example where the program estimated the highest volatility window and bought the contract at $610 and sold it at $1,179 (accounting for spread). Realistically, this is an outlier and in aggregate we were looking at a skewed standard deviation of around 13%.
As of October 2025, the program has been deployed on live data and has done particularly well at implied volatility predictions. Stay tuned for more updates!
Quantum Computing Grover's Algorithm
--In the works--
This is a project I’ve been working on independently, running my code on IBM’s 100-qubit quantum computers. Its goal is to implement Grover’s algorithm, which has the potential to search and sort through large databases much faster than current non-quantum computers. This could be game-changing for applications like machine learning and high-performance computational modelling/simulation.
This project is still in the works, but I plan to update this page with my progress. It has been a fun experiment of applying my knowledge of quantum mechanics to practical work with the openly available IBM quantum processors.

Here you can see the circuit diagram for a basic implementation of Grover’s algorithm, which I am currently working on expanding to take full advantage of the new 100-qubit quantum processors.
General Machine Learning Engine
My biggest venture into machine learning! All the back propagation logic is handled in Python, with the matrix transforms running in a C file for optimized compute time. This was a big step for my experience in subroutines. It is a pretty basic program, but it gets at the core math and logic behind machine learning.

Here, you can see it working to find stable configurations of the Three Body Problem. If you would like to see a smaller version of it in action, check out my skills page!
Cosmic Ray Detection
At the age of 13, I built a cloud chamber for detecting cosmic ray traces. I entered the Bay Area Randall Museum Science Fair, finishing fourth overall. I made a stacked thermoelectric heat pump system to cool a small area to -54ºC. I did all of the CAD, electrical soldering, and electrical system/power design myself. I later refined it, adding a variable electromagnet to alter trace paths.

Here you can see me testing the prototype on a test bench, which I made out of Legos for its cheap and quick customizability. The full build has since been donated to the Wente Scout Reservation to educate kids on nuclear energy.
Ultra Violet Fluorescence Spectroscopy
I am working on the UofT Robotics Space Exploration team to build a suite of optical science tests. The goal is a robust, light, and cost-effective package that can detect common chemical signatures of microorganisms. The ultimate goal of this system is to showcase the challenges of detecting life on Mars, using systems with very little power, no repairs, and compact designs.

Here you can see us validating out our micro-spectrometer head on a diluted mixture of flavoproteins. Our system will be tested to the limits this August at the University Rover Challenge in Utah.
C++ Optimized Atmospheric Model
I am working on a C++ program that will simulate atmospheric physics as efficiently as possible. Much of the current block is the large datasets, which hasn't been the most flexible for this kind of work. The end goal is to have an executable program that can run live simulations of pressure, temperature, and moisture modelling based on seed parameters.
Qiskit Quantum Shor's Algorithms
This project has been more for my own learning purposes and is something that I've found genuine interest in. I set out with a goal to write my own implementation of Shor's algrotihm (using Qiskit) by deriving it myself analytically. If you are interested reach out, as I will be at QLUIST this January.
Training my own Large Language Model
This project is still a while away, but I am working to develop my current adaptive machine learning model into a tokenized LLM. Baby steps for now, but I will be posting updates here!