A desktop workspace for materials-sample records, XRD processing, and thermal-conductivity plots.
简体中文 · GPL-3.0-only · Changelog
Version 1.1.0 adds one sample comparison entry point for XRD, XPS and thermal conductivity, saved-data overlays and exports, legacy data-directory discovery and selection, and backups before updating existing sample indexes. CPU/GPU preview selection is persisted. Optional NVIDIA CUDA/CuPy acceleration applies to large-curve extrema reduction; Tk rendering and scientific processing remain on CPU, with explicit fallback on GPU errors. The standard Windows download does not bundle CuPy. Install .[gpu] for source use or run exmaterial/build_gpu_windows.bat for an optional GPU build. Real CUDA hardware execution has not been validated. Follow CuPy's driver/runtime requirements.
- Creates material families and numbered samples, each with acquisition conditions and notes.
- Stores multi-temperature thermal measurements and calculates thermal conductivity from density, heat capacity, and diffusivity.
- Imports, converts, processes, plots, and compares XRD data in
2θanddcoordinates. - Drop exported XRD text files onto the main window to create one sample per file in the selected material; original filenames are recorded in sample notes. Drop onto the raw
dinput to importdcoordinates. - Supports processed-XRD normalization, smoothing, manual peak capture, local Gaussian adjustments, and independent plot viewing.
- Writes every sample's data and generated figures to a local
information/directory. - Checks stable GitHub releases in the background and supports verified in-app updates for the Windows executable.
For a ready-to-run Windows x64 executable, download ExMaterial 1.1.0. See the release notes for all changes. Versions 1.0.2 and later support in-app upgrading; versions 1.0.1 and earlier need one manual upgrade to gain in-app updating. Replace the EXE in your existing application folder and keep the sibling information data directory.
Source users receive manual update instructions instead of an inactive installer button: update a Git checkout with git pull, or download the new source archive if the app was installed from an archive. Background checks report manual updates in the status bar; Help → Check for updates opens the full release notes.
ExMaterial supports Python 3.10 or later on Windows. Create an environment, install the dependency, then start the desktop app:
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
python .\exmaterial\exmaterial_app.pyThe first run creates information/ beside the source folder. This directory holds your experimental records and is intentionally ignored by Git, so it cannot accidentally be published with the open-source code.
python -m pip install ".[build]"
.\exmaterial\build_windows.batThe executable is written to exmaterial\ExMaterial.exe. Keep the information/ directory beside the exmaterial/ directory when moving an existing workspace.
information/
└── <material name>/
├── samples.json
└── #<sample number>/
├── xrd_data.csv
├── xrd_2theta.jpg
├── xrd_d.jpg
├── processed_xrd_*.csv / *.jpg
├── manual_xrd_peaks.json
└── thermal_conductivity_temperature.jpg
See the Chinese user manual for detailed workflow instructions and units.
ExMaterial is released under the GNU General Public License v3.0 only (GPL-3.0-only). You may use and modify it; redistributed modified versions must remain GPLv3 and provide their corresponding source code. See LICENSE.
Bug reports, documentation improvements, and focused pull requests are welcome. Please read CONTRIBUTING.md first.
The current release is 1.1.0, including the following features.
XRD, XPS, and thermal transport are peer tabs with shared material/sample context.
XPS supports exported text spectra, energy shifts, range selection, linear background
subtraction, moving-average smoothing, normalization, signed area integration, and
CSV/JPG export. Raw input and processed results are stored together in an atomic,
sample-local xps_workspace.json (one scan per sample). Peak fitting, Shirley backgrounds,
and RSF quantification are not implemented. See the Chinese README for detailed semantics.
The CPU preview quality setting is persisted in information/app_settings.json.
Shared rendering coalesces resize events and caches peak-preserving previews without
reducing exported data. See docs/architecture.md for integrating future modules.
