News for hackers. Stuff that matters.
Re:BRL-CAD by digdugdirk on Tuesday August 16, 2022 @05:54PM (#32489478)
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?

Re:BRL-CAD by linkdink on Tuesday August 16, 2022 @11:37PM (#32492052)
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.

Re:BRL-CAD by brlcad on Wednesday August 17, 2022 @01:18AM (#32492621)
Your comment is incredibly insightful, more than many people will realize.

Case in point, BRL-CAD has had more than 450 years of full-time effort invested, tens of millions with development spanning over four decades. However, that investment is heavily centered around features, integrations, and capabilities that are not as typically useful to the general public.

Usability's slowly expanded, but primary paid focus is military vulnerability and lethality analyses where BRL-CAD is absolutely unparalleled. Even against the likes of CATIA, Creo, NX, Solidworks, etc., development is heavily and strategically optimized and invested for solid geometric analysis, validity, verification, and performance. BRL-CAD so overwhelmingly outperforms the commercial tools in the analysis space and is so well-integrated that it would likely cost tens of millions to stop using it.

Still, general usability is not funded and is left to the auspices of the open source community. That's a long road. Adding usability and developing infrastructure for a system that complex takes time and a level of expertise that isn't common. Until it gets minimum viable general usability, it's hard to scratch one's own itch without personal investment or extrinsic incentives.

Re:BRL-CAD by linkdink on Wednesday August 17, 2022 @05:42AM (#32494160)
Nobody pays for usability. They pay for service contracts. Then it's the vendor's problem to keep that hunk of junk running.
Re:BRL-CAD by threatripper on Wednesday August 17, 2022 @02:32AM (#32492990)
Suppose that there would be an open source CAD software that does all the basic things right (like Blender). I agree with you that probably nobody would pay big money for that. That's one reason why it doesn't exist today. But suppose that it exists. Why then would all those "plugin makers" invest in a specific proprietary software when they could extend the open source software instead? Why would users want a proprietary software when they could use the open source software instead?

To me it sounds like professional CAD is really hard and nobody can "just make it" in a few years of work. That's the reason why open source CAD doesn't really exist today in the professional space. But once it exists, it will eat the world. The transition phase will still take dozens of years because of all the work invested in existing platforms. We will probably see something similar to the adoption of Linux in the commercial space where it simply makes sense to use Linux instead of developing your own OS or licensing some other OS.

Re:BRL-CAD by adastra22 on Wednesday August 17, 2022 @11:17AM (#32497521)
Or, to make a directly relevant parallel, the adoption of Blender. It used to be a niche open source tool whereas any self respecting professional used Maya or 3DS Max, and Adobe products. Now it ate the entire visual effects and video game industries.
Re:BRL-CAD by linkdink on Wednesday August 17, 2022 @12:35PM (#32498534)
Blender provides much of the value of its competitors. A purely CAD tool does not. You have to solve the other problems primarily, while also having CAD. Otherwise, it's like having a text editor when no programming languages exist. What is your business going to do with that?
Re:BRL-CAD by CRConrad on Tuesday August 23, 2022 @04:52AM (#32562165)
> Otherwise, it's like having a text editor when no programming languages exist.

You mean a bit like an operating system without a kernel...?

Re:BRL-CAD by adastra22 on Wednesday August 17, 2022 @05:07PM (#32501763)
I think you’re fighting a straw man? There needs to be an open-source integrated CAD/CAM environment, like Fusion 360 is. That's what the OP in this subthread is asking for.
Re:BRL-CAD by linkdink on Thursday August 18, 2022 @12:21AM (#32505237)
That wish is already granted

https://wiki.freecadweb.org/Path_Workbench

My thesis is that the bigger challenge is "economic", not technical.

Re:BRL-CAD by linkdink on Wednesday August 17, 2022 @05:30AM (#32494096)
Contributing to open source CAD would be economically stupid. Vendors know exactly how big the market is. Most sales are "conversions", not first-time buyers. Open source would be an exit ramp for their customers.
Re:BRL-CAD by jiggawatts on Wednesday August 17, 2022 @12:22AM (#32492317)
To add to this: many CAD products share the same underlying "engine" that computes the geometry of intersections, unions, surfaces of revolution, chamfers, bevels, etc...

The value as linkdink said above is the add-ons, integrations, extensions, and the like.

It's a bit like Unreal Engine 5 having integrated the Quixel model library. You don't just get some C++ code, you also get ready-made art assets. And then you get compatibility with four game console platforms, mobile platforms, etc...

Re:BRL-CAD by fatneckbeardz on Wednesday August 17, 2022 @05:19AM (#32494029)
"drafting is a low-value activity " "low-value workers".

...

...

??

Re:BRL-CAD by adastra22 on Wednesday August 17, 2022 @05:25PM (#32501930)
Drafting doesn't pay well. It's an entry-level position.
Re:BRL-CAD by UK-Al05 on Tuesday August 30, 2022 @09:54AM (#32650446)
Is drafting even a separate role anymore. Most engineers seem to just do it themselves?

Cad software often includes simulation stuff which requires an engineers mind.

Re:BRL-CAD by linkdink on Wednesday August 17, 2022 @05:33AM (#32494113)
*Dollar value
Re:BRL-CAD by gh02t on Tuesday August 16, 2022 @06:33PM (#32489862)
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.
Re:BRL-CAD by phkahler on Tuesday August 16, 2022 @08:40PM (#32490921)
>> Solvespace is cool though and that's the one I'm praying for, personally.

Current Solvespace maintainer here. IMHO there is a lot that can readily be added to solvespace. Then there could be a big effort to do hierarchical sketches. And it is reasonably possible to rewrite some of the geometry internals if needed. All of these things are a LOT of work. The problem is the number of people with the background, software skills, and interest in contributing is very very small.

Having said that, we will just keep chugging along. I've been very busy with personal stuff this year, but soon should have free time to address my backlog of stuff I personally want to do.

Open Source has the advantage of time as long as people stay at it ;-) OTOH Blender and FreeCAD have used the constraint solver. If they borrow some of UI ideas then we all win too!

Re:BRL-CAD by brlcad on Wednesday August 17, 2022 @12:04AM (#32492192)
Licensing notwithstanding, it'd be cool if we could find a way to collaborate. I just learned about solvespace this past year and kudos on your progress.

Spot on the nose about number of people and their endurance tilting at the hard problems. BRL-CAD's been going at it longer than anyone, and the backlog only increases. I do believe open source CAD can get there, but it'll require more coordination.

Re:BRL-CAD by phkahler on Wednesday August 17, 2022 @09:48AM (#32496319)
>> I just learned about solvespace this past year and kudos on your progress.

Thanks!

>> Spot on the nose about number of people and their endurance tilting at the hard problems.

It worries me at times. The creator has moved on but can still be consulted on stuff. The 2nd lead maintainer burned out and nominated me. I see my position as somewhat temporary, but I'm willing to hold it until 1) I get the improvements done that I want to and 2) the right successor comes along - which I worry may never happen ;-)

>> I do believe open source CAD can get there, but it'll require more coordination.

Completely agree. Not sure how to focus all the different efforts though. Talking about it is certainly a start.

Re:BRL-CAD by hactually on Wednesday August 17, 2022 @03:40AM (#32493447)
I'd be keen to be party to this - off the back of the recent Fusion 360 fiasco i've met a few others interested in this.

Currently researching geometric modelling kernels but collaboration in the community and bringing focus would solve this... even if it's better awareness and marketing so that solvespace folk and brlcad folk (and more!) aren't doubling up.

Re:BRL-CAD by phkahler on Wednesday August 17, 2022 @09:40AM (#32496226)
I'd like to get some kind of OSS CAD group going but I'm not sure how much collaboration we could really do. FreeCAD uses OCCT, Solvespace uses it's own thing, and I think BRL-CAD uses its own thing (several of them). Then there are things like gcad3d https://www.gcad3d.org/ which has its own hand written STEP reader/writer which I'd love to borrow some day.

If there is interest in creating a new geometry kernel I'd be happy to discuss how ours works, what the main challenges are, and what limitations the approach has.

Another topic is licenses. I see FreeCAD uses LibreDWG now but has to jump through some hoops because its GPLv3 (not LGPL) and they are GPL2.x.

Re:BRL-CAD by brlcad on Wednesday August 17, 2022 @05:44PM (#32502115)
It's both a social and technical issue.

For the prior, OpenCAx Association was created specifically to encourage and even sponsor OSS coordination. It's still in formation, but it's purpose has been to help underpin Google Summer of Code collaboration for BRL-CAD, FreeCAD, OpenSCAD, LibreCAD, STEPcode, IfcOpenShell, and most recently KiCAD.

For the latter, creating a shared product or even sharing small subsets of logic is a challenge. BRL-CAD fully invested in and helped establish STEPcode for STEP support, for example, and now it's its own project. Spent more than a million USD developing our STEP support.

BRL-CAD is arguably closest to developing something akin to ACIS or Parasolid as its libraries and converters collectively cover the most features, but not without limitations (e.g., lacking API design, dozen libraries). There's been some talk of integrating OCCT where they have features BRL-CAD lacks, but that's a lot like Creo bundling Parasolid and ACIS with Granite (i.e., lots of representation, conversion, and API considerations). We do have a long-term roadmap but it's all dependent upon what people volunteer and are interested in working on, what we're paid to work on, and what's the best path forward strategically (and from a maintenance perspective).

Right now, we're heavily focused on usability and creating reusable geometry conversion infrastructure (which includes AP242 and a couple dozen other formats) and are making progress getting funding as a multiyear development initiative. Long-term, we're working on the clean API problem developing what we calling the Modular Object-Oriented Solidity Engine (MOOSE).

Re:BRL-CAD by stew-j on Friday August 19, 2022 @01:49PM (#32524064)
> we're working on the clean API problem developing what we calling the Modular Object-Oriented Solidity Engine (MOOSE)

MOOSE meet Tovero the horse.

I guess everybody's gone from this post, but for posterity, it might be worth looking more closely at the source for Tovero, since we had to work around the lack of a formal C API when wrapping BRL-CAD with C++. In retrospect, I probably wouldn't even have chosen C++, but just done a C API which would be easier to use with the FFI of many languages like Python, Julia, or Common Lisp--and eliminated the need for SWIG. At least think about putting a C API on top of the OO of MOOSE, if you intend it to be accessed by other languages.

For an intelligent way of putting a C API over a C++ OO design see:

https://www.libfive.com

This project also demonstrates F-rep, a technique for modeling geometry with implicit functions and SDF, and Tovero 2.0 used it as an external dependency for its geometry kernel.

Re:BRL-CAD by a9h74j on Tuesday August 16, 2022 @10:22PM (#32491570)
First I have heard of Solvespace so a naive zen-mind question.

Does any system aspire to be a Prolog for 3D? You sketch a variety of views and a system solves, if possible, for a solid geometry representation?

Re:BRL-CAD by stew-j on Friday August 19, 2022 @02:41PM (#32524634)
This is, in spirit, what Solvespace does--although like the other reply here says with extruded 2D.

From https://solvespace.com/tech.pl

> The core of any parametric CAD program is its geometric constraint solver.

and

> In SolveSpace, constraints are represented as equations in a symbolic algebra system. In general, these equations are solved numerically, by a modified Newton's method.

and from https://en.wikipedia.org/wiki/Geometric_constraint_solving#M...

> symbolic methods have been applied to this type of constraint solving (see Reference 20 on the Wikipedia link).

And your Zen "beginner mind" question got me to thinking, maybe I could use Prolog itself in my CAD system to directly make 3D shapes, since Prolog has been written in Lisp. Although Prolog does have a number of limitations:

https://en.wikipedia.org/wiki/Prolog#Limitations

Re:BRL-CAD by phkahler on Wednesday August 17, 2022 @09:33AM (#32496129)
>> Does any system aspire to be a Prolog for 3D? You sketch a variety of views and a system solves, if possible, for a solid geometry representation?

I'm not aware of any. Maybe slightly related, my plan for a "hole tool" in Solvespace is to add a hole entity to 2D drawings that will automatically create a featured hole when the sketch is extruded. But that's not actually solving anything in a math sense.

Re:BRL-CAD by PostOnce on Tuesday August 16, 2022 @06:37PM (#32489906)
Fusion360 keeps getting worse and worse, they revoke features and jack the price every few months. At some point open source becomes the better value, at least there you know features won't be stolen or the price increased without notice
Re:BRL-CAD by joshvm on Tuesday August 16, 2022 @07:26PM (#32490377)
I gave up on Fusion360 when it told me that the STL exporter wouldn't work without a cloud connection. The app itself works well enough offline, so this seems like a bizarre omission. Surprisingly there are places in the world with 3D printers, but poor to no internet access. In the past Autodesk's servers have also crashed and people have been unable to export models that weren't previously online.
Re:BRL-CAD by gh02t on Tuesday August 16, 2022 @06:41PM (#32489945)
Yeah to be fair I never actually liked Fusion 360 personally. I don't find it super intuitive, but it is quite powerful and polished and I know some people who use it professionally and can do magic in it. OnShape really is perfect to my tastes in terms of being super intuitive yet powerful, but the cloud aspect gives me heartburn. Part of me hopes Autodesk locking down what used to be very generous license terms on F360 might spawn more OSS work to replace it. Similar crackdowns on Eagle were what motivated a lot of the improvements to KiCAD in the last several years that really took it over the line to being a tool I think is legitimately competitive.
Re:BRL-CAD by adastra22 on Wednesday August 17, 2022 @05:40PM (#32502068)
Have you tried Shapr3D? It is really intuitive to use. The downsides seem to be (1) it's CAD-only and you have to export to another tool to do analysis or manufacturing steps, and (2) price. But there's a free version to play around with.
Re:BRL-CAD by buildbot on Tuesday August 16, 2022 @06:57PM (#32490094)
Yeah Fusion360 is incredibly slow on my M1Max, and does terribly bugging things like spam launchdarkley 2 MILLION TIMES if you dns block it…
Re:BRL-CAD by Dracophoenix on Wednesday August 17, 2022 @12:11AM (#32492237)
Any alternatives you'd recommend?
Re:BRL-CAD by buildbot on Wednesday August 17, 2022 @05:26PM (#32501937)
No, I have been looking extensively trying to find a decent option. Possibly Alibre through a VM? Solid edge is another possibility, still a subscription service though.
Re:BRL-CAD by threatripper on Tuesday August 16, 2022 @06:33PM (#32489866)
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.

See: https://wiki.freecadweb.org/OpenCASCADE https://en.wikipedia.org/wiki/Open_Cascade_Technology

Re:BRL-CAD by samwillis on Tuesday August 16, 2022 @06:43PM (#32489965)
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!
Re:BRL-CAD by elcritch on Tuesday August 16, 2022 @07:12PM (#32490249)
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.
Re:BRL-CAD by ska on Tuesday August 16, 2022 @10:42PM (#32491684)
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?

Re:BRL-CAD by marcodiego on Tuesday August 16, 2022 @07:32PM (#32490437)
We heard similar comments about linux and GNU a few decades ago.
Re:BRL-CAD by ChrisLomont on Tuesday August 16, 2022 @09:30PM (#32491214)
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.
Re:BRL-CAD by fezfight on Tuesday August 16, 2022 @11:55PM (#32492141)
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.
Re:BRL-CAD by gpderetta on Wednesday August 17, 2022 @03:39AM (#32493440)
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.
Re:BRL-CAD by fezfight on Wednesday August 17, 2022 @09:40PM (#32504181)
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!
Re:BRL-CAD by Accujack on Tuesday August 16, 2022 @09:32PM (#32491228)
...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.

Re:BRL-CAD by brlcad on Wednesday August 17, 2022 @12:23AM (#32492324)
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.

Re:BRL-CAD by threatripper on Wednesday August 17, 2022 @02:38AM (#32493033)
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.
Re:BRL-CAD by naasking on Tuesday August 16, 2022 @09:30PM (#32491211)
There are alternatives these days:

* https://www.cgal.org/

* https://www.libfive.com/

Re:BRL-CAD by foobarbecue on Tuesday August 16, 2022 @09:18PM (#32491136)
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.

Re:BRL-CAD by jbay808 on Tuesday August 16, 2022 @10:44PM (#32491698)
Agreed. FreeCAD is coming along at a good pace. One of the devs (RealThunder) maintains a development branch which fixes the topological naming problem, which was probably FreeCAD's main weakness. It's already very usable; once that fix gets merged into the main branch I think they'll be ready for the 1.0 release.
Re:BRL-CAD by jasonwatkinspdx on Tuesday August 16, 2022 @07:06PM (#32490188)
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.
Re:BRL-CAD by brlcad on Tuesday August 16, 2022 @11:49PM (#32492111)
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.
Re:BRL-CAD by fatneckbeardz on Wednesday August 17, 2022 @05:09AM (#32493987)
i spent thousands of hours working on one of those open source CAD projects, and i made about 100 dollars.

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.