Skip to content

Commit f6ca1f8

Browse files
authored
docs: update README, add screenshots with absolute links
Previously the README (correctly) used relative links for images, but this is incompatible with linking the README on RSD: https://helmholtz.software/software/rayx , see: https://helmholtz.software/documentation/users/adding-software/#markdown-url
1 parent 8278afd commit f6ca1f8

4 files changed

Lines changed: 38 additions & 6 deletions

File tree

README.md

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
# RAYX
2-
2+
[![Full Documentation](https://img.shields.io/badge/Full_Documentation-blue?logo=github)](https://hz-b.github.io/rayx/latest/)
3+
[![Getting Started](https://img.shields.io/badge/Getting_Started-blue?logo=github)](https://hz-b.github.io/rayx/latest/Introduction/03-Getting-Started/)
34
<table>
45
<tr>
56
<td>
6-
<img src="https://github.com/user-attachments/assets/d12229b0-7820-475f-8f02-6b2f253c5081" alt="RAYX Logo" width="600">
7+
<img src="https://github.com/hz-b/rayx/blob/d1c05005dba41b49a87a4acd7e3e159fd11d51b9/docs/res/rayx-logo.png" alt="RAYX Logo" width="600">
78
</td>
89
<td>
910
<strong>RAYX</strong> is a powerful, multi-component simulation platform designed to streamline the design and optimization of beamlines in synchrotron light source facilities. At the core of the platform is <i>rayx-core</i>, a high-performance library that delivers precise light tracing capabilities on both CPUs and GPUs. This core library ensures that users can achieve detailed and accurate simulations at high speeds, making it an ideal solution for complex beamline designs.
@@ -13,8 +14,6 @@
1314

1415
To simplify the usage of _rayx-core_, the platform includes rayx, a command-line interface (CLI) tool designed for fast, one-shot tracing of beamlines. It provides comprehensive data on every ray-element intersection, making it especially valuable for generating large datasets efficiently. With its focus on ease of use, _rayx_ empowers users to quickly run simulations and retrieve detailed ray-tracing results.
1516

16-
For users who prefer a more visual approach, _rayx-ui_ offers a graphical user interface (GUI) that includes a 3D viewport of the beamline, enabling interactive design and exploration. This GUI provides an intuitive interface to construct and modify beamlines, allowing users to visualize their designs in real-time. _rayx-ui_ not only enhances the design process but also allows users to iteratively optimize configurations based on immediate visual feedback.
17-
1817
## RAYX vs RAY-UI
1918

2019
RAYX offers several advanced features, including:
@@ -26,9 +25,36 @@ RAYX offers several advanced features, including:
2625

2726
## Installing or Building RAYX
2827

29-
[![testUbuntu](https://github.com/hz-b/rayx/actions/workflows/testUbuntu.yml/badge.svg?branch=master)](https://github.com/hz-b/rayx/actions/workflows/testUbuntu.yml) [![testWindows](https://github.com/hz-b/rayx/actions/workflows/testWindows.yml/badge.svg?branch=master)](https://github.com/hz-b/rayx/actions/workflows/testWindows.yml) [![testUbuntuClang](https://github.com/hz-b/rayx/actions/workflows/testUbuntuClang.yml/badge.svg?branch=master)](https://github.com/hz-b/rayx/actions/workflows/testUbuntuClang.yml) [![MDBookDeploy](https://github.com/hz-b/rayx/actions/workflows/mdBookDeploy.yml/badge.svg)](https://github.com/hz-b/rayx/actions/workflows/mdBookDeploy.yml)
28+
[![testUbuntu](https://github.com/hz-b/rayx/actions/workflows/testUbuntu.yml/badge.svg?branch=master)](https://github.com/hz-b/rayx/actions/workflows/testUbuntu.yml) [![testWindows](https://github.com/hz-b/rayx/actions/workflows/testWindows.yml/badge.svg?branch=master)](https://github.com/hz-b/rayx/actions/workflows/testWindows.yml) [![testUbuntuClang](https://github.com/hz-b/rayx/actions/workflows/testUbuntuClang.yml/badge.svg?branch=master)](https://github.com/hz-b/rayx/actions/workflows/testUbuntuClang.yml) [![MKDocsDeploy](https://github.com/hz-b/rayx/actions/workflows/mkdocsDeploy.yml/badge.svg)](https://github.com/hz-b/rayx/actions/workflows/mkdocsDeploy.yml)
29+
30+
31+
For additional information, please visit our [Wiki](https://hz-b.github.io/rayx/) and read our latest [paper](https://pubs.aip.org/aip/rsi/article/96/6/061302/3348292/RAYX-An-optics-simulation-software-for-synchrotron), that introduces RAYX to the scientific community. We are committed to delivering stable releases, which can be found [here](https://github.com/hz-b/rayx/releases). Please note that the `master` branch and other branches might be unstable, and building RAYX from the source could lead to unstable software. We recommend this only for developers and experienced users. If you experience issues with our distributed binaries or API, do not hesitate to [open an issue](https://github.com/hz-b/rayx/issues/new/choose) or contact us directly at [rayx-support@helmholtz-berlin.de](mailto:rayx-support@helmholtz-berlin.de). We are keen to provide assistance and develop features as the need arises.
32+
33+
## Built with RAYX
34+
35+
### RAYX Python Bindings
36+
[![Repository](https://img.shields.io/badge/Repository-blue?logo=github)](https://github.com/hz-b/rayx-python)
37+
38+
<img src="https://github.com/hz-b/rayx/blob/d1c05005dba41b49a87a4acd7e3e159fd11d51b9/docs/res/readme/python-bindings.png" alt="RAYX-Python Bindings">
39+
40+
To simplify the integration of RAYX into Python-based workflows, we provide Python bindings that allow direct simulation results. The figure above illustrates the simulated output at each element of a beamline using the *RAYX Python Bindings* and *Matplotlib*.
41+
42+
To add RAYX to your Python project simply install the package by typing: ```pip install rayx```
3043

31-
For additional information, please visit our [Wiki](https://hz-b.github.io/rayx/) and read our latest [paper](https://pubs.aip.org/aip/rsi/article/96/6/061302/3348292/RAYX-An-optics-simulation-software-for-synchrotron), that introduces RAYX to the scientific community. We are committed to delivering stable releases, which can be found [here](https://github.com/hz-b/rayx/releases). Please note that the `master` branch and other branches might be unstable, and building RAYX from the source could lead to unstable software. We recommend this only for developers and experienced users. If you experience issues with our distributed binaries or API, do not hesitate to [open an issue](https://github.com/hz-b/rayx/issues/new/choose). We are keen to provide assistance and develop features as the need arises.
44+
### RAYX-WebApp
45+
46+
[![Repository](https://img.shields.io/badge/Repository-blue?logo=github)](https://github.com/hz-b/rayx-webapp)
47+
48+
<img src="https://github.com/hz-b/rayx/blob/d1c05005dba41b49a87a4acd7e3e159fd11d51b9/docs/res/readme/rayx-webapp.gif" alt="RAYX WebApp">
49+
50+
A lightweight Flask-based web application for visualizing <a href="https://github.com/hz-b/rayx">RAYX beamline simulations</a>.
51+
The web app allows users to upload an `.rml` file, trace the beamline using the *RAYX Python bindings*, and interactively inspect the resulting ray distributions as 2D histograms with per-element breakdowns.
52+
53+
### RAYX-UI
54+
55+
<img src="https://github.com/hz-b/rayx/blob/d1c05005dba41b49a87a4acd7e3e159fd11d51b9/docs/res/readme/rayx-ui.jpg" alt="RAYX-UI Interface">
56+
57+
For users who prefer a more visual approach, _rayx-ui_ offers a graphical user interface (GUI) that includes a 3D viewport of the beamline, enabling interactive design and exploration. This GUI provides an intuitive interface to construct and modify beamlines, allowing users to visualize their designs in real-time. _rayx-ui_ not only enhances the design process but also allows users to iteratively optimize configurations based on immediate visual feedback.
3258

3359
## Relevant Publications
3460

@@ -42,3 +68,9 @@ DOI: [10.1063/5.0253857](https://doi.org/10.1063/5.0253857)
4268
> We present RAYX, an advanced optics simulation software for synchrotron applications and the successor to RAY/RAY-UI \[Schäfers, in *Modern Developments in X-Ray and Neutron Optics*, Springer, 2008]. RAYX offers a modern, versatile platform designed to accelerate beamline design, optimization, and data analysis, including machine learning workflows. It supports accurate and efficient simulations across a wide spectral range and optical elements, tailored for current and next-generation synchrotron facilities.
4369
4470
This publication provides an overview of the software's architecture and capabilities, including GPU acceleration, Python bindings, and GUI support.
71+
72+
### Publications using RAYX
73+
74+
* <a href="https://doi.org/10.1107/S1600577524003850">Automated spectrometer alignment via machine learning</a>
75+
76+
* <a href="http://doi.org/10.1088/1742-6596/3010/1/012131">Inverse Surrogate Model of a Soft X-Ray Spectrometer using Domain Adaptation</a>
326 KB
Loading

docs/res/readme/rayx-ui.jpg

141 KB
Loading

docs/res/readme/rayx-webapp.gif

1.97 MB
Loading

0 commit comments

Comments
 (0)