Multi-Architecture-Raytrace-Xraymission-Simulator (MARXS)

MARXS (Multi-Architecture-Raytrace-Xraymission-Simulator) is a toolsuite to simulate X-ray observatories. It is primarily aimed at astronomical X-ray satellites and sounding rocket payloads, but can be used to ray-trace experiments in the laboratory as well. MARXS performs polarization Monte-Carlo ray-trace simulations from a source (astronomical or lab) through a collection of optical elements such as mirrors, baffles, and gratings to a detector.

MARXS modular structure is designed to serve two main use cases:

  • Build-your-own instrument: Instrument designers can construct any X-ray experiement from a set of building blocks such as mirrors, diffraction gratings and CCD detectors.

  • Simulate science observations: Given an instrument configuration, simulate the detector output for any set of X-ray sources in the lab or on the sky.

The documentation for MARXS is split into several parts. After intalling MARXS it first explains how to use MARXS to simulate an (astronomical) observation for an existing instrument configuration, e.g. from the examples distributed with MARX or provided by an instrument team. The following section is aimed at instrument teams and proposers.


MARXS has been used to simulate several instruments (e.g. ARCUS and Lynx), but is still under rapid develoment. We will try to mimimize API changes from now on, but will implement those as necessary (e.g. the astropy units system will be used on more places in the future to reduce unit mismatches). The Full Changelog will always contain a full list of changes between released versions.

Install MARXS

Using MARXS to simulate an observation

Define an instrument or mission with MARXS

Contribute to MARXS development

MARXS project details

Indices and tables