  Tools for computing detailed optically thick spectral line profiles out of
local thermodynamic equilibrium have always been focused on speed, due to the
large computational effort involved. With the Lightweaver framework, we have
produced a more flexible, modular toolkit for building custom tools in a
high-level language, Python, without sacrificing speed against the current
state of the art. The goal of providing a more flexible method for constructing
these complex simulations is to decrease the barrier to entry and allow more
rapid exploration of the field.
  In this paper we present an overview of the theory of optically thick NLTE
radiative transfer, the numerical methods implemented in Lightweaver including
the problems of time-dependent populations and charge-conservation, as well as
an overview of the components most users will interact with, to demonstrate
their flexibility.
