Current build No. 2013, released January 18, 2016

A software package to explore twin laws in non-merohedric twins and to analyze hybrid twins

Geminography - a mixed-origin term, from Latin gemini (twins), and Greek γραφια (writing) - is the term introduced by J.D.H. Donnay to indicate the branch of crystallography dealing with twinning. This term made its appearance in the literature in 1975, in an article in Japanese (Takeda, 1975), but it was only in 2003 that it began to be used in the English literature (Nespolo and Ferraris, 2003).

The program geminography aims at finding possible twin laws in non-merohedric twins. It takes in input the cell parameters and the indices of a (known or supposed) twin element (plane or axis), plus a few parameters described in the documentation, and looks for lattice elements quasi-perpendicular to the twin element, in order to find the possible twin lattice(s). It calculates the twin index and the obliquity and the (pseudo)-symmetry of the twin lattice(s) obtained. The peculiarity of this program, with respect to other software packages that analyse twinned crystals, is the systematic search for co-existing sublattices and the interpretation of twinned edifices as hybrid twins whenever this gives a better description of the lattice quasi-restoration.

The program geminography is not a black-box tool. A blind use may easily result in meaningless conclusions. The user is expected to be familiar with concepts like twin index and obliquity, sublattice, holohedry and merohedry, as well as the reticular classification of twins. A suitable introduction can be found at this address. You can download an electronic reprint of the article where the theory, the computation algorithm and some examples are presented and analyzed (330 Kb).

What are hybrid twins?

The degree of lattice (quasi)-restoration in a twin is inversely related to the twin index and the obliquity; a large part of known non-merohedric twins correspond to low obliquity and low twin index, the empiric limiting values being 6º for the obliquity and 6 for the twin index (Friedel, 1926). Twins that correspond to this criterion are called "Friedelian twins" (Nespolo and Ferraris, 2005).

A number of examples of non-Friedelian twins are known, which are hardly understandable on the basis of the classical reticular theory. Actually, many of them can again be rationalized in terms of the lattice (quasi)-restoration, provided the classical approach is extended to consider the coexistence of N quasi-restored sublattices. These concurrent sublattices correspond to the same twin law, are defined by different pairs (hkl)/[uvw], all based on the common twin element and differing for the quasi-perpendicular lattice element, and show different degrees of quasi-restoration. A twin where multiple concurrent sublattices correspond to the same twin element are called hybrid twins.


The program geminography runs under the MicrosoftTM WindowsTM operating system. It has compiled with Intel Parallel Studio XE 2016 under Microsoft visual Studio 2015 Community Edition; to run it you need Windows 7 Service Pack 1 or later versions of Microsoft Windows, as well as Visual C++ Redistributable for Visual Studio 2015. The graphic interface is written in python. The installer contains the executable (geminography.exe), the graphic interface (gui.exe), the user manual, one example of input file (that is read in when the graphic interface is run), and all the libraries needed to run the graphic interface. If you install the software in the default directory in drive C you need to launch it with administrative rights; alternatively, you can install on another disk or partition. The program runs by double-clicking the gui.exe file. If you use the geminography.exe file then graphic interface is bypassed: the program reads the file (details in the user manual).
Warning! You may need to turn off your antivirus during installation, and add the install directory in the list of exceptions of your antivirus!

Step 1: download and install Visual C++ Redistributable for Visual Studio 2015 from Microsoft website.

Step 2: download and install Redistributable libraries for Intel C++ Visual Fortran Composer XE for Windows from Intel Website. This is a zipped archive containing two installers, 64-bit and 32-bit version. Install the 32-bit version.

The software writes the output in a text file. If you install the software in a folder which needs administrative rights to access files like "Program Files (X86)", the program may not run correctly. Choose a user folder or partition instead.

Step 3: Download and install Geminography installer (4.4 Mb)

You can also download the electronic reprint (pdf - 330Kb).


Build numbers have nothing to do with the year. Builds 1xxx were only for internal development; builds 2xxx indicate release candidates; the first public build was No. 2005.

18 January 2016: build 2013 released.

7 June 2011: build 2012 released. Major update (build 2011 is an intermediate development build, not for public release).

3 February 2009: build 2010 released. Bug fix and improvement for the exploration of a set of possible twin elements over an interval of indices.

  1. Bug fix: results were sometimes printed without reduction of the twin element to coprime factors; only the printed indices were wrong, the results were correct.
  2. Added a check to avoid analyzing twice the same twin element during the (hkl) or [uvw] exploration.
  3. A few minor code inconsistencies fixed thanks to the new Fortran compiler.

8 July 2008: build 2009 released. One bug fix and two presentation improvements.

  1. Fixed a bug affecting the check for I-centring of the twin lattice.
  2. Added a transformation to avoid acute angles.
  3. Sublattices are now presented in the order of decreasing twin index

7 May 2008: build 2008 released. Bug fix: added a missing flag for i-TLS twinning in crystals with rhombohedral lattice

10 March 2008: build 2007 released. Added a check against input error in case orthorhombic crystals

4 March 2008: build 2006 released. Two bugs related to the numerical treatment have been fixed

  1. When the lowest-obliquity element is eliminated because it defines a too large cell, one or more elements which are within this cell but outside the smaller one remain in the list. In the new build they are correctly eliminated
  2. When the intermediate effective twin index is equal to or lower than the twin index of a component, in some cases the program does not stop calculation but keeps the result as final effective twin index. Fixed. Also, a further limit has been introduced: when the effective twin index is within 0.5 of the twin index of a component, the hybrid interpretation is withdrawn.

29 August 2006: build 2005 released.


Massimo Nespolo website - CRM2 laboratory website