Reverse engineering: convert mesh to nurbes

I’m new to 3D scanning and looking for the best solution to utilise a huge mesh from 3D scanning (an aircraft) to build clean nurbes surfaces in Rhino. Rhino’s own conversion isn’t of use to me as it would construct thousands and thousands of surfaces/polysurfaces or crash in the process.
I’ve had a look at several third-party options and plug-ins:

  • Sycode “Mesh to Solid” (they seem to be out of business, at least they never reply to any email enquiries or even a request for a trial license)
  • Resurf standalone or RhinoResurf
  • Mesh2Surface
  • Arena4D (seems to be for point clouds only, not for meshes…)

Would anyone have any advice, recommendations, etc? At the moment I’m kind of leaning towards Mesh2Surface, but I do wonder if the expense is really necessary at all?? Is Rhino capable of handling a fairly large mesh in the background while I’m hand-building the nurbes surfaces just using the mesh as a reference? I do have T-splines installed and I sometimes read that it’s useful in this process, but I’m not quite sure what the best approach would be…

Many thanks!

There is a process using T-Splines but the process can be tricky. It’s definitely an art more than a science.

Regardless of the process, it usually ends up requiring a lot of tweaking and time-consuming manual adjustments. The last few times someone gave me a 3D scan, I used it for reference and built a clean Rhino surface faster.

If there is a newer / better way, I want to hear it also!

1 Like

Hi Jeffery,

VSR, now called Autodesk Shape (I think), is a useful plug-in for Rhino when performing this kind of reverse engineering. Definitely worth looking into if you can afford it.

I use the VSR multi-blend tool quite frequently.

Here is their product page. Its selling for $1,325. Some product highlights are here.

Highlights: This plug-in is fully integrated in the 3D graphics of Rhino (version 5, 64bit) and contains functionality to easily create and modify “Class A” shapes, including:

  • Simple and fast control point modeling with numerous additional
  • Curve and surface matching functionality up to G3 (“Flow”)
  • Blend and Multiblend functionality up to G3 (“Flow”)
  • Graphical handles for easy modification of the created geometry
  • Integrated analyses in almost all functions to evaluate the resulting
  • Quick user-controlled surface creation on polygon meshes
  • Curve sketching functionality
  • Curve and surface approximation to simplify the geometry
  • All analyses can be saved across sessions in the Rhino-3DM-file.

Here’s a preview of features:

In this detailed 1-hour webinar, a question is posed: “Can it convert a mesh to a NURBS?” and the answer is “We are working on it.”

Thanks, but this is just too expensive for me. Is anyone around who might be able to comment on the specific plug-ins I mentioned or generally comment on whether Rhino can handle the manual creation of surfaces while a large mesh is open in the background, or will it constantly crash?


Jeffery, just checking - I sent you a private note - did you see that?


Another option is to segment the mesh and hide the irrelevant sections whilst you work on reverse engineering one at a time. You could also use rhino’s “ReduceMesh” or a program like meshlab to decimate the mesh whilst preserving the overall shape.

I have also found the “Patch” command to be helpful for these operations.

What are you planning to do with the model once you’ve reverse engineered it? The reason I ask is that the method to use will depend on the outcomes desired.

I have no idea if this would work in your case and/or situation, be it might be an option. Since you already have Rhino and T-Splines, adding ZBrush might give you some options. It has multiple tools for re-topology that you could then bring back into Rhino and convert the meshes into a T-Spline surface, eventually converting into NURBS. You’d need to be more proficient in ZBrush than I am, so excuse my poor 10 minute example images. I’ve only used this for organic models, but it might work for your needs.

Export mesh into ZBrush

Chose the best topology tool, this is just a re-topo section using the re-topology brush.

Import re-topo surfaces back into Rhino, convert mesh into T-Spline surface.

Fine tune T-Spline surfaces.

Convert surfaces to NURBS and use other Rhino tools to complete model.

Wow, that’s a nice Bell X-1. Is this mesh the result of a scan? If so then that would be quite a feat as the only original hangs from the ceiling in the National Air and Space Museum…

I’m not sure if using and learning a completely new stand-alone software is the right way forward, but I’ll investigate.

I still haven’t learned to use T–splines to its best effect. I dislike the way it often behaves unpredictably, in that it doesn’t like accurate dimensions or edge positions etc.

I still haven’t got the mesh from my scans but once I have I’ll play around with the demo versions of the various applications and then see…

The model is for scale modelling purposes (both injection moulding and 3D printing). Accuracy is very important, but some level of simplification has to take place in that not every ripple or dent in the original will be reproduced. I need to create smooth, clean surfaces, based on both original construction, measured and scanned data.


If a scanned 3D mesh already exists, I’d skip the ZBrush step altogether and just go into T-Splines.

This is the process I use to retopo:

The TSplines Retopo method will be manual, but since most aircraft are streamlined in their shape, it’s nothing like a horrifically long attempt at retopologizing Baroque-era furniture. Retopo either left or right half of the aircraft, select the center vertices to SETPT them to a chosen symmetry axis, then symmetry-mirror the T-Splines object. Plenty of video tutorials out there showing symmetrical modeling in TSplines.

Keep in mind that TSplines Retopo is simply a helpful guide that can/should be turned off when an override is needed in certain “dirty” areas of the scan.

