As a Mechanical Engineer, I would absolutely love to see something like this (or Freecad/OpenSCAD/etc) step up to the "Blender level" to functionally compete against Solidworks. Its expensive, its buggy, and it requires a beast of a computer to function in any semi-respectable way.
Does anyone have any experience in the software side of the industry to help explain why nothing open source is able to step up in a meaningful way?
I speak from two types of experience - both a user of CAE and a developer of CAE.
There's no money in CAD by itself, meaning just the drawing part. Drafting is a low-value activity often performed by low-value workers who don't write software. Even if they wanted to, they couldn't make software tools for themselves. It's not like when web developers make web development tools, or when machinists make machinist tools.
CAD is sort of a piazza where the value a company gets from it comes from everything that's attached to it - reporting, CAE, CAM, etc. And they do invest in those things, often quite heavily.
It's big business to create these tools. The investment and expertise that go into them is enormous. That's why many of them cost as much as hiring another employee. They do at least as much work as one. They keep up with all the latest and greatest regulations, technologies, manufacturing processes, etc. And they give you access to a lot of valuable proprietary information.
Even if a company threw twice as much money at open source CAD, they'd still get basically none of that. They would just have an expensive drawing tool. It would be basically worthless and worth almost nobody's time.
For customers with low requirements, the less expensive tools do the job at just the right price point where it doesn't make sense to invest in advancing something like freecad.
Also, many companies in many countries are pretty much "allowed" to pirate the really expensive software. Once they get big enough, the software company will ask them to start paying some reduced amount. So there's an unofficial free tier that's way better than any open source toy.
CSG and CAD are just really hard to get right from scratch technically, with lots of math and edge cases and a massive number of features and optimizations you need to implement to hit minimum viability. Add to that the UI on top of the underlying geometry engine is inherently complicated and is a considerable software engineering problem in its own right. Plus the big players have so much momentum and offer free/nearly free (in terms of cost) options that are really slick and powerful e.g. Fusion360 or OnShape. Blender and KiCAD are examples of similar semi-niche professional tools that have been successful against similar barriers, but I still am not optimistic. Solvespace is cool though and that's the one I'm praying for, personally.
The CAD geometry kernel is the problem. It needs to handle a ton of different features and gets very complex very quickly. FreeCAD uses OpenCASCADE which is also used by quite a few other programs. This kernel dates back to the 90s and is supported by a company.
I have been really pleased to see Freecad's steady improvement, and I think it's only been a few years since Blender reached the the point that it was competitive with the $$$ modellers / renderers, especially from a UI standpoint. So, I'm hopeful that in a few more years, Freecad will reach "Blender level" where it really competes with SolidWorks. One big step in that direction will be for them to pick one of the assembly constraints plugins and incorporate it as a first-class feature.
A pattern I've often seen is a tortise vs the hare sort of thing between FLOSS and $$$ software. The free stuff improves slowly but steadily. The $$$ stuff changes quickly but those changes are often driven by perverse incentives (people looking for promotions, shareholder value, etc.), and development tends to go off the rails and piss off users.
There's a double problem: CAD needs really good UI ergonomics, and the underlying computational geometry kernel needs to have stable predictable results. These are both fundamentally really really hard, and a contribution at a time model makes them even more difficult.
Working with solid geometry and boundary representation structures is immensely more complicated and affects everything from dev velocity to GUI design to usability to acquiring devs. Content modelers (e.g., Blender) deal with considerably simpler geometry representations that are not typically valid or easily verifiable for engineering purposes. That's why it's very non-trivial, decades worth, to turn something like Blender into a CAD tool. Even seemingly simple features like CAD converters can take years of effort. BRL-CAD's primary investment has been on geometric analysis (e.g., solid ray tracing) and it's unparalleled in that regard, but that's a niche audience without better usability.
I used this in 1999 or so when I had just started out using linux. It was a huge pain to get running. It was for US citizens only or something, and I had to have my parents write to the government requesting the decryption key for the installer. It may have required something crazy like a fax.
After I got it running I had some trouble getting it to do things and wrote to the email address asking for example files. Mike Muuss himself wrote back with a bunch of demo files attached.
This is what kept me away from it. You won't have many users when you encrypt your files and the user has to request decription keys from .mil mail addresses.
I once worked as a developer for Pro/Engineer, and sometime after that, I was on the user side using BRL-CAD. I can't speak to the quality of the product these days, but at the time, BRL-CAD was achingly slow and riddled with bugs. Using it for my day-to-day work made me want to quit my job, and I left as soon as I had something more promising lined up. I am sorry to sound like I'm unfairly judging BRL-CAD. Perhaps we were using it for something it was not intended to do, or not the way it was meant to be used. I knew my way around the Pro/E interface and it was miles ahead of BRL-CAD. But even CADDS-IV was better than BRL-CAD. I can only speculate that being government-funded, the dev team for BRL-CAD had to make brutal decisions regarding when the feature set was "good enough," because they were working with a very limited budget tied to specific program goals. I don't know. I do know that using BRL-CAD was hellish back in the day.
BRL-CAD is one of the few "full-fledged" CAD systems that I know of which is explicitly CSG, while most (all?) commercial CAD programs are B-REP in nature.
CSG and B-REP are two worlds apart. I'm not sure why in the comments we're suggesting alternatives in the two categories interchangeably. They're not [*].
An alternative to BRL-CAD would be OpenSCAD or libfive studio + other tools (since BRL-CAD does a ton more) and more recently CadQuery. Maaaaybe Tinkercad could be classified as CSG?
CSG makes some operations easy at the expense of other things that become incredibly hard. The same is true for B-REP. Doing gears, highly procedural or FEM-directed models via CSG? Easy-peasy. But try to add a filled between two edges. Step it up 50 notches to fillet one edge and do the equivalent of "tangent propagation". Now the same, but also try projecting a structure on that round face.
CSG's speed is also wildly overblown. While B-REP is not exactly lightweight, computation complexity scales with the complexity of the model but can be sped up by caching intermediate representations.
In CSG this is not always true, since caching the intermediate representation can destroy the accuracy of the final mesh in ways which are very difficult to compute. So even for apparently easy models, times spend walking the space to remesh your model can grow _very_ quickly, hampering the ability to iterate quickly and experiment.
Not to mention, "measuring things" in CSG is hard. This is never mentioned, but none of the tools I've worked with so far offers convenient ways to examine and measure the objects you're working on. For a parametric model this is vital!
[*] Not saying there's no overlap. I'm using both systems. B-REP generally wins on a model which is feature-directed, which is why it's more popular. But I can relate to people that think that BRL-CAD is "hard".
Did you have many different problems with BRL-CAD or was it connected to specific features?
While I can't speak for BRL-CAD my experience with FreeCad which uses OpenCascade has been mixed. The chamfer/fillet tool there is just broken. If you use that and change some dimension it is likely to randomly crash. So, overall my experience has been ranging from rock solid to total trash depending on which features you use and what kind of models you create with it. The key question is "what do the developers use it for?" which should give you a hint for what kind of problem it is made.
> The BRL-CAD source code repository is the oldest known public version-controlled codebase in the world that's still under active development, dating back to 1983-12-16 00:10:31 UTC.
That's honestly not a bad idea in general. Wikipedia does a better job describing most software than the landing page typically does. That said, BRL-CAD seems to be an exception and describes itself very well in large text above the fold! 10/10
digdugdirk|3 years ago
Does anyone have any experience in the software side of the industry to help explain why nothing open source is able to step up in a meaningful way?
linkdink|3 years ago
There's no money in CAD by itself, meaning just the drawing part. Drafting is a low-value activity often performed by low-value workers who don't write software. Even if they wanted to, they couldn't make software tools for themselves. It's not like when web developers make web development tools, or when machinists make machinist tools.
CAD is sort of a piazza where the value a company gets from it comes from everything that's attached to it - reporting, CAE, CAM, etc. And they do invest in those things, often quite heavily.
It's big business to create these tools. The investment and expertise that go into them is enormous. That's why many of them cost as much as hiring another employee. They do at least as much work as one. They keep up with all the latest and greatest regulations, technologies, manufacturing processes, etc. And they give you access to a lot of valuable proprietary information.
Even if a company threw twice as much money at open source CAD, they'd still get basically none of that. They would just have an expensive drawing tool. It would be basically worthless and worth almost nobody's time.
For customers with low requirements, the less expensive tools do the job at just the right price point where it doesn't make sense to invest in advancing something like freecad.
Also, many companies in many countries are pretty much "allowed" to pirate the really expensive software. Once they get big enough, the software company will ask them to start paying some reduced amount. So there's an unofficial free tier that's way better than any open source toy.
gh02t|3 years ago
threatripper|3 years ago
See: https://wiki.freecadweb.org/OpenCASCADE https://en.wikipedia.org/wiki/Open_Cascade_Technology
foobarbecue|3 years ago
A pattern I've often seen is a tortise vs the hare sort of thing between FLOSS and $$$ software. The free stuff improves slowly but steadily. The $$$ stuff changes quickly but those changes are often driven by perverse incentives (people looking for promotions, shareholder value, etc.), and development tends to go off the rails and piss off users.
jasonwatkinspdx|3 years ago
brlcad|3 years ago
fatneckbeardz|3 years ago
eventually i had to get a "real job", a job where i can't really be doing domain specific open source stuff without a potential conflict of interest.
on the plus side, i just bought a couch without having to worry about whether i can eat dinner.
stew-j|3 years ago
https://mirrors.sarata.com/non-gnu/tovero/Tovero_tutorial.pd...
We used it for a few small projects. BRL-CAD also has Tcl scripting.
We've currently switched to pure Common Lisp and F-rep modeling for scripted CAD. This is the old CL one (again wrapped C++) we are porting:
https://github.com/JMC-design/tovero
brlcad|3 years ago
Looks like the code is at http://svn.savannah.gnu.org/viewvc/tovero/trunk/ ? That's some impressive work, particularly some of the advanced geometry entity mapping going on in there.
justinsaccount|3 years ago
After I got it running I had some trouble getting it to do things and wrote to the email address asking for example files. Mike Muuss himself wrote back with a bunch of demo files attached.
rch|3 years ago
That's kind of awesome. I built it from source a few years after that and didn't have to deal with any headaches at all.
hulitu|3 years ago
dkga|3 years ago
matheusmoreira|3 years ago
fcoury|3 years ago
CmdrLoskene|3 years ago
wakeupcall|3 years ago
BRL-CAD is one of the few "full-fledged" CAD systems that I know of which is explicitly CSG, while most (all?) commercial CAD programs are B-REP in nature.
CSG and B-REP are two worlds apart. I'm not sure why in the comments we're suggesting alternatives in the two categories interchangeably. They're not [*].
An alternative to BRL-CAD would be OpenSCAD or libfive studio + other tools (since BRL-CAD does a ton more) and more recently CadQuery. Maaaaybe Tinkercad could be classified as CSG?
CSG makes some operations easy at the expense of other things that become incredibly hard. The same is true for B-REP. Doing gears, highly procedural or FEM-directed models via CSG? Easy-peasy. But try to add a filled between two edges. Step it up 50 notches to fillet one edge and do the equivalent of "tangent propagation". Now the same, but also try projecting a structure on that round face.
CSG's speed is also wildly overblown. While B-REP is not exactly lightweight, computation complexity scales with the complexity of the model but can be sped up by caching intermediate representations.
In CSG this is not always true, since caching the intermediate representation can destroy the accuracy of the final mesh in ways which are very difficult to compute. So even for apparently easy models, times spend walking the space to remesh your model can grow _very_ quickly, hampering the ability to iterate quickly and experiment.
Not to mention, "measuring things" in CSG is hard. This is never mentioned, but none of the tools I've worked with so far offers convenient ways to examine and measure the objects you're working on. For a parametric model this is vital!
[*] Not saying there's no overlap. I'm using both systems. B-REP generally wins on a model which is feature-directed, which is why it's more popular. But I can relate to people that think that BRL-CAD is "hard".
threatripper|3 years ago
While I can't speak for BRL-CAD my experience with FreeCad which uses OpenCascade has been mixed. The chamfer/fillet tool there is just broken. If you use that and change some dimension it is likely to randomly crash. So, overall my experience has been ranging from rock solid to total trash depending on which features you use and what kind of models you create with it. The key question is "what do the developers use it for?" which should give you a hint for what kind of problem it is made.
ganzman|3 years ago
Funny that. Working with Creo on a day-to-day basis makes me want to quit my job.
SiempreViernes|3 years ago
sneak|3 years ago
Wow.
stew-j|3 years ago
The BRL of BRL-CAD is the Ballistic Research Laboratory:
https://en.wikipedia.org/wiki/Ballistic_Research_Laboratory
which developed, along with the Penn, the first general-purpose digital computer ENIAC:
https://en.wikipedia.org/wiki/ENIAC
unknown|3 years ago
[deleted]
forgotpwd16|3 years ago
TakeBlaster16|3 years ago