Installation#

CRYSTALLine is on PyPI. It needs Python 3.11 or newer — the floor comes from pymatgen, not from CRYSTALLine itself.

It should be installed in an environment of its own rather than in the system Python. Either a conda environment or a virtual environment may be used; conda also provides the Python version, whereas a virtual environment uses the python already installed.

conda create --name crystal python=3.12
conda activate crystal
pip install CRYSTALLine
python -m venv ~/.venvs/crystal
source ~/.venvs/crystal/bin/activate    # Windows: ~\.venvs\crystal\Scripts\activate
pip install CRYSTALLine

Then start it:

crystalline

Any version from 3.11 onwards may be used, including 3.14; releases are made with 3.12.

Optional components#

The export of animations as MP4, MOV or WebM requires an encoder. GIF and numbered frames do not.

pip install CRYSTALLine[video]

Dependencies#

These are installed automatically if not already present:

Package

Why

PySide6-Essentials ≥ 6.5

the Qt GUI (Essentials, not the 847 MB metapackage)

pyvista ≥ 0.43, pyvistaqt ≥ 0.11.4, vtk ≥ 9.1

the 3D viewport

numpy ≥ 1.23, scipy ≥ 1.9

geometry, bonds, statistics

ase ≥ 3.23, pymatgen ≥ 2023.11.10, spglib ≥ 2.5

structures, symmetry, Brillouin zones

CRYSTALClear ≥ 0.2.16

reading CRYSTAL output and drawing the property plots

matplotlib ≥ 3.6, Pillow ≥ 9.0

plots and images

Checking the installation#

crystalline --check

reports the Python version, the dependencies and the versions installed, whether Qt can open a window and whether a VTK render window can be created, and states what is missing. It returns a non-zero exit status if an essential component failed, so that it can be used in a script.

Platform notes#

Linux. The system libraries required by Qt and VTK (libGL, libxkbcommon) are not always present. Under Wayland, VTK draws through XWayland and the program requests Qt’s xcb plugin; if QT_QPA_PLATFORM has been set to wayland, it must be unset. Ubuntu 24.04 also requires:

sudo apt install libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 \
  libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-xinerama0 \
  libxcb-xkb1 libxkbcommon-x11-0

macOS and Windows. No additional components are required. On Windows the crystalline command is a graphical entry point without a console; if it fails silently, python -m crystalline shows the error.

Troubleshooting describes what to do if the program does not start.

Installation from source#

git clone https://github.com/crystaldevs/CRYSTALLine.git
cd CRYSTALLine
pip install -e .
pytest            # the suite runs headless