I am a cross-stack robotics engineer and researcher, currently building self-driving cars for Wayve. Previously I have worked on robotic motion planning, computer vision for manufacturing, optimal supercomputer software parallelisation, embedded software engineering and electrical circuit design for medical devices and racecars.
My research interests are broad but most of my published work is from my PhD where I focused on the representations of 3D space and formulations and solutions of computer vision, kinematics and dynamics problems with hyper-complex algebras. Information about my PhD thesis can be found here.
My PhD research focus was in designing novel computer vision and computer graphics algorithms using conformal geometric algebra (CGA) . I was supervised by Joan Lasenby .
Abstract
Geometric Algebra (GA) has found success in various areas of the physical sciences and engineering over the last decade but remains relatively underutilised in industry and several key topics in the field remain unexplored. This thesis focuses on the practical applications of Geometric Algebra in various interconnected areas of mathematical engineering. In Part I we explore the properties of the objects resulting from the addition of blades in Conformal Geometric Algebra (CGA) and how we might use these objects in computer graphics and robotics algorithms. In Part II we explore how Screw Theory embeds into CGA, how to use this embedding for simulation of the dynamics of rigid bodies, and how practitioners can leverage the geometric primitives built into CGA to represent and solve constraints in multi-body robotic systems.
PDF
The PDF of my thesis can be found here.
HTML
The process of converting a full size latex document like a thesis to HTML is still pretty error prone but the results can be really good when it works. I've had
a go converting my thesis to HTML with latex2html, check out the results here.
Open Source Software
To see what code I am working on now check out the pygae organisation on Github. To see what direction my research is going check out my ORCID profile.
Tutorials
The Clifford python package documentation
Slides.com Tutorials
Joan Lasenby talking about Geometric Algebra on the YCombinator podcast
Introductory papers
Imaginary Numbers are not Real - the Geometric Algebra of Spacetime
Covariant Approach To Geometry with Conformal Geometric Algebra
Text Books
Geometric Algebra for Physicists
Geometric Algebra For Computer Science, An Object Oriented Approach to Geometry
Clifford Algebra to Geometric Calculus
Software Packages
Clifford: Geometric Algebra for Python - Numerical geometric algebra module for python
Ganja.js - Javascript Geometric Algebra Generator for Javascript, c++, c#, rust, python
GAlgebra - Symbolic Geometric Algebra/Calculus package for SymPy
Geometric Algebra Library (GAL) - C++17 expression compiler and engine for computing with geometric algebra
I'm in the process of writing some blog posts about various things that interest me. Check them out below and drop me an email/tweet if you find them interesting!
This is a blog post that runs through an alternative to standard checkboard and point based lens undistortion
using line integral transforms. I look at the intuition behind these techniques and then show how to use these methods
in conjunction with OpenCV.
Code accompanying blog post here
This blog post introduces Kalmangrad, a Python package that leverages Bayesian filtering techniques to compute smooth, higher-order derivatives from noisy, non-uniformly sampled data.
The post includes an example of how to use kalmangrad and a visualation of the comparison with `numpy.gradient` for a particularly nasty problem.
Code accompanying blog post here