@meuns

The course notes has a helpful section regarding the normalization of a motor (pay attention to the section where the closed form of the exponential and logarithm of a bivector and motor are derived specifically, 8.1.3 and 8.1.6.

It mentions normalizing a bivector, but a similar trick (I believe) can be used for motors. It should be self-evident that M\tilde{M} will be of the form u + v\mathbf{I} (M occupies the even subalgebra). Thus, we need to divide by \sqrt{u + v\mathbf{I}} to normalize M properly.

The first trick is to use the fact that \mathbf{I} behaves like a dual number to complete the square:

\begin{aligned}\sqrt{u + v\mathbf{I}} &= \sqrt{u'^2 + 2u'v'\mathbf{I} + v'^2\mathbf{I}^2} \\
&=\sqrt{(u' + v'\mathbf{I})^2}\\
&= u' + v'\mathbf{I}
\end{aligned}

where we have added zero (\mathbf{I}^2) in the first step along with the following change of variables:

\begin{aligned}
u' &= \sqrt{u} \\
v' &= \frac{v}{2\sqrt{u}}
\end{aligned}

Then, we just need to divide by the new quantity. If the new quantity is of the form s + t\mathbf{I}, you can multiply this to u' + v'\mathbf{I}, set equal to one, and solve for s and t in terms of u and v.

\begin{aligned}
1 &= (u' + v'\mathbf{I})(s + t\mathbf{I}) \\
&= u's + (v's + u't)\mathbf{I} \\
\Rightarrow s &= \frac{1}{u'} = \frac{1}{\sqrt{u}} \\
\Rightarrow t &= -\frac{v'}{u'^2} = -\frac{v}{2u\sqrt{u}}
\end{aligned}

Multiplying to your original motor M by \frac{1}{\sqrt{u}} - \frac{v}{2u\sqrt{u}}\mathbf{I} should result in a normalized M such that M\tilde{M} = 1.

Disclaimer: I haven’t implemented this yet, but it’s on my list.

edit:

Oh! By the way, an important fact is that if you construct the motor by exponentiating a bivector as outlined in the course notes, the normalization is already accounted for (the Euclidean axis is normalized via the sine and cosine transcendentals, while the polar (ideal) axis is scaled by a dual which extinguishes itself to perform the translation portion of the screw motion. In my case, I will most likely be creating motors in this fashion although I intend to implement the motor normalization eventually (just for numerical stability).