XICSRT: Photon based raytracing in Python

XICSRT is a general purpose, photon based, raytracing code intended for both optical and x-ray raytracing.

The best way to get started with XICSRT is with the examples.

XICSRT provides a simple, extensible, optical and x-ray raytracing capability in Python. Input is a single python dictionary (which can be saved to a json file), output is a python dictionary (which can be saved to a hdf5 file).

For interactive use XICSRT can run within a jupyter notebook. Simple examples for 2D and 3D plotting using the matplotlib and plotly libraries are included. A command line interface to XICSRT is also available.

XICSRT has been written with a primary goal of simplicity and ease of extensibility, rather than computational speed. That being said the code has been thoroughly vectorized and optimized, and most expensive calculations are performed through built-in numpy routines. Use across multiple processors can be achieved though the built-in multiprocessing capabilities.


Documentation of XICSRT is still in progress. Please get involved and help us improve the documentation!


XICSRT can be simply installed using pip

pip install xicsrt

Alternatively you can install from source using setuptools

python setup.py install


XICSRT is run by supplying a config dictionary to raytrace().

results = xicsrt.raytrace(config)

To learn how format the input and interpret the output, try the examples or download the XICSRT Tutorial.


An XICSRT Tutorial presentation is available that introduces basic usage and concepts.


XICSRT development is coordinated by Novimir A. Pablant. A full list of contributers can be found on the Authors page.


If you use XICSRT for work leading to a publication, please use the following citation:

N. A. Pablant, M. Bitter, P. C. Efthimion, L. Gao, K. W. Hill, B. F. Kraus, J. Kring, M. J. MacDonald, N. Ose, Y. Ping, M. B. Schneider, S. Stoupin, and Y. Yakusevitch, “Design and expected performance of a variable-radii sinusoidal spiral x-ray spectrometer for the National Ignition Facility”, Review of Scientific Instruments 92, 093904 (2021) https://doi.org/10.1063/5.0054329

A list of publications relating to XICSRT can be found at the List of Publications page.


XICSRT is open source software released under the MIT License. For the full text of the licence see the License page. Please help improve XICSRT by contributing to the codebase.

Indices and tables: