Coding Projects

“Software is like entropy: It is difficult to grasp, weighs nothing, and obeys the Second Law of Thermodynamics; i.e., it always increases.”
– Norman Augustine.

Coding Projects

On this page you can get some more information about some of my coding projects and even demo them from your browser. If you're interested in playing with these demos more, or even building off of them, I encourage you to clone them directly from my GitHub. Feel free to contact me with any questions or suggestions.

Keep in mind that these are side projects intended as fun illustrations of various concepts. They are not software engineering samples and will break if you to try to break them.

About Replit

Replit is an online IDE that makes cloning these projects from my GitHub easy and intuitive. Replit does this by running the code from a virtual machine. As a result, the program is a bit slow and their embedding interface does lack some customization. If you're interested in a speedier version I encourage you to clone them directly.

From my own testing the plotting through Replit only seems to work on recent desktop versions of Google Chrome (not Incognito mode) and Firefox. You may also have better luck in some cases running the program directly from my Replit page.


Stochastic Thermodynamics in Python (STP)

A typical set sampled using STP. Stochastic Thermodynamics in Python (STP) is a Python library meant to construct random quantities and track their information-theoretic properties. These objects include continuous time rate matrices, discrete time transition matrices, and matrices representing 3-state self assembly models. STP also facilitates calculating information-theoretic quantities such as path entropies, entropy rates, the entropy production, and even a typical set on sampled path spaces.

STP is available at PyPi, documentation is available at ReadTheDocs. The code is also available directly from my GitHub.

STP was written to help me, and others, with research in information theory and thermodynamics. You can learn more about this research on its dedicated page, and more about the Green research group on information theory and stochastic thermodynamics at UMass Boston by going to Professor Green's research page.


Rearrangements

The Riemann series theorem (or Riemann rearrangement theorem) loosely states that for any conditionally convergent series, and any [extended] real number, there exists a rearrangement of the series that converges to the given real number. The proof of this beautiful theorem given in Rudin's book on analysis actually gives an algorithm for constructing the desired rearrangement. Here, I implement this algorithm and plot the progression of the partial sums of the rearranged series using a few options for conditionally convergent series.

To run the code make sure you're on a compatible browser, and that the [Console] tab is active. Press play, type your inputs into the console, and follow the instructions given in the console. Note that for real numbers larger than (more negative than) 8 (-8) the simulation can take a very long time to converge.


Interactive Quantum Circuits

Through my work with Professor Hamma on quantum information theory (which you can read more about here), I studied the effects of random quantum circuits on quantum states. One tool used to study these states is by visualizing them, and the effects that circuits have on them, as images. Interactive Quantum Circuits (IntQC) is meant to demo this.

IntQC is a simple visualizer that lets you vary parameters such as the number of qubits in the system, the circuit used on the system, the input state to the circuit, and more. IntQC is written with an older, now outdated version of my custom library: Random Quantum Circuits (RandQC). The modern version of RandQC is planned to be made public in the future.

To run the code make sure you're on a compatible browser, ensure you're on the [Output] tab at all times, and press play. This simulation takes quite a bit of time to start up, especially for the first time, on the Replit virtual machine (it has to install dependencies with each clone).

You can learn more about this research on its dedicated page, or more about the Hamma group on quantum information theory at UMass Boston by going to Professor Hamma's research page.