ESCAPE
C++ / Python toolkit for X-ray and neutron scattering simulation and fitting.
Build models in Jupyter notebooks for reflectivity, HRXRD, SAS, and related applications. Free for non-commercial use. See our publication.
Why?
A complete cross-platform toolkit for scattering problems in science and metrology — from simulation to multi-dataset fitting.
How?
C++17 core (GCC, MSVC, Clang on Linux, Windows, and macOS) with Cython bindings for Jupyter notebooks and custom Python apps.
Who?
Built for scattering specialists: instrument scientists and lab leads. Shared notebooks also help less experienced users adopt working models.
What you can extract
From scattered intensity versus angle, energy, and polarization — at subnanometer resolution:
- interface diffusion and interface roughness
- layer thicknesses and scattering density profiles
- crystal lattice structure of each layer
- alloy concentrations and layer-by-layer magnetization
Core Modules
Define models with parameters and functors, fit several intensity models at once, and use stochastic or gradient optimizers plus a neural regressor for fast batch parameter estimates.
Scattering Modules
Materials, samples, and ready functors for specular reflectivity, polarized neutron reflectivity, high-resolution X-ray diffraction, small-angle scattering, and more.
Integrations
Jupyter notebooks are the default format for sharing and publishing models in our notebook repository. The same Python API also embeds into custom applications and environments.