CAD in Julia?

A very good universal API for points, vertices, faces, edges, spheres, circles, lines, areas, volumes, etc can be phrased in terms of geometric algebra and homological algebra… So I recommend using the number system I am developing in the Grassmann package as an underlying type for the geometry. Then we can build the specific geometry types by storing the geometric numbers from Grassmann in that struct.

To see what I’m talking about, have a look at this presentation where conformal geometric algebra is used to compute intersections of spheres, lines, planes, and other geometric primitives. Another upside is that this immediately scales to any number of dimensions and also projective geomtery.

By relying on the geometric algebra of multivectors for storing geometric data, it is possible to do math with those objects much more easily… I think they would just need a wrapper Julia type struct so that the dispatch for geometric objects can be handled in a certain way in Julia.

3 Likes