1 Introduction

In the previous century, Fuller [9] coined the term tensegrity, a combination of ‘tension’ and ‘integrity’, to describe networks of rods and cables, such as those created by artist Kenneth Snelson, in which the tension of the cables and the compression in the rods combine to yield structural integrity to the whole. More generally, the word tensegrity is used to describe a variety of practical and abstract structures, e.g. bicycle tires and tents, whose rigidity follows from the balance of tension and compression, in the mathematical literature the stress, on the members.

Practically, structures exhibiting equilibrium stressability may be generated and analyzed using conventional techniques of structural engineering [19]. Theoretically, tensegrity is often considered as part of the study of geometric constraint systems, [2, 17]. The classical tensegrity model consists of a set of vertices V, two graphs, (VS) and (VC), the graph of struts and the graph of cables, together with a placement function \(\mathbf {p}:V \rightarrow \mathbb {R}^d\). One looks for a motion of the placed vertices such that the distances between pairs of vertices connected by struts do not fall below their initial values, and such that the distances between pairs of vertices connected by cables do not expand beyond their initial value. If no such motion exists, apart from the rigid motions of the space itself, the system is said to be rigid. A stress is a function \(s:S \cup C \rightarrow \mathbb {R}\), with \(s(t) \geqslant 0\) for all struts \(t \in S\) and \(s(c) \leqslant 0\) for all cables \(c \in C\). A stress is an equilibrium stress if for each vertex v

$$\begin{aligned} \sum _{(v,w) \in C \cup S}\!\!\! s((v,w)) (\mathbf {p}(v) - \mathbf {p}(w)) = \mathbf {0}. \end{aligned}$$

There are two avenues in which the existence of a proper, i.e. nowhere zero, equilibrium stress may allow one to establish structural integrity. A result of Roth and Whiteley [13] states that if a tensegrity has a proper equilibrium stress, and if the placement for \((V,C \,{\cup }\, S)\) is statically rigid as a bar and joint framework, then that tensegrity must be first order rigid and hence rigid. More delicately, if the proper equilibrium stress passes the second-order stress test of Connelley and Whiteley [3], then the tensegrity structure is second order rigid, hence rigid.

Our goal in this paper is to generalize such tensegrity structures as they appear in Roth and Whiteley [13] to higher multidimensional frameworks and show several different equilibrium stressability criteria. Our investigation was inspired by real world tensile structures which are supported by structural elements bearing compression forces (often used to span large areas). Such structures can be seen as physical realizations of multidimensional stressable frameworks. Typical examples are camping tents, in which the fabric bears tension and the poles and the ground the compression, or, in the large scale, roof structures like in the stadium in the Olympiapark in Munich. We can also think of the multilayer freeform structures in architecture [11] which are realized in static equilibrium. Also soap films as minimal surfaces represent particular smooth limits of frameworks with tensile stresses in equilibrium.

Another important aspect of proper equilibrium stresses is the connection between the existence of an equilibrium stress and the lifting of embedded graphs into higher dimensions, as provided by the theory of Maxwell–Cremona. It was understood by Lee, Ryshkov, Rybnikov, and some others that the connection between equilibrium stresses and lifts extends in certain cases to arbitrary CW-complexes M realized in any dimension d, also not necessarily embedded. Although the subject can be traced earlier (see [8, 20]), the first systematic study of multidimensional stresses, liftings and reciprocal diagrams was undertaken by Rybnikov in [14, 15].

In the present paper, we investigate structures which are polyhedral CW complexes where all faces in which forces appear are of the same dimension. This is the simplest practical case. We introduce d-frameworks and their equilibrium stresses, i.e. self-stresses, in a slightly broader way than it was done by Rybnikov (Sect. 2). We introduce face paths and stress transition along such face paths in d-frameworks in Sect. 3. We also give (Sect. 4) necessary and sufficient conditions for the equilibrium stressability of trivalent frameworks. This result appears as a generalization of equilibrium stressability criteria for classical tensegrities [7]. The conditions are equivalently expressed in terms of exact discrete multiplicative 1-forms, Cayley algebra, or, in terms of some surgeries introduced in Sect. 4.

In Sect. 5 we complete our treatment by linking our model with the already existing constructions of Rybnikov [14, 15]. We will explain how Rybnikov’s frameworks (R-frameworks) constitute a subclass of our d–frameworks introduced by Definition 2.1 and why the space of d- frameworks properly contains the space of R-frameworks, so our stressability results apply to his objects as well. All the examples in Sect. 5 are valid for both models.

2 Main definitions and constructions

Our model for self-stressable frameworks in this paper will be based on the following structure. Let \(D>d\geqslant 1\) be two integers. The term plane will refer to an affine subspace in \(\mathbb {R}^D\).

Definition 2.1

A d-framework  \(\mathscr {F}=(E,F,I,\mathbf {n})\) consists of E, a collection of \((d\,{-}\,1)\)-dimensional planes in \(\mathbb {R}^D\); F, a collection of d-dimensional planes in \(\mathbb {R}^D\); a subset \(I \subset \{(p,q) \,{\in }\, (E {\times }F) \,{|}\, p\,{\subset }\, q\}\); a function \(\mathbf {n}\) assigning to each pair (ef) with \(e\in E\) and \((e,f)\in I\), a unit vector \(\mathbf {n}(e,f)\) which is contained in f and which is normal to e. We call planes from F faces and planes from E edges. The set I is called the set of incidences.

A d-framework is called generic if, for every \(e\in E\), all the planes f with \((e,f)\in I\) are distinct.

Let \(\mathscr {F}=(E,F,I,\mathbf {n})\) be a d-framework. A stress s on \(\mathscr {F}\) is any function \(s:F\rightarrow \mathbb {R}\). A framework \(\mathscr {F}\) together with a stress s is said to be in equilibrium if for every \(e\in E\) we have

$$\begin{aligned} \sum _{(e,f)\in I}\!\! s(f)\mathbf {n}(e,f)=0. \end{aligned}$$

Such a stress is called an equilibrium stress, a self-stress or sometimes a prestress for \(\mathscr {F}\).

Definition 2.2

A d-framework is said to be self-stressable or a tensegrity if there exists a non-zero self-stress on it.

Example 2.3

The simplest non-trivial example here is the classical case of graphs in the plane (\(D=2\), \(d=1\)).

We say that a d-framework is trivalent if each element of E is incident (i.e., contained in a pair in I) to precisely three elements of F.

Example 2.4

Let \(d = 2\) and \(D = 3\). Consider a 2-framework whose edges, E, and faces, F, correspond to the edges and triangles of the graph \(K_5\), embedded in \(\mathbb {R}^3\). If four of the vertices, \(\{1,2,3,4\}\), of \(K_5\) are placed as vertices of a regular tetrahedron and the fifth one as their centroid, then the resulting 2-framework is generic in our sense. For each edge-face pair choose the normal to be a unit vector pointing into the interior of the face-triangle. Note that the chosen normals sum to the zero vector around the lines corresponding to edges \(\{ i,5\}\), so choosing equal stress on these interior triangles leaves those edges equilibrated. Then, it is easy to see that choosing stresses on the exterior and interior triangles in the ratio \(-\sqrt{6}/4\) yields an equilibrium stress.

In this example one may imagine the interior expanding triangles exerting an outward force balanced by the contracting “skin” of the exterior triangles.

Example 2.5

Again, let \(d = 2\) and \(D = 3\). We may create a different 2-framework based on the graph \(K_5\) in \(\mathbb {R}^3\) by keeping E as before, and associating the faces F to the \(K_4\) subgraphs of \(K_5\), with the usual incidence relation. Since any two \(K_4\)’s intersect in three edges, their face planes must be identical, and the five vertices of the embedded \(K_5\) must be coplanar.

Since the normal vectors all lie in the plane of the \(K_5\), it is no loss of generality to assume that the vertices lie on a regular pentagon, and it is quickly checked that only the zero stress satisfies equation (1).

Example 2.6

Let \(d = 2\) and \(D = 3\). Consider the vertices of a regular cube and set E to be the set of all lines joining a pair of non-antipodal vertices (see Fig. 1). The face planes F consist of all six planes containing the faces of the cube, together with the six planes containing antipodal pairs of cube edges, as well as the eight planes of the dual tetrahedra. Let incidences be induced by containment. Since each plane contains a polygon of edges supported by incident lines of the structure, we may take the normals to be inwardly pointing unit vectors. It is easy to check that the self-stresses on the three types of faces are in the ratio \(1\,{:}\,{-}\sqrt{2}\,{:}\,\sqrt{3}/4\).

Fig. 1
figure 1

A 3-framework based on the cube with three types of faces

Example 2.7

This example has two versions, both with \(d = 2\) and \(D = 3\). Consider the vertices of an octahedron, regularly embedded in \(\mathbb {R}^3\) (Fig. 2).

The set of 12 edge lines E lie along the edges of the octahedron, and the set F of 11 face planes will consist of those eight supporting triangles of the octahedron, together with the three planes which pass through four coplanar vertices. Let the incidences be all those induced by containment and, as before, let all normals be chosen inwardly pointing with respect to the triangle or square to which they belong. Then this is easily computed to be self-stressable. In fact, the self-stress is unique, since each each line is incident to three distinct planes.

