Changelog¶
(Dynamically synchronized from GitHub Releases)
v26.24.3 - 2026-06-01¶
Major Architectural Update & Performance Boosts¶
This release marks a fundamental milestone in the evolution of SPECTROview. At the heart of this update is the brand-new Vectorized Batch Fit (VBF) engine, delivering unprecedented fitting performance, stability, and precision for both hyperspectral map data and individual spectra.
๐ Key Highlights & Performance Boosts¶
-
Vectorized Preprocessing: The new
SpectraStoreandMapDatamodels store all spectroscopic and numerical data natively as contiguous NumPy arrays. This eliminates the overhead of legacy per-row instances and allows for fully vectorized preprocessing. -
Astounding Fit Speeds: Combined with the tensor-centric
SpectraStore, theVBF Engineprocesses all spectra simultaneously as 2D/3D tensors. Fitting a 2D map with several thousand pixels is now virtually instantaneous (up to 70ร faster than the previous version). Massive maps with tens of thousands of pixels are handled seamlessly on a standard CPU (tested on an Intel Core i5 8th Gen, 16GB RAM; no dedicated GPU required). -
Reduced Workspace Size & Faster Loading: The new architecture utilizes a highly optimized, ZIP-backed serialization format (NumPy
.npzarrays + JSON metadata). This reduces.maps,.spectra, and.graphsfile sizes by >50% and cuts workspace load times in half. -
Faster Application Startup: Through optimized library imports and core refactoring, application start-up time has been reduced by >60% (launching in under 4 seconds on a standard PC).
Intelligent Noise Filtering¶
The VBF Engine features native noise detection capabilities (the coef_noise threshold, adjustable via the Settings Panel):
-
Automatically detects pixel regions containing only baseline noise or substrate signals and filters them out of the active fit.
-
By skipping Levenberg-Marquardt (LM) iterations on pure noise, the optimizer avoids calculating "ghost peaks," prevents parameter cross-talk, stabilizes the fit, and produces much cleaner parameter maps without requiring post-processing.
Fig: (Left) Fitted without noise filtering (coef_noise = 0); the user must manually mask regions of pure noise or substrate signal. (Right) With noise filtering enabled (coef_noise > 0), pixels in the substrate (noise) region are automatically detected and ignored, resulting in a cleaner map and faster fit.
๐ Official documentation¶
An official documentation is now available at CEA-MetroCarac.github.io/SPECTROview.¶
Integrated Intuitive User Manual:¶
A completely revamped, highly intuitive user manual is now integrated directly into the application, featuring animated guides and workflows. An online version is also available here.
๐งฎ Quick Calculators¶
Accessible from the Menu Bar, users can now quickly calculate several experimental parameters on the fly, including laser spot size, depth of focus (DOF), penetration depth, laser power conversion, and unit conversions.
๐จ User Experience & Workflow Improvements¶
-
Graphs Workspace โ Smart Customize Dialog: The
Customize Dialognow intelligently and automatically switches contexts when navigating between plots. Users no longer need to manually open and close the dialog for each individual plot. -
Ergonomic Tweaks: Several minor UI/UX adjustments have been introduced for a smoother, more premium interaction experience.
๐ For Developers¶
- For users or developers interested in contributing to this open-source project or understanding its architecture, a detailed
Developer Guideis now available here.
v26.18.3 - 2026-04-26¶
๐ Bug Fixes¶
- Fixed a bug related to plotting multiple wafer maps when using automatically detected wafer slot numbers.
๐จ UI & Usability Improvements¶
-
Improved GUI responsiveness when selecting thousands of spectra.
-
Introduce full Dark Mode :
-
The
Spectra ViewerandMaps Viewerwidgets now also support Dark Mode, matching the overall application style when Dark Mode is enabled. -
User can also manually set the
Spectra ViewerandMaps Viewerwidgets to Light or Dark mode, independent of the application theme.
- Users can choose the display mode (Dark or Light) for figures copied to the clipboard, regardless of the current application theme.
- Moved the Graph Axis Limits section from from the right Panel into the
Customize Graph Dialog.
v26.17.1 - 2026-04-22¶
โจ New Features¶
- Added a vertical/horizontal slider to shift spectra along the X or Y axis for improved visual clarity.
- Added the ability to duplicate an existing graph, creating a new graph instance.
- Added support for time series (temporal data) in Renishaw
.wdffiles.
Time series files now open in the Spectra Workspace, with timestamps appended to the spectra names.
๐จ Improvements¶
-
Increased the height of the DataFrame list box for better usability.
-
Removed some toast notifications for certain actions.
-
Improved overall GUI ergonomics with minor interface adjustments.
๐ Bug Fixes¶
-
Fixed an issue in the DataFilter display where multiple filter expressions could overlap in the ListWidget (Graphs workspace).
-
Fixed a crash when applying an invalid filter expression to a DataFrame (Graphs workspace).
-
Fixed an issue where Stop Fitting did not work on macOS.
-
Fixed a
RuntimeWarning: divide by zerowhen fitting spectra with the Pseudo-Voigt function.
v26.9.6 - 2026-02-21¶
SPECTROview Release Notes Version 26.9.6¶
(This release notes includes updates from 26.8.1 versions released previously via PyPi)
๐ New Features & Enhancements¶
-
Universal Drag & Drop: Drag and drop any supported file types anywhere in the GUI to open them instantly (before user need to drag and drop files into the listbox).
-
Expanded File Format Support: Added full support for spectroscopic file formats .WDF (from Wire-Renishaw software) and .SPC (from Labspec6-HORIBA software), including comprehensive metadata extraction, which is displayed within the
MoreTab).
-
Intensity Normalization: Introduced a new tool to
normalize intensityfeature (via the TabMetadata). -
Graph Annotations: Add vertical lines, horizontal lines, and text annotations to graphs. Annotations are fully draggable, and double-clicking text opens a Customization Panel for quick editing.
- Spectra Export: Save spectral data directly to a
.txtfile(s) from within the Spectra Workspace.
๐จ UI & Usability Improvements¶
-
Interactive Legends:
-
Double-click on any Legend Box (including inside the
Spectra Workspace) to quickly open its settings or modify its label and color. -
Auto-Rescale: The
SpectraViewernow automatically rescales to best fit the data after cropping. -
UI Layout Updates:
-
Moved the
BestFitoption (to show or not thepeaksandbestfit curve) outside of the toolbar for quicker access. It is now placed next to the "Show Legend" button:
-
Minor visual tweaks, including a new icon for some buttons within
Spectra Workspace. -
Add Y-Axis Labeling: options: "Intensity (a.u.)" or "Intensity (a.u./s)"
-
Added quick access to the GitHub repository and a direct link to the latest release notes from the
menu bar::
๐ Bug Fixes¶
-
Fano Peak Shape (Bug #2): Fixed issues relating to parameter scaling and intensity representation. Corrections are now accurately reflected in the plot, the peak table, and the hover tooltip (
on_hovermethod). -
2D Map Alignment: improve 2Dmap visualization and interaction.
-
Fixed a bug to preserve
metadatawhen copy and pastefit-modelfrom one spectrum to another. -
Plot Update Logic:
-
Fixed a bug where clicking the "Update plot" button would snap a dragged legend box back to its original position.
-
Fixed an issue where changes to the Z-axis were not triggering property updates in the legend.
-
"Esc" Key Behavior: Fixed an issue where pressing the "Esc" key caused the plot (within MDI subwindows) to hide unexpectedly.
โ๏ธ Under the Hood¶
-
Fitspy Compatibility: Updated backend to support version 2026.2 of
fitspypackage (update pyproject.toml). -
Matplotlib : support lastest
matplotlibversion 3.10.8. -
Codebase Refactoring: Cleaned up code architecture by refactoring
customized_widgets.pyand migratingcustomize_legend_widgetinto theCustomize_graph_dialogmodule. -
Testing: Updated the
pytesttest suite to improve application stability and code coverage.
v26.6.1 - 2026-02-05¶
Note: This Release notes includes all changes and new features from versions v0.9.4 to v0.9.8 and from v26.1.1 to v26.5.1 previously released on PyPI.
Versioning Update¶
Starting with this release, we are adopting a new versioning format: YY.W.Z
-
YY- Year (last two digits) -
W- Week number of the year -
Z- Build number within that week
๐ What's New¶
Built-in User Manual¶
- Added a detailed User Manual (PDF format) built into the application, accessible via the Manual button in the top toolbar.
Graphs Workspace:¶
UI/UX Improvements¶
- Optimized GUI layout for the right sidebar:
- Rearranged GUI elements in the bottom toolbar for better user experience:
- Moved the Copy button from the bottom toolbar to individual plot MDI subwindows of each plot for better accesibility:
New Features¶
-
Log-scale option for both X and Y axes
-
Data loading support from Excel (single or multiple sheets) and CSV files
-
Refresh button
for
DataFrame widget: synchronize/reflect changes in Excel or CSV files without reloading
- Delete All button
(in the bottom toolbar) to remove all existing plots at once
- Multiple wafer plots: automatically detect available slots in the loaded dataset and display them dynamically in the bottom of the right-side panel.
-
Auto-selection for WaferPlot style: when WaferPlot style is selected, X and Y comboboxes are automatically configured, users only need to select the Z parameter
-
Customized legend dialog: click on the legend box to show the dialog to customize legend box properties (color, label, marker)
-
Autocomplete feature for DataFrame filter widget: type quickly and avoid mistyping column headers:
Bug Fixes¶
- Fixed several minor bugs related to mismatched colors in box and bar plots
Spectra and Maps Workspaces:¶
General Updates¶
- New GUI layout for Maps Workspace with improved user experience
-
TRPL data support
-
New peak shapes: Fano, Single Exponential, and Bi-Exponential Decay
-
Stop button added to progress bar to halt ongoing fitting processes when needed
SpectraViewer Widget¶
Customizable legend box of SpectraViewer: click on the legend box to show the dialog to customize legend box properties (color, label, marker)
New Option for Menu dropdown Options:
-
LineWidth: Adjust the width of spectral lines
-
Ratio: Adjust the ratio (
widthxheigh) of copied figure -
Additional X-axis labels:
-
Binding Energy (eV)
-
Emission Energy (eV)
-
Frequency (Hz)
-
2theta (ยฐ)
-
Time (ns)
-
Plot style option: select between
lineordotstyle for Raw spectrum plot:

