← Back to all sparks
S

silx

ANALYTICS
Velocity2.5

Scientific data analysis and visualization toolkit

silx 3.0 moved its default Qt binding to PySide6 — a migration for everyone embedding it.

synchrotronqthdf5scientific plottingpyside6gui refresh
Current state
silx releases a couple of times a year and reached 3.0.0 in April 2026, which raised the Python floor to 3.10 and switched the default Qt binding to PySide6. The same release reworked the viewer's data views: 3D scatter support, dedicated RGB(A) image views, the composite ImageView split into Plot2dView and ComplexImageView, and NXdata stacks displayed as images. 3.1.0 has since added asinh axis scaling, the twilight colormaps, and dark-theme icons.
Where it's heading
The project is doing a generational refresh of its GUI layer: modern Qt binding, modules broken out of the composite widgets that had accumulated responsibilities, and the theming work that a desktop application needs to look current. Underneath, the recurring fixes are about HDF5 behavior in real facility environments — file locking, NFS refresh, Windows display paths — which is where a synchrotron toolkit actually gets stressed. Feature growth is concentrated in silx view rather than the library API.
Prediction
Expect the 3.1.x line to keep filling in plotting options and theming, with the PySide6 default flushing out binding-specific bugs from downstream applications over the next few releases.

Recent moves

  1. 2d ago

    3.1.0: asinh axis scaling, twilight colormaps, dark-theme icons

    The first feature release on top of the 3.0 refresh: asinh axis scaling through the plot widget, matplotlib's twilight colormaps, a changeable X axis when viewing NXdata as curves, and icons reworked to survive a dark theme. A segfault on the HDF5 tree model under Python 3.13 and matplotlib 3.11.1 support are the notable fixes.

    View source ↗
  2. 3mo ago

    3.0.1: 2026/05/07

    A bug-fix release whose stated purpose is restoring the disabling of HDF5 file locking in silx view after 3.0.0 broke it — the kind of regression that only shows up on shared facility storage. Icon caching removes a tree performance issue.

    View source ↗
  3. 3mo ago

    3.0.0: PySide6 becomes the default Qt binding, Python 3.10 required

    ⚡ SPARK

    The generational release: PySide6 replaces the previous default Qt binding, Python 3.10 becomes the floor, and the viewer's data views are restructured — 3D scatter, dedicated RGB(A) views, and the composite ImageView split into Plot2dView and ComplexImageView. Everything since has been servicing this change rather than extending it.

    View source ↗
  4. 3mo ago

    3.0.0rc1: release candidate for the PySide6 migration

    The release candidate for 3.0.0, carrying essentially the same notes and crawled the same day as the final — the two entries describe one release, and the final is the one that counts. Useful only as evidence that the PySide6 switch and the data-view restructuring went through a candidate cycle first.

    View source ↗
  5. 1y ago

    2.2.2: 2025/04/07

    A patch on the 2.2 line: plot axis limits on the matplotlib backend, OpenGL backend axes, libhdf5 1.14.x support, and OpenCL context creation from an environment variable. Maintenance ahead of the 3.0 work.

    View source ↗
  6. 1y ago

    2.2.0b0: HSDS URL support and a multi-curve comparison window

    Adds HSDS URL support to silx.io.url, opening the viewer onto HDF5 served over the network rather than only local files, and a new window for displaying multiple curves together with drag-and-drop dataset selection. A Windows installer also starts being built and deployed from the release workflow.

    View source ↗