Recently, I started to develop some codes that use NURBS (general things I intend to use/already using: spline generation, interpolation, grids, isolines, closest-point find, and many others), both for curves and surfaces.
The first practical problem I want to solve is to find a NURBS surface given a set of B-splines (Bezier patches, etc) in 3-D.
In one of the classic books about B-splines, L. Piegl and W. Tiller, The NURBS Book, Springer, 1995, Chapter 10 "Advanced Surface Construction techniques" describes a lot of computational algorithms, possibly including the ones I need (judging by the intro paragraph). However, I definitely do not want to invent the bicycle and would like to re-use as much as I can (provided the library development is not completely dead and has some userbase). I have no intention to write yet another NURBS library.
Right now, I am using openNURBS as a basic IO and storage format, but this library supports only very basic operations – and I am very reluctant to go into "full Rhino mode" to get access to the required functionality.
I already looked into:
- SISL, not entirely sure how I feel about the GNU license in this particular case.
- libnurbs++ or libnurbs++ GitHub, the development seems to have stopped at least in 2013, possibly 2011.
- Nurbana, the development seemed to stop in 2003 (!)
- verb, that I doubt I am the target audience of.
- and several other projects that lack any sort of documentation/development/user base.
So, I wonder, what are right now the common grounds for integrating NURBS-related calculations into your codes? Is there a widely used library that I missed (being relatively new to this topic)?