We have developed the numerical software package $chinook$, designed for the simulation of photoemission matrix elements. This quantity encodes a depth of information regarding the orbital structure of the underlying wavefunctions from which photoemission occurs. Extraction of this information is often nontrivial, owing to the influence of the experimental geometry and photoelectron interference, precluding straightforward solutions. The $chinook$ code has been designed to simulate and predict the ARPES intensity measured for arbitrary experimental configuration, including photon-energy, polarization and spin-projection, as well as consideration of both surface-projected slab and bulk models. This framework then facilitates an efficient interpretation of the photoemission experiment, allowing for a deeper understanding of the electronic structure in addition to the design of new experiments which leverage the matrix element effects towards the objective of selective photoemission from states of particular interest.