Free Objects for Xtallography


Fox Home Page


Tutorial PbSO4
Tutorial Cimetidine
Hints & tricks

Mailing List

Development & Helping
Compiling Fox
SF project page
Browse CVS


(also read the full ChangeLog)
  • december 2003: Fox version 1.6: this version gives users more control on the flexibility of a Molecule (flexible, rigid body and user-chosen torsion models). The 3D crystal view can now be exported to a POV-Ray file (example). Reflections are now labeled on the powder pattern view. A important bug which resulted in small (up to +/- 2 pixels) shifts of the peak positions in powder patterns has now been fixed (thanks to Michal Hušák for reporting this); this can improve significantly Rp and Rwp factor, but the use (by default) of 'integrated' indicators (Chi^2) made Fox relatively insensitive to this bug, except for low resolution data. Finally, Fox now uses the 2.4 and above versions of the wxWindows library, on both windows and linux.
  • july 2003: Fox version 1.5: this version now uses log(likelihood) as a criterion for convergence (i.e. Chi^2 in practice). A new Molecule object has been added, which supersedes the z-matrix approach: atoms can now be linked together using a set of bond lengths and bond angles restraints, and is therefore much more flexible. Convergence has increased roughly by a factor 2 for organic compounds. A basic CIF output is now available. 3D display now can show atom labels, and several Fourier maps from GSAS/EXPGUI can now be displayed simultaneously.
  • january 2003: Fox version 1.3: this version adds spherical scattering power (disordered fullerene), the option to use pseudo-crystallographic symmetry, and command-line options for Fox (e.g. to run without the GUI). It also removes a serious bug which lead to missing reflections for (face|body)-centered structures with a center of symmetry not at the origin (e.g. diamond). The ability to display fourier maps from GSAS/EXPGUI along the crystal structure has also been added (screenshot), thanks to Michael Y. Polyakov and Brian Toby (the fourier '.grd' files can be generated using forgrid which you can get from (precompiled binaries in the exe_{linux|sgi|win} directories).
  • 13th of november 2002: The Fox article (J. Appl. Cryst. 35, 734---743) has been published. You can download the pdf reprint, or get it from the IUCr journals web site: Copyright © International Union of Crystallography, J. Appl. Cryst. 35, 734---743)


The FOX program (for Linux and windows) was made for the ab initio crystal structure solution from diffraction data (mostly powder diffraction data). Its most interesting features for ab initio structure determination are:

  • a versatile description of the crystal contents: either isolated atoms , molecules described using a bond length, bond angles and dihedral angles, and polyhedra for inorganic compounds. You can describe your structure by using any combination of groups of atoms, using a chemist's or crystallographer knowledge about the connectivity in your sample to constrain possible solutions..
  • an automatic correction for special positions and shared atoms between polyhedra, suitable for global optimization algorithms.
  • the ability to use simultaneously multiple powder patterns (X-rays, neutrons), as well as single crystal data (e.g. extracted from a powder pattern)
  • smart global optimization algorithms which can get out of false minima.
  • a graphical interface with a 3D crystal structure view, with live updates during the optimization process.
So, if you:
  • have an unknown compound but with (approximately) known composition.
  • have a powder pattern (X-Ray or neutron or both), which you have already indexed (with the refined unit cell), and for which you have some idea of the possible spacegroup(s) (using systematic extinctions).
  • would like to solve the structure (i.e. find the atom -or group of atoms- positions, before refining them with another package).
Then Fox can help you.

This program can be used also for educational purposes, to show a 3D display of Crystal structures, and the associated powder pattern(s) (see how adding atoms, changing the lattice, or changing the spacegroup affects the powder spectrum and the 3D structure).

If you would also like to choose your own criterion and algorithm to solve the structure, then it will be even better : FOX is built on a very customizable and expandable library (ObjCryst++), which allows you to evaluate your Crystal structure following a combination of criteria: currently there are only Chi^2 and an Anti-bump cost function, but it would be very easy to write a new criterion using (say) interatomic distances (energy of the configuration, analysis of the coordination). This, with a versatile way to describe the unit cell's contents, is what makes the algorithms used interesting. For example you can combine several datasets (X-Ray, Neutron...) for the same structure,...


