Projects
October 6, 2022
An interactive website for visualizing Lorentz transformations on Minkowski spacetime diagrams.
You can draw arbitrary worldlines and events, then boost to a different velocity to view the effect of the transformation.
Built with: Fabric.js, HTML/CSS
April 17, 2022
A pure Python linear algebra library.
Current features include Matrix and Vector classes with built-in default operations, as well as properties such as determinants, eigenvectors/eigenvalues, and more.
I hope to build on this and implement common functionalities similar to those in SageMath.
Built with: Python, pytest
March 26, 2022
A hands-on application for building block ciphers round by round.
Users can create custom Substitution-Permutation Networks alongside encryption and decryption with a simple UI.
I focused on Object-Oriented Design principles, including UML class diagrams, Iterator & Observer patterns, cohesion & coupling, and more.
Built with: Java, Swing, JUnit
January 9, 2022
A tool for calculating the derivative of a hand-drawn function.
Derivify employs Bézier curves and best-fit polynomials to approximate the derivative graph after parsing the image.
Built with: Flask, NumPy, Matplotlib
November 10, 2021

An interactive website for visualizing Lorentz transformations on Minkowski spacetime diagrams.
You can draw arbitrary worldlines and events, then boost to a different velocity to view the effect of the transformation.
Built with: Fabric.js, HTML/CSS

A pure Python linear algebra library.
Current features include Matrix and Vector classes with built-in default operations, as well as properties such as determinants, eigenvectors/eigenvalues, and more.
I hope to build on this and implement common functionalities similar to those in SageMath.
Built with: Python, pytest

A hands-on application for building block ciphers round by round.
Users can create custom Substitution-Permutation Networks alongside encryption and decryption with a simple UI.
I focused on Object-Oriented Design principles, including UML class diagrams, Iterator & Observer patterns, cohesion & coupling, and more.
Built with: Java, Swing, JUnit

A tool for calculating the derivative of a hand-drawn function.
Derivify employs Bézier curves and best-fit polynomials to approximate the derivative graph after parsing the image.
Built with: Flask, NumPy, Matplotlib