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.
This issue can be used to specify our tasks related to upcoming python bindings. Don't hesitate to add ideas and thoughts.
First we need to port things
[ ] expose RAYX-CORE API to python
[ ] design model is fully mutable within python
[ ] sanity check: port TerminalApp to python. Maybe even replace terminal app completely
Then we can think about ways to improve our API now that we have python
user could inject python code via std::funcion on c++ side.
setting up beamlines from within python should be easy to do. what functionallity do we need to make it easy?
Looper-like behavior from RAY-UI should be easy to do in python for users
we should meet the requirements for a good workflow for machine learning applications. To be further specified...
since we are in python already, plotting should be straightforward. Maybe we can add some useful plotting functions.
would be great if we can get a REFLEC-like workflow going. e.g. Many different variants of a beamline, but trace just one ray on each. This might require some additional features in RAYX-CORE.
user could import rml beamline and edit it on the fly in python
user could do beamline creation/design phase in python and export to rml to persist the beamline
maybe one wants to both use the GUI and python in design phase. we could think about ways to allow such workflow
This issue can be used to specify our tasks related to upcoming python bindings. Don't hesitate to add ideas and thoughts.
First we need to port things
Then we can think about ways to improve our API now that we have python