Grassmann Algebra and Graphic Statics

The advantage of Grassmann algebra when translating basic geometric operations (meet and join) of incidence geometry into algebraic expressions, which can easily be translated into a programme code, is presented in this paper. The procedures for static equivalence and finding equilibrating forces to a given force system can be carried out by methods of graphic statics, i.e. by using only basic geometrical operations of incidence geometry. Therefore, making use of the possibility of translating procedures of graphic statics into a program code, and using the power of today’s computer-aided design (CAD) tools, a computer program has been developed, and some examples of the mentioned procedures are provided.


Introduction
Methods of graphic statics are used for solving problems in statics, for the evaluation of equilibrium and for determination of internal forces as well as the forces in supports of structural systems, by applying geometrical operations only. They are based on the construction of two reciprocal diagrams, the form diagram which shows the geometry of the structure (location of internal nodes and supports, external loads and lengths of structural elements) and the force diagram where polygons of forces, composed of vectors, represent equilibrium of internal forces in structural elements, forces in supports and external loads. The relation between the two reciprocal diagrams allows simultaneous control over the shape of the structure and internal forces in structural elements, and an efficient geometry of the structure can thus be found at an early stage of structural design process. Developed in the 19th century, methods of graphic statics were limited only to planar and simple spatial problems of statics. Owing to today's advanced tools for computeraided design (CAD), it is now possible to develop and apply three-dimensional (3D) graphic statics methods, such as the 3D algebraic polyhedral graphic statics [1] and the 3D vector-based graphic statics [2], both based on ideas from the 19 th century. In the paper examples of some spatial problems of statics, such as static equivalence and static equilibrium, will be described and they will be carried out using geometrical procedures only. Geometric operations of these procedures can easily be expressed algebraically using Grassmann algebra. To visualize examples in a CAD software (in our case Rhinoceros [3]), the algebraic expressions should be converted into a programme code. Since a large number of plugins are available for CAD tools, some of them intended for writing programme codes, complex geometrical procedure can be visualised based on rigorous mathematical expressions. In most cases, when a system of external forces is acting on a body, it is easier to evaluate global equilibrium of structural system and to determine reactive forces in supports, if the given force system is replaced by a simpler, more convenient and statically equivalent force system. Two systems of forces are statically equivalent if their contribution to the conditions of static equilibrium is the same. Generally, a system of forces in space cannot be replaced by a single force, but rather by a resultant force and a resultant force couple (the case which will not be discussed in this paper) or by two skew forces. For the latter case, examples of replacing single force or system of two forces with a force acting at a given point, and a force acting in a given plane, will be described in the paper. Reversion of orientation of the forces obtained by replacing a given force system with some other force system gives equilibrating forces to the given system. In this way, it is possible to evaluate global equilibrium of a structural system and to determine reactive forces in supports. This will be shown and described by an example of equilibrium finding of a spatial node and by an example of equilibrating a given twoforce system with forces acting along six given lines in a special position.

