Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Could you share your thoughts on interesting and worthy development paths or vision for a universal FOSS CAD tool/framework? If you were leading a funded team, what goals would you set for the project and how would you achieve them?




To start with it can’t be universal. Models that you can edit (unless they are really dumb like DWG) are almost always domain specific.

You can - and should be able - to export to a universal format though.

But having a universal format is different than having a universal design space.

The requirments of a mechanical engineer are quite different from that of a structural engineer/and/or detailer for houses. And again different from those of a doctor planning a surgery based on CT model. For example you need rebars only in one of these. You need delicate fillet control only in one of these. You absolutely need support for import and visualization of volumetric data in only one of these.

What I’m getting at that while all design softwares have some common min set of features which _can_ be universal, the number of features in each stereotypical domain are surprisingly disjoint even if only comparing AEC and mech eng. Hence ”universal” design software would be a union of a very, very large set of totally unrelated features. Which suggests it would be hard to develeop, hard to use and hard to maintain.

So it’s better to have a collection of applications that aspire for ”universal scope” as a collection rather than ”one app to rule them all” which you will never get done in any case.

If we presume a hypothetical FOSS mission to enable computer design for all major fields benefitting from digital design for physical outcomes, it should then focus on this ”common min” core, interoperability (strongly linked to the common min core but separate concern - ie import and export) as well as domain specific projects of producing the domain specific UI and tooling.


I see your point about the scope, which is why I led with "framework" as a fallback in my question.

With that in mind, I'd be interested to hear your thoughts on what a practical FOSS implementation of such a framework might look like. Or at least a FOSS alternative to Fusion 360. Would you use ready-made geometric kernels, improve on existing ones (OpenCASCADE?), or start from scratch? Would you adapt to existing standard formats (import/export), or go with a new one? Would you build on FreeCAD, use another suite as a basis (source code if FOSS, or inspired UX/workflow if not), or do you see no point in that and think it would be better to start fresh? I was rather expecting a discussion along these practical lines.

Thanks for your perspective.


I think the first question to tackle is _to whom_ is the program targeted at.

Who is the expert user? What are they building? What are the upstream and downstream application?

See, this is why this area is hard from software pov. It _looks_ like well specified engineering space - something like a network protocol - but actually what you have the engineering happens _in the engineers heads_ and in the organizations that use these tools and the tools that facilitate parts of the process and automate things that are practical to automate. All cad tools are closer to an excel sheet than a single well formed abstract syntax tree like a language grammar.

Now, Fusion 360 narrows down the audience quite a bit but also goes outside of my core expertise (which was in AEC). So I don't have good, detailed off-the cuff opinions here.

I can tell you what the _outputs_ are though. CAM (toolhead planning for CNC or slicing for AM), drawings, and 3D models for project coordination.

So, the question becomes - which of these workflows are we talking about. All of them? And for whom?

I know you specified "Fusion 360" but that is a product that is designed from the point of view of being a vendor-lockable commercial offering. It's really great there. I'm not sure the same package makes sense in FOSS sense.

"Would you use ready-made geometric kernels, improve on existing ones (OpenCASCADE?), or start from scratch?"

If one wants to export STEP then definetly use OpenCASCADE. If additive manufacturing is the target then STL or 3MF suffices and I would use Manifold library there as much as possible. 3D kernel is not the hardest part or even the most important (even thought it's hard and important).

If working in AEC then IFC export/import is a must (it's a schema extension on top of STEP).

"Would you adapt to existing standard formats (import/export)"

Standard formats if you want anyone to use the software for anything, ever.

"Would you build on FreeCAD, ... or do you see no point in that and think it would be better to start fresh?"

I would figure out first what the target user needs. Since CAD programs live in living, breathing industrial design ecosystems you can't really design one in isolation. Without knowing what the user needs and does you really can't answer that question!

If the aim is to offer a credible alternative to Fusion 360, then what you need to do is to make contact with an engineering office. Then you find their CAD manager, and figure out what their organizational parameters are for the CAD workflow. Does FreeCAD work for them? Why not?

If it turns out FreeCAD is perfect for their workflow then it's very likely there are other offices like that, and the FOSS project becomes just about FreeCAD support, education and evangelism.

And actually the key thing might be to design a process how to move the years and years of ongoing project data and models to this new platform. Industrial CAD is super sticky because you have decades of project data, billions of dollars of investment, and hundreds of peoples daily processes being supported by the specific quirks and features of these software.

Personally I'm _skeptical_ FreeCAD would be a drop-in replacememt but if my industry years taught anything is you need to _see what the user does_, analyze their workflow to first principles, then understand how to serve them.

Of course it would be _more fun_ to start from scratch. But the concept is not positioned as expression of personal creativity but pragmatic allocation of hypothetical FOSS investment with the intent of increasing industrial FOSS use and that's a _different_ thing than having a fun personal project.

Now, the above was from the point of view of "offering a credible industrial platform".

If the idea is not to offer a commercially credible alternative, but just to support something like hobbyists workflows for 3D printing, that is a totally different problem to solve, much more simpler, and likely much more fun.


I appreciate your viewpoint and the time you took to share it.

You are welcome!

To be honest this domain is sort of an obsession mine and I'm thrilled to discuss it. Hope my monologue was helpfull!


Thank You. I think a lot of what you wrote can equally be applied in other industry as well. Software dev thinks from the outside they are all the same but in reality they have near nothing in common.

You are welcome!

To expand slightly.

There are common parts and stuff that is totally different.

For example the core parts in graphics and geometry are always familiar wether you work in games, vfx or what ever CAD industry.

But then all the wrapping around those core concepts vary quite a lot, and in terms of mass of complexity and code are drowned by all the domain specific stuff.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: