This is a (work in progress) Python library that implements various algorithms and processes from discrete math. I also made a GUI to facilitate ease of user interaction. The repository also has a Jupyter notebook that demonstrates sample usage of the toolbox and how to access the documentation provided within the module.
I spent a lot of my free time in the 2019-2020 academic year working on programming robots and leading operations for the robotics team at Santa Monica College. The SMC robotics club participated in the VEX robotics competition, and I wrote a python script to parse a header file in our robot source code to generate a key bindings doc in the interest of improving QOL for the drivers and programmers (and to make a tool that could be used by the wider VEX community).
This is a (work in progress) python application that takes images of Sudoku puzzles, reads them into a program using OpenCV, and then solves them using a recursive backtracking approach.
I built (along with Ariel Young, Justin Lin, and Tiffany Chieu) a platform for doctors to request 3D printed tools that are community sourced and vetted. This project took influence from the thingiverse platform/UI and from the story about volunteers producing 3D-printed valves for life-saving coronavirus treatments.
After seeing firsthand how devastating wildfires were to California over the past few years, I built (along with Ariel Young, Justin Lin, and Tiffany Chieu) an IoT mesh network that aggregates sensor data and detects/predicts the likelihood of wildfires given various environmental parameters. We used an open source mesh network and ESP8266 microcontrollers with various sensors (temperature, humidity, pressure, etc.) to communicate with an Arduino, stored the collected data in a database, wrote a risk prediction algorithm using Python, and displayed the prediction results in a cross platform smartphone app using Flutter.
Ariel Young and I worked together to implement the RSA encryption algorithm in Rust. We built a random number generator, built extremely large numbers (1024 bit) with the generator, then used the Miller Rabin primality test to sieve these large numbers for primes to be used for the public and private keys. Implementing the algorithm was relatively straightforward, as there are many resources from which to understand the theory. We analyzed the "true randomness" of our random number generator using the Chi-squared test, and by creating a bitmap visualization of a sequence of randomly generated numbers.
This (work in progress) project aims to provide a library for visualizing electric fields in 2d and 3d using C++ and Qt. I also plan to implement parsing mathematical expressions to allow entering expressions into the GUI, allowing arbitrary user specified fields to be visualized.
Please feel free to check out my other projects on my GitHub.