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" ?

  • given a set of \(n\) points \(p_i\)
  • construct a 'nice' curve \(f(t)\) through \(p_i\)
  • calculate a 'nice' frame along the curve. (e.g. TBN)
  • calculate Tangent \(T \propto f'(t)\)
  • calculate Normal \(N \propto f''(t)\)
  • calculate Binormal \(B = T \times N\) 
Circular Splines & Moving Frames

Steven De Keninck

How do we solve a real problem "with GA" ?

  • given a set of \(n\) points \(p_i\)
  • construct a 'nice' curve \(f(t)\) through \(p_i\)
  • calculate a 'nice' frame along the curve. (e.g. TBN)
  • calculate Tangent \(T \propto f'(t)\)
  • calculate Normal \(N \propto f''(t)\)
  • calculate Binormal \(B = T \times N\) 

\(\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?

  • given a set of \(n\) points \(p_i\)
  • construct a 'nice' curve \(f(t)\) through \(p_i\)
  • calculate a 'nice' frame along the curve. (e.g. TBN)
  • calculate Tangent \(T \propto f'(t)\)
  • calculate Normal \(N \propto f''(t)\)
  • calculate Binormal \(B = T \times N\) 
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

  • Set
  • Two Operations

\(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\)

  • Only labels - no coefficients, no components, no coordinate axi, no origin.
  • The geometry must be in the formula - not in the text, not in the assumptions.

good: vector algebra + geometry of arrows.

bad: vector algebra + geometry of points.

What makes an algebra geometric?

Circular Splines & Moving Frames

\(A \circ B\)

  • Only labels - no coefficients, no components, no coordinate axi, no origin.
  • The geometry must be in the formula - not in the text, not in the assumptions.
  • Every operator should respect the geometry we are modeling. 

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.

\begin{aligned} q_i &= p_i \perp p_{i+1}\cr A_i &= \overline{q_i(q_{i-1}\wedge q_i \vee p_i)} \cr B_i &= \overline{q_i(q_i \wedge q_{i+1} \vee p_i)} \cr b &= \log (B\tilde A) \cr C &= e^{{\color{lightgreen}t} b}A \cr R &= e^{{\color{lightblue}t} \log C} \cr S &= R \sqrt{R'p\tilde R + R p \tilde R' \over R \mathbf e_1^* \tilde R}\cr \end{aligned}
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.

\begin{aligned} q_i &= p_i \perp p_{i+1}\cr A_i &= \overline{q_i(q_{i-1}\wedge q_i \vee p_i)} \cr B_i &= \overline{q_i(q_i \wedge q_{i+1} \vee p_i)} \cr b &= \log (B\tilde A) \cr \color{lightgreen} u & \color{lightgreen}= 3t^2-2t^3\cr C &= e^{{\color{lightgreen}u} b}A \cr R &= e^{{\color{lightblue}t} \log C} \cr S &= R \sqrt{R'p\tilde R + R p \tilde R' \over R \mathbf e_1^* \tilde R}\cr \end{aligned}
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.

\begin{aligned} q_i &= p_i \perp p_{i+1}\cr A_i &= \overline{q_i(q_{i-1}\wedge q_i \vee p_i)} \cr B_i &= \overline{q_i(q_i \wedge q_{i+1} \vee p_i)} \cr b &= \log (B\tilde A) \cr \color{lightgreen} u & \color{lightgreen}= 3{(3t^2-2t^3)}^2 - 2{(3t^2-2t^3)}^3\cr C &= e^{{\color{lightgreen}u} b}A \cr R &= e^{{\color{lightblue}t} \log C} \cr S &= R \sqrt{R'p\tilde R + R p \tilde R' \over R \mathbf e_1^* \tilde R}\cr \end{aligned}
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)} \)

  • coordinate free
  • trigonometry free
  • dimension agnostic
  • explainable in 10 min ;)

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