SXM Viewer is a Python desktop application for browsing, analysing and visualising scanning probe microscopy (SPM) data. It reads Anfatec/Omicron data natively and Nanonis .sxm, .dat and .3ds files through a conversion adapter.
Full documentation is available at:
https://ex-libris.github.io/sxm_viewer/
Key pages:
- Installation: https://ex-libris.github.io/sxm_viewer/getting-started/installation/
- First Steps: https://ex-libris.github.io/sxm_viewer/getting-started/first-steps/
- Profiles and Measurements: https://ex-libris.github.io/sxm_viewer/image-analysis/profiles/
SXM Viewer provides an integrated environment for:
- Fast browsing of large SPM datasets
- Image analysis (profiles, angles, cropping, filtering)
- Spectroscopy visualization (traces, matrix scans, KPFM)
- Overlay tools (molecules, metadata, scale bars)
- Publication-ready figure composition (canvas)
- Session and collection management
git clone https://github.com/Ex-libris/sxm_viewer.git
cd sxm_viewer
conda create -n sxmviewer python=3.11
conda activate sxmviewer
cd .\scripts
python -m pip install -r .\requirements.txt
cd ..
python -m sxm_viewerAlternatively, install it as a package with python -m pip install . (add .[animation] for drift-animation export) and launch it with sxm-viewer.
See the full installation guide in the MkDocs site for the Windows installer helper and troubleshooting notes. The application is developed and tested on Windows.
See CHANGELOG.md.
If SXM Viewer contributes to work you publish, please cite it. Citation metadata is in CITATION.cff; GitHub's "Cite this repository" button generates APA and BibTeX from it. Each release is archived on Zenodo with its own DOI.
Mallada, B., Rauschenbach, S. SXM Viewer [Computer software]. https://github.com/Ex-libris/sxm_viewer
SXM Viewer is released under the MIT License (see LICENSE).
Some bundled files are under other licenses: the Nanonis reader nanonispy2 (MIT) and the force-deconvolution MATLAB scripts by Welker, Illek and Giessibl (CC BY 2.0). See THIRD_PARTY_NOTICES.md for details, the methods implemented and their references.
Parts of the code and documentation were written with the assistance of AI tools: Claude Code (Anthropic) and ChatGPT (OpenAI). All code was directed and reviewed by the author, and scientific methods were checked against the cited references and real instrument data. The author takes full responsibility for the software. CLAUDE.md holds the architecture and design notes used during development.
SXM Viewer is developed by Benjamin Mallada in the group of Prof. Stephan Rauschenbach, Department of Chemistry, University of Oxford.
This work was funded by the Biotechnology and Biological Sciences Research Council (BBSRC, UK Research and Innovation), grant BB/W017024/1.
Thanks to Olivier Durif, Alejandro Lynch Gonzalez and Michael Foster for code contributions.
SXM Viewer was inspired by LMAPper (L. M. A. Perdigão) and WSxM (Horcas et al., Rev. Sci. Instrum. 78, 013705 (2007)) and SpmImage Tycoon (A. Riss, J. Open Source Softw. 7, 4644 (2022), https://doi.org/10.21105/joss.04644). Anfatec/Omicron support follows the file structures defined by Anfatec Instruments AG.

