I wondered what geometry kernel it was going to use! Interesting to me how few of these there are. Some of the solid modeling stuff is nearly 40 years old (parasolid) this must be hard.
I wondered what geometry kernel it was going to use! Interesting to me how few of these there are. Some of the solid modeling stuff is nearly 40 years old (parasolid) this must be hard.
That being said, for CAD (personal usage) I switched from Fusion 360 to Freecad 1.0 with almost no project and the latter is an order of magnitude faster.
Either build it yourself for free, or pay us and we'll give you prebuilt binaries for convenience
OpenCASCADE used to be commercial, but they couldn't find enough customers to keep on and it got open sourced after a failed commercial existence.
It seems so wasteful that poor marketing or leadership or whatever can lock useful innovations up for years while people better able to execute on them reverse engineer the work and/or wait for patents to expire.
Here is a bit on it from the author of Plasticity: https://www.youtube.com/watch?v=WvwiH1DOK1M it initially was based on C3D.
Probably the most accessible NURBS kernel to learn from is the one in Solvespace. The entire source for the core NURBS is about 6KLoC:
https://github.com/solvespace/solvespace/tree/master/src/srf
My favorite file in there is ratpoly.cpp
It doesn't handle higher order NURBS or use knots. It's just the basics, but there are a lot of geometric algorithms in there. We're still trying to get the bugs out of NURBS booleans, but the high level algorithm is sound.
BTW it can also be compiled for web but that is incomplete.
Been working in 2D with bezier implementation for our in-house CAD kernel. 3D parametric is limited at the moment, though.
I will have a look at the source code.
OpenCascade
CGAL
Is there anything else?
Not that there are all that many proprietary 3D kernels either - ACIS, Parasolid, and...?
But it does have a kernel, so…