(no title)
tfinniga | 5 years ago
You can get a simple NURBS kernel up and running in maybe 2 dev-years. But getting good heuristics created for all of the common edge cases is what takes the huge number of dev-decades, and what you pay for with one of the commercial kernels. You won't even know what the common edge-cases are until you start getting user reports of things failing, so you'll need to be doing this development with a large community of users.
There is no closed-form formula to tell how long a NURBS curve is. Offsets of NURBS curves are not NURBS curves. Likewise, intersecting NURBS surfaces produces intersection curves that are not possible to represent as NURBS curves.
So something as simple as a fillet is impossible to exactly produce in like 3 ways. Booleans then add the joy of topology to the mix. It's all heuristics and approximations and dirty hacks.
mianos|5 years ago
tfinniga|5 years ago
Using a solids kernel with procedural surfaces can help many cases, as you keep the modeling tree around and can recompute portions at higher tolerance as needed. However that's just another cumbersome workaround to the fundamental problem that the math doesn't have clean solutions.