{"id":29355739,"url":"https://github.com/hz-b/rayx","last_synced_at":"2026-02-08T16:41:55.580Z","repository":{"id":37204791,"uuid":"488906115","full_name":"hz-b/rayx","owner":"hz-b","description":"RAYX is a simulation tool for beamlines at electron storage rings. It traces synchrotron radiation through a series of mirrors, gratings and more and provides the user with helpful insights, how a given beamline performs. ","archived":false,"fork":false,"pushed_at":"2025-07-04T09:56:04.000Z","size":83216,"stargazers_count":25,"open_issues_count":42,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-04T10:37:36.683Z","etag":null,"topics":["3d-graphics","gpu","particle-tracing","simulation","vulkan"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hz-b.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-05-05T09:20:45.000Z","updated_at":"2025-07-01T13:19:55.000Z","dependencies_parsed_at":"2024-02-08T02:23:27.023Z","dependency_job_id":"ae4761f9-bcba-4819-bf91-1f3e5dab19a8","html_url":"https://github.com/hz-b/rayx","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/hz-b/rayx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hz-b%2Frayx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hz-b%2Frayx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hz-b%2Frayx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hz-b%2Frayx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hz-b","download_url":"https://codeload.github.com/hz-b/rayx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hz-b%2Frayx/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264390707,"owners_count":23600563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-graphics","gpu","particle-tracing","simulation","vulkan"],"created_at":"2025-07-09T04:07:06.363Z","updated_at":"2026-02-08T16:41:55.564Z","avatar_url":"https://github.com/hz-b.png","language":"C++","funding_links":[],"categories":["🌟 Featured Sections"],"sub_categories":["🧩 Common Libraries"],"readme":"# RAYX\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/d12229b0-7820-475f-8f02-6b2f253c5081\" alt=\"RAYX Logo\" width=\"600\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cstrong\u003eRAYX\u003c/strong\u003e 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 \u003ci\u003erayx-core\u003c/i\u003e, 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.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nTo 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.\n\nFor 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.\n\n## RAYX vs RAY-UI\n\nRAYX offers several advanced features, including:\n- Global (not sequential) tracing of beamlines\n- GPU utilization for accelerated tracing performance\n- A dedicated mode for tracing multiple beamlines with ease\n- Objects in RAYX can be grouped for simplified group transformations\n- A GUI for intuitive beamline design\n\n## Installing or Building RAYX\n\n[![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)\n\nFor 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.\n\n## Relevant Publications\n\nIf you use **RAYX** in your scientific work, please consider citing our paper:\n\n**RAYX – An optics simulation software for synchrotron applications**\nSven Erdem, Peter Feuer-Forson, Jannis Maier, Felix Möller, Enrico Philip Ahlers, Valentin Stöcker, Fanny Zotter, Peter Baumgärtel, Jens Viefhaus\n[Review of Scientific Instruments, Vol. 96, Issue 6 (2025)](https://pubs.aip.org/aip/rsi/article/96/6/061302/3348292/RAYX-An-optics-simulation-software-for-synchrotron)\nDOI: [10.1063/5.0253857](https://doi.org/10.1063/5.0253857)\n\n\u003e 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.\n\nThis publication provides an overview of the software's architecture and capabilities, including GPU acceleration, Python bindings, and GUI support.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhz-b%2Frayx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhz-b%2Frayx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhz-b%2Frayx/lists"}