Help converting a mesh to nurbs


I wonder, is there anyone who can help me to convert a simple mesh to nurbs? basically I need to reverse engineer a shape that I modified in zbrush. The shape is really simple, but I have tried a number of different automated programs (rhinoreverse, RhinoResurf, Mesh_to_single_NURBS, OBJ_mesh_to_solid) but have not had any luck with any of them. I just ended up with a twisted bunch of curves and surfaces. I understand that reverting back to nurbs from a mesh is a tricky operation, but if anyone who has experience with this could help I would really appreciate it. please let me know !

(an alternative solution to my problem would be to figure out the precise information (coordinates, degrees, origin points) which zbrush used to transform my model and then use that information to replicate the transformation in rhino using my original nurbs object, but I’ve had a lot of trouble trying to figure this out on zbrush forums, no one seems to know, because the details of the deformation tools in zbrush are kind of veiled within the operating system)

1 Like

The first question I always ask is: Why do you at all need Nurbs?
If the geometry is meant to stay digital or is supposed to get additively prototyped (3D-printed) your existing Zbrush mesh will be just fine. In many cases milling will also work with meshes.

If you however decide that Nurbs are required but you’re not content with the automatic conversion options available one can always reverse engineer manually. Essentially you bring in the mesh in a high resolution as a 3D template into Rhino and extract / project the curves which define the topology from a surface modelling perspective. This with a simple object should not cause too much of work.

There’s actually nice options to mingle your existing model with parts created in Rhino and to assemble them accurately.The rough way is to bring your existing model to Rhino and to align/scale it in the way you want to. Then you can add any sort of Nurbs elements and sent them over to Zbrush, together with the adjusted source mesh. If one stays Highpoly and uses tools like Dynamesh (again with high resolution) as well as reprojection one can work very accurately, but output is a mesh.

1 Like

Hi CdeV,

Maybe this is too obvious, but, you didn’t mention meshtonurbs. If you haven’t tried it take a look at this:

Can you post an image of your shape for us?



I’ve used several different approaches to go from meshes to NURBS surfaces in Rhino. The choice depends on the shape and complexity of the mesh, and how accurately the NURBS surface needs to match the mesh. The approaches include:

  • Extracting points from the vertices of the mesh, and then using Patch to create a surface from the points.

  • Sectioning the mesh at a number of locations, typically using Contour although sometimes Section is used, and then using Patch to create a mesh from the section polylines.

  • Sectioning the mesh to create a series of polylines which can be used to build a surface. The polylines are converted to smooth NURBS curves (generally degree 3). Then surfaces are built using the tool(s) appropriate for the curve arrangement.

I’d suggest that you look into using T-Splines as a method to go from ZBrush back to Rhino and then to NURBS. I’ve been experimenting with this and it is promising. The images show a ZBrush sculpt using ZRemesher to export a quad mesh, converted to NURBS using T-Splines. It seems to work for what I need.

1 Like

Or how about from Rhino to ZBrush and back again, for automatic fillets on something that would be very hard to do, otherwise. Rhino file on the top, the bottom was exported from Rhino, opened in ZBrush, exported back out as a quad mesh and converted to NURBS with T-Splines. This sort of thing isn’t on everyone’s need to do list, but it’s on mine quite often.

Just curious; this seems like a finished model - why do you need it back in Rhino as a NURBS object?

This would be one of multiple cavities that would be placed on a tray, along with other objects/components that are NURBS. Ultimately, the finished file would be run through SolidWorks where all of the thermoformed tooling intricacies would be added.

Yes, we’ve had that discussion about working with meshes, rather than converting back to NURBS. I’m not a Die Shop/CAD Engineer guy, but I’m told it’s a problem for us in our workflow, so NURBS it is. I should add that 98% of what we do is perfect for NURBS. It’s the oddball 2% where working with NURBS becomes an issue. Expecting a change in workflow for such a small percentage of work will be a hard sell.

1 Like

Hi @Fred,

wow, thanks a lot for your detailed reply - super helpful.

the reason why I am trying to convert back to nurbs is because the form will be milled, and I was assuming that to get clean curving lines without polygon faceting I would have to convert to nurbs. Perhaps I am wrong. This is something I should check with the fabricator first.

If we do indeed have to convert to nurbs I will try one of the methods you mentioned here. The form is simple, but the curves are irregular, organic and potentially hard to reconstruct manually, so that is a bit of a concern to me.

Hi @Cosmas, yes, I tried this, but it just makes individual planes out of each polygon. I’m looking for something that will be able to interpret the overall shape of the form. perhaps I’m asking to much hehe ! I’ll post you a pic

thanks @davidcockey, I’ll look into this method

interesting method you came up with @mcramblet, this is something I’d like to try. do you have any information about converting to NURBS with T-Splines…any tutorials you know of?

that’s a smart auto-fillet method you invented @mcramblet. nice. but i’m still not clear about what your steps are…so you bring your quad mesh into Rhino, and then you convert to T-splines, and then Nurbs…?

This is great. I’m very interested in this technique. I’ve kept an old copy of 3D Max with nPower Translator installed so I can quad mesh (roughly) my nurb imports. nPower’s pluggin was the only available quad mesher for nurbs I had. It was great for quick and dirty auto fillets around very small type. I see with your example a perfect application for it.

So you export tris from Rhino? To zBrush and export quads from there. How accurate/effective is the remesher in ZBrush?

Please explain more and any limitations you have come across. Maybe I can finally retire my old, old workstation with 3D Max 5.x.


Here is a very quick “example”, without taking any time to make adjustments. I can get more detailed later, if needed:

Rhino object:

Meshed in Rhino:

Imported into ZBrush:

DynaMeshed to convert into dense quads:

ZRemesher to convert into lower poly quads:

Imported quad mesh into rhino, converted to T-Splines object (toggled smooth):

T-Splines object converted to NURBS:

Rendered NURBS object in Rhino:

There are steps in ZBrush that allows for control as to how much smoothing takes place and a couple of methods to get ZBrush to better work with the triangled mesh from Rhino. The ZRemesher seems to do an amazing job at creating good quality quad meshes. Getting something smooth is easy, I’m trying to play with settings and methods to see how much detail I can capture when coming out of ZBrush and that appears to be a little harder. Still working on that portion of it.


What resolution is your Dynamesh in ZBrush (before you create a standard mesh from it)?
How many quads are you typically running through T-Splines?

I haven’t developed any hard and fast rules, at this point. For the Dynamesh, I’ve used in the 300-500 range for the resolution. In the example used earlier in the thread, the mesh from ZBrush was running close to 14,000 polygons and converted with very little lag with T-Splines. I’m just scratching the surface of the potential and I hope to dig deeper into it in the next few weeks.

This is great…thanks very much!

That’s good to know for comparison. I have not downloaded ZB 4R7 or the documentation yet. I think Dynamesh could be really useful for some of the work I am doing. I would like to see how Dynamesh is working with subtools also. I thought that all the subtools had to fit into into the overall Dynamesh resolution, so it was not possible to have one subtool with a higher resolution than another, but maybe I’m wrong there.

I’m not sure about subtool resolution. I’m a ZBrush newbie and know about enough to be dangerous, at this point. I’m trying to learn it, though.