Michael Reed is a mathematical scientist and computational language designer who created Grassmann.jl, Cartan.jl, and the Unified System of Quantities (USQ) for physics implemented in the UnitSystems.jl project. His background is based on experience with signal processing, aerospace engineering, mathematical analysis, category theory, differential geometric algebra.
Sponsor this at liberapay, GitHub Sponsors, Patreon, or Lulu.

⟨Grassmann-Clifford-Hodge⟩ multilinear differential geometric algebra
The Grassmann.jl package provides tools for computations based on multi-linear algebra and spin groups using the extended geometric algebra known as Grassmann-Clifford-Hodge algebra. Algebra operations include exterior, regressive, inner, and geometric, along with the Hodge star and boundary operators. Code generation enables concise usage of the algebra syntax. DirectSum.jl multivector parametric type polymorphism is based on tangent vector spaces and conformal projective geometry. Additionally, the universal interoperability between different sub-algebras is enabled by AbstractTensors.jl, on which the type system is built. The design is based on TensorAlgebra{V} abstract type interoperability from AbstractTensors.jl with a K-module type parameter V from DirectSum.jl. Abstract vector space type operations happen at compile-time, resulting in a differential geometric algebra of multivectors.
Michael Reed, Principal Differential Geometric Algebra: compute using Grassmann.jl, Cartan.jl (Hardcover, 2025)
Michael Reed, Principal Differential Geometric Algebra: compute using Grassmann.jl, Cartan.jl (Paperback, 2025)
____ ____ ____ _____ _____ ___ ___ ____ ____ ____
/ T| \ / T / ___/ / ___/| T T / T| \ | \
Y __j| D )Y o |( \_ ( \_ | _ _ |Y o || _ Y| _ Y
| T || / | | \__ T \__ T| \_/ || || | || | |
| l_ || \ | _ | / \ | / \ || | || _ || | || | |
| || . Y| | | \ | \ || | || | || | || | |
l___,_jl__j\_jl__j__j \___j \___jl___j___jl__j__jl__j__jl__j__j

Cartan.jl introduces a pioneering unified numerical framework for comprehensive differential geometric algebra, purpose-built for the formulation and solution of partial differential equations on manifolds with non-trivial topological structure and Grassmann.jl algebra. Written in Julia, Cartan.jl unifies differential geometry, geometric algebra, and tensor calculus with support for fiber product topology; enabling directly executable generalized treatment of geometric PDEs over grids, meshes, and simplicial decompositions.
The system supports intrinsic formulations of differential operators (including the exterior derivative, codifferential, Lie derivative, interior product, and Hodge star) using a coordinate-free algebraic language grounded in Grassmann-Cartan multivector theory. Its core architecture accomodates numerical representations of principal G-fiber bundles, product manifolds, and submanifold immersion, providing native support for PDE models defined on structured or unstructured domains.
Cartan.jl integrates naturally with simplex-based finite element exterior calculus, allowing for geometrical discretizations of field theories and conservation laws. With its synthesis of symbolic abstraction and numerical execution, Cartan.jl empowers researchers to develop PDE models that are simultaneously founded in differential geometry, algebraically consistent, and computationally expressive, opening new directions for scientific computing at the interface of geometry, algebra, and analysis.
_________ __ __________
\_ ___ \_____ ________/ |______ ____ \\ /
/ \ \/\__ \\_ __ \ __\__ \ / \ \\ /
\ \____/ __ \| | \/| | / __ \| | \ \\ /
\______ (____ /__| |__| (____ /___| / \\ /
\/ \/ \/ \/ \/
Abstract tangent bundle vector space type operations at compile-time
This package is a work in progress providing the necessary tools to work with arbitrary Manifold elements specified with an encoding having optional origin, point at infinity, and tangent bundle parameter. Due to the parametric type system for the generating TensorBundle, the Julia compiler can fully preallocate and often cache values efficiently ahead of run-time. Although intended for use with the Grassmann.jl package, DirectSum can be used independently.
Tensor algebra abstract type interoperability with vector bundle parameter
The AbstractTensors package is intended for universal interoperability of the abstract TensorAlgebra type system. All TensorAlgebra{V} subtypes have type parameter V, used to store a TensorBundle value obtained from DirectSum.jl.
For example, this is mainly used in Grassmann.jl to define various SubAlgebra, TensorGraded and TensorMixed types, each with subtypes. Externalizing the abstract type helps extend the dispatch to other packages. By itself, this package does not impose any specifications or structure on the TensorAlgebra{V} subtypes and elements, aside from requiring V to be a Manifold. This means that different packages can create tensor types having a common underlying TensorBundle structure.

Dendriform dialgebra algorithms to compute Loday's arithmetic on groves of binary trees
Provides the types PBTree for planar binary trees, Grove for tree collections of constant degree, and GroveBin to compress grove data. This package defines various essential operations on planar binary trees and groves like ∪ for union; ∨ for graft; left and right for branching; ⋖, ⋗, <, >, ≤, ≥ for Tamari's partial ordering; ⊴ for between; / and \\ (i.e. over and under); and the dashv and vdash operations ⊣, ⊢, +, * for dendriform algebra.
Together these non-commutative binary operations satisfy the properties of an associative dendriform dialgebra. The structures induced by Loday's definition of the sum have the partial ordering of the associahedron known as Tamari lattice.

Figure: Tamari associahedron, colored to visualize noncommutative sums of [1,2] and [2,1], code: gist
View the documentation stable / latest for more features and examples.
Adaptive multistep numerical ODE solver based on Grassmann.jl element assembly
This Julia project originally started as a FORTRAN 95 project called adapode. It is possible to work with L2 projection on a mesh and partial differential equations can also be assembled with various additional methods. More general problems for finite element boundary value problems are also enabled by mesh representations imported from external sources. These methods can automatically generalize to higher dimensional manifolds and is compatible with discrete differential geometry.

Symbolic parser generator for Julia language expressions using REDUCE algebra
The premise behind Reduce.jl is based on the idea that Symbol and Expr types can be translated into computer algebra rewrite commands and then automatically parsed back into Julia ASTs, essentially extending the Julia language into a fully programable symbolic AST rewrite environment.
REDUCE is a system for general algebraic computations of interest to mathematicians, scientists and engineers. Reduce.jl is an interface for applying symbolic manipulation on Julia expressions using REDUCE's term rewrite system:
The upstream REDUCE software created by Anthony C. Hearn is maintained by collaborators on SourceForge.
This package is a heavily modifed version of Nathan Smith's Maxima.jl with many additional features.
Fatou sets in Julia (Fractals, Newton basins, Mandelbrot)
This package enables users of Julia lang to easily generate, explore, and share fractals of Julia, Mandelbrot, and Newton type. The name Fatou comes from the mathematician after whom the Fatou sets are named. Note that the Julia language is not named after the mathematician Julia after whom the Julia sets are named. This is a mere coincidence. See Explore Fatou sets & Fractals on here for detailed examples.