zlacker

[return to "Text-to-CAD: Risks and Opportunities"]
1. digdug+eN[view] [source] 2023-10-20 05:07:12
>>danboa+(OP)
The world doesn't need Text-to-CAD. The world needs a fully capable open source parametric 3D geometric CAD kernel.

Solidworks, Creo, AutoCAD, Fusion, etc., can all take their bug ridden unoptimized single threaded rent-seeking monstrosities and stick em where the sun don't shine.

Seriously - if anyone wants to create an absolutely world-changing piece of software, start working on a new CAD kernel that takes the last 50 years of computer science advances into account, because none of the entrenched industry standards have done so. Don't worry about having to provide customer service, because none of the entrenched industry standards worry about that either.

And no - while openCascade and solvespace are impressive, they aren't fully capable, nor do they start from a modern foundation.

◧◩
2. auggie+3O[view] [source] 2023-10-20 05:23:33
>>digdug+eN
So what's so difficult about such a kernel? What does a modern foundation look like?
◧◩◪
3. dymk+EO[view] [source] 2023-10-20 05:33:24
>>auggie+3O
The math is quite difficult to do right, and there's a billion corner cases to make a kernel useful for real world designs. Take a fillet: It needs to handle inside corners, outside corners, compound angles coming in from arbitrary numbers of directions, it probably needs the ability to vary along its distance, create more geometry when adjacent faces don't leave enough room, etc etc.

That's just the start of a single feature type. Now you need a bunch more feature types, and they all need to interact well with each other. The kernel also needs some way of solving the topological naming problem to be useful (FreeCAD might get a basic version of this after a decade(?) of work).

It's probably tantamount to writing a modern-day browser in terms of complexity.

◧◩◪◨
4. auggie+pR[view] [source] 2023-10-20 06:05:13
>>dymk+EO
I've written some custom code for computational geometry (like computing the offset for a geometric object using Apple Metal). It was a lot of fun, but also quite hard, and a lot of edge cases I just didn't deal with because I had a particular use case and speed was paramount.

Maybe the idea of a "kernel" is the problem here. A kernel the size of a browser is not a kernel.

I think what's really needed is a full-blown integration with a theorem proving system (which has an easier to define kernel of its own).

◧◩◪◨⬒
5. pca006+E01[view] [source] 2023-10-20 07:48:19
>>auggie+pR
I doubt if it is possible to have a practical small kernel. Take mesh processing in https://github.com/elalish/manifold for example, we encountered a lot of problems when trying to deal with inexact floating point arithmetic. Using exact arithmetic can probably result in much simpler code (doesn't make sense in our case because the point of the library is about dealing with inexact arithmetic), but exact means slow. Also, a lot of code is about fast-paths that occurs frequently, data structures and algorithms that cut down complexity but are difficult to implement. Can we remove those fast-paths and complex algorithms? Probably yes, but this will slow things down a lot.
◧◩◪◨⬒⬓
6. auggie+ge1[view] [source] 2023-10-20 10:07:15
>>pca006+E01
I completely agree. You want to be able to be fast and correct, where correct also depends on some assumptions you can make depending on what you apply your algorithm to. That's why I think a theorem prover kernel is needed, which connects the various algorithms, and the theory behind them that is needed to prove correctness. Until you get there, you will have various different algorithms that don't really fit together, and where it is not clear how to make them work together and still be confident about the result.
[go to top]