Grassmann geometrical algebra
Hermann Grassmann's great contribution to mathematics and mechanics has been his concept of coordinatization of higher dimensional subsets (subspaces) of geometrical sets, [4]. Here we will explain in detail his construction and its application to line geometry due to Plücker. We start with a vector space of n dimensions V and its subspace L, a subset which is also a vector space of dimension k, for some 0 ≤ k ≤ n. To say that the dimension of V is n means that we can take n, and not less than n, elements of V, say n 1 ,··· n n , such that all other elements of V can be uniquely described as a linear combination of these vectors. Subset, {n 1 ,···, n n } with this property is called a basis for the vector space and for every w ∈ V there are unique numbers λ 1 ,···, λ n such that w 1 = λ 1 n 1 +···+ λ n n n . The uniqueness property corresponds to linear independence of the basis vectors. We will continue our considerations for the special case of a four-dimensional vector space V = 4 , but the same construction is valid for any vector space. We will consider the canonical basis for 4 , a set {e 0 , e 1 , e 2 , e 3 } of unit, mutually orthogonal vectors whose directions coincide with the coordinate axes of the usual Cartesian coordinate system of 4 . Then we have coordinates e 0 = (1,0,0,0) etc. If we have a point x ∈ 4 with coordinates x = (x 0 , x 1 , x 2 , x 3 ), then x = x 0 e 0 + x 1 e 1 + x 2 e 2 + x 3 e 3 is its canonical basis representation. Grassmann defined an operation, which he named outer product, that takes two elements of the vector space and attaches to this pair one element of another, higher dimensional, vector space, the adjective "outer" thus expressing that the result of the operation is not contained in the same vector space as the operands. He then prescribes two properties that this operation must satisfy so that the resulting vector space is uniquely determined. We present his construction for 4 and k = 2 (k can be any number between 0 and n = 4, both included). Let e i be the elements of canonical basis from Eq. (1). We denote the outer product of two elements e i and e j by and we demand that this operation is anti-commutative, which means that for all numbers i and j between 0 and 3. A direct consequence of this property is that e i ∧ e j = 0 for all indices i, so that from the four elements of the canonical basis (1) of 4 , we can, using the outer product, get six linearly independent elements, and we consider the following linearly independent elements e 0 ∧e 1 , e 0 ∧e 2 , e 0 ∧e 3 , e 2 ∧e 3 , e 3 ∧e 1 , e 1 ∧e 2 (4) Furthermore, we demand that the outer product must be linear in both arguments, bilinear, i.e. the equalities hold for all elements x, y and z of 4 and all real numbers a and b.
In this way, we have uniquely determined a vector space, which we denote Λ 2 4 , whose basis is made of the six elements from Eq. (4), and for all elements x = x 0 e 0 +x 1 e 1 +x 2 e 2 +x 3 e 3 and y = y 0 e 0 +y 1 e 1 +y 2 e 2 +y 3 e 3 in 4 we have (6) where I = {(0,1),(0,2),(2,3),(3,1),(1,2)}. The procedure in the general case of-dimensional subspace is the same; we make, on the basis of V, outer products of k elements, e i1 ∧···∧e ik and apply anti-commutativity and bilinearity. The resulting vector space Λ k V is -dimensional. The vector space that is a direct sum of the vector spaces Λ k V for 0 ≤ k ≤ n is called Grassmann algebra. It is an algebra in the mathematical sense of an algebraic structure, a vector space together with the bilinear operation defined for its elements, which in the case of Grassmann algebra are subspaces of the initial vector space. For a broad explanation of the outer product and its definition the reader is referred to Grassmann's or Whiteheads's work [4], [5].

Coordinatization of linear subspaces
We will now show the connection between the vector space Λ k V and k-dimensional subspaces of V, again using the example Λ 2 4 . Elements in Λ 2 4 have the form λ 1 e 0 ∧e 1 + λ 2 e 0 ∧e 2 + λ 3 e 0 ∧e 3 + λ 4 e 2 ∧e 3 + λ 5 e 3 ∧e 1 + λ 6 e 1 ∧e 2 , with real λ i and if we tried to represent them in the form (6) as an outer product of two vectors from 4 , we would have to solve a system of 6 non-linear equations in 8 unknowns, which does not always have solutions. Those elements of Λ 2 4 that do have the form as in (6) are called simple elements. If we take a two-dimensional subspace of 4 generated by two vectors x and y, then we can map it to the one-dimensional subspace of Λ 2 4 generated by x ∧ y. Reversely, if we have a simple element of Λ 2 4 as in (6), we can attach to it the two-dimensional subspace of 4 generated by x and y. In this way, we have a bijection between twodimensional subspaces of 4 and one-dimensional subspaces of Λ 2 4 generated by simple elements.
In the general case, if we look at a -dimensional subspace, we again have the bijection where L(a) is a k-dimensional subspace of V generated by elements a 1 ,···, a k V. The coefficients of a in the canonical basis of Λ k V are called Grassmann coordinates of L(a).

Grassmann's coordinatization in extended Euclidean space
In this Section, previous constructions are applied to the set of lines in the threedimensional Euclidean space. We start with a description of the space we will work in, the extended Euclidean space.

