Changelog#
This document tracks all notable changes to CDIutils.
Version 0.2.0 (Current)#
Released: January 2025
New Features:
Interactive 3D Visualisation Overhaul:
ThreeDViewermigrated from ipyvolume to Plotly for modern, performant 3D renderingNew
plot_3d_isosurfacefunction for quick interactive isosurface visualisationSupport for 20+ colormaps including perceptually uniform options (viridis, turbo, colorcet)
Advanced colorbar controls: auto-scale, symmetric mode, manual limits (vmin/vmax)
NaN handling: replace NaN values with mean to avoid visualisation artefacts
Rotation animation and theme toggle (light/dark) in
ThreeDViewerImproved zoom sensitivity and camera controls
Comprehensive API documentation with Sphinx
Professional PyData documentation theme
Tutorial notebooks for BCDI workflows
Template notebooks for common analysis tasks
Improved type hints throughout the codebase
Improvements:
Better Dependency Management:
Optional dependencies now properly organised:
[interactive],[pyvista],[vtk]Graceful fallback when optional packages are not installed
Clear error messages indicating which packages to install
Code Quality:
Google-style docstrings throughout
Type hints for all public functions
79-character line length for better readability
Better error handling and validation
Optimised memory usage for large datasets
Improved CXI file handling
Enhanced strain analysis algorithms
Better integration with PyNX and other tools
Bug Fixes:
Fixed normalise/normalize function naming consistency
Resolved import issues with optional dependencies
Fixed documentation build configuration
Corrected type annotation compatibility
Fixed colorbar tick label visibility in 3D plots
Resolved NaN propagation issues in min/max calculations
Documentation:
Complete API reference documentation
Step-by-step tutorials for beginners
Example notebooks with real datasets including
interactive_features.ipynbInstallation and setup guides with optional dependency information
Contributing guidelines
Breaking Changes:
ThreeDViewernow requiresplotly,scikit-image, andscipyinstead ofipyvolumeInstall with:
pip install cdiutils[interactive]for full interactive functionality
Version 0.1.x#
Initial Development Releases
Core functionality for BCDI analysis
Basic plotting and visualisation tools
CXI file format support
Integration with synchrotron beamlines
Phase retrieval post-processing
Strain analysis capabilities
Development Notes#
CDIutils follows semantic versioning (SemVer).
Major versions (x.0.0): Breaking API changes
Minor versions (0.x.0): New features, backwards compatible
Patch versions (0.0.x): Bug fixes, backwards compatible
For the complete development history, see the GitHub commit log.
Future Roadmap#
Additional beamline support
Machine learning integration
Real-time analysis capabilities
Cloud computing integration
Advanced visualisation features