Branch soc-2014-nurbs update to master code base D6807

the python add can only import 3dm’s mesh and no trimed nurbs to blender. because of Blender lack of data structure to hold the trim nurbs.

1 Like

I had imagined that blender nurbs have limitations, but I was referring mostly to tessellation, same filipped faces in the visualization, perhaps it is related to the new eevee code, the blender 2.7x draw engine was different

nurbs can not directly display in any software, so nurbs --> mesh date -->display is the pipeline.

I upload a new compile file on graphicall.

1 Like

I think if there are a lot of todo to complete the code … maybe it could be an opportunity for a GSoC proposal …

I personally think that the foundation is very cautious about NURBS entering gsoc. After all, it has failed three times. If there can’t find the right person, and see the specific potential, blender’s gsoc should not be open to NURBS.

1 Like

I understand what you mean, but this happened when one had to start from scratch, while continuing a project already well under way, maybe it’s another story entirely …

In fact the suggestion was related to the fact that perhaps you could participate since you are already working on it.

Yes, if someone can fix these problems the next step will easy, Infrastructure should be solid .


Hey, you are probably referring to rhino3dm. I would suggest to use this as your 3dm format reader, unless you want to do the tessellation in C/C++. I use this library in the import_3dm add-on - but that doesn’t do any brep tessellation, just the render mesh reading :slight_smile:

It doesn’t work because MoI doesn’t write render meshes - it could, but it doesn’t.

I work with both Blender and Rhino yes, but I don’t know the tessellation code in Rhino.

I would suggest to use the Python wrapper rhino3dm and work on tessellating breps in Python side. That way you don’t have to rely on the data structures in Blender. You don’t get to edit the data in its original form, but you do get the meshes out, and that’d be hugely beneficial.

1 Like

Here is the origin coder’s final report about this branch.
the branch is not just import 3dm file to blender but did some basic function for Blender to support trimming nurbs which seems every nurbs editor has.
the origin branch is been reviewed by many developers in blender since 2.7x, but in 2.8x things changed.
but the branch’s function is for nurbs editing in Blender,so if we just import render mesh from 3dm to Blender is not this branch’s Initial achievement.


I follow you carefully, it would be a wonderful thing if that code could be integrated into Blender, I support you.


a working compatibility with the openurbs format, (STEP would be even better because universal) would be the beginning of a new era, especially for all those engineers and architects who for now are forced to use blender only as a rendering engine and little more.


add rhino Tspline import support use T-spline opensource lib


I’ve read the “Final Report”, and it seems it really improves interactive NURBS operations, comparing to what we have in Blender currently. It would be good to have it merged anyway.
But, there are several features that I do not see described there:

  1. Currently, there is no way to specify knot vector explicitly: Blender can work only with either “uniform” knotvector or “clamped uniform”, not arbitrary. This limits some applications (for example, you can’t merge several Bezier segments into one Nurbs; you can’t create interpolated nurbs curves/surfaces from given points). Am I correct the branch being discussed does not add such functionality either?
  2. It would be really good to have Python API for nurbs manipulations similar to bmesh, which does not manipulate with objects in Blender scene, but manipulates with abstract “in-memory-only” objects instead. Such API should allow to specify all key information about curves/surfaces created - control points, weights, knot vectors…
  3. It would be good to have Python API for “key” Nurbs operations, such as “evaluation”, “normal calculation”, “knot insertion”, “degree elevation” and so on.
  4. And (just dreaming aloud) it would be just excellent to have Python API for more complex operations, such as “create ruled surface”, “create revolution surface”, “create loft surface”…

From these, only p.1 and p.2 can not be implemented as python add-on, at least if we want to work with actual Blender Nurbs objects, not with meshes. If we would have p.1 and p.2, then p.3 and p.4 can be implemented as a Python addon (they involve some maths, but not too complex in terms of performance).
Do I correctly understand, that none of this is implemented in the branch being discussed, just because it’s primary goal was interactive nurbs manipulation? Are there any, well, dreams if not plans, to implement this?

The reason I’m asking is, currently in Sverchok addon we have some number of nurbs algorithms implemented in Python (and it is not even too slow), and that looks a bit funny, when there is some kind of Nurbs implementation in Blender itself… I was wondering whether it worth to continue development of this functionality in Python (adding new features, for example), or maybe it would be better / simpler to just wait a few months and just call some API from Blender?..

All that you ask for is great and I agree with you, but right now there is no developer involved in this AFAIK, maybe if you contact the original GSOC developer he/she can finish the patch, update it to master and add the missing features to get it reviewed, it could be very good in general indeed :slight_smile:

Well, as far as I understood, there is a rebase of that old branch on current master (, and it is only waiting for review and approval? (well, and most probably testing).


Is almost usable I use it some time and I tested an ICEM surf model, imported via 3dm, Blender manage very well this surfaces, I hope someone take care on this side.


There’s some infomation but I can’t promise it will happen or not: I talk to LANPR’s developer if he will response the review processing on D6807, seem he have some interesting on nurbs.
@portnov if the patch reviewed, the py API or other things will follows. new nurbs on this branch can handle any type of vector.


nurbs and precision modeling are the last major milestones left to make blender complete.


… this is the best moment, to push this.
There are several angry fusion 360 users, who want more freedom and fewer pitfalls…