Hacker News new | ask | show | jobs
by digdugdirk 1399 days ago
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?

7 comments

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.

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.

Nobody pays for usability. They pay for service contracts. Then it's the vendor's problem to keep that hunk of junk running.
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.

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.
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?
> Otherwise, it's like having a text editor when no programming languages exist.

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

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.
That wish is already granted

https://wiki.freecadweb.org/Path_Workbench

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

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.
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...

"drafting is a low-value activity " "low-value workers".

...

...

??

Drafting doesn't pay well. It's an entry-level position.
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.

*Dollar value
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.
>> 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!

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.

>> 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.

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.

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.

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).

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?

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

>> 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.

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
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.
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.
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.
Yeah Fusion360 is incredibly slow on my M1Max, and does terribly bugging things like spam launchdarkley 2 MILLION TIMES if you dns block it…
Any alternatives you'd recommend?
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.
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

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!
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.
...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.
There are alternatives these days:

* https://www.cgal.org/

* https://www.libfive.com/

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.

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.
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 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.