Overview#

The Sirepo-Bluesky project interfaces two frameworks — Sirepo and Bluesky.

Sirepo is a framework providing convenient access to various physics simulation codes (such as SRW, Shadow3, etc.) via an intuitive browser-based interface.

Bluesky is a data collection and experiment orchestration framework routinely used at NSLS-II and other synchrotrons for data collection & data access, and integrates well with the scientific Python ecosystem. Core Bluesky components include the bluesky library for experiment orchestration, the ophyd library for device abstractions, and the databroker library for convenient access to the experiment data. Relationships of the libraries are shown at the Bluesky Project website.

Combining the two systems together enables researchers to perform virtual experiments using Sirepo as a “digital twin” of a real beamline or an instrument.

The scheme below shows how the libraries from the Bluesky stack communicate with other external systems (hardware and software):

_images/bluesky-ophyd-sirepo.png

The following scheme explains how an optical element in the Sirepo JSON model turns into an Ophyd Device:

_images/sirepo-json-ophyd.png

The Watchpoint optical element acts as a virtual detector and the scheme below demonstrates the code for the corresponding Ophyd class with the trigger method and the relevant actions in the Sirepo frontent UI:

_images/sirepo-ophyd-watchpoint.png

Please check the Installation instructions and the Examples sections for more details on how to get started using Sirepo-Bluesky.