1. Introduction

easyDiffraction is a scientific software for modelling and analysis of neutron diffraction data. We have just started to work on this project, so easyDiffraction is available as a prototype, covering classical 1D polarized and unpolarized neutron powder diffraction data collected at a constant wavelength.

1.1. What is easyDiffraction for?

  • easyDiffraction allows simulation of diffraction patterns based on a structural model and refinement of its parameters.
  • easyDiffraction is similar to crystallographic programs like FullProf, Jana, GSAS, ShelX, etc.
  • In contrast to the programs mentioned above easyDiffraction, is based on external crystallographic libraries, such as CrysPy in order to cover different functionality aspects within a single intuitive and user-friendly graphical interface. In near future we plan to add support for CrysFML, another crystallographic library.

1.2. easyDiffraction features


easyDiffraction works across operating systems. You can download precompiled binaries of the Installer for macOS, Windows and Linux (Ubuntu) from the main page, or get it from the Snap Store for or all major Linux distributions. Just install easyDiffraction on the platform of your choice and forget about Virtual Machines or Emulators.

Easy to use

Intuitive tabbed interface with built-in step-by-step user guides, and a clear workflow help speed up data modelling and analysis.

Everything is included

easyDiffraction is distributed as an all-in-one package and everything is already included. There is no need to set environment variables or install additional dependencies anymore. Just run the installer and with just a few clicks you are done.


easyDiffraction integrates existing crystallographic libraries, such as CrysPy to cover different functionality. In the near future, we plan to add support for another crystallographic library CrysFML. More libraries will be added depending on needs and resources available. You are encouraged to contribute additional functionality to easyDiffraction.

Below, you can see a diagram showing a general idea of the easyDiffraction project. Currently, we are working on the parts which are colored: Unified API to to communicate with CrysPy and GUI on top of that.

Various techniques

We have just started our work on easyDiffraction. So, its functionality is still very limited. We support classical 1D polarized and unpolarized neutron powder diffraction data collected at constant wavelength.

In future, we plan to extend easyDiffraction to cover the following fields:

  • Constant wavelengths and Time-of-Flight data,
  • Single-crystals and powders,
  • Neutrons and X-rays,
  • 1D and 2D data,
  • and more...

Want them to be implemented faster? Need a specific technique not listed above? Become part of the easyDiffraction community, contribute additional functionality and help improve the software for everyone.

Live update of calculations

In the data analysis process, easyDiffraction allows you to modify any refinable parameter manually or with a slider. Both the simulated pattern and the difference between experiment and calculation are automatically recalculated and updated in real time.

Human-readable syntax

Input/output files for easyDiffraction are written in STAR (Self-Defining Text Archival and Retrieval), a human-readable data format. The STAR syntax provides a way for simple, easy-to-comprehend, flexible and extensible data exchange (see, e.g., Hall 1991).

Where possible, we follow the syntax of CIF (Crystallographic Information File), see also Bernstein et al. 2016, which is a restricted derivative of STAR widely used in crystallography and specified by the International Union of Crystallography. However, our CIF files also contain additional blocks describing the instrument, etc.

Below you can find comparison between CIF/STAR and other popular data-serialization formats, such as YAML and JSON.