As an alternative, we can take each of the three planes containing four vertices to have multiplicity 2, with each one incident to a different pair of opposite lines, and with the same choice of normals. This structure consisting of 12 lines and 14 planes is also a self-stressable framework.

Fig. 2
figure 2

Three face types: triangles, squares, or faces with just two edges

3 Main definitions of Cayley algebra

Let us conclude this introductory section with a few words about Cayley algebra. Cayley algebra is an algebra whose elements are affine subspaces of a given Euclidean space. Cayley algebra has two operations: the intersection and the sum.

$$\begin{aligned} L_1{\wedge }L_2&= L_1\cap L_2;\\ L_1{\vee }L_2&= \langle L_1,L_2\rangle , \end{aligned}$$

where \(\langle L_1,L_2\rangle \) is the plane spanned by \(L_1\) and \(L_2\); these two operations are sometimes referred to as meet and join operations.

4 Self-stressability of frameworks

From now on we study self-stressability of trivalent d-frameworks in \(\mathbb {R}^{d+1}\), namely we assume that \(D=d+1\).

4.1 Self-stressability of face-paths and face-cycles

Let us start with the following general definition.

4.1.1 Face-path and face-cycle

Let \(E = (e_1, \ldots , e_k)\) be a sequence of distinct \((d\,{-}\,1)\)-dimensional planes in \(\mathbb {R}^D\); \(F = (f_{0,1}, f_{1,2}, \ldots , f_{k,k+1})\) be a sequence of d-dimensional planes in \(\mathbb {R}^D\); \(\widehat{F} = (\hat{f}_{1}, \ldots , \hat{f}_k)\) be a sequence of d-dimensional planes in \(\mathbb {R}^D\). Then the collection \((E,F,\widehat{F})\) is said to be a face-path if for \(i=1,\ldots ,k\) we have

$$\begin{aligned} e_i\subset f_{i,i+1}, \quad e_i\subset f_{i-1,i}, \quad \hbox {and} \quad e_i\subset \hat{f}_{i}. \end{aligned}$$

For example, removal of two antipodal triangles of an octahedron leaves a face-cycle with six faces.

Denote the set of pairs defined by these inclusions by I. For a particular choice of normals \(\mathbf {n}\) we obtain a d-framework \(\mathscr {F} = (E,F\,{\cup }\,\widehat{F}, I, \mathbf {n})\) which is called a face-path d-framework, see Fig. 3. It is called a face-cycle d-framework if \(f_{0,1}=f_{k,k+1}\). In this case it is denoted by \(C(E,F,\widehat{F},\mathbf {n})\), see Fig. 4.

Fig. 3
figure 3

A face path contained in the framework described in Example 2.4 with \(f_{0,1}= \{1,2,4\}\), \(f_{1,2}= \{2,3,4\}\), \(f_{2,3}= \{3, 4, 5\}\), \(f_{3,4}= \{1,3,5\}\)

Fig. 4
figure 4

A face path contained in the framework described in Example 2.4, with labeling as before and \(f_{4,0}= \{1,2,5\}\)

4.1.2 Self-stressability of face-path d-frameworks

Proposition 3.1

Any generic face-path d-framework which contains no face-cycle has a one-dimensional space of self-stresses. All the stresses for all the planes of F and \(\widehat{F}\) are either simultaneously zero, or simultaneously non-zero.


Setting \(s(f_{0,1})=1\) we inductively define all stresses for all other planes using equation (1). Therefore a non-zero self-stress exists. By construction the obtained stress is non-zero at all planes of F and \(\widehat{F}\).

Once we know any of the stresses at one of the planes of F and \(\widehat{F}\), we reconstruct the remaining stresses uniquely using equation (1). Hence the space of stresses is at most one-dimensional. Therefore, all self-stresses are proportional to a self-stress that is non-zero at all planes of F and \(\widehat{F}\). \(\square \)

4.1.3 Edge-orientation transition

Suppose we have a face path whose edges are \(e_1, e_2, \ldots \), and we are given an orientation of \(e_i\) by declaring a frame spanning \(e_i\) as positive. We pass over this positive orientation on \(e_i\) to a positive orientation on \(e_{i+1}\) by requiring that the given frame of \(e_i\) together with \(\mathbf {n}(e_i,f_{i,i+1})\) and a new (chosen to be positive) frame of \(e_{i+1}\) together with \(\mathbf {n}(e_{i+1},f_{i,i+1})\) differ by an orientation reversing automorphism on \(f_{i,i+1}\). We call this the edge-orientation transition.

A face-cycle d-framework \(C(E,F, \widehat{F},\mathbf {n})\) is said to be edge-orientable if the edge-orientation transition around the cycle returns to the starting edge in its initial orientation. See Fig. 5 for an example of a face-cycle which is not edge-orientable.

Non-orientable face-cycles are a usual phenomenon in frameworks. Indeed, we see them even in small examples like Example 2.4. Figure 5 depicts such a face-cycle. Here the first and the last edges coincide, but are oppositely oriented.

Fig. 5
figure 5

A face-cycle contained in \(K_5\) which is not edge-orientable. For this particular example faces correspond to triangles, and we choose all the normals to point inward. Note that the edge \(e_0\) is present twice in the figure and its incarnations are identified as in a Möbius strip. The frame in \(e_0\) on the left is pointing from 2 to 3 whereas after a sequence of edge-orientation transitions, the frame on the same edge \(e_0\) on the right is reversed, i.e., it is pointing from 3 to 2

Note that the edge-orientability of a cycle depends neither on the choice of the first element \(e_1\in E\), nor the choice of direction in the cycle. We have the following proposition.

Proposition 3.2

A face-cycle d-framework \(C=C(E,F,\widehat{F},\mathbf {n})\) has the following properties:

  1. (i)

    Reversing simultaneously all the normals at a single \(e_i\in E\) (namely \(\mathbf {n}(e_i,f_{i-1,i})\), \(\mathbf {n}(e_i,f_{i,i+1})\), and \(\mathbf {n}(e_i,\hat{f}_{i})\)) does not change self-stressability or orientability of C.

  2. (ii)

    Reversing simultaneously the normals at \(f_{i,i+1}\in F\) (namely reversing \(\mathbf {n}(e_i,f_{i,i+1})\) and \(\mathbf {n}(e_{i+1},f_{i,i+1})\)) does not change the self-stressability or orientability of C.

  3. (iii)

    Reversing the normal \(\mathbf {n}(e_i,\hat{f}_{i})\) does not change the self-stressability or orientability of C.


In all the items we change altogether an even number of normals for all the faces in F. Therefore, orientability is preserved.

The change in (i) does not change the equations of self-stressability, so it preserves self-stressability. For (ii) and (iii) the change of the signs of stresses \(s(f_{i,i+1})\) and \(s(\hat{f}_i)\) respectively delivers the equivalence of the self-stressability conditions. \(\square \)

Fig. 6
figure 6