MapViewer Widget¶
Multiple MapViewers:
- Additional MapViewers are now displayed as floating dialog windows. Users can open multiple MapViewers simultaneously to view and compare different parameters
Mask Features:
- Create masked 2D map plots by filtering based on desired conditions of plotted parameters or other parameters

Selection Modes:
- Added rectangle selection mode for 2D map plots (in addition to single point and multiple points selection)
MenuOptions Updates:
-
Moved Extract Profile and Remove Outlier features inside MapViewer MenuOptions
-
Display statistics values directly on wafer plots via
Show statscheckbox within MenuOptions (cf. figure below)

FitResults Tab¶
New Capabilities:
- Compute and add new columns to fit results table via mathematical operations
- CSV export support for best fit parameters (previously Excel-only)
Performance Improvements¶
- Optimized GUI performance and responsiveness across all workspaces
v0.9.3 - 2025-10-27¶
Wafer Plot Enhancements:
-
Added support to plot multiple wafer maps based on selected slot checkboxes.
-
Automatically display the
slot numberon the wafer map when aSlotfilter is active. -
Whenever the
waferplot style is selected, theXandYcomboxes are now automatically assigned. -
The
waferplot style (and correspondingXandYcolumns) is automatically selected when plotting.
Dataframe Filter Improvements:
-
Added ability to copy
filter expressionsdirectly from thefilter list. -
The selected filterโs text is now automatically reflected in the QLineEdit for easier editing.
v0.9.0 - 2025-10-11¶
Optimized GUI performance and responsiveness:
-
Spectrum now updates in real time when the user types new
peak_modelparameters in thePeakTable. -
Mouse interactions now simultaneously adjust the peak position (
x0) and peak intensiy (ampli) when dragging over the plot. -
Introduced a
SettingsPanelclass (QDialog) to gather all general settings in one place.
Bug Fixes:
-
Customized the
apply_modelmethod to retainxcorration_value,color, andlabelattributes ofSpectrumobject when applying a new model. -
Fixed a bug related to the legend colors for
boxandbarplots of Graphs Tab.
Code Cleanup and Refactoring:
-
Removed the
CommonUtilitiesclass. -
Revised and refactored the
FitModelManagerclass.
v0.8.7 - 2025-10-05¶
-
Optimized GUI performance and responsiveness.
-
Fixed minor bugs related to the "x range correction" features.
-
Update new color palette.
-
Code cleaning and refactoring.
v0.8.5 - 2025-09-08¶
-
Optimized GUI performance and responsiveness.
-
Fixed minor bugs.
-
Code cleaning and refactoring.
v0.8.0 - 2025-08-27¶
-
Improved "MapViewWidget" class.
-
Optimized GUI performance and responsiveness.
-
Fixed minor bugs.
v0.7.1 - 2025-07-04¶
-
Added support for converting WIRE 2D map format to a format compatible with SpectroView and LabSpec6.
-
Fixed minor bugs.
-
Optimized GUI performance and responsiveness.
v0.7.0 - 2025-07-03¶
-
Added 'peak_area' to the fitting results.
-
Fixed minor bugs.
-
Optimized the GUI.
v0.6.2 - 2025-06-27¶
-
Fixed minor bugs.
-
Improved GUI responsiveness and layout consistency.
v0.4.5 - 2025-02-10¶
New Features:¶
-
Customized Toolbar: The toolbar has been enhanced with an additional button for the `Normalization" feature and more view options, improving usability (Previously, these options appeared in a pop-up when right-clicking on the figure canvas.)
-
Normalization Feature: Users can now
normalizespectra either to the maximum intensity or to a user-specified X value via a QLineEdits intoolbar.

-
Complete the X axis Correction Feature by using Si-Reference peak (recording in the same experimental session with other mesures).
-
Copyonlybaselineorpeak_modelsfrom the selected spectrum, thenPasteto other spectra with oneclick.

- Support
waferplotdirectly in theMapsTab (previously only in theVizualizationTab) allowing user to directly view the fitted parameters after fitting.

Bug Fixes & Optimizations:¶
-
GUI adjustments for a more user-friendly experience.
-
Adjust DPI of spectra canvas within Class
SpectraViewWidget(from 90 to 80). -
Fixed various bugs related to the spectra view plot with new customized toolbar.
v0.3.2 - 2025-01-23¶
**Version v0.3.2 (23/01/2024)
New features: peak position correction using Si reference peak (520.7 cm-1).
v0.3.0 - 2024-09-27¶
**Version v0.3.0 (27/09/2024)¶
-
New Features:
-
x-range correction is now integrated in the Maps Tab.
-
Features related to 2Dmap processing:
-
Plot heatmap from
Area,Intensityor fitted parameters directly in Maps TAB. -
Auto scalefeature to filter out the outliers values of the heatmap. -
Adjust
x-rangand the heatmap color range via QRangSliders -
Plot a line profile (height profile) directly in the heatmap plot whenever 2 points are selected.
-
Extract data of the line profile, send them (data and plot) to Visualization TAB.
-
Copy the heatmap canvas in Clipboard.
-
-

-
Optimization:
-
Visualization tab: User can now modify/update the openned Excel file while it is opened.
-
Visualization tab: Dataframes will be compressed (gzip) before saving : update
save/load()method -
Maps tab: Reorganize the button, checkbox, comboxes of 2Dmap plot widget into a QToolbutton.
-
-
Bug Fixes:
-
Bug related to malfunction of the graph do not effectively deleted when a
sub_windowis closed. -
Fix bug arised when user delete or rename the default folder contaning all
fit_models. A pop up message showed up to tell user to redefine the default folder for locking forfit_models. -
Fix bug related to the noise correction not automatically applied : set
spectrum.baseline.noise=5by default.
-
Full Changelog: https://github.com/CEA-MetroCarac/SPECTROview/compare/v0.2.9...v0.3.0
v0.2.9 - 2024-09-24¶
**Version v0.2.9 (22/09/2024)¶
-
Reduce 'Maps' saved file size:
-
Implemented data compression using gzip.
-
Removed redundant x0 and y0 values from saved files. These can now be retrieved directly from the saved
self.map_dfusing thespectrum.fnam(i.e,map_name&coord). -
Updated the
spectrum_to_dictanddict_to_spectrummethods with anis_map=Falseargument to support this change in the Spectra tab.
-
-
Calibration of x-range for Spectrums TAB:
- Added new attributes
spectrum.is_correctedandspectrum.correction_valuefor to track the calibration state of thespectrumobject.
- Added new attributes
-
Optimization:
-
Disable of โtranslationโ of the labels of fit results to improuve the visibility of
df_fit_resutltsdataframe. โ Only the defaut prefix (m01) bypeak_labelsdefined by user. -
Refactored the
save_df_to_excelmethod for improved performance and maintainability. Fill color for Excel tables with different colors to increase the visibility.
-
-
Additional Features:
-
Fill DataFrame tables by different colors to increase the visibility.
-
Simplified df before displaying in GUI (for map_df)
-
Disabled color filling when viewing the โmap_dfโ to prevent performance issues (lag).
-
Implemented keyboard shortcuts for switching between tabs (Hold Ctrl + 1, 2, or 3).
-
-
Bug Fixes:
- Fixed an error related to the new attributes when saving old_saved_work files.
Full Changelog: https://github.com/CEA-MetroCarac/SPECTROview/commits/v0.2.9