This documents the planned roadmap for the EasyReflectometry project (containing both EasyReflectometryApp and EasyReflectometryLib) between now and the start of 2027. Certain tasks may depend on other Easy-family projects (in particular EasyCore) which will be be noted, where relevant.
Note that this chart should only be used to understand the planned features and a vague timeline for EasyReflectometry development.
gantt
title EasyReflectometry Roadmap Nov 2023-Jan 2027
dateFormat YYYY-MM
axisFormat %Y-%m
todaymarker off
section General
Improved GUI :a1, 2023-12, 24w
# Resolution smearing :a2, after a1, 8w
Resolution smearing :a2, 2024-01, 8w
Video Tutorials :a3, after a2, 8w
File IO :a4, after c2, 16w
Ready for real users: milestone, m1, after a1, 2min
section New functionality
Mixed area models :b1, after m1, 10w
Bayesian analysis :b3, 2025-01, 30w
ESS integration :b2, after b3, 10w
Ready for first ESS instruments :milestone, m2, 2025-11, 2min
ESS Start of User Operation :milestone, m3, 2026-11, 2min
section Hard Condensed Matter
Magnetism support :c1, after m1, 40w
Spin asymmetry and polarisation analysis :c2, after m2, 30w
section Item Library
# Bilayer item :d1, 2024-01, 8w
Material gradient :d2, after b1, 7w
Mixed surfactant layer :d3, after d2, 8w
Bilayer with embedded protein :d4, 2025-07, 16w
Mixed bilayer item :d5, after c2, 8w
Above we include a Gannt chart showing the roadmap. Each epic in this chart can be correlated with a heading below which details it. In time, each epic will be populated with a series of issues relating to the part of the Easy-family of projects that it pertains to. Issues that are general to EasyReflectometry (i.e. those related to interaction with the userbase) will be defined as EasyReflectometryApp issues.
The aim of this epic is to improve the user experience in EasyReflectometry. Currently, there are a performance issues and user-unfriendly interfaces that should be improved. This has the additional benefit of reducing technical debt. This includes work such as improving visualisations and adding code signing.
- Move to the new EasyApp structure
- Improve the project information page
- Improve constraint UI for multiple contrasts
- Plotting multiple datasets and models
- Scale and background lines break rq^4 plotting
- Code signing for all envs
- Add examples
- Can't run installer version on linux - glibc mismatch?
- Fitter options
Currently, we only support a constant Gaussian
This epic will enable greater interoperability with other analysis packages and plotting software. This includes adding functionality for a ORSO model definition file (to be defined) and the ability to output easily data from EasyReflectometry for plotting in other packages
- Output to file that can be plotted
- Enable output of the model in some version of the ORSO model definition file
Short video tutorials to accompany example projects. These can be hosted on YouTube or similar and linked to from easyreflectometry.org.
Also, create example project files based on existing notebooks. See: #159
refnx has the functionality to produce an incoherent sum of two different models.
This is important in accounting for non-uniform films/surfaces.
This means integration with the SciCat data catalogue, such that ESS data can be easily loaded to EasyReflectometry.
Additionally, it will include the use of scipp as a data storage object and plopp plotting functionality.
- Intraction with SciCat data catalogue
- SciCat GUI integration in Experiment pane
- Integrate orsopy metadata into scipp object
- Use scipp for data storage in the application
- Use plopp as a plotting engine in a Jupyter Notebook
- Use plopp as a plotting engine in the application
Bayesian sampling methods are becoming a more and more important tool in reflectometry analysis.
While it may be possible to enable this by outputting models built in EasyReflectometry to refl1d or refnx Python environments, it would be cleaner to have the functionality available in EasyReflectometry.
This would involve significant EasyCore work, in addition to the development of an EasyApp pane for sampling visualisaton (also beneficial to a potential EasyQens).
- Develop "Sampling" tab for control and visualisation of sampling results
- Advanced fitter view
- Enable non-uniform priors in fitting
- Enable the usage of EasyCore Bayesian methods
This will begin with enabling the magnetism functionality available in refl1d, concurrent to which the graphical user interface will be designed with input from the relevant user communities.
- Discuss with user community and document requirements for magnetism
- Expose magnetisation in EasyReflectometryLib
- Develop GUI for magnetism support
- Create compatibility functions between magnetisation in calculators
Enabling the analysis of difference between different spin flipper state
- Discuss with user community and document requirements for polarisation analysis
- Discuss with user community and document requirements for spin asymmetry
- Expose polarised neutron beams in python package
- Develop GUI to enable polarisation analysis
- Develop GUI to enable spin asymmetry
Here we collect all the issues related to the item library objects. Note that more items can be developed based on user requirements.
Phospholipid bilayer.
Material layer that describes a gradient (with a couple of different function forms) of one material present in another.
Using the mixed models functionality, making it possible to define more than one surfactant in a layer.
A bilayer item but with some concentration of protein embedded in the layer. Initially the protein describe would be basic (linking potentially to the protein-SLD calculator) but in future this could be expanded to include the protein-SLD calculator functionality or data from crystallographic or simulation results.
- Add a bilayer with protein embedded item type
- Develop GUI object for bilayer with protein embedded type
Using the mixed area models functionality, making it possible to define more than one phospholipid type in a bilayer.