Extended Euclidean space
The usual three-dimensional Euclidean space, which we will denote by E 3 , can be extended by adding elements at infinity, which we will call ideal elements, so that this extension becomes a projective space. We have described this construction in detail in [6] and here we will shortly repeat it.
To the Euclidean space, whose basic elements are points, lines and planes, we add one plane at infinity, ideal plane, which contains lines at infinity and points at infinity, ideal lines and ideal points, so that every other plane in space contains exactly one ideal line. It is extended with this one line, which is then its intersection with all other planes parallel to it, and every line in space contains, or is extended by, one ideal point so that this point is its intersection with all other lines parallel to it. This kind of space is called the extended Euclidean space, and we will denote it with P 3 ( ). This space has the structure of projective space, [7].
In the projective space, on the set of basic elements -points, lines and planes -we have the incidence relation. This space can be axiomatically described with axioms of incidence if we wish to employ synthetic geometry, or we can explore it analytically, which we will, using homogenous coordinates. The incidence relation has a threefold interpretation, involving three aspects. The first one is the relation itself in a passive sense, to be incident meaning to lie in or to pass through, noting the relation between elements of the space. The other two are active and are used to define an element with other lower or higher dimensional elements. First is the meet or intersection, for instance two lines meet or intersect at a point, and the other is the join or span, for instance the span of two points is a line, or the line is given as a join of two points. There is a close connection between vector spaces and projective spaces. In our case, the projective space P 3 ( ) is related to the vector space 4 : the function that maps a one-dimensional subspace of 4 , generated by one vector, to a point in P 3 ( ) is bijection. In Section 3.2 we will see that this is the definition of homogenous coordinates of points in P 3 ( ). This function also maps the two-dimensional subspaces of 4 , those generated or spanned by two vectors, to the set of lines of P 3 ( ) and, analogously, the three-dimensional subspaces become planes in P 3 ( ). In the case of 4 the dimension of the vector space is four, which means that the basis consists of four linearly independent vectors, and the dimension of the projective space, its projective dimension, is three -it is always the vector space dimension -1. The incidence relation corresponds to the inclusion operation, as is clear from the names of the operations meet or intersection being precise the intersection of subspaces in algebraic sense and the same is true for the join, the span which is the union operation on the set of subspaces. For instance, a point is contained in, lies in, is incident with a line of P 3 ( ) if and only if its corresponding one-dimensional subspace of 4 is contained in, is a subspace of the two-dimensional subspace corresponding to that particular line. Further on, the fundamental notion of duality, crucial in projective geometry, can also be found in linear algebra of vector spaces. The duality, in the three-dimensional projective space, states that if we replace the notions of point and plane and all the derived notions correspondingly in any true statement of projective geometry, the new statement will also be true. The lines and related notions in this duality remain unchanged. The duality can be seen in vector spaces as the isomorphism between the space itself and its dual space, which will not be discussed here, but the reader is referred to [7].

