Welcome to the Lattice graph designer’s documentation!

NOTE: Documentation is curently in development!!!

Lattice graph designer 1.0a1

PyPi status License Documentation Status travis-ci coveralls

Lattice graph designer is a tool which allows to visualize and create a lattice graph model using the intuitive GUI and interactive 3D drag-and-drop graph manipulation pane. It was primarily created for the ALPS project to deal with a lattice graph of the Heisenberg model defined in ALPS xml graph format. Support of the other formats and projects can be extended.

GUI is based on PyQt. Program is compatible with Python 2.7 or Python 3.3+ and PyQt4 4.6+ or PyQt5 5.2+.

alternate text


  • import and visualisation of the lattice graph saved in the ALPS compatible lattice graph xml format.
  • import the crystal structure providing the unit cell parameters, sites coordinates and the space group symmetry operations.
  • import the crystal structure from the CIF file.
  • export the lattice graph to the ALPS compatible xml file.
  • interactive 3D drag-and-drop graph manipulation pane based on matplotlib
  • manipulation edges (add, remove, change type) referring to the distance between vertices they connect.
  • xml code editor (highlighting, synchronization with manipulation pane)
  • exporting the figure of the lattice graph model.
  • animation manager allows to animate a 3D model and save the animation in mp4 or gif format.
  • preferences manager allows setting the visual theme of the lattice graph displayed on the manipulation pane.


  • Python 2.7 or 3.3+
  • PyQt4 4.6+ or PyQt5 5.2+ : PyQt4 is recommended.
  • NumPy
  • Matplotlib

Important note: Most dependencies listed above are installed automatically, however in some cases you might need to istall them separately (see next section).

Install PyQt4 or PyQt5

  • in case you use conda type: $ conda install pyqt=4 (or 5)
  • otherwise follow the links PyQt4 or PyQt5.

Install all other dependencies

$ pip install -r requirements.txt

or, incase you use conda

$ conda install --file requirements.txt

Installation and launching

This section explains how to install and launch the latest stable release of the Lattice graph designer in one of the cross-platform ways listed bellow. If you prefer testing the development version, please use the bootstrap script (see next section).

Installation using pip package manager from PyPI


Type in your command prompt:

$ pip install latticegraph_designer

Important note: This also installs all dependencies except PyQt4 or PyQt5. Those have to be installed separately after installing Python.

Installation from source

Note: This is temporary installation way untill the using of conda or pip is not implemented.

  • Download a source of the last stable package version.

  • Open the terminal and move to the package root directory.

  • In your command prompt type:

    $ python setup.py install

Launching the program

  • After completing the installation you can launch the program simply typping in your command prompt:

$ graphdesigner [pathToYourLatticeGraphFile.xml]

note:If pathToYourLatticeGraphFile.xml is not provided the program will load a default example. You can open a lattice graph file later.
  • Optionally you can lock a tool’s link on the launcher for quick access.

Running from source

The fastest way to run LatticeGraph designer is to follow this steps:

  1. Make sure that all dependencies are installed.
  2. Download a source of the last stable package version.
  3. Run $ python bootstrap.py from the package root directory.

You may want to do this for fixing bugs, adding the new features, learning how the tool works or just getting a taste of it.

Running unittest

After making any changes in the source code you can run unitittest to make sure that nothing is broken by typing in your command prompt:

$ python setup.py test

Note: In case ALPS library is installed unitittest also checks for ALPS compatibility of the exported xml lib file using ALPS printgraph tool.


About the feature extension or bugs report you can create the issue or feature request or feel free to contact me directly by e-mail:

Ivan Luchko - luchko.ivan@gmail.com