3rd Python Accelerator Middle Layer (pyAML) workshop
Join us for the 3rdย Accelerator Middle Layer Workshop!
Python Accelerator Middle Layer (pyAML) is a joint technology platform forย design, commissioning and operation of particle accelerators.
It is developed, benchmarked and maintained collaboratively by an open-source community driven by accelerator facilities around the world.
Past Workshops
-
2nd Accelerator Middle Layer Workshop - 12-14 February 2025 - Berlin, Germany
-
Accelerator Middle Layer Workshop - 19-21 June February 2024 - Hamburg, Germany
ย
The core component of this pyAML workshop edition will be a hackathon --- collaborative development of pyAML use cases (such as beam-based alignment (BBA), etc.) in small working groups.
We are looking forward to welcoming you at the Synchrotron SOLEIL, near Paris, France!
Helpful information
Prototype codesย
The code repositories (of the prototypes) are hosted onย GitHub.
pyAML collaboration meeting agendas & minutes
Meeting agendas and minutes are available on GitHub. Also, other documents related to governance can be found there.
pyAML specification documents
The specification is currently under development. It is written collaboratively on Overleaf. Feel free to comment and make suggestions!
- User Interface Specification: https://www.overleaf.com/8296337372wkxgpsdvrptp#3d77d7
-
Requirement Specification:ย https://www.overleaf.com/6632675387jrmgtdnzbxhq#b3b3c5
In the beginning of each document is a description of the purpose of the document.
-
-
11:00
→
12:00
Welcome and registration: Welcome Principal/0-0 - Salle AmphitheatreConvener: Dr Laurent NADOLSKI (SOLEIL)
-
11:00
Arrival and registration 40mSpeaker: Vadim GUBAIDULIN (SOLEIL)
-
11:40
Welcome message 20m
Welcome message that includes
- pyAML project goals
- pyAML past workshops
- Purpose of this workshop iteration
Speaker: Dr Laurent NADOLSKI (SOLEIL)
-
11:00
-
12:00
→
13:00
Lunch 1h
-
13:00
→
15:50
Project reports: pyAML Project Status Principal/0-0 - Salle AmphitheatreConvener: Vadim GUBAIDULIN (SOLEIL)
-
13:00
Project status report and specification documents (30'+10') 40m
Report on the pyAML project status since the last workshop in Berlin. Progress on specification documents and the pyAML product is reported. The technical / software side will be covered in another contribution.
- Timeline of the project so far
- pyAML steering committee meetings and key decisions
- Specification document(s) status
- COST action status
- pyAML community meetings
- pyAML maintainer meetings
- Work organisation for the development via GitHub (Discussions and Issues)
Speaker: Teresia Olsson (HZB) -
13:40
pyAML prototype development report: part I (30'+10') 40m
Report on the pyaml-repository development progress, including control system interfaces implemented in separate repositories tango-pyaml and pyaml-cs-oa. The report includes
- a timeline of the development so far,
- software architecture description,
- design choices,
- outlook on the pending issues
- outlook on continuation of development
- examples demonstrating the functionality.
- next steps
Speaker: Jean-Luc Pons (ESRF) -
14:20
pyAML prototype development report: part II (30'+10') 40m
Report on the accml-repository development progress.
- a timeline of the development so far,
- software architecture description,
- design choices,
- outlook on the pending issues
- outlook on continuation of development
- examples demonstrating the functionality.
- next steps
Speaker: Waheedullah Sulaiman Khail (HZB) -
15:00
Coffee break 20m
-
15:20
Python Simulated Commissioning (pySC) project 30m
Python version of the Simulated Commissioning toolkit for synchrotrons (inspired by a Matlab code by T. Hellert (LBNL) https://github.com/ThorstenHellert/SC), developed at DESY (https://github.com/kparasch/pySC) originally by L. Malina and continued by K. Paraschou.
Speaker: Konstantinos Paraschou (DESY)
-
13:00
-
15:50
→
20:00
Training/hackathon preparation session Principal/0-0 - Salle Amphitheatre
A session dedicated to preparation for the hackathon on the next day. The goals of the session is to get a working pyAML environment/environments for all participants, to run some existing examples, etc.
Conveners: Simone Maria Liuzzo (ESRF), Teresia Olsson (HZB)-
15:50
Hackathon working group announcement 20m Principal/0-0 - Salle Amphitheatre
- Announcement of the working group composition for the next day.
- Proposal of working group topics.
- Practical details on the hackathon
organisation.
Speaker: Vadim GUBAIDULIN (SOLEIL) -
16:10
Preparation 2h 50m Principal/0-0 - Salle Amphitheatre
Preparatory session dedicated to verifying that everyone has a working environment set up, introducing developer documentation and planning of different working groups for the next day.
Speakers: Simone Maria Liuzzo (ESRF), Teresia Olsson (HZB) -
17:00
Live demonstration in SOLEIL control room (30') 1h Control room (SOLEIL)
Control room
SOLEIL
Demonstration of pyAML prototype in the SOLEIL control room. A simple use case of measuring chromaticity will be shown and compared with the Matlab Middle Layer (MML) option used in operation. Depending on the number of participants, we will split them into several groups.
Speaker: Alexandre MOUTARDIER (SOLEIL)
-
15:50
-
11:00
→
12:00
-
-
09:00
→
11:50
Hackathon: trying out pyAML A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
This is a session dedicated to trying out pyAML existing examples. The aim of the session is for people to get updated on the prototype development and to give their feedback on the progress that have been made so far. In this hackathon session, all working groups will be working on the same global task of trying out the prototype.
-
09:00
Working group 1 1h 15m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
Description
The working group session will be dedicated to trying out the existing use cases and examples in order to provide their feedback.
Input- pyaml / accml examples
- pyaml / accml documentation
- specification documents
- resources on pyAML GitHub
Objectives and deliverables
- Written feedback on pyaml / accml (preferably using GitHub discussions with the title "pyAML workshop: working group X feedback")
- feedback on configuration with yaml / json files, on manual creation of pyaml objects
- feedback on the documentation / lack thereof
- feedback on running examples
- feedback on the present interface to pySC
- any other feedback
- Based on the feedback, try to create GitHub issues, following the existing template.
- Cherry-picking of functionality / interfaces of pyaml / accml. What would you really like to see in the final product?
- Short presentation (~10 minutes) elaborating on the main points from above (to be presented on the last day of the workshop)
-
09:00
Working group 2 1h 15m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
Description
The working group session will be dedicated to trying out the existing use cases and examples in order to provide their feedback.
Input- pyaml / accml examples
- pyaml / accml documentation
- specification documents
- resources on pyAML GitHub
Objectives and deliverables
- Written feedback on pyaml / accml (preferably using GitHub discussions with the title "pyAML workshop: working group X feedback")
- feedback on configuration with yaml / json files, on manual creation of pyaml objects
- feedback on the documentation / lack thereof
- feedback on running examples
- feedback on the present interface to pySC
- any other feedback
- Based on the feedback, try to create GitHub issues, following the existing template.
- Cherry-picking of functionality / interfaces of pyaml / accml. What would you really like to see in the final product?
- Short presentation (~10 minutes) elaborating on the main points from above (to be presented on the last day of the workshop)
-
09:00
Working group 3 1h 15m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
Description
The working group session will be dedicated to trying out the existing use cases and examples in order to provide their feedback.
Input- pyaml / accml examples
- pyaml / accml documentation
- specification documents
- resources on pyAML GitHub
Objectives and deliverables
- Written feedback on pyaml / accml (preferably using GitHub discussions with the title "pyAML workshop: working group X feedback")
- feedback on configuration with yaml / json files, on manual creation of pyaml objects
- feedback on the documentation / lack thereof
- feedback on running examples
- feedback on the present interface to pySC
- any other feedback
- Based on the feedback, try to create GitHub issues, following the existing template.
- Cherry-picking of functionality / interfaces of pyaml / accml. What would you really like to see in the final product?
- Short presentation (~10 minutes) elaborating on the main points from above (to be presented on the last day of the workshop)
-
09:00
Working group 4 1h 15m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
Description
The working group session will be dedicated to trying out the existing use cases and examples in order to provide their feedback.
Input- pyaml / accml examples
- pyaml / accml documentation
- specification documents
- resources on pyAML GitHub
Objectives and deliverables
- Written feedback on pyaml / accml (preferably using GitHub discussions with the title "pyAML workshop: working group X feedback")
- feedback on configuration with yaml / json files, on manual creation of pyaml objects
- feedback on the documentation / lack thereof
- feedback on running examples
- feedback on the present interface to pySC
- any other feedback
- Based on the feedback, try to create GitHub issues, following the existing template.
- Cherry-picking of functionality / interfaces of pyaml / accml. What would you really like to see in the final product?
- Short presentation (~10 minutes) elaborating on the main points from above (to be presented on the last day of the workshop)
-
09:00
Working group R (remote) 1h 15m MS Teams
MS Teams
Description
The working group session will be dedicated to trying out the existing use cases and examples in order to provide their feedback.
Input- pyaml / accml examples
- pyaml / accml documentation
- specification documents
- resources on pyAML GitHub
Objectives and deliverables
- Written feedback on pyaml / accml (preferably using GitHub discussions with the title "pyAML workshop: working group X feedback")
- feedback on configuration with yaml / json files, on manual creation of pyaml objects
- feedback on the documentation / lack thereof
- feedback on running examples
- feedback on the present interface to pySC
- any other feedback
- Based on the feedback, try to create GitHub issues, following the existing template.
- Cherry-picking of functionality / interfaces of pyaml / accml. What would you really like to see in the final product?
- Short presentation (~10 minutes) elaborating on the main points from above (to be presented on the last day of the workshop)
-
10:15
Coffee break 20m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
-
10:35
Working group 1 1h 15m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
Description
The working group session will be dedicated to trying out the existing use cases and examples in order to provide their feedback.
Input- pyaml / accml examples
- pyaml / accml documentation
- specification documents
- resources on pyAML GitHub
Objectives and deliverables
- Written feedback on pyaml / accml (preferably using GitHub discussions with the title "pyAML workshop: working group X feedback")
- feedback on configuration with yaml / json files, on manual creation of pyaml objects
- feedback on the documentation / lack thereof
- feedback on running examples
- feedback on the present interface to pySC
- any other feedback
- Based on the feedback, try to create GitHub issues, following the existing template.
- Cherry-picking of functionality / interfaces of pyaml / accml. What would you really like to see in the final product?
- Short presentation (~10 minutes) elaborating on the main points from above (to be presented on the last day of the workshop)
-
10:35
Working group 2 1h 15m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
Description
The working group session will be dedicated to trying out the existing use cases and examples in order to provide their feedback.
Input- pyaml / accml examples
- pyaml / accml documentation
- specification documents
- resources on pyAML GitHub
Objectives and deliverables
- Written feedback on pyaml / accml (preferably using GitHub discussions with the title "pyAML workshop: working group X feedback")
- feedback on configuration with yaml / json files, on manual creation of pyaml objects
- feedback on the documentation / lack thereof
- feedback on running examples
- feedback on the present interface to pySC
- any other feedback
- Based on the feedback, try to create GitHub issues, following the existing template.
- Cherry-picking of functionality / interfaces of pyaml / accml. What would you really like to see in the final product?
- Short presentation (~10 minutes) elaborating on the main points from above (to be presented on the last day of the workshop)
-
10:35
Working group 3 1h 15m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
Description
The working group session will be dedicated to trying out the existing use cases and examples in order to provide their feedback.
Input- pyaml / accml examples
- pyaml / accml documentation
- specification documents
- resources on pyAML GitHub
Objectives and deliverables
- Written feedback on pyaml / accml (preferably using GitHub discussions with the title "pyAML workshop: working group X feedback")
- feedback on configuration with yaml / json files, on manual creation of pyaml objects
- feedback on the documentation / lack thereof
- feedback on running examples
- feedback on the present interface to pySC
- any other feedback
- Based on the feedback, try to create GitHub issues, following the existing template.
- Cherry-picking of functionality / interfaces of pyaml / accml. What would you really like to see in the final product?
- Short presentation (~10 minutes) elaborating on the main points from above (to be presented on the last day of the workshop)
-
10:35
Working group 4 1h 15m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
Description
The working group session will be dedicated to trying out the existing use cases and examples in order to provide their feedback.
Input- pyaml / accml examples
- pyaml / accml documentation
- specification documents
- resources on pyAML GitHub
Objectives and deliverables
- Written feedback on pyaml / accml (preferably using GitHub discussions with the title "pyAML workshop: working group X feedback")
- feedback on configuration with yaml / json files, on manual creation of pyaml objects
- feedback on the documentation / lack thereof
- feedback on running examples
- feedback on the present interface to pySC
- any other feedback
- Based on the feedback, try to create GitHub issues, following the existing template.
- Cherry-picking of functionality / interfaces of pyaml / accml. What would you really like to see in the final product?
- Short presentation (~10 minutes) elaborating on the main points from above (to be presented on the last day of the workshop)
-
10:35
Working group R (remote) 1h 15m MS Teams
MS Teams
Description
The working group session will be dedicated to trying out the existing use cases and examples in order to provide their feedback.
Input- pyaml / accml examples
- pyaml / accml documentation
- specification documents
- resources on pyAML GitHub
Objectives and deliverables
- Written feedback on pyaml / accml (preferably using GitHub discussions with the title "pyAML workshop: working group X feedback")
- feedback on configuration with yaml / json files, on manual creation of pyaml objects
- feedback on the documentation / lack thereof
- feedback on running examples
- feedback on the present interface to pySC
- any other feedback
- Based on the feedback, try to create GitHub issues, following the existing template.
- Cherry-picking of functionality / interfaces of pyaml / accml. What would you really like to see in the final product?
- Short presentation (~10 minutes) elaborating on the main points from above (to be presented on the last day of the workshop)
-
09:00
-
11:50
→
12:40
Lunch 50m
-
12:40
→
13:40
Visits: SOLEIL II prototypes Principal/0-0 - Salle Amphitheatre
A visit of SOLEIL II prototypes (magnets, diagnostic devices, etc.)
Convener: Alexandre MOUTARDIER (SOLEIL) -
13:40
→
15:10
Hackathon: implement use cases of pyAML A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenis A2.1.22 PyxisThis is a session dedicated to trying out pyAML existing examples. The aim of the session is for people to get updated on the prototype development and to give their feedback on the progress that have been made so far. In this hackathon session, all working groups will be working on the same global task of trying out the prototype.
-
13:40
Working group 1 1h 30m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenis A2.1.22 PyxisDescription
The main idea of this working group is to try implementing some new use case (for example, beam-based alignment (BBA)). The working group is meant for people who already have experience with pyAML and are familiar with the examples and existing implementation.
Input
- pyaml/accml examples
- pyaml/accml documentation
- specification documents
- prior experience with pyAML
Objectives and deliverables
- Discuss among yourselves what kind of measurement / tuning tool is already possible to do with the existing code base
- Make a GitHub issue(s) describing what you want to implement
- Make a short description of the measurement in the specification document
- A working measurement script / tuning tool for a selected use case(s),
- Draft pull request with a new measurement/tuning tool (partially) implemented
- Short presentation (5 - 10 minutes) on the work done so far
- Feedback on the experience of implementing a use case (GitHub discussion) -
13:40
Working group 2 1h 30m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenis A2.1.22 PyxisDescription
The aim will be to discuss the handling of wait times in pyAML (set and wait functionality).
Status object/some other way to handle sleeps at device level:
- How should this be implemented?
- What configuration is required (ramp rate, tolerance etc)
- Which functionality is required to replace the functionality of the
MML WaitFlag fully?
Objectives and deliverables
- Update to the documentation regarding set_and_wait()
- GitHub discussion or issue describing the proposal
- Draft pull request (PR) with implementation suggestion
-
13:40
Working group 3 1h 30m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenis A2.1.22 PyxisDescription
Currently, pyAML documentation and code do not define a clear format to store measurement data and metadata. Metadata is also not generated automatically. The working group should brainstorm what type of data is necessary to store and come up with a first technical solution to this problem.
Input- MML experience
- Experience with other codes
- Operational experience at different facilities
Objectives and deliverables
-
Define measurement data format(s), associated metadata
-
GitHub discussion/issue on the metadata format
-
GitHub discussion/issue on the data storage
-
Update of pyAML documentation
-
An example script demonstrating data storage and metadata generation
-
13:40
Working group 4 1h 30m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenis A2.1.22 PyxisDescription
The primary aim of this working group is to discuss handling of unit conversion in pyAML (Ampere to strength unit; simple conversion mm to m; strength to integrated strength, etc)
Objectives and deliverables
- Update to the documentation regarding the unit conversion
- GitHub discussion or issue describing the proposal
- Draft pull request (PR) with implementation suggestion
-
13:40
Working group R (remote) 1h 30m MS Teams
MS Teams
Description
The primary objective of the working group is to establish a pyAML standard for performing measurements. In general, there are two ways to do measurements: simple measurement scripts and a more generic way for standard measurements. The generic way can allow for the reuse of existing code snippets in a transparent way and orchestrate a complex measurement. Both ways exist in the PAMILA toy project of Y.Hidaka, including OPTIONAL compatibility with BlueSky. The working group can brainstorm how to adapt this solution or come up with a different one.
Input- User interface specification document (Chapter 6)
- Implementation in the PAMILA code (https://github.com/NSLS2/pamila)
Objectives and deliverables
-
Update on the documentation relating to generic measurements
-
Proposal of a generic way to do measurements (preferably in the form
of GitHub discussions) -
A code example with one of the already existing use cases done in
both ways -
Short presentation (~10 minutes) elaborating on the points above
-
13:40
-
15:10
→
15:40
Coffee break 30m Principal/0-0 - Salle Amphitheatre
-
15:40
→
19:30
Hackathon: implement use cases of pyAML A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenis A2.1.22 PyxisThis is a session dedicated to trying out pyAML existing examples. The aim of the session is for people to get updated on the prototype development and to give their feedback on the progress that have been made so far. In this hackathon session, all working groups will be working on the same global task of trying out the prototype.
-
15:45
Steering committee working group 2h 20m A2.1.32
A2.1.32
This is an optional hackathon session for steering committee members if they wish to have some discussion before the last day of the workshop. The aim of the session could be, for example, the following:
- Give the steering committee time for some pre-discussion before the last day of the workshop
- Share among the steering committee the experience from different hackathon working groups
- Discuss roadmap of pyAML project 2026-2027
- Prepare some talking points/roadmap outline for discussion on the next day with workshop participants
-
15:45
Working group 1 2h 20m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenis A2.1.22 PyxisDescription
The main idea of this working group is to try implementing some new use case (for example, beam-based alignment (BBA)). The working group is meant for people who already have experience with pyAML and are familiar with the examples and existing implementation.
Input
- pyaml/accml examples
- pyaml/accml documentation
- specification documents
- prior experience with pyAML
Objectives and deliverables
- Discuss among yourselves what kind of measurement / tuning tool is already possible to do with the existing code base
- Make a GitHub issue(s) describing what you want to implement
- Make a short description of the measurement in the specification document
- A working measurement script / tuning tool for a selected use case(s),
- Draft pull request with a new measurement/tuning tool (partially) implemented
- Short presentation (5 - 10 minutes) on the work done so far
- Feedback on the experience of implementing a use case (GitHub discussion) -
15:45
Working group 2 2h 20m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenis A2.1.22 PyxisDescription
This working group aims to discuss the handling of wait times in pyAML (set and wait functionality).Status object/some other way to handle sleeps at device level:
- How should this be implemented?
- What configuration is required (ramp
rate, tolerance etc)
- Which functionality is required to fully
replace the functionality of the MML WaitFlag?Objectives and deliverables
- Update to the documentation regarding set_and_wait()
- GitHub discussion or issue describing the proposal
- Draft MR with implementation
-
15:45
Working group 3 2h 20m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenis A2.1.22 PyxisDescription
Currently, pyAML documentation and code do not define a clear format to store measurement data and metadata. Metadata is also not generated automatically. The working group should brainstorm what type of data is necessary to store and come up with a first technical solution to this problem.
Input- MML experience
- Experience with other codes
- Operational experience at different facilities
Objectives and deliverables
-
Define measurement data format(s), associated metadata
-
GitHub discussion/issue on the metadata format
-
GitHub discussion/issue on the data storage
-
Update of pyAML documentation
-
An example script demonstrating data storage and metadata generation
-
15:45
Working group 4 2h 20m A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenix A2.1.22 Pyxis
A1.1.58 Cameleon A1.1.59 Pegase A1.0.59 Phenis A2.1.22 PyxisDescription
The primary aim of this working group is to discuss handling of unit conversion in pyAML (Ampere to strength unit; simple conversion mm to m; strength to integrated strength, etc)
Objectives and deliverables
- Update to the documentation regarding the unit conversion
- GitHub discussion or issue describing the proposal
- Draft pull request (PR) with implementation suggestion
-
15:45
Working group R (remote) 2h 20m MS Teams
MS Teams
Description
The primary objective of the working group is to establish a pyAML standard for performing measurements. In general, there are two ways to do measurements: simple measurement scripts and a more generic way for standard measurements. The generic way can allow for the reuse of existing code snippets in a transparent way and orchestrate a complex measurement. Both ways exist in the PAMILA toy project of Y.Hidaka, including OPTIONAL compatibility with BlueSky. The working group can brainstorm how to adapt this solution or come up with a different one.
Input- User interface specification document (Chapter 6)
- Implementation in the PAMILA code (https://github.com/NSLS2/pamila)
Objectives and deliverables
-
Update on the documentation relating to generic measurements
-
Proposal of a generic way to do measurements (preferably in the form
of GitHub discussions) -
A code example with one of the already existing use cases done in
both ways -
Short presentation (~10 minutes) elaborating on the points above
-
15:45
-
19:30
→
21:30
Workshop dinner 2h Principal/0-0 - Salle Amphitheatre
-
09:00
→
11:50
-
-
09:00
→
12:00
Discussion and feedback Principal/0-0 - Salle Amphitheatre
A session dedicated to feedback from the hackathon and discussion of the pyAML project objectives.
Convener: Vadim GUBAIDULIN (SOLEIL)-
09:00
Feedback from the hackathon 1h 30m
Discussion, feedback and showcase on the prototype features and architecture based on the working groups' results. Each group will present what they have been working on, what issues they have encountered and what they want to see improved.
Each working group will have time to provide feedback on the pyAML prototype and present the topical proposal they were working on during the afternoon sessions of the Hackathon. For all discussed topics a GitHub discussion should be created by the group, so that the discussion can continue online, after the workshop and with a wider pyAML community involved.
-
10:30
pyAML project objectives 2026-2027 1h 30m
Broader discussion on the priorities and next objectives for the next years of pyAML collaboration. The aim is to discuss medium (6-12 months) and long-term goals (12-24 months) of pyAML. The outcome/minutes of this discussion will be used as input for the steering committee to define a roadmap for the project. Feedback on the work organisation should be given in this session. Possible points to discuss:
- Missing features/functionality
- Organisation of tests at different facilities
- Degree of integration with other existing tools (pySC, ophyd, etc.)
- Feedbacks (slow).
- Graphical user interfaces. Is this in the scope of pyAML or each facility could write a GUI in their prefered way that runs pyAML under the hood?
- Digital twin What kind of digital twin / virtual accelerator is in the scope of pyAML? We need something to run CI/CD pipelines with and something to assist in the manual testing during the development. Is HZB solution available and generic enough?
- Ecosystem development The idea is to develop the code in a modular way, separate in different repositories etc to allow labs to pick-and-choose what they want to use and be able to integrate with potential lab-specific tools and ways to do things without those things having to go into pyAML affecting all other labs. This is an idea used by other communities and an approach I think could solve many of our issues as well as allowing labs to gradually migrate from their existing tools to pyAML
Other aspects: - Feedback (human) on the development process so far, interactions, meeting organisation, GitHub projects, etc.
- Resources committed to the project
- Promotion of the project in the wider accelerator community
- Next workshop edition (what? where? when?)
- Renew/confirmation of steering committee (June 2026-June 2027)
- Maintainer list and coordinator roles
-
09:00
-
12:00
→
12:15
Welcome and registration: Closing remarks Principal/0-0 - Salle AmphitheatreConvener: Dr Laurent NADOLSKI (SOLEIL)
-
12:15
→
15:05
Steering committee meeting: in-person meeting A1.2.32 Libra
A1.2.32 Libra
-
09:00
→
12:00