The programs and scripts in this repository require a C++11 compiler, the standard Python scientific stack (NumPy + SciPy) and Numba. Plotting requires Matplotlib and charu.
A bar-joint mechanism is a deformable assembly of freely-rotating joints connected by stiff bars. When the constraints in a mechanism cease to be linearly independent, singularities can appear in its shape space, which is the part of its configuration space after discarding rigid motions. The free-energy landscape of a mechanism at low temperatures is then dominated by the neighborhoods of points that correspond to these singularities.
This repository contains a set of programs to find the free-energy landscapes of bar-joint mechanisms using Monte Carlo methods. It also contains a set of scripts to numerically parameterize one-dimensional shape spaces. Also included are Mathematica notebooks to simplify some of the analytical calculations detailed in the paper.
The above animation illustrates the shape space of a four-bar linkage showing two modes of deformation (blue and red curves) and two singularities (black dots) corresponding to situations where the bars become collinear and support a state of self stress.
Licensed under the 3-clause BSD license. See the file LICENSE for more details.