  Synthesizing controllers for large, complex, and distributed systems is a
challenging task. Numerous proposed methods exist in the literature, but it is
difficult for practitioners to apply them -- most proposed synthesis methods
lack ready-to-use software implementations, and existing proprietary components
are too rigid to extend to general systems. To address this gap, we develop
SLSpy, a framework for controller synthesis, comparison, and testing.
  SLSpy implements a highly extensible software framework which provides two
essential workflows: synthesis and simulation. The workflows are built from
five conceptual components that can be customized to implement a wide variety
of synthesis algorithms and disturbance tests. SLSpy comes pre-equipped with a
workflow for System Level Synthesis (SLS), which enables users to easily and
freely specify desired design objectives and constraints. We demonstrate the
effectiveness of SLSpy using two examples that have been described in the
literature but do not have ready-to-use implementations. We open-source SLSpy
to facilitate future controller synthesis research and practical usage.
