Making examples for an upcoming open source release :)
Every geometry library needs an orthographic projection cube example, right?
I’m not sure how this #Clojure program could be shorter without losing generality. 🤔

Using CGA (conformal geometric algebra) to find the circumcircle that fits three moving points…

https://en.wikipedia.org/wiki/Conformal_geometric_algebra

#geometer

Using PGA2D (2D Plane-based Geometric Algebra) to explore wallpaper groups. (Still making examples for this library 😆.)

https://en.wikipedia.org/wiki/Plane-based_geometric_algebra

#geometer

Wallpaper group p6: hexagonal lattice, cn-symmetry 6, tiling a decahedron.
#clojure #geometer

(This is @csk's territory, but I'm visiting atm because PGA makes this sort of thing so elegant.)

Here’s an example of a motor in PGA3D creating a spiral of triangles.

A motor is a multivector that combines a rotor (specifies a 3D rotation) with a translator (specifies, naturally enough, a 3D translation). You can then apply this multivector to another to do both at the same time. Clojure's `iterate` is a pleasure here:

(take steps (iterate (fn [s] (map #(transform % motor) s)) shape))

#geometer