A Python Toolkit for Gaussian State Evolution

Quantum photonics is about using exotic states of light to outperform existing optical technologies (imaging, precision sensing) or unlock entirely new capabilities (quantum computing and data teleportation). Gaussian States are a particular class of photon states with widespread importance to many of these emerging quantum photonic technologies.

Together with physicist Aharon Brodutch, I recently authored a paper describing how custom-tailored Gaussian States can be generated in a programmable way using a practical integrated photonic circuit suited for commercial mass-production.

When designing quantum photonic circuits, experiments, and technologies, the calculations involved in tracking what happens to the quantum state of light quickly become cumbersome. For this reason, I developed a Python-based toolkit for simulating Gaussian State evolution that provides an object-oriented framework, where we can simply define the building-blocks of our circuit and readily obtain the output for a given input.

Illustration of a programmable photonic circuit for Gaussian state generation, showing electrode voltages for producing the three Gaussian states depicted in the top-right (Wigner function slices). This is just one example of what you can use the Python Gaussian state toolkit to simulate!
Illustration of a programmable photonic circuit for Gaussian state generation, showing electrode voltages for producing the three Gaussian states depicted in the top-right (Wigner function slices). This is just one example of what you can use the Python Gaussian state toolkit to simulate!

If you happen to be a quantum photonics engineer or physicist (which is likely, if you’ve read this far!) you can use my toolkit to quickly and painlessly start simulating Gaussian states in any optical system of your choosing!

Some key features:

  • Easily apply squeezing, displacement, rotation, two-mode mixing, and dissipative transformations: simply specify the mode(s) and transformation parameters. Chain these into pipelines to build up larger circuits. Supports an arbitrary number of modes.
  • Obtain metrics such as Uhlmann Fidelity and squeezing parameter to compare desired versus actual system output.
  • Compute and plot Wigner functions along desired quadrature slices.

There is also plenty of room for expansion for those who wish to contribute! Visit the project page on github for the source code:

https://github.com/Ryan-Marchildon/gaussian-state-sim/

Toolkit Walkthrough:

Below I provide an IPython notebook that illustrates some of the basic toolkit functionalities and how to implement them. A quick read of this guide will familiarize you with how the toolkit can be used in your own projects.

Click to View Full Notebook

  • This IPython notebook is best viewed using Google Chrome; some images and hyperlinks may not work in Mozilla FireFox.
  • Source code is available on github here.
  • To download the tutorial notebook, save this link (.ipynb file extension). It must be executed with the toolkit library file (GaussianStateTools.py) in the same directory.