π₯ Overview of the app at YouTube.
π If you like this application, please cite: Lebeda, Miroslav, et al. XRDlicious: an interactive web-based platform for online calculation of diffraction patterns and radial distribution functions from crystal structures. Applied Crystallography, 2025, 58.5.
- Compute powder X-ray (XRD) and neutron diffraction (ND) patterns from crystal structures
- Generate partial (PRDF) and total (RDF) radial distribution functions
- Import structures from:
CIFVASPLAMMPS (LMP)XYZ(with cell information)
- Search and import structures directly from:
- Materials Project (MP)
- MC3D
- Crystallography Open Database (COD)
- Modify structures directly in the browser:
- Change elements and occupancies
- Adjust lattice parameters
- Convert between primitive and conventional cells
- Introduce point defects
- Export structures to:
CIF,VASP,LMP,XYZ
- Convert between:
- Different x-axis representations
- File formats:
.ras,.xrdmlβ.xyCommon file formats (.ras, .xrdml β .xy)
π Try the application online here: XRDlicious
π For creation of supercells and point defects, please use the submodule here: Point defects
π Separated submodule for converting XRD data files between formats (.xrdml, .ras, .raw, .xy) and between different X/Y axis: Converter
π For (P)RDF calculations from LAMMPS or XYZ trajectories, please compile separated module locally here: (P)RDF from LAMMPS/XYZ
π For tutorials how to use the XRDlicious, please visit this site: implant.fs.cvut.cz/xrdlicious
For more computationally demanding calculations with more extensive data, please compile the code locally on your computer (follow the manual below). For planned features and modifications in the app, please see the Roadmap on the application website.
- Python 3.x (Tested 3.12)
- Console (For Windows, I recommend to use WSL2 (Windows Subsystem for Linux))
- Git (optional for downloading the code)
Open your terminal console and write the following commands (the bold text):
(Optional) Install Git:
sudo apt update
sudo apt install git
-
Download the XRDlicious code from GitHub (or download it manually without Git on the following link by clicking on 'Code' and 'Download ZIP', then extract the ZIP. With Git, it is automatically extracted):
git clone https://github.com/bracerino/xrdlicious.git -
Navigate to the downloaded project folder:
cd xrdlicious/ -
Create a Python virtual environment to prevent possible conflicts between packages:
python3 -m venv xrdlicious_env -
Activate the Python virtual environment (before activating, make sure you are inside the xrdlicious folder):
source xrdlicious_env/bin/activate -
Install all the necessary Python packages:
pip install -r requirements.txt -
Run the XRDlicious app (always before running it, make sure to activate its Python virtual environment (Step 4):
streamlit run app.py (or 'streamlit run prdf_app.py' for (P)RDF separated module) -
To update the application, write in the main folder: git pull
Python 3.12.3
- streamlit==1.45.1
- numpy==1.26.4
- matplotlib==3.10.3
- ase==3.25.0
- matminer==0.9.3
- pymatgen==2025.5.28
- py3Dmol==2.4.2
- plotly==6.1.2
- streamlit-plotly-events
- setuptools
- mp-api==0.45.3
- aflow==0.0.11
- pillow==11.2.1
- psutil==7.0.0
- Search interface for MP, AFLOW, and COD databases. Structures can be directly added to the application, or their CIF can be downloaded and they can be accessed on the original link.

- Visualize data, modify atomic elements, occupancies, and lattice parameters, download structures in CIF, VASP, LMP, XYZ (with lattice) formats

- Calculate theoretical powder XRD, ND patterns from uploaded structures or structures retrieved from MP, AFLOW, and COD databases. Upload experimental diffraction data (.xy format) and subtract their backgroud for comparison with theoretical patterns.

- Calculate (P)RDF from the trajectory file (.lammps or .xyz) at given frame sampling. Allows to plot average (P)RDF across the selected frames, or (P)RDF at individual frames with the animation showing its (P)RDF evolution over time. Requires separated local compilation due to the high computational demand.





