FreeCAD 3D CAD Modeler
FreeCAD is an free open source parametric 3D CAD modeler with actual nice 3D-support perfect for procedural geometry. FreeCAD supports full parametric model allowing any type of parameter-driven custom objects, that can even be fully programmed in python. It allows you to easily modify your design by going back into your model history and changing its parameters.
FreeCAD Design Complex Geometry
FreeCAD uses OpenCasCade-based geometry kernel allowing complex 3D operations on complex shape types, and supports natively concepts like brep, nurbs, booleans operations or fillets. FreeCAD features some key concepts like Workbenches and Macro recording with ability to run as a server and dynamically loadable Application extensions and its designed to be platform independent.
It allows complete access from python built-in interpreter, macros or external scripts to almost any part of FreeCAD, being geometry creation and transformation, the 2D or 3D representation of that geometry (scenegraph) or even the FreeCAD interface. FreeCAD allows import and export to standard formats such as STEP, IGES, OBJ, DXF, SVG, U3D or STL files.