3D CAD application
Dune 3D is a parametric 3D CAD application that supports STEP import/export, fillets and chamfers.
So why another open-source 3D CAD application when FreeCAD and Solvespace exist? My primary use case for 3D CAD is designing 3D-printed enclosures for my electronics projects. I often found myself procrastinating designing the enclosure and attributed that to my dissatisfaction with the available open source 3D CAD applications.
While FreeCAD technically does everything I need, the way it's implemented isn't quite to my liking. My biggest pain points with it are the modal sketcher that only works in 2D, no constraints in 3D for extrusions and the perils of referencing things in the design.
Solvespace on the other hand gets the workflow part right, but falls short by not importing STEP and the geometry kernel not supporting chamfers and fillets.
Having solved the similar problem for PCB CAD by developing Horizon EDA, I began pondering whether I could pull off the same thing for 3D CAD. After all, what does it take to make a 3D CAD?
With all of the building blocks available, I set out to glue them together to form a 3D CAD application. About three months later, it's somewhat presentable.
[^1]: I ended up directly using solvespace's solver instead of the suggested wrapper code since it didn't expose all of the features I needed. I also had to patch the solver to make it sufficiently fast for the kinds of equations I was generating by symbolically solving equations where applicable.
See the build instructions.
Similar to Horizon EDA, all tools and actions are available from the spacebar menu.
Use the "set workplane" tool to set a group's workplane.
Also check out the documentation.
The project's discussion platforms are a matrix room and GitHub Discussions.
See the samples repository.
See the build instructions for how to build on Windows.
See the build instructions for how to build on macOS.
There's no place in Horizon EDA where a 3D CAD would make sense to implement. Also, I wanted to do some things differently and give Gtk 4 a try.
Making FreeCAD parametric in 3D or putting Open CASCADE into Solvespace seemed to be too big a change to pull off as an outside contributor to either project. I also really like writing CAD software, so here we are.
No open issues yet, or sync has not completed.