Skip to content

Releases: mesoSPIM/mesoSPIM-control

Release February 2026

24 Feb 15:01

Choose a tag to compare

What's Changed

New Contributors

Diff Changelog: 1.11.1...1.20.0
Full Changelog: https://github.com/mesoSPIM/mesoSPIM-control/blob/master/CHANGELOG.md

Performance fixes

26 Sep 13:23

Choose a tag to compare

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_worker into core thread to avoid conflicts of relative motion operations with GUI thread.
  • added CPU core identifiers for different operations in debug mode 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]

10 Mar 10:34

Choose a tag to compare

Performance 🚀

  • implementation of time lapse function via script. See example script at mesoSPIM/scripts/timelapse.py for 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.
  • MAX projection 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]

12 Dec 13:12

Choose a tag to compare

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. Value 1 means no subsampling (show every image during acquisition).
  • change recommended package manager to mamba to 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 Mitutoyo instead of 5x for 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.py by @TchLenn and parsing of double-digit strings like ao21:22 in config file.
  • remove Log tab 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-zoom combination 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 the laser-zoom combinations on the go.
  • more tooltips added to the GUI elements for better user experience.

🔧 system changes

  • pip depenencies are frozen for staibilty
  • mesoSPIM_State is only nominally a singleton, but actually inherited by classes from their parent class to ensure unique state and thread safety.
  • no signal from mesoSPIM_State every 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

03 Jul 11:22

Choose a tag to compare

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.
  • 💎 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-stage button for safe revolver operation.

all-windows-v1 9 0

February 2024

22 Feb 10:30

Choose a tag to compare

Integration of all mesoSPIM versions: Benchtop, V6 "Revolver", V4 and 5. Improved stability and GUI.

Release January 2023 [1.8.2]

29 Jan 13:41

Choose a tag to compare

Release with full Benchtop mesoSPIM support and the new official logo.
mesoSPIM-logo

An open-source acquisition software for light-sheet microscopy written in Python and Qt.

16 Feb 16:42
dcc68ec

Choose a tag to compare

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

04 Nov 22:05
cf9086d

Choose a tag to compare

💎 💎 💎 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.

⚠️ Recommended Python upgrade to 3.7 because some libraries have limited support for 3.6 (e.g. tifffile).

⚠️ Default file format for data saving has changed to .h5 for streamlined import into BigStitcher.

Release July 2021

02 Jul 12:42

Choose a tag to compare

A new stable version, tested on four different mesoSPIM V5 systems. Multiple bugs fixed and new features added.

⚠️ Config files have some new parameters, see demo config file. The software is backward compatible with old config files, but upgrading your config file is highly recommended.

Full list of changes.