  The goal of the search for extraterrestrial intelligence (SETI) is the
detection of non-human technosignatures, such as technology-produced emission
in radio observations. While many have speculated about the character of such
technosignatures, radio SETI fundamentally involves searching for signals that
not only have never been detected, but also have a vast range of potential
morphologies. Given that we have not yet detected a radio SETI signal, we must
make assumptions about their form to develop search algorithms. The lack of
positive detections also makes it difficult to test these algorithms' inherent
efficacy. To address these challenges, we present Setigen, a Python-based,
open-source library for heuristic-based signal synthesis and injection for both
spectrograms (dynamic spectra) and raw voltage data. Setigen facilitates the
production of synthetic radio observations, interfaces with standard data
products used extensively by the Breakthrough Listen project (BL), and focuses
on providing a physically-motivated synthesis framework compatible with real
observational data and associated search methods. We discuss the core routines
of Setigen and present existing and future use cases in the development and
evaluation of SETI search algorithms.
