FOX/ObjCryst++  2022
ObjCryst++ Object-Oriented Crystallographic Library



Overview of the project

The aim of this project is to provide object-oriented tools for Crystallography. The focus of these tools is the analysis of diffraction data (mostly powder diffraction), with an emphasis on speed optimization for repetitive calculations (for global refinement methods such as simulated annealing, for example).

To have an overview of all available libraries, go to the Class Hierarchy. You are probably interested in the main Crystallographic classes, including:
Even if we intend to use this library mainly for the development of a global optimization program from powder diffraction, this library is programmed in a general way so that other applications can make use of it. The library was designed to be reusable, by adding new kind of experiments, new algorithms, new Scatterer type, new ScatteringPower,...
There are two main usage of the ObjCryst++ library today, and you are encouraged to start using those, unless you already know you want to use the C++ library:
  • Fox, 'Free Objects for Xtallography' is an application for Linux, macOS and windows which can be downloaded from GitHub, and can be used mainly to solve crystal structures from powder diffraction
  • pyobjcryst is the python module which can be used as an interface to a large part of the ObjCryst++ library: see the documentation and the github project), including example notebooks.
Design & implementation: Vincent Favre-Nicolin (,
This project was initiated in the laboratory of Crystallography of the University of Geneva (, and is part of the development of a global optimization program with Radovan Cerny (
This project has been supported by the Swiss National Science Foundation (#21-53847.98).
This project also makes use of some other programs or libraries. Most notable in this project is the cctbx library originally written by R. Grosse-Kunstleve (see License Information).