Final word of advice is to not fall into the mind-clog that the ENTIRE model has to be created as a single TSplines object. Depending on the model, it may be more logical to create fuselage, wings, elevator as separate retopo’d objects, convert it to nurbs, and Boolean union toward the end.


It is a 3D scan, made by the Smithsonian X 3D Explorer project (

I agree with @CarterTG, it might be better to skip ZBrush and use T-Splines directly. I’ll admit that I haven’t used T-Splines in that way, but others have done so successfully. I always make some sculpting modifications in ZBrush, with my workflow, but if that’s not needed, it would be an extra step. The exception might be if someone found the topography tools in ZBrush better/easier than using T-Splines directly.

Just throwing out an option.

I have a 3D scanner and use both Rhino and SolidWorks (Scan to 3D add-in) and let me say that SolidWorks Scan to 3D sucks as does SolidWorks when it comes to surfacing. I just did a job where I scanned a 13B Mazda rotary engine and using that as a reference I constructed the the intake and exhaust manifolds using Rhino with the mesh running. Rhino handles the meshes beautifully whereas in SWX, just to rotate the model took a look of effort (memory, felt really heavy).
Regarding what you are doing, probably from my point of view the person who I would call the expert in this field is Schuyler Greenawalt and here is his blog. Sky is an expert in T-splines (they get him to do webinars on it) plus works almost exclusively on aircraft. His process is: 3D scan, then Rhino, Autodesk Tsplines and Autodesk Shape, true 3D surface routering on a cnc router then actual production of the pieces in carbon fiber. Previously he used to do the process without VSR (Shape). Here is his blog which has many good articles on this exact subject. One thing I clearly remember Sky saying is: Never Ever, under any circumstances use the “Patch” tool for high quality surfacing from a mesh. It’s easy but not up to the mark for anything other than hobby stuff where a likeness is good enough.

1 Like

You might want to examine Fusion 360 then.

In my view, Autodesk has advanced the T-splines UI in Fusion, making it easier for the uninitiated to learn T-spline modeling. There are other advances too AD is bringing to Fusion before the old plugin. At this stage, both Rhino and Fusion complement each other very well.

As mentioned by others, if conversion en mass is not working, break the mesh into logical (for conversion) sections.

Some Fusion mesh to t-splines and BRep links:

I’ve done a lot of this, and my technique eventually evolved into making rough surfaces using projected curves, creating surfaces from those curves, simplifying them as much as possible, and point editing to match the surface to tolerance.

It’s the hard way, IMO, but nothing else I’ve tried has really gotten me there. I bought VSR for this purpose when it was on sale, but then we started doing all of our design in the box.

Once blend and match with history become a reality, this method will be so much faster. Still, it’s going to take a lot of trial and error to get a good workflow.

As @ec2638 says, breaking your model up into logical sections is important.

I go from points clouds and meshes of boat hulls obtained using photogrammetry to good quality surfaces using Rhino alone. The scanned data is in a separate file, and Worksession is used to make it available for referencing.

First step is to decide how to model the hull: how many surfaces, what degree of continuity between the surfaces, which commands will be used to create the surfaces, and what curves will be needed.

Second step is to create the curves. For most curves the first step is to create a polyline from the mesh using Contour or Section. Then the polyline is cleaned up as needed and rebuilt as a degree 3 NURBS curves with an appropriate number of control points. Other curves are created using InterpCrv or CurveThroughPt. The curves are checked and adjusted as necessary to ensure that they intersect where they should and have appropriate continuity. PointDeviation is used to verify that the curves are sufficiently close to the scanned data.

Third step is to create the surfaces from the curves using the appropriate commands. Surfaces are modified and rebuilt as appropriate, including ensuring that the continuity requirements between surfaces are satisfied. PointDeviation is used to ensure that the surfaces are sufficiently close to the scanned data. If major changes are needed then the curves are modified: rebuilt or recreated as appropriate. Occasionally the original modeling strategy needs to revised and new curves created.


Thank you all for your advice! I really try to avoid purchasing another piece of software if at all possible. And it looks like none of the software tools mentioned in my post and others is really THE tool for the job, but rather one option to make certain things easier, depending on the particular requirements and the individual skill and preferences. I’ll try to make it work with both the Rhino and T-splines tools.

The problem I have with working with approximated curves is that they are often not smooth enough and suffer from compatibility problems when doing lofts and sweeps etc. Curve rebuilding often leads to unwanted results in areas of tight detail. I’ve experienced this already many times when working from traced drawings where either no or only one dimension is accurately annotated.

Anyway, what I’m getting is that I need a good cushion, a wrist support and loooots of time…


Pardon my ignorance but what does that mean?

It means we’re doing it all in CAD start to finish, instead of starting with hand models, scanning, and then reverse engineering the scan to NURBS.

This is a very important point that I want to emphasize. As we have seen above, the workflow of 3D laser scanning really sucks. For me, it’s the method of last resort… even then, I tell the clients to save their money and just loan me the object for measuring and photographing.

You can avoid all of these problems if you go from a concept sketch (or rough hand model) straight into Rhino. If you need a physical model, it will come from Rhino. If you need tweaks, adjust the Rhino model and generate another physical model / prototype.

1 Like