Hacker News new | ask | show | jobs
by samwillis 1399 days ago
This completely, OpenCASCADE is just not a good enough foundation to build something as powerful and stable as SolidWorks on, and I'm not convinced it could become one. It would take 10s millions dollars and many years to build a new geometric kernel that would allow an open source CAD package to compete at the same level as the "Pro" packages. That would require a massively collaborative effort in the engineering community lead by a company (or two) with deep pockets and an agenda!
3 comments

I believe an initiative backed by a group of large university, national lab, DOE, etc would also be sufficient. Particularly if it was written in say Julia where non-C++ experts (aka grad students) could participate then it could grab a lot of attention from various research labs. Then you could have a winning formula without a FAANG type company.
The problem is incentives. The work necessary to bring a code base like this into production level and maintain it: be realistic - this will not be done by grad student labor without significant supervision, regardless of language. This is many times the effort needed to show "it works" once.

There is currently no incentive model that I know of that can make this work at a university, or even national lab. In these contexts currently it's really hard to get funding for a single "real" programmer for a year, let along a proper effort for something like this. If it became a critical infrastructure project for a federal level agency, sure - but why would they support doing it in public?

We heard similar comments about linux and GNU a few decades ago.
And IBM and RedHat both poured literally billions into it to make it work at the level it does today, which underscores the point. And there have been billions more poured in from a lot of other corporate groups.
Yeah. Sometimes someone brilliant does something hard for the good of humanity though. I'm think specifically of that guy who wrote DXVK back in the mid 2010s. He basically made gaming on Linux possible.
He is certainly brilliant (I remember how quickly it went from showing a single triangle to actually having working games), but was quickly hired by Valve to work on it full-time.
Yeah, it was nuts. Us Linux gamers were all upset at CDProjekt Red for the bait and switch on the Linux support for Witcher 3, and then, blam DVXK suddenly made that irrelevant. And then so much more!
...and at the same time, GNU was making the same comments about CAD software. It's been on the list of desired projects for GNU since about 1990 - a CAD program comparable to AutoCAD.

The problem is that writing one takes a big effort - like Linux kernel sized, and needs people with niche technical knowledge. It's much, much easier to find someone who can write a java app for a web page than it is to find someone who can write CSG code for a CAD system.

It may eventually happen, but it's not inevitable.

There was discussion a few years ago about adding CAD to the list of free software priority areas, to direct talent and energy where it's needed. That would likely help. Finding ways to leverage existing efforts too. BRL-CAD has been working bottom-up with a focus on analytic correctness, capability, hybrid representation. FreeCAD has been working top-down with a focus on usability and parametric interactive editing. Both will likely get there eventually tailored to different markets.

For what it's worth, BRL-CAD has over 450 full-time staff years of effort invested with ongoing dev funded by the U.S. Gov't. It was made open source specifically so that investment could be shared with the world, to help commoditize CAD like has been done for browsers and compilers. It's a long road to get there no matter what.

I'm not sure if "OpenCASCADE is just not a good enough" in the architectural sense or if they just don't have the manpower. When I looked into some bugs a while ago it sounded like "yeah, we've know this bug for years, we would like to work on it but don't have the manpower right now". Just adding outside contributions to such a project is probably also not possible because the components interact in many ways and you have great potential to introduce a lot of subtle bugs.