Homogeneous coordinates of points and planes
The points of the extended Euclidean space are either the points of the Euclidean space E 3 or the ideal points, and the entire E 3 is canonically embedded in P 3 ( ) as the complement of the ideal plane. It is also embedded in the vector space 4 or, equivalently, we can think of it as an image of projection of R 4 into three dimensions, which can be done in an infinite number of ways. In practice, we choose one of the four coordinates of a point in 4 and disregard it, being then left with the three coordinates, i.e. we get as the image the space E 3 . To obtain the space P 3 ( ), we again choose one out of the four coordinates and we say that it is equal to one or zero, denoting in this manner whether the point is ideal (the coordinate is zero) or the point belongs to E 3 (the coordinate is one). Noting the isomorphism between the vector space 4 and P 3 ( ), the described operation must have the homogeneity property, i.e. it must have the same result on the one-dimensional subspace of 4 spanned by the vector.
In the usual Cartesian coordinate system of 4 , with four mutually orthogonal axes, is given by its coordinates x 0 , x 1 , x 2 , x 3 which represent projections of this vector to the four axes. We denote the one-dimensional subspace, the span of this vector, with <x> and it is a line of 4 passing through the origin point.
Having in mind the first paragraph, we usually choose the first variable x 0 , and thus the set of ideal points becomes the plane of P 3 ( ) having the equation x 0 = 0, and the Euclidean space E 3 is isomorphic to its complement, a set given with the equation x 0 ≠0 and is the image of the projection (9) from that set. And, vice versa, starting with a point in the Euclidean space E 3 given by its usual Cartesian coordinates (x 1 , x 2 , x 3 ), its homogenous coordinates as a point in P 3 ( ) are (1 : The set of planes of P 3 ( ), consisting of the set of planes of E 3 together with the ideal plane, is also the set of hyperplanes of P 3 ( ), i.e. subspaces of co-dimension one. This set is, by the duality principle, bijective, moreover isomorphic to the set of points and can also be coordinatized by homogenous coordinates relating not to the projections of the plane on coordinate axes, but rather dually to the intersections of the plane with the coordinate axes. Thus, the homogenous coordinates of a plane (α 0 : α 1 : α 2 : α 3 ) are interpreted in E 3 as the plane passing through the points (α 1 , 0, 0), (0, α 2 , 0) and (0, 0, α 3 ) its intersections with the coordinate axes, unless the first coordinate, in which case the plane contains the origin point. The ideal plane is given by (α 0 : 0 : 0 : 0) with α 0 ≠ 0.

Interpreting Grassmann algebra in P3(ℝ)
We now relate to Section 2, connecting the projective space P 3 ( ) via the vector space R 4 to Grassmann algebra, to eventually obtain coordinates on the set of lines. In order to do so, we relate the incidence relation, whose interpretation as the inclusion operation on the set of linear subspaces of the vector space 4 is described in Section 3.1 above, to the concept of the outer product, the bilinear operation of Grassmann algebra. Now, the two active aspects of the incidence relation relate to the outer product as follows. Firstly, the join operation, which defines elements of P 3 ( ) using lower dimensional elements, is correspondent, in Grassmann's terminology, to the progressive product. For instance, and we will go into a greater detail in this example, a line, being a one-dimensional subset of P 3 ( ), already described as a span of two points in the sense of 4 , is geometrically defined as passing through these two points, which, in synthetic approach to projective geometry, is an axiom that the two points define this one unique line. The line can then in Grassmann geometrical algebra be defined as outer product of two points. The adjective progressive emphasizes that this definition starts with lower and results in higher dimensional elements, or subspaces. Analogously, the meet operation: given the duality principle, a line, being a onedimensional subset of P 3 ( ), an intersection of two hyperplanes in the sense of 4 is geometrically defined as intersecting line of these two planes, which, in synthetic approach to projective geometry, is dual to the axiom mentioned in the previous paragraph. The line can then in Grassmann geometrical algebra be defined as outer product of two planes. This kind of outer product, where we start with higher and end up with lower dimensional objects is, in Grassmann's terminology, noted as regressive product.

Homogeneous coordinates of lines
We continue analytically to describe the Plücker coordinates of a line, as the progressive product, join or span of two points. First, it can be noted that this is precisely what we have described with equation (6) concluding that the lines are precisely the simple elements of Λ 2 R 4 and can furthermore be described with six coordinates. Following the notation of (6), we denote it is called the Plücker relation and it separates from the set of all six-tuples those ones that correspond to lines in the described application of the extended Euclidean plane P 3 ( ).
Given the fact that this definition of coordinates of a line must be invariant to choosing a pair of generators of the span which is the line L as the join of two points, the coordinates must be homogeneous. Therefore, the Plücker coordinates of a line are where l = (l 01 , l 02 , l 03 ) and = (l 23 , l 31 , l 12 ) and the Plücker relation now reads l · = 0.
The geometrical interpretation in the sense of Euclidean space E 3 as the image of the projection from P 3 ( ) as described earlier was Plücker's starting point in [8]. This paper is the origin of Line Geometry as a mathematical discipline, regarding the lines as the basic rather than derived elements, as is usually the case in other geometries.
He uses projections of a line in space to two orthogonal planes defined by two coordinate axes, then regards the standard analytical geometry equations of these now planar lines with two standard parameters, one being the slope or direction and the other the intercept on the coordinate axis or the position regarding the direction. Thus, he arrives to the four coordinates of a line. For him, this kind of approach comes from regarding lines as rays of light. Another geometrical interpretation can be obtained with respect to the vector space structure of E 3 where l from (12) is the vector connecting points x and y and further, the coordinates of the vector , orthogonal to l, are precisely scalar projections of l to the coordinate axes after being positioned so that the starting point is the point x. Now we look at the dual conception of a line. Let a line be given as the meet, intersection of two planes with homogenous coordinates α = (α 0 : α 1 : α 2 : α 3 ) and β = ( β 0 : β 1 : β 2 : β 3 ) then as in (6) We must state here that this is not the regressive product of the planes as threedimensional subspaces but again the progressive product of one-dimensional subspaces of the dual of the projective space P 3 (R), and here the basis vectors corresponding to basis vectors appearing in (6) are not basis vectors we would have in the regressive product (they would be derived as the outer product of three elements). However, we have the same coefficients since the duality property of projective spaces reflects itself as the Hodge property of Grassmann algebra. Therefore, a force F can be given by its coordinates F = f, with f being force vector and its moment vector about the origin point of the coordinate system. These coordinates are not homogenous since the quantity ||f|| represents its intensity.

Programming geometrical constructions
For performance and visualisation of the examples of static equivalence and the examples of equilibrium finding we will present in Section 5, we have developed a computer program based on algebraic translations of incidence operations using CAD tool Rhinoceros [3]. Steps of the graphical procedures are carried out using basic operations of incidence geometry, which can easily be expressed in algebraic form using Grassmann algebra, thus enabling their conversion into a programme code.
The programme code is written in GhPython [9] (Python interpreter and plugin for Grasshopper [10]), and the results are visualized in Rhinoceros (Figure 1). All procedures of static equivalence and geometrical constructions are graphically performed in the form diagram (left side of Figures 1-4) and are then followed by force polygons in the force diagram (right side of Figures 1-4).

Algebraic form of geometric incidence relations
Here we will present some formulas in homogeneous coordinates describing incidence relations and their usage in coding geometrical constructions.
We start with the already mentioned join of two points, a line, and the dual construction of a line as meet of two planes (Figure 2). Since these operations are described above in Section 3.4 as the outer product in the definition of Plücker and dual Plücker coordinates for lines, we present the code in Python for the line in Figure 2, on the right side.
In Table 1. we present the formulas in homogenous coordinates for the following incidence relations: a point incident with (lying in) a plane, a point incident with (lying on) a line, a line as join of two points, a line as meet of two planes, a point as meet of two intersecting lines, a plane as join of two intersecting lines, a plane as join of a point and non-incident line, and a point as meet of a line and non-incident plane.
(Their Python codes are show in Figures 2 and 3.) These formulas can easily be verified by direct computation using vector calculus. We will write the homogenous coordinates of points and planes as and (15) thus emphasizing standard Cartesian coordinates of points in E 3 , i.e. normal vectors of planes. Homogenous coordinates of lines are as given in [12].

Examples
The procedures for replacing a given force system with some other force system, and procedures for finding equilibrating forces to the given force system described in the paper, are carried out using geometric constructions that can be considered as a partial three-dimensional extension of the funicular polygon construction. The extension of funicular polygon is based on two principles, [11,6]): 1) a single force can be resolved into two force components along two given lines if and only if its line of action and two given lines are concurrent and coplanar, and 2) generally, when constructing funicular polygon using the first condition, each of two given forces is resolved into two components in such a way that one component of the first force and one component of the second force lie on the same line, they are opposite in sense and equal in magnitude, i.e. they cancel each other.

