ImplicitCAD
A math-inspired CAD program in haskell. CSG, bevels, and shells
...Unlike traditional CAD programs, programmatic CAD programs use text descriptions of objects, as in programming. Concepts like variables, control structures and abstraction are used, just as in programming. With the explosion of 3D printing, designing 3D objects has become an even more important problem. And it's a complicated one. We need to design complicated objects that precisely interface with each other. And often we don't want to just design a single object, but classes of objects, parameterized by variables. And we need to do this in collaboration. Generally, objects in programmatic CAD are built with Constructive Solid Geometry or CSG. ...