Projects

Lorentz
October 6, 2022

Visual lorentz transformations

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

Linalg
April 17, 2022

Intersecting planes in 3-dimensional space

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

Blocky
March 26, 2022

Lego blocks

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

Derivify
January 9, 2022

Hand-drawn polynomial function

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

Linear Cryptanalysis
November 10, 2021

Permutation Box

I implemented a basic cipher based off of Howard M. Heys' paper and developed a corresponding key-recovery attack with linear cryptanalysis.

My post explains the cipher and attack in more detail.

Built with: Python