Self-stressed face-cycles of length 3. Left: An orientable face-cycle. Right: Reversing the normal \(\mathbf {n}(e_3, f_{2,3})\) yields a non-orientable face-cycle which is still self-stressable after replacing \(\hat{f}_3\) by \(\hat{f}'_3\)

4.1.4 Self-stressability of face-cycles of length 3

Let us consider a trivalent cycle \(C(E,F,\widehat{F},\mathbf {n})\) of length 3 with

$$\begin{aligned} F=\{f_{1,2},f_{2,3},f_{3,1}\},\quad \widehat{F}=\{\hat{f}_1, \hat{f}_2, \hat{f}_3\},\quad E=\{e_1,e_2,e_3\} \end{aligned}$$

(for a schematic sketch see Fig. 6). Create a new plane \(\hat{f}'_3\) by the following Cayley algebra algorithm (see Fig. 7):

  1. (i)

    \(g_1 = (e_1 {\vee }e_2) {\wedge }\hat{f}_3\),

  2. (ii)

    \(g_2 = f_{2, 3} {\wedge }\hat{f}_1\),

  3. (iii)

    \(g_3 = (g_1 {\vee }g_2) {\wedge }f_{3, 1}\),

  4. (iv)

    \(g_4 = (g_2 {\vee }e_1) {\wedge }(g_3 {\vee }e_2)\),

  5. (v)

    \(\hat{f}'_3 = e_3 {\vee }g_4\).

Fig. 7
figure 7

The plane \(\hat{f}'_3\) can be constructed using Cayley algebra since the two lines \(f_{2, 3}, f_{3, 1}\) separate the two lines \(\hat{f}_3, \hat{f}'_3\) harmonically

In this notation, the stressability conditions are given by the following.

Proposition 3.3

A generic face-cycle d-framework

$$\begin{aligned} C\bigl ((e_1,e_2,e_3), (f_{1,2},f_{2,3},f_{3,1}), (\hat{f}_{1}, \hat{f}_2, \hat{f}_3),\mathbf{n}\bigr ) \end{aligned}$$

is self-stressable if and only if

$$\begin{aligned} \begin{array}{l} \\ \dim (\hat{f}_1\cap \hat{f}_2\cap \hat{f}_3) = d - 1 \quad \mathrm{in\, case\, of\, edge\hbox {-}orientable\, }C \\ \hbox {and} \\ \dim (\hat{f}_1\cap \hat{f}_2\cap \hat{f}'_3) = d - 1 \quad \mathrm{in\, case\, of\, non\hbox {-}edge\hbox {-}orientable\, }C \end{array} \end{aligned}$$

where \(\hat{f}'_3\) is constructed as above in step (v) (see also Fig. 7).

In the proof we will use spherical frameworks, so let us continue with the following remark and definition.

Remark 3.4

Consider a two-dimensional sphere \(S^2\) and let G(P) be a mapping of a graph G to \(S^2\) such that edges are mapped to geodesics (i.e., the arcs of great circles) and vertices are mapped to their endpoints. Let us assign a stress for every edge of G(P). Then all the definitions of stressability, self-stressability, cycles, etc. may be literally translated to spherical frameworks.

Proof of Proposition 3.3 Let us first examine the case where \(d=1\) and \(D=2\), with stresses at all edges of the triangles equal to 1. The triangle in Fig. 8 (left) corresponds to an edge-oriented d-framework. In this case we have a classical definition of self-stressable framework (a simple bar-joint framework) and therefore \(\hat{f}_1\cap \hat{f}_2 \cap \hat{f}_3\) is not empty.

Note that this intersection is empty for the triangle in Fig. 8 (right), which corresponds to a non-edge-oriented choice of normals. The condition for non-edge-oriented self-streassable frameworks is more complicated as we will see below.

Let us consider a self-stressed trivalent cycle \(C(E,F,\widehat{F},\mathbf {n})\) of length 3 (for a schematic sketch see Fig. 6). Then let us change the direction of the normal \(\mathbf {n}(e_3, f_{2,3})\). Consequently, its orientability changes and the old stress for this new cycle is not a self-stress. However, by changing the d-plane \(\hat{f}_3\) to a new d-plane \(\hat{f}'_3\) we can resolve the stresses around \(e_3\) again to reobtain a self-stressed framework.

Let us consider the following two cases in the planar situation as depicted by Fig. 6. The classical self-stressable framework (Fig. 6), which corresponds to the orientable case, has the property that the lines \(\hat{f}_1, \hat{f}_2, \hat{f}_3\) meet in a point (see, e.g., [6]). Now changing the orientation of \(\mathbf{n}(e_3, f_{2,3})\) yields \(\hat{f}'_3\) as the new d-plane (see Fig. 6 right). From the parallelogram in Fig. 6 (right) we derive the condition for the non-orientable case.

Consider four straight lines of a line pencil. A pencil consists of all lines in a plane passing through a point. In projective geometry a pair of lines of a pencil is said to separate harmonically another pair of lines from the same pencil if their cross-ratio is equal to \(-1\) (see, e.g., [12]). Such a harmonic position is characterized also by a simple incidence relation that is depicted in Fig. 7 where the harmonic position is fulfilled by the pairs \((f_{2, 3}, f_{3, 1})\) and \((\hat{f}_3, \hat{f}'_3)\). Since this property is characterized by incidence relations of points and lines it is therefore expressible in terms of Cayley algebra.

Our next goal is to prove the statement for the case \(d=2\). We do this in the following three steps: In Step 1 we reformulate the problem to the stressability of a spherical cycle; Step 2 reduces that to self-stressability in the plane; Step 3 then corresponds to the planar case (\(d=1\)) above.

Step 1. Consider the point

$$\begin{aligned} v=f_{1,2}\cap f_{2,3}\cap f_{3,1} \end{aligned}$$

and let S be the unit sphere centered at v (if v is at “infinity” we can take a plane orthogonal to the three edges \(e_1, e_2, e_3\) instead of S). Let also \(C_1=S\cap C\): here we intersect all edges and faces of C with S, the normals are uniquely defined for C as they are orthogonal to \(e_1\), \(e_2\), and \(e_3\), respectively. It is clear that C is self-stressable if and only if \(C_1\) is self-stressable in the sphere S (since all the equilibrium conditions for edges remain the same).

Step 2. Let now \(C_2\) be the gnomic projection (i.e., the projection from the center or the sphere) of \(C_1\) to some 2-plane. By [17, Chapter 17] (for the original manuscript see [16]) cycle \(C_2\) is self-stressable if and only if \(C_1\) is self-stressable.

Step 3. Finally the self-stressability in the plane was studied above.

Next we describe how to reduce any dimension d to the 2-dimensional case. Let us consider a 3-plane \(\pi \) orthogonal to the \((d\,{-}\,2)\)-plane \(f_{1,2}\cap f_{2,3}\cap f_{3,1}\). Let \(\widehat{C}=\pi \cap C\) (here we intersect all edges and faces of C with \(\pi \), the normals are uniquely defined for \(\widehat{C}\) as they are orthogonal to \(f_{1,2}\cap f_{2,3}\cap f_{3,1}\)). It is clear that C is self-stressable if and only if \(\widehat{C}\) is self-stressable in \(\pi \) (since all the equilibrium conditions for edges remain the same). The case of \(\widehat{C}\) corresponds to \(d=2\) which it was studied above.

The non-edge-orientable case is reduced to the edge-orientable in the following way. Let us make our three-cycle orientable by changing the last normal \(n(e_3,f_3)\) (denote the resulting set of normals by \(\mathbf{n}'\)). In this case, in order to preserve the property of self-stressability condition at the edge \(e_3\), we should also change the sign of one of the coordinates for the plane \(\hat{f}_3\). The resulting plane is the plane \(\hat{f}_3'\), whose Cayley algebra expression is described above (see step (v)). Now the stressability of the original non-edge-orientable cycle is equivalent to the stressability of an edge-oriented cycle

$$\begin{aligned} C\bigl ((e_1,e_2,e_3), (f_{1,2},f_{2,3},f_{3,1}), (\hat{f}_{1}, \hat{f}_2, \hat{f}_3'),\mathbf{n}'\bigr ). \end{aligned}$$

This concludes the proof. \(\square \)

Fig. 8
figure 8

Orientable (left) and non-orientable (right) self-stressed d-frameworks

4.2 \(\mathbf{H} \)-surgeries

In this section we discuss H-surgeries and elementary surgery-flips on face-paths d-frameworks and face-cycle d-frameworks which preserve self-stressability in \(\mathbb {R}^{d+1}\). Such operations reduce the combinatorial complexity by simple and local operations which preserve the rigidity of a framework. In fact they are frequently used, for example, the “Delta-Y” operation replaces triangles by trivalent vertex stars (see, e.g., [2]).

Definition 3.5

Let \(1 \leqslant i\leqslant n\) be positive integers (\(n\geqslant 4\)), and let

$$\begin{aligned} C=\bigl ((e_1,\ldots ,e_n), (f_{0,1},f_{1,2},\ldots , f_{n,1}), (\hat{f}_{1},\ldots , \hat{f}_n),\mathbf {n}\bigr ) \end{aligned}$$

be a face-path (or a face-cycle if \(f_{n,1}=f_{0,1}\)) d-framework. Denote

$$\begin{aligned} \hat{f}'_i = \langle f_{i-1,i}\cap f_{i+1,i+2}, \hat{f}_i\cap \hat{f}_{i+1} \rangle . \end{aligned}$$

We say that the \(\mathrm{H}_i\)-surgery of C is the following face-path (face-cycle) d-framework (see Fig. 9):

$$\begin{aligned} \begin{array}{rcl} \mathrm{H}_i(C)\; =\; \bigl ((e_1,\ldots ,e_{i-1}, &{} f_{i-1,i}\cap f_{i+1,i+2}, &{} e_{i+2},\ldots , e_n) \\ \quad (f_{0,1},\ldots , f_{i-1,i}, &{}&{} f_{i+1,i+2},\ldots , f_{n,1}); \\ (\hat{f}_1,\ldots ,\hat{f}_{i-1}, &{} \hat{f}'_{i}, &{} \hat{f}_{i+2},\ldots , \hat{f}_n),\mathbf {n}'\bigr ). \end{array} \end{aligned}$$

The normals \(\mathbf {n}'\) coincide with the normals of \(\mathbf {n}\) for the same adjacent pairs. We have three extra normals in \(\mathbf {n}'\) to the new element in E:

$$\begin{aligned} \mathbf {n}'(f_{i-1,i}\cap f_{i,i+1}, f_{i-1,i}), \; \mathbf {n}'(f_{i-1,i}\cap f_{i,i+1}, f_{i,i+1}), \; \hbox {and}\; \mathbf {n}'(f_{i-1,i}\cap f_{i,i+1}, \hat{f}'_{i}). \end{aligned}$$

The first two are defined by the fact that the cycle:

$$\begin{aligned} \bigl ((e_i,f_{i-1,i}\cap f_{i,i+1},e_{i+1}), (f_{i-1,i},f_{i+1,i+2},f_{i,i+1}), (\hat{f}_i,\hat{f}'_i,\hat{f}_{i+1}), \mathbf {n}' \bigr ) \end{aligned}$$

of length 3 is edge-orientable. The direction of the third normal does not play any role here (and hence can be chosen arbitrarily).

Fig. 9
figure 9

An illustration of \({{\,\mathrm{H\Phi }\,}}_i\)-surgery; a consider \(f_{i-1,i}\), \(f_{i,i+1}\), \(f_{i+1,i+2}\) in the face path C, b intersect \(f_{i-1,i}\) with \(f_{i+1,i+2}\), c determine \(\hat{f}'_{i}\), lastly d delete \(\hat{f}_{i}\), \(f_{i,i+1}\), and \(\hat{f}_{i+1}\)

Alternatively, in terms of Cayley algebra \(\hat{f}'_i\) reads as

$$\begin{aligned} \hat{f}'_i=(f_{i-1,i}{\wedge }f_{i+1,i+2}){\vee }(\hat{f}_i{\wedge }\hat{f}_{i+1}). \end{aligned}$$

In the planar case we have precisely \(\mathrm{H}\)-surgeries on framed cycles (i.e., face-cycle 1-frameworks) that were used for the conditions of planar self-stressable frameworks (for further details see [6]).

In order to have a well-defined \(\mathrm{H}\)-surgery, one should consider several simple conditions on the elements of F and \(\widehat{F}\).

Definition 3.6

We say that an \(\mathrm{H}_i(C)\)-surgery is admissible if

  1. (i)

    the planes \(f_{i-1,i}\) and \(f_{i,i+1}\) do not coincide;

  2. (ii)

    the planes \(\hat{f}_i\) and \(\hat{f}_{i+1}\) do not coincide;

  3. (iii)

    the planes \(f_{i-1,i}{\wedge }f_{i,i+1}\) and \(\hat{f}_i{\wedge }\hat{f}_{i+1}\) do not coincide.

For an admissible \(\mathrm{H}_i(C)\)-surgery we have

$$\begin{aligned} \dim f_{i-1,i}\cap f_{i+1,i+2}&=d-1, \\ \dim \hat{f}'_i&=d, \\ \dim \hat{f}_{i}\cap \hat{f}_{i+1}&=d-1, \end{aligned}$$

where the last follows from Items (i) and (ii) above. Then by Item (iii) we have \(\dim \hat{f}'_i\geqslant d\). Since the four d-planes \(f_{i-1,i}\), \(f_{i+1,i+2}\), \(\hat{f}_{i}\), and \(\hat{f}_{i+1}\) share the affine subspace \(e_i \cap e_{i+1}\), which is \((d\,{-}\,2)\)-dimensional, we obtain (by the dimension formula)

$$\begin{aligned} \dim \hat{f}'_i&= \dim f_{i-1,i}\cap f_{i+1,i+2} + \dim \hat{f}_{i}\cap \hat{f}_{i+1} \\&\qquad \qquad \qquad \qquad \qquad - \dim (f_{i-1,i}{\wedge }f_{i+1,i+2})\cap (\hat{f}_i{\wedge }\hat{f}_{i+1}) \\&\leqslant (d - 1) + (d - 1) - (d - 2) = d, \end{aligned}$$

hence \(\dim \hat{f}'_i \leqslant d\) and therefore \(\dim \hat{f}'_i = d\).

Let us distinguish the following elementary surgery-flips.

Definition 3.7

An elementary surgery-flip is one of the following surgeries:

  • An admissible \(\mathrm{H}_i\)-surgery or its inverse.

  • Removing or adding consecutive duplicates at position i. Here we say that we have a duplicate at position i if

    $$\begin{aligned} e_i=e_{i+1}, \quad f_{i,i+1}=f_{i+1,i+2}, \quad \hbox {and} \quad \hat{f}_i=\hat{f}_{i+1}. \end{aligned}$$
  • Removing or adding a loop of length 2. Here we say that we have a simple loop of length 2 at position i if

    $$\begin{aligned} e_i=e_{i+2}, \quad f_{i,i+1}=f_{i+2,i+3}, \quad \hbox {and} \quad \hat{f}_i=\hat{f}_{i+2}. \end{aligned}$$

Proposition 3.8

Assuming that a surgery is admissible, a face-cycle d-framework C is self-stressable if and only if the face-cycle d-framework \(\mathrm{H}_i(C)\) is self-stressable.


Assume that C has a non-zero self-stress s. Let us show that \(\mathrm{H}_i(C)\) has a self-stress.

Consider the face-cycle d-framework

$$\begin{aligned} C_i=\bigl ((e_i,f_{i-1,i}\cap f_{i,i+1},e_{i+1}), (f_{i-1,i},f_{i+1,i+2},f_{i,i+1}), (\hat{f}_i,\hat{f}'_{i},\hat{f}_{i+1}), \mathbf {n} \bigr ), \end{aligned}$$


$$\begin{aligned} \hat{f}'_i = \bigl \langle f_{i-1,i}\cap f_{i,i+1}, \hat{f}_i\cap \hat{f}_{i+1} \bigr \rangle . \end{aligned}$$

and \(\mathbf {n}\) is constructed according to Definition 3.5. This face-cycle d-framework admits a self-stress by Proposition 3.3 since three d-planes of \((f_i,f'_{i},f_{i+1})\) intersect in a plane of dimension \(d-2\). Now let us add \(C_i\) to C taking the self-stress \(s_i\) which negates the stress at \(e_{i,i+1}\). Then the stresses at \(\hat{f}_i\) for C and \(C_i\) negate each other; and the stresses at \(f_{i-1,i}\) for C and \(C_i\) coincide. For the same reason the stresses at \(f_{i+1,i+2}\) for C and \(C_i\) coincide. Therefore, the constructed self-stress is in fact a non-zero self-stress on \(\mathrm{H}_i(C)\).

The same reasoning works for the converse statement. In fact adding the \(C_i\) to C provides an isomorphism between the space of self-stresses on C and the space of self-stresses on \(\mathrm{H}_i(C)\). \(\square \)

Remark 3.9

It is possible to describe one \(\mathrm{H}\)-surgery in terms of Cayley algebra. Consider a face-cycle d-framework C with admissible \(\mathrm{H}_i(C)\)-surgery. We have only one new plane \(\hat{f}'_i\) in this case, and its Cayley expression is

$$\begin{aligned} \hat{f}'_i=(f_{i-1,i}{\wedge }f_{i,i+1}){\vee }(e_i{\wedge }e_{i+1}). \end{aligned}$$

4.3 Stress transition and stress monodromy

We will now adapt to our setting the notion of “quality transfer” of Rybnikov [14]. Let us start with the following definition of path- genericity which is a relaxed version of genericity from before.

Definition 3.10

A face-path d-framework \((E,F,\widehat{F}, \mathbf {n})\) is said to be path-g-eneric if d-planes of F do not coincide with the adjacent d-planes of \(\widehat{F}\).

The difference to just generic d-frameworks is that in the above definition the adjacent d-planes of F are allowed to coincide.

Proposition 3.11

Any path-generic face-path d-framework which contains no face-cycle has a one-dimensional space of self-stresses. All the stresses for all the planes of F are either simultaneously zero, or simultaneously non-zero.


Setting stress \(s(f_{0,1})=1\) we inductively define all stresses for all other planes using equation (1). Therefore a non-zero self-stress exists. By construction the obtained stress function is non-zero at all planes of F.

Once we know any of the stresses at one of the planes \(f_{i,i+1}\), we reconstruct the remaining stresses uniquely using equation (1). Hence the space of stresses is at most one-dimensional. Therefore, all self-stresses are proportional to a self-stress that is non-zero at all planes of F. \(\square \)

Definition 3.12

Let \(\Gamma \) be a path-generic face-path d-framework with starting plane \(f_a\in F\) and ending plane \(f_{z}\in F\). Assign some stress s to the first plane. Due to genericity, it uniquely defines the stress on the second face. The stress on the second face uniquely defines the stress on the third face, and so on. So the stress on \(f_a\) uniquely defines the stress on \(f_z\). This is called the stress transition along the face path.

If \(f_a=f_z\), that is, we have a face-cycle, we arrive eventually at some stress \(s'\) assigned to \(f_a\) again. The ratio \(s(f_{a})/s(f_{z})\) is called the stress-monodromy along C. A stress monodromy of 1 is called trivial.

It is clear that:

Lemma 3.13

  1. 1.

    A path-generic face-cycle is self-stressable if and only if the stress monodromy is trivial.

  2. 2.

    The monodromy does not depend on the choice of the first face.

  3. 3.

    Reversal of the direction of the cycle takes monodromy m to 1/m.

  4. 4.

    Monodromy behaves multiplicatively with respect to homological addition: the monodromy of the homological sum is the product of monodromies.

4.4 Face-path equivalence

Let us now introduce the notion of equivalent face-path d-frameworks.

Definition 3.14

Two path-generic face-path (face-cycle) d-frameworks \(\Gamma _1\) and \(\Gamma _2\) starting from the plane \(f_a\) and ending at the plane \(f_z\) are equivalent if there exists a sequence of elementary surgery-flips taking \(\Gamma _1\) to \(\Gamma _2\).

It turns out that equivalent face-path d-frameworks have equivalent stress-transitions.

Proposition 3.15

The stress-transition of two path-generic equivalent face-path d-frameworks coincides.


It is enough to prove this statement for any elementary surgery-flip. In case of H-surgeries we must show that the face-path d-frameworks

$$\begin{aligned} C=\bigl ((e_1,e_2),(f_{0,1},f_{1,2},f_{2,3}), (\hat{f}_1, \hat{f}_2),N\bigr ), \end{aligned}$$


$$\begin{aligned} \mathrm{H}_1(C)=\bigl ((e_3),(f_{0,1} ,f_{2,3}), (\hat{f}_3), N'\bigr ) \end{aligned}$$

have the same stress-transition (see Fig. 10).

This is equivalent to the fact that the face-cycle d-framework

$$\begin{aligned} \bigl ((e_1,e_2,e_3),(f_{0,1},f_{1,2},f_{2,3}), (\hat{f}_1,\hat{f}_2,\hat{f}_3), \mathbf {n}''\bigr ) \end{aligned}$$

(where \(\mathbf {n}''\) is as in the cycle of Definition 3.5) has a unit stress-transition (i.e. trivial monodromy or, equivalently, is self-stressable).

By the construction of Definition 3.5 we get that this cycle is edge-orientable, and that the intersection

$$\begin{aligned} \hat{f}_1\cap \hat{f}_2\cap \hat{f}_3\ne \varnothing . \end{aligned}$$

Therefore, by Proposition 3.3 it is self-stressable.

The cases of removing duplicates or loops of length 2 are straightforward. \(\square \)

Fig. 10
figure 10

An elementary flip

4.5 Face-path d-frameworks in d-frameworks

In this subsection we briefly discuss face-path d-frameworks and face-cycle d-frameworks that are parts of a larger d-framework.

Definition 3.16

Let \(\mathscr {F}\) be a trivalent d-framework. Then for every (cyclic) sequence of adjacent d-planes \(\gamma \) we naturally associate a face-path d-framework (face-cycle d-framework) \(\Gamma ((E,F,\widehat{F}, \mathbf {n}),\gamma )\) with

  • F is the sequence of the planes spanned by the corresponding d-planes of \(\gamma \);

  • E is the sequence of the intersections of the d-planes of the above F;

  • \(\widehat{F}\) is the sequence of planes of \(\mathscr {F}\) that are adjacent to the planes of E and distinct to the faces already considered in F;

  • \(\mathbf {n}\) is the corresponding sequence of normals defined by the normals of \(\mathscr {F}\).

We say that a face-path d-framework (face-cycle d-framework) \(\Gamma ((E,F,\widehat{F}, \mathbf {n}),\gamma )\) is induced by \(\gamma \) on \(\mathscr {F}\).

Induced face-path and face-cycle d-frameworks have a natural homotopy relation, which is defined as follows.

Definition 3.17

  • Two induced face-path d-frameworks \(\Gamma _1\) and \(\Gamma _2\) for \(\mathscr {F}\) starting from the plane \(f_a\) and ending at the plane \(f_z\) are face-homotopic if there exists a sequence of elementary surgery-flips taking \(\Gamma _1\) to \(\Gamma _2\) and such that after each surgery-flip we have an induced face-path d-framework for \(\mathscr {F}\).

  • Two face-cycle d-frameworks \(\Gamma _1\) and \(\Gamma _2\) are face-homotopic if there exists a sequence of elementary surgery-flips taking \(\Gamma _1\) to \(\Gamma _2\) and such that after each surgery-flip we have an induced face-path d-framework for \(\mathscr {F}\).

Finally we formulate the following important property of face-homotopic face-path and face-cycle d-frameworks. Its proof directly follows from Proposition 3.15.

Proposition 3.18

Face-homotopic face-path (face-cycle) d-frameworks have the same stress-transition (stress-monodromy).

5 Geometric characterizations of self-stressability for trivalent d-frameworks

In this section we discuss the practical question of writing geometric conditions for cycles. We characterize self-stressable trivalent d-frameworks in terms of exact discrete multiplicative 1-forms and in terms of resolvable cycles. Before that we show that a trivalent d-framework is self-stressable if and only if every path and every loop is self-stressable.

Definition 4.1

A face-cycle d-framework is called a face-loop d-framework if it contains no repeating planes. A d-framework where any two faces are connected by a face-path is called face-connected.

Let us formulate the following general theorem.

Theorem 4.2

Consider a generic face-connected trivalent d-framework. Then the following three statements are equivalent.

  1. (i)

    \(\mathscr {F}\) has a non-zero self-stress (which is in fact non-zero at any d-plane).

  2. (ii)

    For every two d-planes \(f_a,f_z\) in \(\mathscr {F}\) the stress-transition does not depend on the choice of an induced face-path d-framework on \(\mathscr {F}\).

  3. (iii)

    Every induced face-loop d-framework on \(\mathscr {F}\) is self-stressable.


(ii) \(\Leftrightarrow \) (i): Item (i) tautologically implies Item (ii). Let us show that Item (ii) implies Item (i). Fix a starting face \(f_a\) and put a stress \(s(f_a)=1\) on it. Expand the stress to all the other faces. By assumption this can be done uniquely. Therefore, this stress is a self-stress. (Indeed, if we do not have the equilibrium condition at some plane e, then at the planes incident to e we have more than one possible stress-transition.)

(ii) \(\Rightarrow \) (iii): Indeed any simple face-cycle d-framework on \(\mathscr {F}\) can be considered as a path–generic face-path d-framework with \(f_a=f_z\). By condition of Items (ii) the stress-transition equals 1, and therefore this face-cycle d-framework is self-stressable. The last is equivalent to Item (iii).

(iii) \(\Rightarrow \) (ii): Let us use reductio ad absurdum. Suppose Item (iii) is true while Item (ii) is false. If Item (ii) is false then there exist at least two path-generic face-path d-frameworks with the same \(f_a\) and \(f_z\) where the stress-transitions fail to be the same. Now the union C of the first face-path d-framework and the inverse second is an induced face-cycle d-framework on G(M) with non-unit stress-transition. Let us split C into consecutive loops \(C_1,\ldots , C_k\). At least one of them should have a non-unit translation. Therefore, Item (iii) is false as well, a contradiction.

For completeness of the last proof we should add the following two observations regarding cycles of small length. Firstly, the stress- transition remains constant at planes that repeat successively two or more times. This happens due to genericity of \(\mathscr {F}\): there are zero contributions from \(\hat{f}_i\) in case if \(f_{i-1,i}=f_{i,i+1}\). And secondly, if it happens that \(f_{i-1,i}=f_{i+1,i+2}\) then we immediately have \(e_i=e_{i+1}\) and therefore again the stress-transitions at \(f_{i-1,i}\) and at \(f_{i+1,i+2}\) coincide. \(\square \)

5.1 Ratio condition for self-stressable multidimensional trivalent frameworks

In this section we characterize generic trivalent d-frameworks \(\mathscr {F}\) with respect to their self-stressability in terms of specific products of ratios. More precisely, we equip each d-framework with a so-called discrete multiplicative 1-form which turns out to be exact if and only if the d-framework is self-stressable. Let us start with the definition of discrete multiplicative 1-forms (see, e.g., [1]).

Definition 4.3

A real valued function \(q :\overrightarrow{E}(G) \rightarrow \mathbb {R}{\setminus }\{0\}\) (where \(\overrightarrow{E}(G)\) denotes the set of oriented edges of the graph G) is called a discrete multiplicative 1-form, if \(q(-a) = 1/q(a)\) for every \(a \in \overrightarrow{E}(G)\). It is called exact if for every cycle \(a_1, \ldots , a_k\) of directed edges the values of the 1-form multiply to 1, i.e.,

$$\begin{aligned} q(a_1) {\cdot }\cdots {\cdot }q(a_k) = 1. \end{aligned}$$

Now, as a next step we will equip any general trivalent d-framework with a discrete multiplicative 1-form q. However, we will not define q directly on the d-framework but on what we call its face graph. The notion “face graph” is based on the well-known notion “line graph” from classical graph theory. The vertices of the line graph are in a one-to-one correspondence with the edges of a given graph. The edges of the line graph connect two vertices if and only if the two respective edges of the given graph are emanating from the same vertex.

Definition 4.4

The face graph of a d-framework is a graph whose vertices are the d-dimensional planes and two d-dimensional planes are connected by an edge if they share a \((d\,{-}\,1)\)-dimensional plane.

Consequently, the edges of the face graph of \(\mathscr {F}\) can be identified with triples of successive \((d\,{-}\,1)\)-planes \(a_i\, {:}{=}\, (e_{i - 1}, e_i, e_{i + 1})\) (where \(e_i \in E\)). So let us now equip the face graph of \(\mathscr {F}\) with a discrete multiplicative 1-form. For an illustration see Fig. 11.

Fig. 11
figure 11

Illustration of some edges of the face graph in a face loop of a d-framework. The values of the discrete multiplicative 1-form \(q(a_i)\) (cf. equation (3)) is the affine ratio \(q(a_i) = (\mathbf {n}(e_i, f_{i - 1, i}) - \mathbf {r_i}) :(\mathbf {r_i} - \mathbf {n}(e_i, f_{i, i + 1}))\)

As our d-framework is trivalent the \((d\,{-}\,1)\)-plane \(e_i\) is contained in three d-planes \(f_{i - 1, i}, f_{i, i + 1}, \hat{f}_i\) hence the corresponding normals \(\mathbf {n}(e_i, f_{i - 1, i})\), \(\mathbf {n}(e_i, f_{i, i + 1})\), \(\mathbf {n}(e_i, \hat{f}_i)\) are linearly dependent, i.e., lie in a 2-plane. This together with the fact that the d-framework is generic implies that there are \(\lambda _{i - 1, i}, \lambda _{i, i + 1}, \hat{\lambda }_i \in \mathbb {R}\setminus \{0\}\) such that

$$\begin{aligned} \lambda _{i - 1, i} \mathbf {n}(e_i, f_{i - 1, i}) + \lambda _{i, i + 1} \mathbf {n}(e_i, f_{i, i + 1}) + \hat{\lambda }_i \mathbf {n}(e_i, \hat{f}_i) = 0. \end{aligned}$$

Now we are in position to define our discrete multiplicative 1-form on the oriented face graph by

$$\begin{aligned} q(a_i) = q(e_{i - 1}, e_i, e_{i + 1}) \,{:}{=}\, \frac{\lambda _{i, i + 1}}{\lambda _{i - 1, i}}, \end{aligned}$$

since clearly \(q(-a_i) = 1/q(a_i)\) is fulfilled. The geometric meaning of \(q(a_i)\) is the following (cf. Fig. 11 right). Denote by \(\mathbf {r_i}\) the intersection point of the straight line with direction \(\mathbf {n}(e_i, \hat{f}_i)\) and intersect it with the line through \(\mathbf {n}(e_i, f_{i - 1, i})\) and \(\mathbf {n}(e_i, f_{i, i + 1})\). A simple computation shows

$$\begin{aligned} \mathbf {r_i} = \frac{\lambda _{i - 1, i}}{\lambda _{i - 1, i} + \lambda _{i, i + 1}}\, \mathbf {n}(e_i, f_{i - 1, i}) + \frac{\lambda _{i, i + 1}}{\lambda _{i - 1, i} + \lambda _{i, i + 1}}\, \mathbf {n}(e_i, f_{i, i + 1}). \end{aligned}$$

Thus \(q(a_i)\) is the affine ratio of the three points \(\mathbf {n}(e_i, f_{i - 1, i}), \mathbf {r_i}, \mathbf {n}(e_i, f_{i, i + 1})\), i.e., \(q(a_i) = (\mathbf {n}(e_i, f_{i - 1, i}) - \mathbf {r_i}) \,{:}\, (\mathbf {r_i} - \mathbf {n}(e_i, f_{i, i + 1}))\).

With that definition of a discrete multiplicative 1-form we can now characterize self-stressable d-frameworks.

Theorem 4.5

A generic trivalent d-framework is self-stressable if and only if the discrete multiplicative 1-form defined by (3) is exact.


Suppose the d-framework has a self-stress s. Therefore equation (1) implies

$$\begin{aligned} s(f_{i - 1, i}) \,\mathbf {n}(e_i, f_{i - 1, i}) + s(f_{i, i + 1}) \,\mathbf {n}(e_i, f_{i, i + 1}) + s(\hat{f}) \,\mathbf {n}(e_i, \hat{f}) = 0. \end{aligned}$$

Comparison with equation (2) implies that the coefficients in both equations are just a multiple of each other, i.e.,

$$\begin{aligned} (s(f_{i - 1, i}), s(f_{i, i + 1}), s(\hat{f})) = \mu (\lambda _{i - 1, i}, \lambda _{i, i + 1}, \hat{\lambda }). \end{aligned}$$

Consequently, the value of the discrete multiplicative 1-form is the ratio of neighboring stresses:

$$\begin{aligned} q(a_i) = \frac{\lambda _{i, i + 1}}{\lambda _{i - 1, i}} = \frac{s(f_{i, i + 1})}{s(f_{i - 1, i})}. \end{aligned}$$

Therefore it is easy to see that the product of values \(q(a_i)\) along any closed loop in the face graph multiplies to 1:

$$\begin{aligned} q(a_1) \cdot \ldots \cdot q(a_k) = \frac{s(f_{1, 2})}{s(f_{k, 1})} \frac{s(f_{2, 3})}{s(f_{1, 2})} \cdot \ldots \cdot \frac{s(f_{k - 1, k})}{s(f_{k - 2, k - 1})} \frac{s(f_{k, 1})}{s(f_{k - 1, k})} = 1. \end{aligned}$$

Now conversely, let us assume that the discrete multiplicative 1-form q is exact. By Theorem 4.2 it is sufficient to show that each loop of the form \(e_1, \ldots , e_k\) of \((d \,{-}\, 1)\)-planes is self-stressable. Choose an arbitrary stress \(s(f_{1, 2}) \in \mathbb {R}{\setminus }\{0\}\) for the first d-plane. Equation (1) and the d-framework being generic then uniquely determines the stresses of the two other d-planes incident to \(e_1\), that is, \(s(f_{k, 1})\) and \(s(\hat{f}_1)\). Continuing, determining stresses this way defines all stresses along the loop including the last stress that we now denote by \(\tilde{s}(f_{k, 1})\) because it was defined before. However, the exactness of q gives

$$\begin{aligned} 1&= q(a_1) \cdot \ldots \cdot q(a_k) = \frac{\lambda _{1, 2}}{\lambda _{k, 1}} \frac{\lambda _{2, 3}}{\lambda _{1, 2}} \cdot \ldots \cdot \frac{\lambda _{k - 1, k}}{\lambda _{k - 2, k - 1}} \frac{\lambda _{k, 1}}{\lambda _{k - 1, k}} \\&= \frac{s(f_{1, 2})}{s(f_{k, 1})} \frac{s(f_{2, 3})}{s(f_{1, 2})} \cdot \ldots \cdot \frac{s(f_{k - 1, k})}{s(f_{k - 2, k - 1})} \frac{\tilde{s}(f_{k, 1})}{s(f_{k - 1, k})} = \frac{\tilde{s}(f_{k, 1})}{s(f_{k, 1})}, \end{aligned}$$

so \(\tilde{s}(f_{k, 1}) = s(f_{k, 1})\). Consequently, we can consistently define a non-zero stress. \(\square \)

5.2 Cayley algebra conditions

Let us start with the following important definition.

Definition 4.6

  • A face-cycle d-framework of length 3 is in general position if all six planes in the sequences F and \(\widehat{F}\) are pairwise distinct.

  • A face-cycle d-framework is resolvable if there exists a sequence of \(\mathrm{H}\)-surgeries transforming it to a face-cycle d-framework of length 3 in general position.

  • A d-framework is resolvable if all its simple induced face-cycle d-frameworks are resolvable.

We continue with the following definition about the Cayley algebra condition for a single face-cycle resolvable d-framework.

Definition 4.7

Consider a resolvable face-cycle d-framework

$$\begin{aligned} C=(E,F,\widehat{F}, \mathbf {n}) \end{aligned}$$

and any sequence of \(\mathrm{H}\)-surgeries transforming it to a face-cycle d-framework

$$\begin{aligned} C'\! =(E'\!, F'\!,\widehat{F}'\!, \mathbf {n}') \end{aligned}$$

of length 3 in general position.

  • Let us write all elements of \(F'\) and \(\widehat{F}'\) in \(C'\) as Cayley algebra expressions of the elements of F and \(\widehat{F}\) in C. The resulting expressions are compositions of expressions of Remark 3.9.

  • Finally, we use the dimension condition of Proposition 3.3 for \(C'\) to determine if \(C'\) is stressable or not.

The composition of the above two items gives an existence condition for nonzero self-stresses on C. We call this condition a Cayley algebra geometric condition for C to admit a non-zero self-stress.

Note that one can write distinct Cayley algebra geometric conditions for C using different sequences of \(\mathrm{H}\)-surgeries transforming C to a face-cycle d-framework of length 3 in general position. As is clear from the above definition, the Cayley algebra geometric conditions detect self-stressability on cycles. So we may use algebra to express self-stressability for a general trivalent d-framework. Namely we have the following theorem.

Theorem 4.8

Let \(\mathscr {F}\) be a trivalent resolvable d-framework and let further \(C_1,\ldots , C_n\) be all pairwise non-face-homotopic face-loop d-frameworks on \(\mathscr {F}\). Then \(\mathscr {F}\) has a self-stress if and only if it fulfills Cayley algebra geometric conditions for cycles \(C_1,\ldots , C_n\) as in Definition 4.7.


First of all the self-stressability of \(C_1,\ldots , C_n\) is equivalent to self-stressability of all face-loops on \(\mathscr {F}\). It follows directly from definition of face-homotopic paths. Hence by Theorem 4.2 the self-stressability of all \(C_1,\ldots , C_n\) is equivalent to self-stressability of \(\mathscr {F}\) itself.

Finally the geometric conditions for face-loop d-frameworks \(C_i\), \(i=1,\ldots , n\), are described in Definition 4.7. \(\square \)

Corollary 4.9

Each realization of \(K_5\) in \(\mathbb {R}^3\) is self-stressable. Here we mean a realization of a 2-framework associated with \(K_5\), in the spirit of Example 2.4. Namely, the edges are all the edges of \(K_5\), and faces are all the associated triangles.

Indeed, each face-loop in \(K_5\) is face-homotopic to a face-loop of length three. For them, the stressability condition is automatic. Another argument of stressability of \(K_5\) will appear later in Remark 5.11 as a consequence of Theorem 5.10.

6 R-frameworks and their self-stressability. Examples

Now we turn to an alternative notion of stressable frameworks, which is borrowed from Rybnikov’s papers [14, 15]. It represents a special case of Definition 2.1, as we will show in Proposition 5.8. The main differences between our definition of d-frameworks (Definition 2.1) and Rybnikov’s setting (Definitions 5.35.6, and 5.7) are the following:

  • In Rybnikov’s setting the faces of a framework are represented by some polytopes (possibly non-convex and self-intersecting), whereas in our model (Definition 2.1) faces are affine planes. The polytopes of a Rybnikov-framework define affine planes as their affine hulls, but not vice versa. So whenever we have a Rybnikov-framework, we automatically have a framework in the sense of Definition 2.1.

  • In Rybnikov’s setting the choice of normal vectors \(\mathbf {n}\) is dictated by the R-framework, whereas in Definition 2.1 the collection of normal vectors \(\mathbf {n}\) can be chosen without any restrictions.

6.1 R-frameworks

Informally, R-frameworks are PL (piecewise linear) realizations of CW-complexes in \(\mathbb {R}^{d+1}\). To make this precise, let us start with a reminder about CW-complexes.

A finite CW-complex is constructed inductively by defining its skeleta (for details see, e.g., [5]). The zero skeleton \({{\,\mathrm{\textit{sk}}\,}}_0\) is a finite set of points called vertices. By induction we construct \({{\,\mathrm{\textit{sk}}\,}}_k\) from a given \((k{-}1)\)-skeleton \({{\,\mathrm{\textit{sk}}\,}}_{k-1}\), by attaching a finite collection of closed k-balls \(B_i\) (called cells) by some continuous mappings \(\phi _i:\partial B_i \rightarrow {{\,\mathrm{\textit{sk}}\,}}_{k-1}\). The images of \(B_i\) in the complex are called closed cells.

Definition 5.1

A regular CW-complex is a CW-complex such that

  1. (i)

    For each k-cell \(B_i\), the mapping \(\phi _i \) is a homeomorphism between \(\partial B_i\) and a subcomplex of the skeleton \({{\,\mathrm{\textit{sk}}\,}}_{k-1}\).

  2. (ii)

    The intersection of two closed cells is either empty or some single closed cell of this CW-complex.

Let M be a regular finite CW-complex with no cells of dimension greater than d. Its faces of dimension d will be called d-faces. The \((d\,{-}\,1)\)-faces are called the d-edges. The \((d\,{-}\,2)\)-faces are called the d-vertices.

Example 5.2

Let \(\overline{M}\) be a regular finite CW-complex whose supportFootnote 1\(|\overline{M}|\) is a connected \((d{+}1)\)-manifold, either closed or with boundary. Let M be its d-skeleton.

In this setting we also have cells of \(\overline{M}\) of dimension \(d+1\). These will be called chambers.

Definition 5.3

Assume that a mapping \(p:\mathrm {Vert}(M)\rightarrow \mathbb {R}^{d+1}\) is such that the image of the vertex set of each k-cell spans some affine k-plane.

We say that p realizes M in \(\mathbb {R}^{d+1}\); we also say that the pair (Mp) is a realization of M, or a Rybnikov-framework, or R-framework, for short.

Notation: given a cell \(f\in M\), we abbreviate the image of the vertex set \(p(\mathrm {Vert}(f))\) as p(f) and denote by \(\langle p(f) \rangle \) its affine span.

Definition 5.4

An R-framework is generic if, whenever two d-faces \(f_1\) and \(f_2\) share a d-edge, then \(\langle p(f_1)\rangle \ne \langle p(f_2)\rangle \).

From now on we assume that all R-frameworks we deal with are generic.

As before, we say that an R-framework is trivalent if each d-edge is incident to exactly three d-faces.

An R-framework is (3, 4)-valent if each d-vertex is incident to exactly four d-edges (and therefore, to six d-faces).

By construction, vertices are mapped to points. One may also imagine that the 1-cells of the complex are mapped to line segments. Therefore 2-cells are mapped to some closed planar broken lines (polygons). Here self-intersections may occur. As the dimension of faces grows, the complexity of the associated geometrical object increases. However, there exist nice examples with convex polyhedra as images of the faces. In particular, if a face is a (combinatorial) simplex, one may think that its image is a simplex lying in \(\mathbb {R}^d\).

Example 5.5

  1. (i)

    The Schlegel diagram [21] of a convex \((d\,{+}\,2)\)-polytope K is a realisation of the boundary complex of K. If K is a simple polytope, we arrive at a (3, 4)-valent complex.

  2. (ii)

    More generally, the projection of a \((d\,{+}\,2)\)-dimensional polyhedral body K (that is, of a body with piecewise linear boundary) to \(\mathbb {R}^{d+1}\) yields a realization (Mp) where |M| is homeomorphic to \(\partial K\).

6.2 Self-stresses and liftings

Now we turn to a particular notion of stresses, which is borrowed from Rybnikov’s paper [14] and represents a special case of Definition 2.1. The principal difference is that in Rybnikov’s setting the choice of normal vectors \(\mathbf {n}\) is dictated by the R-framework.

As Examples 2.4 and 5.5 show, in certain cases, a realization (Mp) represents all the faces as convex polytopes. Let us call such a realization non-crossing. Otherwise, we say that the realization is self-crossing.

Let us start by introducing stresses for the non-crossing version (cf. [15]):

Definition 5.6

Assume that a non-crossing realization (Mp) is fixed. Let us assign to each pair (fe), where e is a d-edge contained in a d-face f, a unit normal \(\mathbf {n}(e,f)\) to p(e) pointing inside the convex polytope p(f).

A real-valued function s defined on the set of d-faces is called a self-stress if at each d-edge e of the complex M,

$$\begin{aligned} \sum _{f\supset e}s(f)\,\mathbf {n}(e,f)=0.\quad \quad \quad (*) \end{aligned}$$

To relax the non-crossing condition, let us make some preparation following [15]. The informal idea is to triangulate the faces of the complex, since the representation of a simplex is never self-crossing.

Pick a (combinatorial) orientation of each of the cells of M, and a (combinatorial) triangulation of M without adding new vertices. So each d-face now is replaced by a collection of (combinatorial) simplices. The realization (Mp) yields a realization \((\widehat{M},p)\) of the new CW-complex.

Definition 5.7

Assume that a generic realization (Mp) is fixed. Choose a triangulation \((\widehat{M},p)\) as is described above.

For a d-edge \(e\in \widehat{M}\) and a d-face \(f \in \widehat{M}\) containing g, choose \(\mathbf {n}(e,f)\) to be the unit normal to the oriented cell f at its simplicial face g whose orientation is induced by the orientation of f.

A real-valued function s on the set of d-cells of M is called a self-stress if for every d-edge e of \(\widehat{M}\), condition \((*)\) is fulfilled (cf. [15]).

This definition is proven to be independent of the choice of the combinatorial triangulation and also of the choice of the orientations of the faces.

The notion of stressed realizations has the following physical meaning. One imagines that the d-faces are realized by planar soap film. The faces are made of different types of soap, that is, with different physical property. Each of the faces creates a tension, which should be in equilibrium at the d-edges. The tension is always orthogonal to the boundary of a face and lies in the affine hull of the face. A self-intersecting face produces both compression and tension as is depicted in Fig. 12.

Fig. 12
figure 12

Tensions for a convex quadrilateral (left) and a self intersecting quadrilateral (right)

We say that an R-framework (Mp) is self-stressable whenever there exists a non-zero stress.

Proposition 5.8

The following two statements hold:

  1. (i)

    Each R-framework yields a d-framework \((E,I,F,\mathbf {n})\) which agrees with Definition 2.1. The incidences are dictated by the combinatorics of M. Its self-stressability agrees with the Definition 2.2.

  2. (ii)

    For \(d=1\), an R-framework is a planar realization of some graph. Its self-stressability agrees with the classical notion of self-stresses of graphs in the plane.

Assume now that M is the d-skeleton of some \((d\,{+}\,1)\)-dimensional manifold \(\overline{M}\), that is, the chambers are well-defined.

Definition 5.9

A lift of \((\overline{M}, p)\) is an assignment of a linear function \(h_C:\mathbb {R}^{d+1}\!\rightarrow \mathbb {R}\) to each chamber C. By definition, a lift satisfies the following: whenever two chambers C and \(C'\) share a d-face f, the restrictions of \(h_C\) and \(h_{C'}\) on the affine span \(\langle p(f)\rangle \) coincide. A lift is non-trivial if (at least some of) the functions \(h_C\) are different for different chambers.

Let us fix some chamber C. Lifts that are identically zero on C form a linear space \(\text{ Lift }(\overline{M},p)\).

Theorem 5.10

Let M be the d-skeleton of some \((d\,{+}\,1)\)-dimensional manifold \(\overline{M}\) (cf. [15]).

  1. (i)

    If the first homology group of \(\overline{M}\) vanishes, that is,

    $$\begin{aligned} H_1(\overline{M},\mathbb {Z}_2)=0, \end{aligned}$$

    then the linear space \(\mathrm {Lift}(\overline{M},p)\) and the space of self-stresses \(\mathrm {Stress}(M,p)\) are canonically isomorphic.

  2. (ii)

    Liftability of \((\overline{M},p)\) implies self-stressability of (Mp).

Remark 5.11

The theorem gives another proof of Corollary 4.9. Indeed, each realization of \(K_5\) can be viewed as a projection of a four-dimensional simplex. In other words, it is liftable, and hence stressable.

Each d-vertex v of an R-framework yields in a natural way a spherical framework via the following algorithm:

  1. 1.

    We may assume that each face is a simplex, otherwise triangulate the faces.

  2. 2.

    Take an affine plane h which is orthogonal to the affine span \(\langle p(v)\rangle \). Clearly, we have \(\dim h=3\).

  3. 3.

    Take a small sphere \(S^2\) lying in the plane h and centered at the intersection point \(O= h\cap \langle p(v)\rangle \).

  4. 4.

    For each d-face f incident to v, take the projection \(\mathrm{Pr}_h (f)\) to the plane h. Since f is a simplex, the intersection \(\mathrm{Pr}_h (f)\cup S^2\) is a geodesic arc.

This yields a framework \(\mathscr {S}_v\) placed in the sphere \(S^2\). Self-stressability of spherical graphs is well understood since it reduces to self-stressability of planar graphs (see [4, 10, 18]). A face loop is called local with respect a d-vertex v if all the d-faces and d-edges participating in the path are incident to v.

Lemma 5.12

The two statements are equivalent:

  1. (i)

    The stress monodromy of each local (with respect to some d-vertex v) face loop is trivial.

  2. (ii)

    The spherical framework \(\mathscr {S}_v\) is self-stressable.


Triviality of any local stress monodromy implies that stresses can be assigned to the faces incident to v in such a way that locally the equilibrium condition holds.

The same stress assignment gives a self-stress of \(\mathscr {S}_v\), and vice versa. \(\square \)

Example 5.13

If a d-vertex v has exactly four incident d-edges, then \(\mathscr {S}_v\) is stressable. Indeed, in this case \(\mathscr {S}_v\) is a \(K_4\) placed on the sphere, which is always stressable.

Theorem 5.14

Assume that \(\mathscr {R}\) is a trivalent R-framework.

  1. (i)

    \(\mathscr {R}\) is self-stressable if and only if for each face loop the stress monodromy is trivial.

  2. (ii)

    \(\mathscr {R}\) is self-stressable if and only if the following two conditions hold:

    1. (a)

      For each vertex v, the induced spherical framework \(\mathscr {S}_v\) is self-stressable.

    2. (b)

      For some generators \(g_1,\ldots ,g_k\) of the first homology group \(H_1(\mathscr {R})\), and some collection of representatives \(\gamma _1,\ldots ,\gamma _k\) that are face-cycles, all the stress monodromies are trivial (one representative for one generator).

  3. (iii)

    In particular, if \(\mathscr {R}\) is one-connected, its self-stressability is equivalent to self-stressability of \(\mathscr {S}_v\) for all the d-vertices.


(i) Take any face, assign to it any stress, and extend it to other faces. Triviality of the monodromy guarantees that no contradiction will arise.

(ii) Keeping in mind Lemma 3.13, observe that any face loop is a linear combination of \(\gamma _1,\ldots ,\gamma _k\) and some local face loops. By Lemma 5.12, the monodromies of local loops are trivial. It remains to apply (i). Now (iii) follows. \(\square \)

6.3 Some examples

Let us start by two elementary examples.

  1. (1)

    Take the Schlegel diagram of a 3-dimensional cube (that is the projection of the edges of a cube). It is a trivalent graph in the plane. It is self-stressable since it is liftable by construction. However, one easily can redraw the graph keeping the combinatorics in such a way that the realization is no longer self-stressable. For this, it is sufficient to generically perturb the positions of the vertices.

  2. (2)

    Now let us work out an analogous example in \(\mathbb {R}^3\). Take the Schlegel diagram of a 4-dimensional cube (that is, the projections of all the 2-faces). It is a (3, 4)-valent R-framework. It is self-stressable since it is liftable by construction. But, unlike (1), by Theorem 5.14, any other realization is self-stressable. Indeed, we have a one-connected R-framework. Each vertex induces a spherical realization of \(K_4\) which is always stressable.

The above examples suggest general questions:

Are all trivalent R-frameworks self-stressable? Are all (3, 4)-valent R-frameworks self-stressable?

The answer is negative, which is demonstrated in the following construction, which is interesting for its own sake.

Example 5.15

Take a triangular prism P in \(\mathbb {R}^3\), a pyramid over P, and the projection of the 2-skeleton of the pyramid back to \(\mathbb {R}^3\). We obtain an R-framework \(\mathscr {R}_0\) which is defined with some freedom: firstly, one may alter the position of the vertex of the pyramid, and secondly, one may apply a projective transform to P.

Lemma 5.16

The R-framework \(\mathscr {R}_0\) is self-stressable, and the space of stresses is one-dimensional.


The R-framework \(\mathscr {R}_0\) is a projection of the 2-skeleton of a 4-dimensional tetrahedron. In other words, \(\mathscr {R}_0\) is liftable, and therefore, self-stressable. Since it is trivalent, the space of stresses is at most one-dimensional. \(\square \)

The prism P has two disjoint triangular faces. They are also faces of \(\mathscr {R}_0\); let us call them green. The edges of these faces are also called green. The faces of \(\mathscr {R}_0\) that are not green are called white. The edges that are not green are called white. Fix also one of the white faces, let us call it the test face for \(\mathscr {R}_0\).

It is easy to check that any two of the white faces of \(\mathscr {R}_0\) are connected by a face path which uses white edges only.

6.3.1 Main construction, first step

Take two copies of \(\mathscr {R}_0\), say, \(\mathscr {R}_1\) and \(\mathscr {R}_2\) such that one of the green faces of \(\mathscr {R}_1\) coincides with a green face of for \(\mathscr {R}_2\). Patch \(\mathscr {R}_1\) and \(\mathscr {R}_2\) along these faces, and eliminate these green faces. Define the result by \(\mathscr {R}_{12}\).

Lemma 5.17

\(\mathscr {R}_{12}\) is self-stressable, and the space of the self-stresses has dimension 1.


Self-stressability: Take a self-stress \(s_1\) of \(\mathscr {R}_1\) and a stress \(s_2\) of \(\mathscr {R}_2\) such that \(s_1-s_2\) on the patched green faces vanishes. Then \(s_1-s_2\) represents a non-trivial stress of \(\mathscr {R}_{12}\).

Dimension one: Consider a stress s on \(\mathscr {R}_{12}\). Take a stress \(s_1\) of \(\mathscr {R}_1\) which agrees with s on the test face of \(F_1\) and a stress \(s_2\) of \(\mathscr {R}_2\) which agrees with s on the test face of \(\mathscr {R}_2\). Take \(s-s_1-s_2\). It is a stress on \(\mathscr {R}_{12}\) plus the green face which is zero everywhere on \(\mathscr {R}_{12}\), except, maybe, the green face, which possible only if \(s-s_1-s_2\) vanishes everywhere. Therefore, each stress of \(\mathscr {R}_{12}\) is a linear combination of two stresses of \(\mathscr {R}_1\) and \(\mathscr {R}_2\) that cancel each other on the green face. \(\square \)

6.3.2 Main construction, second step

We proceed in the same manner: we take one more copy of \(\mathscr {R}_0\), which is called \(\mathscr {R}_3\) and patch it to \(\mathscr {R}_{12}\) along green faces, and eliminate the green face which was used for the patch. We get \(\mathscr {R}_{123}\). Analogously, we have:

Lemma 5.18

\(R_{123}\) is self-stressable, and the space of the stresses has dimension 1.

6.3.3 Main construction, next steps

Now we have a chain of three copies of \(\mathscr {R}_0\) patched together. Only two green faces survive. By adjusting the shapes of the components, we may assume that these green faces coincide. Patch the last two green faces and remove them. After that, we get an R-framework \(\widetilde{\mathscr {R}}\). Generically we have:

Lemma 5.19

\(\widetilde{\mathscr {R}}\) is not self-stressable, but it is locally self-stressable, that is \(\mathscr {R}_v\) is self-stressable for each vertex v.


Non-self-stressability Before the last step, the space of stresses was one-dimensional. After the last step (\(=\) after patching two last green faces), the dimension can only drop. Let us patch back the two last green faces and get a framework \(\widetilde{\mathscr {R}}'\).

Assume \({\widetilde{\mathscr {R}}}\) is self-stressable. This means that \(\widetilde{\mathscr {R}}'\) has a stress which sums up to zero on the last two green faces. By the above lemmata, the value of the stress on the test face of \(\mathscr {R}_1\) uniquely defines the stress on the first green face and the stress on the test face of \(\mathscr {R}_2\) (and all the faces of \(\mathscr {R}_1\) and \(\mathscr {R}_2\)), this uniquely defines the stress on the test face of \(\mathscr {R}_3\), and so on. We conclude that the stress on the second green face is also uniquely defined, and generically, the green stresses do not cancel each other.

Local self-stressability follows from the fact that putting back any of the green faces creates a self-stressable R-framework. \(\square \)

Let us observe that \(\widetilde{\mathscr {R}}\) is trivalent, but not (3, 4)-valent. Each of the green edges has four incident faces, and there are vertices of valency higher that 4. However one can prove that a number of local surgeries turns it to a (3, 4)-valent R-framework.

Eventually we arrive at a (3, 4) R-framework which is locally self-stressable, but not globally self-stressable.