[[Image:proper_isom.svg|400px|thumb|right|'''Figure 1.''' A motor represents a proper Euclidean isometry, which can always be regarded as a rotation about a line $$\mathbf L$$ and a displacement along the same line.]]
[[Image:line.svg|400px|thumb|right|'''Figure 1.''' A line is the intersection of a 4D bivector with the 3D subspace where $$w = 1$$.]]
A ''motor'' is an operator that performs a proper isometry in Euclidean space. Such isometries encompass all possible combinations of any number of [[rotations]] and [[translations]]. The name motor is a portmanteau of ''motion operator'' or ''moment vector''. Motors are equivalent to the set of ''dual quaternions'' used in conventional theories, and the functionality is properly generalized in rigid geometric algebra. Motors cannot perform improper isometries that include an odd number of [[reflections]]; those are instead performed by operators called [[flectors]].
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a ''line'' $$\boldsymbol l$$ is a bivector having the general form
In the 4D rigid geometric algebra $$\mathcal G_{3,0,1}$$, a motor $$\mathbf Q$$ has the general form
The components $$(l_{vx}, l_{vy}, l_{vz})$$ correspond to the line's direction, and the components $$(l_{mx}, l_{my}, l_{mz})$$ correspond to the line's moment. (These are equivalent to the six Plücker coordinates of a line.) To satisfy the [[geometric constraint]], the components of $$\boldsymbol l$$ must satisfy the equation
To possess the [[geometric property]], the components of $$\mathbf Q$$ must satisfy the equation
which means that, when regarded as vectors, the direction and moment of a line are perpendicular.
Motors are capable of representing any general screw motion consisting of a rotation about a line combined with a displacement along the same line. By Chasles' theorem, all proper rigid motions in 3D space are screw motions.
The [[bulk]] of a line is given by its $$mx$$, $$my$$, and $$mz$$ coordinates, and the [[weight]] of a line is given by its $$vx$$, $$vy$$, and $$vz$$ coordinates. A line is [[unitized]] when $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$. The [[attitude]] of a line is the vector $$l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ corresponding to its direction.
An element $$\mathbf x$$ is transformed by a motor $$\mathbf Q$$ through the operation $$\mathbf x' = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf x \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{Q}}}$$, where $$\unicode{x27C7}$$ is the [[geometric antiproduct]].
When used as an operator in the sandwich with the [[geometric antiproduct]], a line is a specific kind of [[motor]] that performs a 180-degree rotation about itself.
The set of all motors, sometimes denoted by $$\unicode{x1D544}$$, forms a subgroup of index 2 in a geometric algebra. Its coset is the set of [[flectors]].
<br clear="right" />
== Lines at Infinity ==
== Simple Motors ==
[[Image:line_infinity.svg|400px|thumb|right|'''Figure 2.''' A line at infinity consists of all points at infinity in directions perpendicular to the moment $$\mathbf m$$.]]
If the weight of a line is zero (i.e., its $$vx$$, $$vy$$, and $$vz$$ coordinates are all zero), then the line is contained in the horizon infinitely far away in all directions perpendicular to its moment $$\mathbf m = (l_{mx}, l_{my}, l_{mz})$$, regarded as a vector, as shown in Figure 2. Such a line cannot be unitized, but it can be normalized by dividing by its [[bulk norm]].
If $$Q_{mw} = 0$$ (i.e., the scalar part $$Q_{\mathbf 1}$$ is zero), then the motor $$\mathbf Q$$ is called a ''simple motor''. Every simple motor represents either a pure [[translation]] or a pure [[rotation]] about a line without any displacement along that line.
When the moment $$\mathbf m$$ is regarded as a bivector, a line at infinity can be thought of as all directions $$\mathbf v$$ parallel to the moment, which satisfy $$\mathbf m \wedge \mathbf v = 0$$.
In the case of a pure translation, the motor $$\mathbf T$$ is given by
[[Image:skew_lines.svg|400px|thumb|right|'''Figure 3.''' The line $$\mathbf j$$ connecting skew lines.]]
Given two skew lines $$\boldsymbol l$$ and $$\mathbf k$$, as shown in Figure 3, a third line $$\mathbf j$$ that contains a point on each of the lines $$\boldsymbol l$$ and $$\mathbf k$$ is given by the axis of the [[motor]] $$\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}$$. The line $$\mathbf j$$ can be found by first calculating the line
and this performs a translation by twice the displacement vector $$(t_x, t_y, t_z)$$.
Motors having specific geometric constructions can be built from [[Point | points]], [[Line | lines]], and [[Plane | planes]] as shown in the following table.
If $$l_{vx}k_{vx} + l_{vy}k_{vy} + l_{vz}k_{vz} = 0$$, meaning that the directions of the two lines are perpendicular, then $$\mathbf j = \mathbf i$$.
{| class="wikitable"
The direction of $$\mathbf j$$ is perpendicular to the directions of $$\boldsymbol l$$ and $$\mathbf k$$, and it contains the closest points of approach between $$\boldsymbol l$$ and $$\mathbf k$$. The points themselves can then be found by calculating $$(\mathbf j \wedge \operatorname{att}(\boldsymbol l)) \vee \mathbf k$$ and $$(\mathbf j \wedge \operatorname{att}(\mathbf k)) \vee \boldsymbol l$$, where $$\operatorname{att}$$ is the [[attitude]] function.
| style="padding: 12px;" | Rotation about the line where planes $$\mathbf g$$ and $$\mathbf h$$ intersect by twice the angle between them in the direction from $$\mathbf g$$ to $$\mathbf h$$.
| style="padding: 12px;" | Rotation about the line containing the closest points on lines $$\mathbf k$$ and $$\boldsymbol l$$ by twice the angle between the directions $$(l_{vx}, l_{vy}, l_{vz})$$ and $$(k_{vx}, k_{vy}, k_{vz})$$, and translation by twice the distance between the lines in the direction from $$\mathbf k$$ to $$\boldsymbol l$$.
| style="padding: 12px;" | Translation by twice the distance between points $$\mathbf p$$ and $$\mathbf q$$ in the direction from $$\mathbf p$$ to $$\mathbf q$$.
and this is equal to half the distance that the origin is moved by the operator.
A motor is [[unitized]] when $$Q_{vx}^2 + Q_{vy}^2 + Q_{vz}^2 + Q_{vw}^2 = 1$$.
== Exponential Form ==
A motor $$\mathbf Q$$ can be expressed as the exponential of a [[unitized]] [[line]] $$\boldsymbol l$$ multiplied by $$d + \phi{\large\unicode{x1D7D9}}$$, where $$\phi$$ is half the angle of rotation about the line $$\boldsymbol l$$, and $$d$$ is half the displacement distance along the line $$\boldsymbol l$$. The exponential form can be written as
The quantity $$d + \phi{\large\unicode{x1D7D9}}$$, as a homogeneous magnitude, is the ''pitch'' of the screw transformation performed by the motor, which is the amount of translation along the screw axis per radian of rotation.
== Logarithm ==
Given an arbitrary [[unitized]] motor $$\mathbf Q$$ with $$|Q_{vw}| < 1$$, the values of $$\boldsymbol l$$, $$d$$, and $$\phi$$ can be determined from the components of $$\mathbf Q$$, essentially taking the logarithm of a motor. First, the [[scalar]] and [[antiscalar]] terms satisfy the equations
:$$Q_{mw} = -d\sin\phi$$
:$$Q_{vw} = \cos\phi$$ .
Assuming that $$\phi > 0$$, we define $$s = \sin\phi = \sqrt{1 - Q_{vw}^2}$$. Then,
If $$Q_{vw} = 0$$, then we assign $$\phi = \pi/2$$. If $$Q_{vw} < 0$$, then we can add $$\pi$$ to $$\phi$$ to make the angle positive, but this is not required.
The components of $$\boldsymbol l$$ are then given by
In the special case that $$Q_{vw} = \pm 1$$, the motor must be a pure [[translation]] with $$\phi = 0$$ and $$(Q_{vx}, Q_{vy}, Q_{vz}) = (0, 0, 0)$$.
== Square Root ==
The square root of a [[quaternion]] can be calculated by summing with the identity and renormalizing. If we attempt to do the same thing with a motor $$\mathbf Q$$, we find that it works only under certain conditions. However, such a calculation does give us a starting point from which we can make a correction for the general case.
Using the exponential form of $$\mathbf Q$$, we first examine the [[weight norm]] of $$\mathbf Q + {\large\unicode{x1D7D9}}$$ and find that
The first four terms are exactly the square root of $$\mathbf Q$$ because the distance $$d$$ and angle $$\phi$$ have both been halved. But there are two additional terms that we need to eliminate. It just so happens that
The scalar component of $$\mathbf Q$$ can be rewritten as $$Q_{\mathbf 1} = -d\sin\phi = -2d\sin(\phi/2)\cos(\phi/2) $$. Dividing this by $$2 + 2Q_{\large\unicode{x1D7D9}} = 4\cos^2(\phi/2)$$ yields
Any [[unitized]] motor $$\mathbf Q$$ can be factored into the product of a motor $$\mathbf R = Q_{vx} \mathbf e_{41} + Q_{vy} \mathbf e_{42} + Q_{vz} \mathbf e_{43} + Q_{vw} {\large\unicode{x1D7D9}}$$ corresponding to a pure [[rotation]] about a line through the origin and a motor $$\mathbf T = {t_x \mathbf e_{23} + t_y \mathbf e_{31} + t_z \mathbf e_{12} + \large\unicode{x1d7d9}}$$ corresponding to a pure [[translation]] by calculating
:$$\mathbf T = \mathbf Q \mathbin{\unicode{x27C7}} \mathbf{\underset{\Large\unicode{x7E}}{R}}$$ .
Then the corresponding 4×4 matrix $$\mathbf M$$ that transforms a [[point]] $$\mathbf p$$, regarded as a column matrix, as $$\mathbf p' = \mathbf{Mp}$$ is given by
:$$\mathbf M = \mathbf A + \mathbf B$$ .
The inverse of $$\mathbf M$$, which transforms a [[plane]] $$\mathbf g$$, regarded as a row matrix, as $$\mathbf g' = \mathbf{gM^{-1}}$$ is given by
:$$\mathbf M^{-1} = \mathbf A - \mathbf B$$ .
== Conversion from Matrix to Motor ==
Let $$\mathbf M$$ be an orthogonal 4×4 matrix with determinant +1 having the form
Then, by equating the entries of $$\mathbf M$$ to the entries of $$\mathbf A + \mathbf B$$ from above, we have the following four relationships based on the diagonal entries of $$\mathbf M$$:
where either sign can be chosen. In this case, we know $$|Q_{vw}|$$ is at least $$1/2$$, so we can safely divide by $$4Q_{vw}$$ in the last three off-diagonal relationships above to solve for $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Otherwise, if $$M_{00} + M_{11} + M_{22} < 0$$, then we select one of the first three diagonal relationships based on the largest diagonal entry $$M_{00}$$, $$M_{11}$$, or $$M_{22}$$. After calculating $$Q_{vx}$$, $$Q_{vy}$$, or $$Q_{vz}$$, we plug its value into two of the first three off-diagonal relationships to solve for the other two values of $$Q_{vx}$$, $$Q_{vy}$$, and $$Q_{vz}$$. Finally, we plug it into one of the last three off-diagonal relationships to solve for $$Q_{vw}$$.
Setting $$t_x = M_{03}$$, $$t_y = M_{13}$$, and $$t_z = M_{23}$$, the values of $$Q_{mx}$$, $$Q_{my}$$, $$Q_{mz}$$, and $$Q_{mw}$$ are given by
The components $$(l_{vx}, l_{vy}, l_{vz})$$ correspond to the line's direction, and the components $$(l_{mx}, l_{my}, l_{mz})$$ correspond to the line's moment. (These are equivalent to the six Plücker coordinates of a line.) To satisfy the geometric constraint, the components of $$\boldsymbol l$$ must satisfy the equation
which means that, when regarded as vectors, the direction and moment of a line are perpendicular.
The bulk of a line is given by its $$mx$$, $$my$$, and $$mz$$ coordinates, and the weight of a line is given by its $$vx$$, $$vy$$, and $$vz$$ coordinates. A line is unitized when $$l_{vx}^2 + l_{vy}^2 + l_{vz}^2 = 1$$. The attitude of a line is the vector $$l_{vx} \mathbf e_1 + l_{vy} \mathbf e_2 + l_{vz} \mathbf e_3$$ corresponding to its direction.
When used as an operator in the sandwich with the geometric antiproduct, a line is a specific kind of motor that performs a 180-degree rotation about itself.
Lines at Infinity
Figure 2. A line at infinity consists of all points at infinity in directions perpendicular to the moment $$\mathbf m$$.
If the weight of a line is zero (i.e., its $$vx$$, $$vy$$, and $$vz$$ coordinates are all zero), then the line is contained in the horizon infinitely far away in all directions perpendicular to its moment $$\mathbf m = (l_{mx}, l_{my}, l_{mz})$$, regarded as a vector, as shown in Figure 2. Such a line cannot be unitized, but it can be normalized by dividing by its bulk norm.
When the moment $$\mathbf m$$ is regarded as a bivector, a line at infinity can be thought of as all directions $$\mathbf v$$ parallel to the moment, which satisfy $$\mathbf m \wedge \mathbf v = 0$$.
Skew Lines
Figure 3. The line $$\mathbf j$$ connecting skew lines.
Given two skew lines $$\boldsymbol l$$ and $$\mathbf k$$, as shown in Figure 3, a third line $$\mathbf j$$ that contains a point on each of the lines $$\boldsymbol l$$ and $$\mathbf k$$ is given by the axis of the motor $$\boldsymbol l \mathbin{\unicode{x27C7}} \smash{\mathbf{\underset{\Large\unicode{x7E}}{k}}}$$. The line $$\mathbf j$$ can be found by first calculating the line
If $$l_{vx}k_{vx} + l_{vy}k_{vy} + l_{vz}k_{vz} = 0$$, meaning that the directions of the two lines are perpendicular, then $$\mathbf j = \mathbf i$$.
The direction of $$\mathbf j$$ is perpendicular to the directions of $$\boldsymbol l$$ and $$\mathbf k$$, and it contains the closest points of approach between $$\boldsymbol l$$ and $$\mathbf k$$. The points themselves can then be found by calculating $$(\mathbf j \wedge \operatorname{att}(\boldsymbol l)) \vee \mathbf k$$ and $$(\mathbf j \wedge \operatorname{att}(\mathbf k)) \vee \boldsymbol l$$, where $$\operatorname{att}$$ is the attitude function.