5 ms·
"first class open source kernel" Speaking with over a decade of experience as a developer in industrial CAD (but still just one random guys point of view only
by fsloth 11mo ago
"first class open source kernel"
Speaking with over a decade of experience as a developer in industrial CAD (but still just one random guys point of view only). The question _isn't_ about the availability of a 3D kernel.
3D kernel is not the "moat".
You can cross that with money.
You can purchase a ACIS or Parasolid and you are off to the races. Or even use OpenCascade if you know what you are doing.
The more interesting question is: Ok hotshot, you have a 3D kernel, 10M of investor money (or equivalent resources).
What's your next move? What industry are you going to conquer? What are the problems you are going to solve better than the current tools do?
What's the value you provide to the users except price?
What are you going to do better than the incumbent softwares in relevant specific design industries?
Which industry is your go-to-market?
Etc etc.
The programmer's view is "I will build a CAD". The industrial user on the other hand does _NOT_ want a "general CAD software".
They want a tool with a specific, trainable workflow for their specific industrial use case.
So "if you build it and they will come" will require speaking to a specific engineering/designer audience.
You can of course build a generic tool (it's all watertight manifolds in the end) but the success in the market depends on the usual story about market forces. What's your go to market/beached. Does it enable you to move to other markets?
And the answer usually is - NO. You need to build the market share in _each_ domain separately.
- deleted 11mo ago[deleted]
- gehsty 11mo agoI guess what I mean is that if the likes of huge defence contractors / automotive industry etc put weight into developing a open kernel and tooling at a volume similar to that of paying for licenses to Autodesk, then they could build their own hyper focussed CAD solution, and the rest of us could be "off to the races" without the upfront cost ACIS or Parasolid.
- fsloth 11mo ago(I’m going to reorder quotes from above) ” rest of us could be "off to the races" without the upfront cost ACIS or Parasolid.” Just start coding your CAD tool dude if you want to! You can totally start with OpenCascade. All these kernels do is they 1) define tensor product surfaces (usually NURBs) with trimming curves 2) join these surface patches to watertight solids 3) export STEP (non-AM) or STL (AM) The question is which hardware manufacturing path is the one you know so well you know what the important things are? And the dirty secret here is that the 3D is _not_ the hardest part (it’s hard sure). You soon end up with schema management and database management as well as domain model challenges that are quite complicated. The main problem here will be that you can’t just start coding without knowing where you end up. You need to know _every step_ or you will end up in a quagmire that is no better than existing tools (slow, buggy). It’s totally doable but the total complexity will be non-trivial and the decisions you make year 1 will come haunt you and bite you in the ass year 5. Be prepared! And for those coming outside to this - I’m not being glib! A 3D design tool totally can be a one man show to start with (see NomadSculpt, Plasticity or MagicaVoxel for example). ” I guess what I mean is that if the likes of huge defence contractors / automotive industry etc…” I’m not sure what you are getting at. These companies created what we call CAD starting from the 1950’s or so (research Parson’s NC work at MIT, Bezier’s work later at Renault if you want a wikipedia tour of the early years). The current industry isn’t shaped like this because Dassault, Siemens and Autodesk decided to go all incumbent. They were more or less pushed to do so by market forces and industrial history (and if it was not them some other company would be the incumbents).
- exasperaited 11mo agoA huge contractor in the defence and automotive industries does control an open kernel and CAD tooling: OpenCascade is owned by CapGemini. And they do build focussed CAD solutions in it (e.g. SALOME and other tools.) Several open source CAD packages use it(FreeCAD, Cadseer, Dune3D, SALOME Shaper, KiCAD, CadQuery/Build123D, DeclaraCAD etc.) There are firms using it for bespoke naval and aerospace applications. The reality is CAD kernels are incredibly difficult, multi-decade projects, and part of the issue is a lot of the domain expertise in them is literally dying off or retiring.
- fsloth 11mo ago” The reality is CAD kernels are incredibly difficult, multi-decade projects, and part of the issue is a lot of the domain expertise in them is literally dying off or retiring.” Well, they are complex but not impossible. I understand for example zoo.dev just wrote their own. I also understand tinkercad and womp wrote their own geometry solvers. Not sure how to compare the above with OpenCascade (since, like you said, it’s pretty complex & public and the others are not public) but at least one can accurately say ”you can absolutely write a 3d modeler from scratch”.
- ok123456 11mo agoThe problem is that the industry doesn't really know what it wants. The further you get from a "general purpose" tool toward a highly specialized yet "trainable" one, there's a very perceptible drop in quality. We're talking about god-awful software here, where if you click the wrong button, the whole thing crashes, or you finish clicking the 30 different things in 4 different "wizards" and it still doesn't work. And all for the low-low cost of about 0.25-1.25x the engineer's salary/seat (subject to audit)! Just having a solid, open-source framework to build upon would have many positive externalities across the supply chain, similar to how open-source systems software allows innovation across the computing supply chain. There would be no AWS without GNU/Linux.
- fsloth 11mo ago” The problem is that the industry doesn't really know what it wants. ” I would argue they do. What we call ’CAD’ today - digital design of surfaces for manufacturing - originated in aerospace and automotive industries. What they _want_ is to manufacture. To manufacture they need designs as input. The designs ultimately end up as a) drawings b) surface models for toolpath programming c) 3D models for project coordination, validation, etc They don’t actually care how many buttons you need to press as long as the final design is fit for purpose. I agree CAD software is stereotypically not fun to use. Also - there is a non-trivial population of CAD users who actually take pride in their skill to use these more or less broken tools. It’s some sort of weird masochistic/macho badge of honor. My guess is optimizing the cost of design is not that interesting to anyone as long as a,b and c from above are fullfilled. The engineers labour who needs to use the CAD tools is an insignificant percentage of the total cost in any case. To understand why you need to dive into to the cost structures and value creation mechanisms as well as the culture in hardware. To start with, in many fields the overall culture in hadrware is ”we sell the same junk as everyone else”. ”Just having a solid, open-source framework to build upon” What’s missing from OpenCascade? ” There would be no AWS without GNU/Linux.” Sure there would. Open source more or less copypasted existing industrial/academic patterns. But open source probably makes it cheaper and better. There would no AWS without internet. Both as the protocol but also as the billions invested to the fiberoptic cables crisscrossing the worlds oceans. The world is built on hardware. Hardaware is not _stupid_. But it’s _different_ than software. To revolutionize CAD you first need to have deep understanding of the _hardware_ value chains and industrial methods. I think what makes it hard is _not_ having a kernel but having this cross discipline knowledge inside single org.
- nirv 11mo agoCould 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?
- fsloth 11mo agoTo 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.
- nirv 11mo agoI 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.
- exasperaited 11mo agoYes. This better explains on the one hand Plasticity (Parasolid-based CAD largely for graphic designers, games designers, filmmakers) and on the other SALOME (OpenCascade-based CAD for numerical simulation/FEM/multi-physics etc., being developed for/by energy-related organisations.)