# CAD in Julia?

**URL:** <https://discourse.julialang.org/t/cad-in-julia/28557>\
**Category:** Community\
**Created:** [September 9, 2019, 12:52pm UTC](https://discourse.julialang.org/t/cad-in-julia/28557 "2019-09-09T12:52:46Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [September 20, 2019, 3:53pm UTC](https://discourse.julialang.org/t/cad-in-julia/28557/13 "2019-09-20T15:53:16Z")

</div>

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](http://geometry.mrao.cam.ac.uk/wp-content/uploads/2015/11/GA2015_Lecture7.pdf) 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.

---

_[View the full topic](https://discourse.julialang.org/t/cad-in-julia/28557)._
