[0] Mostly due to precision issue with floating point representations.
There is fully opensource cross-platform NURBS modeler — Ayam[0], but it looks not NOT user friendly (as for me).
Also there is FreeShip Plus[1] which is truly NURBS 3D CAD.
There is some support for NURBS in Blender (3DView->Add->Surface->NURBS Surface) , but it is indeed minimal.
Try FreeShip Plus (Lazarus port of FREE!Ship+).[0]
Also, check Paolo Furani's technique on SubD modeling in Blender and converting to NURBS via FreeShip.[1,2]
[0] https://github.com/markmal/freeship-plus-in-lazarus
[1] https://twitter.com/PaoloFurani/status/1407071700244701195
[2] https://blenderartists.org/t/from-blender-subdivision-to-n-u...
It's useful when you build 3D objects that have to obey strict engineering constraints.
3D modeling for games / sfx / 3Ddesign rarely has such problem and typically follows a very different workflow.
That being said Freecad is way more versatile and you can do almost anything. Solve space is more like the equivalent of building a freecad model out of clay. You can always adjust it but you don’t end up with anything more usable than a stl file in reality, which you can then import into freecad lol.
Openscad and opencascade are for CAD program designers imho . Although version control is so appealing.
SolveSpace has a little bit different constraints solver.
There is Assembly3 worbench for FreeCAD, which is based on SolveSpace solver.[0]
[0] https://github.com/realthunder/FreeCAD_assembly3/wiki/Constr...
SolveSpace could export designed 3D model as NURBS geometry to STEP (.stp), but there are no advanced tools for NURBS surface modeling.
Something like Rhinoceros 3D [1], or at least Moi 3D [2].
Unfortunately, all the Linux tools and open source ones seem to be focussing on mesh modelling.
[1] https://www.rhino3d.com/
[2] http://moi3d.com/