From Saleve
Jump to: navigation, search

In this page we present Saleve Applications successfully deployed and executed.

These application were developed with the help of:


Enumerating equilibrium topologies

Every cell is a non-empty class. Picture is downloaded from

This work[1]is built on a new approach of classifying convex 3D bodies (e.g. pebbles) based on the topology of their static equilibria[2]. An equilibrium point is a surface point on which the body is able to rest on a horizontal plane. An equilibrium point is called stable if the body returns into its original position after some small perturbation, but called unstable if after some small perturbation it will roll away from this point.

Two bodies belong into the same class if they have the same combination of the numbers of stable and unstable equilibrium points. For example, Gömböc has exactly one stable and one unstable equilibrium thus belongs to the class (1,1). It was proven that for every possible combination of stable and unstable equilibria there exists such a body, however it is unlikely to find a pebble to each class in Nature.

The surface of the body determines connections between equilibrium points and we define subclasses in every class based on the topology of these connections. Our first goal was to enumerate every possible subclass. Listing all these subclasses may deepen our understanding of the characteristics and time-evolution of natural shapes.

Our algorithm requires exponential computational resources in the number of equilibria. We mention as an example that limiting the number of equilibria N<=18 would yield a computational task that needs approximately 3 months on a common personal computer. Nevertheless to obtain practically useful results it seems this limit is sharp so needs to be reached. Our second goal is to develop a parallel grid application which is able to reach this limit in reasonable time.


Though the opensource accessory program Plantri[3]as well as its extension was written in pure C/C++ so it could be convenient to convert them into a Saleve Client. However it was even easier to implement the Client as a wrapper to the original application which executes the original application from saleve_main() so the original source code in not modified at all. Thus the client attaches the original binary application just as it would be an input file.

The classes fully enumerated


We discovered every possible equilibrium-topology with not more equilibria than 18. It was already proven[2]that there is at least one possible topology for every class (i, j), but now we have an estimation on the cardinalities of the classes as well.

We focus on specific geometric transformations perturbing the body only at the vicinity of an equilibrium, such that a body belonging to the class (i,j) is transformed to another one belonging to (i+1,j) or (i,j+1). These transformations are called Columbus expansions, referring to the story of Christopher Columbus who made an egg standing on its tip after hitting it to the table, supposedly creating a new stable equilibrium. Consequently Columbus expansions nominate the Gömböc for ancestor of all classes because each class (i,j) can be derived from (1,1) using these steps.

We drew two conclusions regarding the role of Columbus expansions:

  • bodies with only a few equilibrium points can be generated from the Gömböc using only Columbus expansions,
  • some body surfaces cannot be generated from any other body, e.g. some symmetric polyhedra such as the platonic solids.

Simulating the abrasion of pebbles

Some results of this research appeared in LSSC[4]. We applied the Saleve framework for a computational model for a particular problem in modeling abrasion of pebbles[5]. The final goal is to develop a three dimensional discrete model of the abrasion process. Even the experiences with the planar, two dimensional model showed that the parallel implementation of the code is needed to gain fine results. The model captures the abrasion process of one pebble by collisions of several impactors during time. The shape of the pebble is a convex polygon. We distinguish between two possible events:

  1. the impactor is much larger than the pebble (resulting a randomly chosen vertex of the polygon is chopped and replaced by a small edge.)
  2. the impactor is much smaller than the pebble (resulting a randomly chosen edge of the polygon is retreated parallel to itself.)

One of the key questions is the shape of a pebble after a long procedure of abrasion, i.e. a long sequence of events 1 or 2 with the probability p and (1−p). The initial shape of the pebbles is gained by discretising an ellipse into a polygon with 40 vertices. The elongation of the shape is given by r = Rmax / Rmin, where r denotes the initial flatness, Rmax and Rmin are the maximal and minimal distances between the centroid of the polygon and its perimeter. By the initial shape r and the parameter p we aim to investigate the outcome of the abrasion process.

Figures below illustrate the shape of a pebble in the beginning, after 100, 500, 1000, 1500 and 2000 steps.

K0.png K100.png
K500.png K1000.png K1500.png K2000.png



The original application was written in C++ and was shipped with Qt-frontend to examine the process for one specific parameter setting, p and r. The engine operating on the model was separated, and a command line, non-interactive application was created which could run a simulation and print its results. From the latter the Saleve Client was easily produced. The source code is available at the SVN repository


After a threshold in the number of collisions (z axis on figures) we regard a pebble to be a needle if at any step r became greater than 8. On the other hand for the final shape is considered to be a circle if r was close to 1. The output of the application is a shape category and the time needed to classify the pebble for every parameter vector (p, r): Figures show the bifurcation diagram and the number of steps required for the decision about the type of the abrasion process (needle or circle).


The color denotes the result of the classification. Red points denote pebbles became a needle, blue points correspond to circle final shapes. The green points denote those runs, where non of the limit states has been reached in 90000 steps of abrasion. The height is proportional to the time needed to classify a pebble.


  1. R. Kápolnai and G. Domokos. "Morphology classes of convex bodies based on static equilibria". In Networkshop, 2010, presentation in Hungarian
  2. 2.0 2.1 G. Domokos and P. Várkonyi. "Static equilibria of rigid bodies: dice, pebbles and the Poincaré-Hopf theorem". Journal of Nonlinear Science, 16:255–281, 2006.
  3. G. Brinkmann and B. D. McKay. "Fast generation of planar graphs". MATCH Commun. Math. Comput. Chem, 58:323–357, 2007.
  4. P. Dóbé, R. Kápolnai, A. Sipos, and I. Szeberényi. "Applying the improved saleve framework for modeling abrasion of pebbles". In Large-Scale Scientific Computing, volume 5910 of Lecture Notes in Computer Science, pages 467-474, Sozopol, Bulgaria, 2010. Springer.
  5. G. Domokos, A. A. Sipos, and P. L. Várkonyi. "Countinuous and discrete models for abrasion processes". Periodica Polytechnika, 2009.
Personal tools