DeclaraCAD is built on the OpenCascade modeling kernel and aims to provide higher level and easier to use abstractions on top of OpenCascade. To do this DeclaraCAD uses pyOCCT and enaml (an extension to python) to define 3D models programmatically.