afterglowpy models Gamma-ray burst afterglows. It computes synchrotron radiation from an external shock and is capable of handling both structured jets and off-axis observers. The code provides fully trans-relativistic shock evolution through a constant density medium, on-the-fly integration over the equal-observer-time slices of the shock surface, and includes an approximate prescription for jet spreading. afterglowpy has been calibrated to the BoxFit code (ascl:2306.059) and produces similar light curves for top hat jets (within 50% when same parameters are used) both on- and off-axis.
Please see citation information here: https://github.com/geoffryan/afterglowpy#attribution