ℝeplacing single force with a force acting at a given point and a force lying in a given plane
The first of the two above mentioned conditions for funicular polygon construction can be used to replace single force into a sum of two forces, first one acting at given point and second one lying in a given plane, which does not contain the given point, [5]. In this example, we will also show translations of geometric operations into Grassmann algebra expressions.

ℝeplacing two forces with a force acting at a given point and a force lying in a given plane
Theorem that "any system of forces can always be represented by two forces one of which lies in a given plane, and the other passes through a given point not lying in the plane" was also proved by Whitehead [5].
The first procedure for replacing two forces with a force acting at a given point and a force lying in a given plane is to resolve each of two given forces S 1 and S 2 into a component acting at the given point A and a component lying in a given plane β.
The resultant R 1 of the two components acts at the point A and the resultant R 2 of the other two components lies in the plane β. Two obtained forces are statically equivalent to the given forces S 1 and S 2 .
Another procedure, similar to the funicular polygon construction, is as follows.  Figure  5.e). The remaining components S 11,1 = S 1 , a force which acts at the given point A, and S 22,2 = S 2 , a force which lies in the given plane b (Figure 5.f), represent a force system equivalent to the system of forces S 1 and S 2 . Reversion of the obtained forces R 1 and S 2 gives equilibrating forces to the given two-force system.

