\chapter{Introduction}

\section{Coherent Multidimensional Spectroscopy}

% Unraveling quantum pathways using optical 3D Fourier-transform spectroscopy doi:10.1038/ncomms2405

\Gls{CMDS}, \gls{coherent multidimensional spectroscopy}

\section{The CMDS Instrument}

From an instrumental perspective, MR-CMDS is a problem of calibration and coordination.  %
Within the Wright Group, each of our two main instruments are composed of roughly ten actively
moving component hardwares. %
Many of these components are purchased directly from vendors such as SpectraPhysics, National
Instruments, Horiba, Thorlabs, and Newport.  %
Others are created or heavily modified by graduate students.  %
The Wright Group has always maintained custom acquisition software packages which control the
complex, many-stepped dance that these components must perform to acquire MR-CMDS spectra.  %

\section{Scientific Software}

When I joined the Wright Group, I saw that acquisition software was a real barrier to experimental
progress and flexibility.  %
Graduate students had ideas for instrumental enhancements that were infeasible because of the
challenge of incorporating the new components into the existing software ecosystem.  %
At the same time, students were spending much of their time in lab repeatedly calibrating optical
parametric amplifiers by hand, a process that sometimes took days.  %
I chose to spend a significant portion of my graduate career focusing on solving these problems
through software development.  %
At first, I focused on improving the existing LabVIEW code.  %
Eventually, I developed a vision for a deeply modular acquisition software that could not be
practically created with LabVIEW.  %
Using Python and Qt, I created a brand new acquisition software PyCMDS: built from the ground up to
fundamentally solve historical challenges in the Group.  %
PyCMDS offers a modular hardware model that can ``re-configure'' itself to flexibly control a
variety of component hardware configurations.  %
This has enabled graduate students to add and remove hardware whenever necessary, without worrying
about a heavy additional programming burden.  %
PyCMDS is now used to drive both MR-CMDS instruments in the Group, allowing for easy sharing of
component hardware and lessening the total amount of software that the Group needs to maintain.  %
Besides being more flexible, PyCMDS solves a number of other problems.  %
It offers fully automated strategies for calibrating component hardwares, making calibration less
arduous and more reproducible.  %
It offers more fine-grained control of data acquisition and timing, enabling more complex
algorithms to quickly acquire artifact-free results.  %
In conjunction with other algorithmic and hardware improvements that I have made, PyCMDS has
decreased acquisition times by up to two orders of magnitude.  %
A companion software, WrightTools (which I also created), solves some of the processing and
representation challenges of multidimensional data.  %