Steven De Keninck PRO
Mathematical Experimentalist
Clean up your mesh!
Steven De Keninck
Plane and Simplex
University of Amsterdam
(paper with Martin Roelfs, Leo Dorst, David Eelbode)
Clean up your mesh!
Steven De Keninck
University Of Amsterdam
Every geometric algebra talk:
grading
incidence
the geometric product
metric signature
meet/join
complex structure
rotors
bivector Lie algebra
projective embedding
conformal embedding
spin groups
the Euclidean split
Cartan–Dieudonné
duality
pseudoscalar
versors
outermorphisms
reciprocal frames
it's all very simple.
Clean up your mesh!
So what is a geometric algebra?
Clifford Algebra
Embedding Function
\(\mathbb R_{p,q,r}\)
How do we represent geometry?
\(\mathbb R_{3,0,1}\)
\(ax + by + cz + d = 0\)
\( \Rightarrow a\mathbf e_1 + b\mathbf e_2 + c\mathbf e_3 + d\mathbf e_0\)
\([x,y,z] \)
\( \Rightarrow (x\mathbf e_1 + y\mathbf e_2 + z\mathbf e_3 + \mathbf e_0)^*\)
\( \mathbf e_1^2 =\mathbf e_2^2 =\mathbf e_3^2 = +1 \)
\( \mathbf e_0^2 = 0 \)
\(\mathbf e_i\mathbf e_j = -\mathbf e_j\mathbf e_i\)
PGA
Projective/Homogeneous/Affine
Clean up your mesh!
The periodic table of PGA elements.
Clean up your mesh!
Geometric Algebra For Computer Geometry
\(ab\) : compose transformation a after b
\(a \wedge b\) : meet/intersect elements a and b
\(a \vee b\) : join/span elements a and b
\(a \cdot b\) : orthogonal complement
plane : \( a \mathbf e_1 + b \mathbf e_2 + c\mathbf e_3 + d\mathbf e_0\)
point : \((x\mathbf e_1 + y\mathbf e_2 + z\mathbf e_3 + \mathbf e_0)^*\)
norm : \(\lVert x \rVert = \sqrt{x\tilde x}\)
ideal norm : \(\lVert x \rVert_\infty = \lVert x^* \rVert \)
More info on BIVECTOR.NET !!!
Clean up your mesh!
Clean up your mesh!
We'll use only two tools.
Join / Vee / Regressive Product
Euclidean and Ideal norm.
\((a \vee b)^* = a^* \wedge b^*\)
\(\lVert x \rVert = \sqrt{x\tilde x}\)
\(\lVert x\rVert_\infty = \lVert x^* \rVert = \lVert o \vee x \rVert\)
\(a \vee b = -b \vee a\)
\(a \vee a = 0\)
\(a \vee (b + c) = a \vee b + a \vee c \)
\(x = a\mathbf e_1 + b\mathbf e_2 + c\mathbf e_3 + d\mathbf e_0 \)
\(\lVert x \rVert = \sqrt{a^2 + b^2 + c^2} \)
\(\lVert x \rVert_\infty = \sqrt{d^2}\)
Clean up your mesh!
The join of two points.
\(a \vee b = -b \vee a\)
\(a \vee a = 0\)
\(a \vee (b + c) = a \vee b + a \vee c \)
\(a \vee b\)
\(a \vee (a + l\mathbf d) \)
\(\mathbf e_1 \vee (\mathbf e_1 + l\mathbf e_0) = l\)
\(\lVert a \vee b \rVert = \lvert l \rvert = \text{length segment}\)
Clean up your mesh!
The join of three points.
\(a \vee b = -b \vee a\)
\(a \vee a = 0\)
\(a \vee (b + c) = a \vee b + a \vee c \)
\(a \vee b \vee c\)
\(a \vee b \vee (\alpha a + \beta b + h\mathbf d) \)
\(\lVert a \vee b \vee c \rVert = \lvert lh \rvert = 2 \times \text{area triangle}\)
\(\lVert a \vee b \rVert = \lvert l \rvert = \text{length segment}\)
Clean up your mesh!
The \(k\)-magnitude of a \(k\)-simplex.
\(a \vee b = -b \vee a\)
\(a \vee a = 0\)
\(a \vee (b + c) = a \vee b + a \vee c \)
\(\lVert a \vee b \vee c \rVert = \lvert lh \rvert = 2 \times \text{area triangle}\)
\(\lVert a \vee b \rVert = \lvert l \rvert = \text{length segment}\)
\(\lVert a \vee b \vee c \vee d \rVert = 6 \times \text{volume tetra}\)
\({1 \over k!} \lVert v_0 \vee \dots \vee v_k \rVert\)
in classic linear algebra :
\( \lVert \vec b - \vec a \rVert \)
\( \lVert (\vec b - \vec a) \times (\vec c - \vec a) \rVert \)
\( \lVert ((\vec b - \vec a) \times (\vec c - \vec a)) \cdot (\vec d - \vec a) \rVert \)
Clean up your mesh!
The \(k\)-magnitude of a \(k\)-simplex.
\(a \vee b = -b \vee a\)
\(a \vee a = 0\)
\(a \vee (b + c) = a \vee b + a \vee c \)
\({1 \over k!} \lVert v_0 \vee \dots \vee v_k \rVert\)
\(\lVert a \vee b \vee c \rVert = \lVert o \vee b \vee c \rVert + \lVert o \vee c \vee a \rVert + \lVert o \vee a \vee b \rVert\)
\(\lVert a \vee b \vee c \rVert = \lVert o \vee b \vee c + o \vee c \vee a + o \vee a \vee b \rVert\)
\(\lVert a \vee b \vee c \rVert = \lVert o \vee (b \vee c + c \vee a + a \vee b) \rVert\)
\(\lVert a \vee b \vee c \rVert = \lVert b \vee c + c \vee a + a \vee b \rVert_\infty\)
\({1 \over k!} \lVert \sum_\partial v_0 \vee \dots \vee v_{k-1} \rVert_\infty\)
Clean up your mesh!
The \(k\)-magnitude of a \(k\)-complex.
\(a \vee b = -b \vee a\)
\(a \vee a = 0\)
\(a \vee (b + c) = a \vee b + a \vee c \)
\({1 \over k!} \lVert v_0 \vee \dots \vee v_k \rVert\)
\({1 \over k!} \lVert \sum_\partial v_0 \vee \dots \vee v_{k-1} \rVert_\infty\)
we can calculate the area of arbitrary polygons and the volume of arbitrary meshes given their boundary edges or faces. no calculus needed.
do we need ALL the edges?
Clean up your mesh!
The \(k\)-magnitude of a \(k\)-complex.
\(a \vee b = -b \vee a\)
\(a \vee a = 0\)
\(a \vee (b + c) = a \vee b + a \vee c \)
\({1 \over k!} \lVert v_0 \vee \dots \vee v_k \rVert\)
\({1 \over k!} \lVert \sum_\partial v_0 \vee \dots \vee v_{k-1} \rVert_\infty\)
Clean up your mesh!
recap : \(k\)-simplices and \(k\)-complexes in PGA
\(k\)-simplex
\(\large S_k = v_0 \vee \dots \vee v_k\)
\(k\)-complex
\(\large C_k = \sum S_k\)
\(k\)-magnitude
\(\large {1 \over k!} \sum \lVert S_k \rVert = {1 \over k!}\lVert C_{k-1}\rVert_\infty\)
\(k\)-com
\(S_k^\text{com} = v_0 + \dots + v_k\)
\( {1 \over (k+1)!} \sum (S_{k-1} \vee o)(S_{k-1}^\text{com} + o)\)
Join the discord on bivector.net !
By Steven De Keninck
Clean up your Mesh! PGA as a representational tool for k-simplices and k-complexes.