FOX was developped by Vincent Favre-Nicolin (,, in collaboration with Radovan Cerny ( at the Laboratory of Crystallography in Geneva, Switzerland (, with support from the Swiss National Science Foundation (, project #21-53847.98. The development still goes on as a personal research project after my move to the ESRF and now to the CEA and the University of Grenoble (France).

See the ObjCryst++ homepage ( for more details about the source code.

Note: This is a free, open-source project. If there is something that you would like to see in it, you can contribute to it by submitting bugs, new code, help improving the documentation.

Reference for Fox

The reference for Fox is: V.Favre-Nicolin and R. Cerny, J. Appl. Cryst. 35, 734---743,


FOX is available in precompiled form or as source code for windows (tested on 98, NT4 SP4, 2000, XP) and Linux. You can download from several sites:

For windows, download the file (precompiled), or the if you want to compile Fox yourself (gives you access to more recent versions, and the ability to help me !).

For Linux, download the Fox-date.tar.bz2 (source code).


  • For Linux:
    • You will need valid libraries and development files for OpenGL. You may require a specific library for your card (NVidia,...), the Mesa, Mesa-devel, Xfree-devel packages. You will also need to install the glut library (in Fox v1.5, this was not necessary but the new method does not work as expected on some graphic drivers... You can stick to the Fox v.1.5 method by removing the "-DHAVE_GLUT" and "-lglut" in the Fox/ObjCryst/rules.mak file). For all major distributions, these packages are included either in the default install or as an option.
    • First you need to also download and install the wxWindows for GTK+ shared libraries (you need the wxGTK, wxGTK-gl and wxGTK-devel). Starting with Fox 1.6, only wxWindows > 2.4.x are supported
      • With wxGTK-2.4.*, after the install you must do:
        • ln -s /usr/bin/wxgtk-2.4-config /usr/bin/wx-config, or ln -s /usr/bin/wxgtk2-2.4-config /usr/bin/wx-config, depending which version you have...
    • Then uncompress the Fox tar.bz2 archive. Then do make and (as root) make install. The install will put Fox in /usr/local/bin/Fox. (otherwise the compiled file is in Fox/src/ObjCryst/wxCryst/Fox)
    • NOTE: if Fox crashes when loading an example file, rebuild the wxGTK libraries from the src.rpm (rpm --rebuild) or the tar.gz (with opengl enabled). It (probably) means there is a conflict between your compiler and the one used to compile the RPM (lousy 2.96 compilers....).
  • For windows, unzip the file, which will also create a folder with the Fox program..
As always, send me an email at if you have any trouble with the installation.

Quick demonstration

As an easy demonstration (even for non-crystallographers!), you can launch Fox, then use the top menu File->Load and open the example file example/pbso4-joint.xml. This is a file showing the global optimization of a very simple and well-known structure, PbSO4 (lead sulfate). Then:

  • Click on the Crystal tab, and in the window, choose the menu Display->3D Display. This opens a window with the crystal structure. You can click& drag with the mouse to rotate the structure
  • Click on the Powder Diffraction tab, and for the two PowderPattern objects, choose the menu Pattern->Show Graph. This will show you the current observed (blue) and calculated (red) patterns.
  • Click on the Crystal tab, and choose Parameters->Randomize Structure (it would be too easy to start from the solution)
  • Click on the Global Optimization tab. Then choose Optimize->Run . This will launch the global optimization running. You will see the structure evolve, as well as the Cost functions (the two Rws in that case).

Mailing Lists

To be kept informed about new releases, you are encouraged to subscribe to the low-volume FOX mailing list at (the archives can be found at

If you intend to use the ObjCryst++ / Fox source code for your own projects, it is highly recommended to subscribe to the ObjCryst++ mailing list at, (the archives can be found at

Known Problems

  • In windows 95 and NT SP1 (not SP4), the 3D Crystal view (using OpenGL) can lead quickly to a crash when you rotate the structure. Solution: upgrade your version of windows (even better, switch to Linux).
  • Some users have reported crashes when opening the 3D view of the crystal structure. This was always with a video card of the Intel Extreme Graphics family. I have epxerimented a bit with such a video card, and it turns out other programs (not written by me) using OpenGL also crash (especially with winXP). The workaround is to decrease in window the level of hardware acceleration down to the point that no 3d (direct3D and OpenGL) is used.
  • Fow does not work correctly under Linux on multi-processor systems. The workaraound is to edit the structure using the gui, and then launch the optimization without the gui, using command-line options (see the main reference).
Note: If you have remarks about what could be done to improve the program (or the documentation), please send me an email.

Note: if the program encounters an error, it will sometime manage to save the complete environment in a file which should be found in the directory where you launched Fox (or in your home directory under Linux, or along the Fox.exe application under windows), named "ObjCryst-date-time.xml", which you can then reload.

License and legal information

The FOX Program is copyright (2000-2003) Vincent FAVRE-NICOLIN, (2000-2001) Radovan CERNY and the Université de Genève.

This program is free software; you can redistribute and/or modify the ObjCryst++ code under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Fox also uses other libraries (among which R. Grosse-Kunstleve library used to interpret spacegroup symbols). For a complete licensing information, please read .

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the detailed licensing information at .

Documentation © Vincent Favre-Nicolin , generated on 13 Dec 2003 by doxygen 1.2.18
This project is hosted on SourceForge and mirrored on CCP14 ( UK, Canadian Mirror, US Mirror)