Steven De Keninck PRO
Mathematical Experimentalist
This presentation has animations that need to know the fragment index in the slide. Slides.com does not forward this by default. You can easily fix this by pasting the following in your browser console before watching:
Reveal.on('fragmentshown', () => [...document.querySelectorAll('iframe')].filter(x=>x.src)
.forEach( x => x.contentWindow.postMessage({action:'fragment',data:Reveal.getIndices()},'*')));
Reveal.on('fragmenthidden', () => [...document.querySelectorAll('iframe')].filter(x=>x.src)
.forEach( x => x.contentWindow.postMessage({action:'fragment',data:Reveal.getIndices()},'*')));GAME26
Circular Splines and Moving Frames
Steven De Keninck - University of Amsterdam
Circular Splines & Moving Frames
Steven De Keninck
Circular Splines & Moving Frames
Steven De Keninck
How do we solve a real problem "with GA" ?
Circular Splines & Moving Frames
Steven De Keninck
How do we solve a real problem "with GA" ?
\(\Biggr\}\)
Algebra & Coefficients
Circular Splines & Moving Frames
Steven De Keninck
How do we solve a real problem "with GA" ?
\(\Biggr\}\)
Algebra & Coefficients
Where is the geometry?
Circular Splines & Moving Frames
Where is the geometry?
As long as algebra and geometry have been separated, their progress have been slow and their uses limited, but when these two sciences have been united, they have lent each mutual forces, and have marched together towards perfection.
Joseph Louis Lagrange
What makes an algebra geometric?
Circular Splines & Moving Frames
What makes an algebra geometric?
\(\checkmark\) assumption free
\(\checkmark\) dimension agnostic
\(\checkmark\) equivariant
\(A \circ B\)
The geometry must be
in the equation.
For elements of all dimensionality.
Transformations with
no exceptions
Circular Splines & Moving Frames
\(A \circ B\)
good: vector algebra + geometry of arrows.
bad: vector algebra + geometry of points.
What makes an algebra geometric?
Circular Splines & Moving Frames
\(A \circ B\)
What makes an algebra geometric?
A + B
A / 2
(A + B)/2
Circular Splines & Moving Frames
SPACE DOES NOT HAVE DIMENSIONS !!
What makes an algebra geometric?
\(A \circ B\)
Why care about dimension agnostic?
# of linearly independent vectors ...
Dimensionality is a property of (a set of) geometric elements
our algebra uses only binary operators!
The set of Elements for any operation is of size \(\leq 2\)
Circular Splines & Moving Frames
What makes an algebra geometric?
\(A \circ B\)
Why care about dimension agnostic?
Any operator \(\circ\) between two points is one dimensional.
e.g. Two complex rigid bodies hurling through space collide. So one point \(A\) on the first body hits a point \(B\) on the second body. One dimensional.
Most of your "3D" calculations are in fact not 3D at all!
Circular Splines & Moving Frames
What makes an algebra geometric?
\(A \circ B\)
Why care about dimension agnostic?
Most of your "3D" calculations are in fact not 3D at all!
Dimension agnostic doesn't mean operators work in spaces of all dimensions, but rather on elements of all dimensions.
\(A \wedge B \)
wedge
\(A \vee B \)
vee
\(A \cdot B \)
dot
\(AB \)
geometric product
Circular Splines & Moving Frames
What makes an algebra geometric?
\(f(A) \circ f(B) = f(A \circ B)\)
What about that equivariance?
\(A \wedge B \)
wedge
\(A \vee B \)
vee
\(A \cdot B \)
dot
\(AB \)
geometric product
This is why the \(\vee\) operator, defined as \( (A \vee B)^* = A^* \wedge B^* \), is in our toolbox, but the similar construction for dot and gp is not. Once a single non geometric operator is included, a complex expression is no longer guaranteed to be geometric.
Circular Splines & Moving Frames
What makes an algebra geometric?
What type of geometric operators can we do?
\(A \circ A\)
\(A + A\)
\(AA\)
Algebra : \(2A\)
Geometry : Same Element
Algebra : \(1\)
Geometry : Reflection
To be geometric - you must be homogeneous
Circular Splines & Moving Frames
What makes an algebra geometric?
What type of geometric operators can we do?
\(A \circ B\)
\(A + B\)
\(AB\)
\(A\)
\(B\)
\(A+B\)
\(A\)
\(B\)
Bisector
Translation
\(A \vee B\)
\(A\)
\(B\)
Join
Circular Splines & Moving Frames
What makes an algebra geometric?
What type of geometric operators can we do?
\(A \circ B\)
\(A + B\)
\(AB\)
\(A\)
\(B\)
\(A+B\)
\(A\)
\(B\)
Bisector
Translation
\(A \vee B\)
\(A\)
\(B\)
Join
Circular Splines & Moving Frames
What makes an algebra geometric?
Translation
Rotation
Point Reflection
Circular Splines & Moving Frames
Circular Splines & Moving Frames
So let's get back to our problem, and solve it with geometry !
\(A \vee B\)
\(A \perp B\)
JOIN
points/lines/planes
PERPENDICULAR BISECTOR
equidistant from points A,B
\(B = \log R\)
\(R = e^B\)
Logarithm
axis of rotation, scaled with angle
Exponential
Spin \(2\lVert B\rVert\) radians around \(\overline B\)
Circular Splines & Moving Frames
So let's get back to our problem, and solve it with geometry !
What exactly is a 'nice' camera path?
From our driving experience, we know not janking your steering wheel around is smoother.
Hence a path with segments of constant curvature is a good candidate!
Circular Splines & Moving Frames
a circular spline through \(n\) points is a smooth spline that
consists entirely out of circle and line segments.
Classic solution is riddled with coefficients, trigonometry, explicit
construction of circle centers, arc orientations, and circle coordinates.
Circular Splines & Moving Frames
Classic solution is riddled with coefficients, trigonometry, explicit
construction of circle centers, arc orientations, and circle coordinates.
It gets even harder in 3D.
desmos example by Fadaaszhi#1725
Circular Splines & Moving Frames
So let us find the rotors \(R_i\) that rotate points \(p_i\) onto \(p_{i+1}\)
Our spline is then the set of all points of the form \( R_i^\alpha p_i \widetilde{R_i^\alpha}, \, 0 \leq \alpha \leq 1\)
We begin by finding the circle centers.
Circular Splines & Moving Frames
We begin by finding the circle centers.
For our circles to be tangent, \(R_1\) must be on \(\ell_1\), a line with \(R_0\) and \(p_1\)
For our segments to connect, \(R_1\) must be on \(\ell_2\), the line between \(p_1\) and \(p_2\)
We could now meet \(\ell_1\) and \(\ell_2\), find angle, sense, and exponentiate.
\(c = \overline{\ell_1 \wedge \ell_2}\) \(\alpha = \cos^{-1}(\overline{c \vee p_1} \cdot \overline{c \vee p_2})\) \(R_1 = \pm e^{-{\alpha \over 2}c}\)
\(R_1 = \overline{\ell_2 \ell_1} \)
\(R_1 = \overline{\ell_2(R_0 \vee p_1) } \)
\(R_1 = \overline{ (p_1\perp p_2)(R_0 \vee p_1)} \)
\(R_i = \overline{(p_i\perp p_{i+1})(\log R_{i-1} \vee \tilde p_i)} \)
Circular Splines & Moving Frames
\(R_i = \overline{(p_i\perp p_{i+1})(\log R_{i-1} \vee \tilde p_i)} \)
From Geometry to Algebra
\(R_i = \overline{((p_i + p_{i+1})\cdot(p_i\vee p_{i+1}))(\log R_{i-1} \vee \tilde p_i)} \)
\(R_i = \overline{(p_i - p_{i+1})I(\log R_{i-1} \vee \tilde p_i)} \)
PGA
CGA
Circular Splines & Moving Frames
\(R_i = \overline{((p_i + p_{i+1})\cdot(p_i\vee p_{i+1}))(\log R_{i-1} \vee \tilde p_i)} \)
But what about 3D ???
Circular Splines & Moving Frames
\(R_i = \overline{(p_i\perp p_{i+1})(\log R_{i-1} \vee \tilde p_i)} \)
2D: line
3D: plane
2D: point join point = line
3D: line join point = plane
Circular Splines & Moving Frames
Great - but all we have now is our \(f(t)\), our spline positions.
What about \(f'(t)\) and \(f''(t)\) that we need for our moving frame?
we simply skip all the other work.
Circular Splines & Moving Frames
we simply skip all the other work.
\(R^t = e^{t {B}}\)
\(\dot R^t = B e^{t {B}} = e^{t B} B\)
\(\dot R^t = B R^t = R^t B\)
\(\tfrac {d}{dt} R^t p \widetilde{R^t} = \dot R^t p \widetilde{R^t} + R^tp\widetilde{\dot R^t}\)
\(\phantom{\tfrac {d}{dt} R^t p \widetilde{R^t}} = R^tBp\widetilde{R^t} + R^t p\widetilde{R^tB}\)
\(\phantom{\tfrac {d}{dt} R^t p \widetilde{R^t}} = R^tBp\widetilde{R^t} + R^t p\widetilde{B}\,\widetilde{R^t}\)
\(\phantom{\tfrac {d}{dt} R^t p \widetilde{R^t}} = R^tBp\widetilde{R^t} - R^t pB\,\widetilde{R^t}\)
\(\phantom{\tfrac {d}{dt} R^t p \widetilde{R^t}} = R^t({B}p - p{B})\widetilde{R^t}\)
\(\phantom{\tfrac {d}{dt} R^t p \widetilde{R^t}} = R^t(2B \times p)\widetilde{R^t}\)
derivative of a rotor ?
derivative of a point moved by a rotor ?
Circular Splines & Moving Frames
Circular Splines & Moving Frames
So lets switch strategy - if moving immediately from one curvature to another is bad, then let's just do it smoothly.
\(p_1 \perp p_2\)
\(p_2 \perp p_3\)
\(p_3 \perp p_4\)
\(R_1 \vee p_2\)
\(p_2 \vee R_2\)
Circular Splines & Moving Frames
So lets switch strategy - if moving immediately from one curvature to another is bad, then let's just do it smoothly.
Circular Splines & Moving Frames
So lets switch strategy - if moving immediately from one curvature to another is bad, then let's just do it more smoothly.
Circular Splines & Moving Frames
So lets switch strategy - if moving immediately from one curvature to another is bad, then let's just do it even more smoothly.
Circular Splines & Moving Frames
Circular Splines & Moving Frames
Circular Splines & Moving Frames
What makes GA so Geometric ?
How do we solve a real problem "with GA" ?
Coordinate Free Circular Splines
a circular spline through \(n\) points is a smooth spline that
consists entirely out of circle and line segments.
Classic solution is riddled with coefficients, trigonometry, explicit
construction of circle centers, arc orientations, and circle coordinates.
Coordinate Free Circular Splines
Classic solution is riddled with coefficients, trigonometry, explicit
construction of circle centers, arc orientations, and circle coordinates.
It gets even harder in 3D.
desmos example by Fadaaszhi#1725
Coordinate Free Circular Splines
Let's do this with Geometric Algebra.
There is no blade representation for circular arcs, not even in CGA.
However, the orbit of every simple PGA rotor (pure rotation or translation)
on a point is exactly such a circular arc or line segment.
Coordinate Free Circular Splines
So let us find the rotors \(R_i\) that rotate points \(p_i\) onto \(p_{i+1}\)
Our spline is then the set of all points of the form \( R_i^\alpha p_i \widetilde{R_i^\alpha}, \, 0 \leq \alpha \leq 1\)
We begin by finding the circle centers.
Coordinate Free Circular Splines
We begin by finding the circle centers.
For our circles to be tangent, \(R_1\) must be on \(\ell_1\), a line with \(R_0\) and \(p_1\)
For our segments to connect, \(R_1\) must be on \(\ell_2\), the line between \(p_1\) and \(p_2\)
We could now meet \(\ell_1\) and \(\ell_2\), find angle, sense, and exponentiate.
\(c = \overline{\ell_1 \wedge \ell_2}\) \(\alpha = \cos^{-1}(\overline{c \vee p_1} \cdot \overline{c \vee p_2})\) \(R_1 = \pm e^{-{\alpha \over 2}c}\)
\(R_1 = \overline{\ell_2 \ell_1} \)
\(R_1 = \overline{\ell_2(R_0 \vee p_1) } \)
\(R_1 = \overline{ ((p_1 + p_2)\cdot(p_1\vee p_2))(R_0 \vee p_1)} \)
\(R_i = \overline{((p_i + p_{i+1})\cdot(p_i\vee p_{i+1}))(\log R_{i-1} \vee \tilde p_i)} \)
⭐ 好多了!
Coordinate Free Circular Splines
\(R_i = \overline{((p_i + p_{i+1})\cdot(p_i\vee p_{i+1}))(\log R_{i-1} \vee \tilde p_i)} \)
But what about 3D ???
Coordinate Free Circular Splines
\(R_i = \overline{((p_i + p_{i+1})\cdot(p_i\vee p_{i+1}))(\log R_{i-1} \vee \tilde p_i)} \)
But what about 3D ???
\(\underbrace{\phantom{(}\underbrace{\phantom{(p_i + p_{i+1})}}_{\text{point}}\phantom{\cdot}\underbrace{\phantom{(p_i\vee p_{i+1})}}_{\text{line}}\phantom{)}}_{\text{2D line}}\underbrace{\phantom{(}\underbrace{\phantom{\log R_{i-1} }}_{\text{point}}\phantom{\vee} \underbrace{\phantom{p_i}}_{\text{point}}\phantom{)}}_{\text{2D line}}\)
\(\underbrace{\phantom{(}\underbrace{\phantom{(p_i + p_{i+1})}}_{\text{point}}\phantom{\cdot}\underbrace{\phantom{(p_i\vee p_{i+1})}}_{\text{line}}\phantom{)}}_{\text{3D plane}}\underbrace{\phantom{(}\underbrace{\phantom{\log R_{i-1} }}_{\text{line}}\phantom{\vee} \underbrace{\phantom{p_i}}_{\text{point}}\phantom{)}}_{\text{3D plane}}\)
Coordinate Free Circular Splines
\(R_i = \overline{((p_i + p_{i+1})\cdot(p_i\vee p_{i+1}))(\log R_{i-1} \vee \tilde p_i)} \)
Thanks!
to understand rotations, you must first understand reflections.
要理解旋转,首先必须理解反射。
William Kingdon Clifford
4 May 1845 – 3 March 1879
3rd edition.
Introducing the current state of the art in applied Geometric Algebra - presented by leading researchers in the field, for the 2026 generation of students, engineers and llm training sets.
Introducing the current state of the art in applied Geometric Algebra - presented by leading researchers in the field, for the 2026 generation of students, engineers and llm training sets.
CS, CG & GAMEDEV
PHYSICS
Established in the form of quaternions and dual quaternions.
Subtantial increase in activity the past few years.
Area with the most published
Geometric Algebra research.
GA kinematics and dynamics highly relevant to robotics and engineering
| 10:00 → 11:00 | Welcome & Introduction | |
| 11:00 → 12:00 | Freya Holmer | Why can't you multiply vectors? Making the case for geometric algebra. |
| 14:00 → 15:00 |
Flor Delombaerde & Ivo De Pauw |
GA: A New Dawn Introduction to GA and PGA. |
| 15:00 → 16:00 | Hamish Todd | Funhouse Mirrors! Introduction to CGA. |
Wednesday 4 March 2026
CET
| 10:00 → 11:00 | Steven De Keninck | Rotor Splines and Moving Frames Coordinate-free moving frames. |
| 11:00 → 12:00 | Stephen Mann | Designing a GA Tutorial From one of the authors of GA4CS. |
| 14:00 → 15:00 | Leo Dorst | Geometric Dynamics Throwing points, lines and planes around. |
| 15:00 → 16:30 | Joan Lasenby | GA Robotics Circles, spheres and delta robots. |
Thursday 5 March 2026
| 10:00 → 11:00 | Martin Roelfs | Relativity Is Not a Game Special relativity — a geometric perspective. |
| 11:00 → 12:00 | David Eelbode | A Bit of Quantum Rotors and spinors. |
| 14:00 → 15:00 | Chris Doran | Maxwell’s Equation One equation to rule them all. |
| 15:00 → 16:00 | Anthony Lasenby | A Geometric Tour de Force GA and the fundamental forces. |
Friday 6 March 2026
By Steven De Keninck
A hands on introduction to Projective Geometric Algebra for Game and Graphics programmers.