pypi badge DOI badge

WulffPack – a package for Wulff constructions

WulffPack is a Python package for making Wulff constructions, typically for finding equilibrium shapes of nanoparticles. WulffPack constructs both continuum models and atomistic structures for further modeling with, e.g., molecular dynamics or density functional theory.

from wulffpack import SingleCrystal
from import write
surface_energies = {(1, 1, 1): 1.0, (1, 0, 0): 1.2}
particle = SingleCrystal(surface_energies)
write('', particle)

WulffPack constructs the regular, single-crystalline Wulff shape as well as decahedra, icosahedra, and particles in contact with a flat surface (the Winterbottom construction). Any crystal symmetry can be handled. Resulting shapes are conveniently visualized with Matplotlib.

Three particles

Three equilibrium shapes created by WulffPack: truncated octahedron (left), truncated decahedron (middle), and truncated icosahedron (right). The figure was created with the code in this example.

WulffPack has been developed at the Department of Physics of Chalmers University of Technology in Gothenburg, Sweden. WulffPack and its development are hosted on gitlab. Bugs and feature requests are ideally submitted via the gitlab issue tracker. The development team can also be reached by email via

Wulff constructions in a web application

WulffPack provides the backbone of a web application in SHARC, in which Wulff constructions for cubic crystals can be created easily.

Indices and tables

Winterbottom construction visualized with Blender

A Winterbottom construction visualized with Blender.