pyobjcryst documentation

pyobjcryst - Python bindings to the ObjCryst++ Object-Oriented Crystallographic Library

Software version 2.2.6.
Last updated March 14, 2023.


pyobjcryst was written as part of the DANSE open-source project by Christopher Farrow, Pavol Juhás, and Simon J.L. Billinge. The sources are maintained as a part of the DiffPy-CMI complex modeling initiative at the Brookhaven National Laboratory. The underlying library ObjCryst++ was developed by V. Favre-Nicolin as part of the development of the Fox software.

Further developments including the ability to index and refine powder patterns, solve and display crystal structures, using the global optimisation and least squares algorithms (see the Example notebooks) are provided by Vincent Favre-Nicolin (ESRF).

For a complete list of contributors, see and


pyobjcryst and libobjcryst conda packages can be easily installed under Linux and macOS using channel conda-forge or diffpy channels, e.g.

conda install -c conda-forge libobjcryst pyobjcryst


conda install -c diffpy libobjcryst pyobjcryst

It is recommended to use the conda-forge channel which is updated more frequently than the diffpy one, unless you only use pyobjcryst through the DiffPy-CMI tools.

See the README file included with the distribution for more details.

Complete conda environment with optional GUI and jupyter dependencies

The fastest way to use pyobjcryst is to first install the Mamba-forge distribution (which is faster than traditional conda), and then you can directly create a new conda environment named pyobjcryst with all useful dependencies (including jupyter-lab, python 3.11..) using

mamba create -n pyobjcryst python=3.11 pyobjcryst matplotlib py3dmol jupyterlab ipympl multiprocess

(note: if you do not know mamba, it is a command equivalent to conda except much faster)

Then activate the environment and launch jupyter-lab using

conda activate pyobjcryst

Usage & notebooks

pyobjcryst can be used

The API documentation can be found in pyobjcryst API.

You can also read the documentation of the underlying ObjCryst++ library.

Table of contents