Releases: mesoSPIM/mesoSPIM-control
Release February 2026
What's Changed
- A system to manage mesoSPIM Image Writers as plugins by @AlanMWatson in #91
- Properly handle multi-part extensions like .ome.zarr by @AlanMWatson in #92
- Omezarr writer naming by @AlanMWatson in #93
- Add x-axis reporting and movement for MS2000 by @AlanMWatson in #95
- Sutter baud and wheel speed in config by @AlanMWatson in #94
- Place Filter into filename by @AlanMWatson in #96
- Write Cache option for MP OME-Zarr Writer by @AlanMWatson in #97
- Sham Image Writer by @AlanMWatson in #98
- Fix ASI MS2000 TTL Control by @AlanMWatson in #99
- ASI Stage Fixes by @AlanMWatson in #100
- Reduce GUI-Induced Stuttering and Lockups During Acquisition by @AlanMWatson in #101
New Contributors
- @AlanMWatson made their first contribution in #91
Diff Changelog: 1.11.1...1.20.0
Full Changelog: https://github.com/mesoSPIM/mesoSPIM-control/blob/master/CHANGELOG.md
Performance fixes
Release September 2025 [1.11.1]
🚀 Overhaul of internal bootlnecks that hampered performance on some systems and caused GUI freezing / high CPU loads.
Bugfixes 🐛
- fixed excessive communication between threads causing high CPU load on some systems.
- moved
serial_workerintocorethread to avoid conflicts of relative motion operations with GUI thread. - added CPU core identifiers for different operations in
debugmode or logging, to pinpoint performance issues. - fixed autofocus (AF) function in the GUI.
- returned
'camera_display_live_subsampling': 2,,'camera_display_acquisition_subsampling': 2,and'camera_display_temporal_subsampling': 2,into the config file, to reduce camera display load on older computers. - fixed light-sheet markers and box ROI markers in the Camera window, which were not displayed correctly after zoom change.
Release March 2025 [1.11.0]
Performance 🚀
- implementation of time lapse function via script. See example script at
mesoSPIM/scripts/timelapse.pyfor details. - images can now be displayed at full resolution during either live mode or acquisition, with no performance penalty. Deprecated config parameters:
'camera_display_live_subsampling': 2,
'camera_display_acquisition_subsampling': 2, to enjoy full-resolution image in real time. The corresponding GUI elements for controlling the downsampling were removed.
Bugfixes 🐛
- duplication of sub-stacks while writing large H5 files (>0.5 TB) and freezing at the end of acquisition. Fixed by replacing signal/slot mechanism for CameraWindow image update to deque mechanism. Boosted performance and stability.
MAXprojection is always on by default, if the dataset is saved in TIFF or RAW format. No need to check the box in the Image Processing Wizard. This generates maximum intensity projection as TIFF file for each stack in the acquisition list.- explicit initialization of the first raw in Acquisition Manager, to avoid undefined GUI widget states.
Full Changelog: https://github.com/mesoSPIM/mesoSPIM-control/blob/master/CHANGELOG.md
December 2024 [v1.10.2]
Performance 🚀
- migration to Python 3.12 for better performance and compatibility with the latest libraries.
- faster loading and response time of the GUI
- subsampling of the camera image for less frequent rendering in the GUI (less CPU load) during acquisition, controlled by
'camera_display_temporal_subsampling': 2,parameter in the config file. Value1means no subsampling (show every image during acquisition). - change recommended package manager to
mambato avoid Anaconda license issues. - change the default timer for stage position update from 50 ms to 100 ms, to reduce communication and logging overhead. ASI stages updated every 200 ms, PI stages every 100 ms.
- zoom dictionary can include multi-word names like
5x Mitutoyoinstead of5xfor better UI and meta-infomation. - spinboxes are limited in scroll speed to allow hardware catch up with UI in the interactive mode
- #82: uploading UCL-Bechtop config file
config/examples/config_benchtop_UCL_5laser.pyby @TchLenn and parsing of double-digit strings likeao21:22in config file. - remove
Logtab from the GUI, as it was not used by the users and was causing unnecessary overhead, esp. in DEBUG mode.
User Interface 🍭
- ETL config files (.csv) are automatically checked and updated with the
laser-zoomcombination selected in GUI, to avoid errors in the acquisition. User can even start with an empty ETL config file, it will be auto-filled with thelaser-zoomcombinations on the go. - more tooltips added to the GUI elements for better user experience.
🔧 system changes
- pip depenencies are frozen for staibilty
mesoSPIM_Stateis only nominally a singleton, but actually inherited by classes from their parent class to ensure unique state and thread safety.- no signal from
mesoSPIM_Stateevery time the state is updated. The GUI is updated from state by a separate signal/slot from member classes, on demand. - bugfix: serial communication with ASI stages is now thread-safe, with no conflicts between GUI (Main) and Core threads.
- bugfix: parsing config file with either
'laser_task_line' : 'PXI6733/ao0:3'or'/PXI6733/ao0:3'notation (Alan Watson).
Release July 2024
Release July 2024 [1.9.0]
User Interface 🍭
- 💎 "Auto L/R illumination" button in the Acquisition manager to select tile illumination based on its x-position.
- 💎 A long awaited feature: Tile Overview window (View/Open Tile Overview), showing the entire acquisition area with tile positions, their overlap, and current FOV position relative to them.
- Some setups need to flip x- and/or y-stage polarity for correct tile display: use
'flip_XYZFT_button_polarity': (True, False, False, False, False),in the config file.
- Some setups need to flip x- and/or y-stage polarity for correct tile display: use
- 💎 Center Button added in the Main Window GUI, for bringing the sample holder in the X- and Z- center relative to the light-sheet and detection objective.
- during acqusition, the currently acquiring row is highlighted in Acquisition Manager and in Tile Overview windows.
This has to be set up in the config file with'x_center_position'and'z_center_position'parameters for stage motion. - Buttons for movement in horizontal plane got shorter, for more intuitive navigation.
- Current FPS shown in the progress bar.
- Webcam window always opens at startup, empty if no camera is present in config file:
'usb_webcam_ID': 0, # open USB web-camera (if available): None, 0 (first cam), 1 (second cam), ... - Tooltips were added to the navigation buttons.
Bugfixes 🐛
- occasional glitch with ASI stages caused by updating stage positions between acquisitions, with serial communication going in two separate threads (mainWindow vs Core).
- check motion limits for all tiles before starting the acquisition list, in absolute or relative coodinates (zeroed axes or not).
- estimated remaining acquisition time is now calculated correctly, based on the current frame rate.
- sample centering and objectiv exchange positions work also when in zeroed-stage regime (local coordinates, user-defined). No need to inactivate
Zero F-stagebutton for safe revolver operation.
February 2024
Integration of all mesoSPIM versions: Benchtop, V6 "Revolver", V4 and 5. Improved stability and GUI.
Release January 2023 [1.8.2]
An open-source acquisition software for light-sheet microscopy written in Python and Qt.
F. Voigt, N. Vladimirov, C. Schulze, R. Campbell, F. Helmchen. MesoSPIM control: An open-source acquisition software for light-sheet microscopy written in Python and Qt.
November 2021
💎 💎 💎 Autofocus has been added and works beautifully, outperforming expert human in focusing accuracy by 10x. Highly recommended!
💎 💎 Auto-optimization of ETL parameters is added, and works well most of the time, depending on samples.
💎 💎 Saving datasets as ImageJ TIFF files, including big ones (Fiji TIFF format that allows > 4 GB size). Voxel dimension saved in TIFF metadata.
💎 Button Freeze galvos is added to ETL tab for quick adjustment of ETL parameters outside of sample, see video tutorial.
✨ File Name Wizard auto-starts after Tiling Wizard.
✨ Windows are auto-arranged at startup, no more window dragging needed.
✨ Mark All button is added to the Acquisition Manager
✨ Laser intensity can be edited directly via spinbox, alternative to slider. In Acquisition manager, slider is replaced by a spinbox for convenience.
✨ TIFF file name pattern for multi-tile/channel datasets is fully compatible with BigStitcher auto-loader, no renaming is needed.
🐛 fix: Going back to previously configured channel in the Tiling Manager appended a new channel to the acquisition list, rather than amending it.
🐛 fix: Files must always have extension (currently one of .tiff, .tif, .raw, .h5). Files without extension return an error.
🐛 fix: Image processing option generates MAX projections as TIFF files when output file format is either .raw or .tiff, #60.
tifffile).
.h5 for streamlined import into BigStitcher.
Release July 2021
A new stable version, tested on four different mesoSPIM V5 systems. Multiple bugs fixed and new features added.
Full list of changes.

