To create a quality 3D CAD/CAM program takes more than just competence and interest in having a free product. It takes a small core of very talented people with expertise and experience in building complex software, surrounded by a legion of supporters. Kind of like the Linux kernel project.
It's a niche software product that requires significant technical expertise in programming, mathematics, and in UI design. It's nitpicking to debug.
The closest anyone has built is Blender, but that's still a far cry from being Fusion 360 or Solidworks.
GNU has had a CAD program on their wish list for as long as I can remember... going back to 1990 or before.
Unfortunately, the removal of local simulation is more of the same from Autodesk.
The problem with Open source is that although developers are willing to share their time and skills for free, most other professionals just won't do it.
1. Catering to the needs of developers, such that the user community is also the development community.
2. Bootstrapping off of hobbyist users and crowdfunding to keep developers on board.
The second option is how Blender happened. It started out as an in-house tool at NeoGeo[0], then got sold as a proprietary shareware app by NaN Software, which went bankrupt. The fact that it was shareware meant they had a large hobbyist fanbase - it was very cheap compared to professional tools. So people were willing to crowdfund it; they were able to buy the software copyright off of NaN's creditors; and that enthusiasm continued for multiple decades until it became the massive behemoth that it is today.
For us to get a FOSS CAD app we need hobbyist buy-in. That's arguably a far smaller audience than hobbyist CG artists. And even then we have to compete with the free tiers on modern subscription apps. Blender's only competition back in the day was pirating Maya; but FreeCAD and friends have to compete with the cut-down hobbyist license on Fusion 360.
[0] No, not that one
We desperately need a modern open source geometric kernel, but that would take hundreds of thousands, if not millions, of man hours to build. The “best” and most popular kernel, Parasolid, is 40 years old and had constant improvemen.
FreeCAD/OpenCascade is the best we have, and will have, without significant financial investment to fund development.
The problem is that OpenSCAD is easy to get started and the code-first approach is unbelievably useful - but too simplistic/limited. Meanwhile, FreeCAD is too complex, and often buggy.
There's also CADQuery, which is surprisingly good already. Don't get me wrong, the GUI (CQ-Editor) is unusably buggy. But the Jupyter notebook integration works amazingly well. If I were that project, I would work on a hot-reload, cross platform, standalone viewer only (in the same way people use OpenSCAD often). I would also pay for that, safe in the knowledge that the code produced can't be locked in so easily.
Is it a FreeCAD replacement? For better or worse, no. But it has let me avoid FreeCAD/Fusion360, while finally being free of OpenSCAD shortcomings.
Couldn't you equivalently use any STL/STEP/AMF viewer?
Seems a good choice to me that the GUI is a separate/subordinate project. I suppose it is somewhat necessary to have it at all, easier to gain popularity if you can show screenshots and have a single app 'quickstart'.
I'm not sure. A quick feedback loop is important. With OpenSCAD and CadQuery, you write code that defines the geometry. You then want to see what the geometry looks like, and possibly debug it. For this, you generally want to be able to give certain parts a different color, or opacity, wireframe, etc.
STL is out; it has to tessellate geometry turning it into triangles. AFAIK, it only supports one object. This means a sensible wireframe is out, and so are multiple parts. AMF has similar drawbacks. STEP files might work.
Generally, my understanding is many people write OpenSCAD code in their editor of choice, and then simply save the file. When you open an existing file in OpenSCAD GUI, it monitors it for changes, and refreshes. So this is great.
That said, I misspoke a bit. CQ-Editor is definitely somewhat close to OpenSCAD. It still has a - in my view - unnecessary code editor. But the last standalone release is over a year ago, and I found it to be extremely buggy on macOS. It crashes quite often. Meanwhile, Jupyer-CadQuery [0] works great.
> Seems a good choice to me that the GUI is a separate/subordinate project. I suppose it is somewhat necessary to have it at all, easier to gain popularity if you can show screenshots and have a single app 'quickstart'.
Generally, I think this is true. My personal opinion is I can be productive with something that has a minimal set of features but is rock-solid; over something that has gobs of features but is buggy. That was my main issue with FreeCAD. Ease of installation is another big one. For all it's issues, OpenSCAD gets both of these things right.
Just as long as it 'hot reloads', and then you can configure editor/IDE to compile the {stdFormat} file on save.
No need for the viewer to be first-party (to the language). (If assumption valid.)
Most popular engineering CAD programs are parametric -- you lay out shapes in2D or 3D, and then specify their dimensions and relationships. Parametric modelling makes it much easier to create highly-interdependent geometry, and also to understand or explore the degrees of freedom your design does and does not have.
Also, modelling in brl-cad means typing into a command prompt [1], which makes it much more difficult to figure out what you can, or should, do with it.
What incentive do people have to invest years of their life to do this and then not get a dime back? There is a reason why most commercial software is better than their free, open-source counterparts.
There lies one of the reasons it's not just a matter of "push[ing] the open source community"