Equilibrium of a spatial node
Here, we describe an example of finding equilibrium of a given spatial node P 4 supported by three bars P 1 P 4 (line s 1 ), P 2 P 4 (line s 2 ) and P 3 P 4 (line s 3 ). The bars are connected to the ground with spherical supports P 1 , P 2 and P 3 . Also, the node P 4 is a spherical node at which a given force S acts along its line of action s (Figure 6.a). The procedure for equilibrium finding of a spatial node is similar to the procedure for replacing a single force with three forces acting along bars P 1 P 4 , P 2 P 4 and P 3 P 4 , which was described by Jasienski et al. [12]. The procedure was also described by Föppl [13] using descriptive geometry and can be found in the textbook by Simović [14]. In the form diagram ( Figure 6.b, on the left side), we define plane σ 1 containing the line of action s and the line s 2 , and plane σ 2 containing the lines s 1 and s 3 . Line d is the intersection line of the planes σ 1 and σ 2 . Now all the lines in the form diagram are known, and thus the procedure is carried out in the force diagram ( Figure 6.b, on the right side). to the plane σ 2 , the intersection point of the lines s 2 ' and s 3 ' determines forces S 2 and S 3 . In this way, forces S, S 1 , S 2 and S 3 form a close polygon in the force diagram, i.e. the spatial node P 4 is in equilibrium (Figure 6.c).

5.4.
Equilibrating two-force system with forces on edges of a given tetrahedron Forces S 1 and S 2 are two given forces. The force S 1 acts at the given point A and the force S 2 lies in the given plane β (Figure 7.a). Three lines s 11 , s 12 and s 13 are given through the same point A, and lines s 21 , s 22 and s 23 are lying in the plane β. In our case, the six lines are given in a special position, that is they are edges of a tetrahedron. Three equilibrating forces will be determined for each of the given forces.
Using the procedure for finding equilibrium of a spatial node described in the previous subsection, three equilibrating forces S 11 , S 12 and S 13 , acting along the given lines s 11 , s 12 and s 13 at the same point A, which is also a vertex of the tetrahedron, will be determined for the force S 1 (Figure 7.b). For the force S 2 , three forces act in the same plane b along the given lines s 21 , s 22 and s 23 . In this special position, points T 1 , T 2 and T 3 are vertices of the given tetrahedron and also intersection points of the lines s 11 , s 12 and s 13 with the plane β in general case. Since all lines, along which the three equilibrating forces S 21 , S 22 and S 23 to the  (Figure 7.c). Using well-known methods of planar (2D) graphic statics, we obtain equilibrating forces S 21 , S 22 and S 23

Conclusion
The use of Grassmann algebra when dealing with translations of geometric operations into algebraic expressions is presented in detail in this paper. The extended Euclidean space is defined as a projective space and the coordinatization of its subspaces, namely points, lines and planes, is defined in accordance with Grassmann's ideas, in order to present algebraic expressions of basic geometrical operations (join and meet) of incidence geometry. The coordinatization of the set of forces associated with Plücker line coordinates is also defined.
Since modern methods of graphic statics are three-dimensional, based on rigorous mathematical definitions of geometric constructions, and thus available only through today's advanced CAD tools, we have described how Grassmann algebra can be used in programming by converting algebraic expressions into the programme code. In that way, the procedures can be parametrically defined and visualized using Rhinoceros.