Automated hull conversion from STL to IGES for CFD analysis



There is a need to convert ship geometry available in STL mesh format (as shown below) to a NURBS surface for Computational Fluid Dynamics study. The manual way of doing it is to create station curves by joining points and then create surfaces. It’s quite complicated for the bulbous bow, bow flare and the propeller housing sections. The mesh2nurbs function creates a very coarse surface, not acceptable for CFD analysis. The hull should be smooth and watertight.

Converting the hull form needs to be done in a very short time, and an automated script would be very useful.

Does anyone have any experience with similar problems. Any suggestion would be helpful.


I am not aware of any automated ways of doing this in Rhino. We generally do similar by hand as you have suggested.

Maxsurf or other hull design software may be able to achieve it. Maxsurf have a method for fitting NURBS surfaces to a point cloud (which you should be able to generate from the STL). My only concern is how much control you will have in the problem areas you have already identified with only a single NURBS surface, trimmed and joined surfaces would make this much easier to model.

Grasshopper and its plugins may be able to achieve what you’re after also.


Except already mentioned solution, that takes ages, you could have a look at Friendship Systems - Caeses forum if you didn’t already.
I’d go deeper reading about surfaces created from cloud points.

Also, not entirely sure, TranscenData CADfix could help.

Out of interest, is that a containership?
What CFD software or grid generator + solver do you use?
Do you have series of STL file format hulls?


Thanks Stefan. Yes, the manual way of doing it is the only way now, and it takes quite a while to get an acceptable geometry file. I will read more about the cloud point to nurbs surface.

The picture is from a container vessel STL file. We use in in-house version of OpenFoam along with snappyHexMesh.


TSplines with retopo snap could to the trick.

If you don’t have it and are free to share the geometry I could give it a shot.


Thanks Ricardo. I am interested in how the T-Spline + Retopo would work. Here’s a partial hull, could you please give it a try and share the results. If works, I may recommend obtaining a T-spline license for Rhino (or is it free?).

T-Spline-Retopo-Ship.stl (250.5 KB)


This was real quick and dirty but you’ll see the merit in it.

More here:

Unfortunately TSplines for Rhino is no more. You’d need to try this in Autodesk Fusion 360. Or find someone willing to part ways with their licenses.


Ricardo, could you please upload the screenshot directly here. The domain is blocked in my company, so can’t see it.


retopo.3dm (366.6 KB)
The file. The TSplines object should open as a mesh and a polysurface for you.


If you have version 6 wip the tspline mesh can be converted to a subd, you can see it smoothed like that.

If you don’t mind my asking, why do you need to do that? Low resolution? Because it will end as a mesh in OF, right?


@RicardoAmaral, this looks very promising. A bit more refinement would perfectly fit my purpose.

I need this to convert ship hulls that are extracted form structural analysis software into a format that can be used for CFD analysis. Mesh used in CFD are much finer than structural mesh and needs smoother surfaces, not champhared triangles. Now I need to figureout a way to obtain T-spline for testing purposes.


But how the hull gets into the structural analysis software to start with? Isn’t from some kind of nurbs data?

I think you can try Fusion for free. The plugin will run 30 days as beta if memory serves me:


The original hull must be developed in NURBS form for input to structural analysis software. But, we don’t have access to that model. I am not sure why, but we don’t. Hence, this effort to find out an easy solution to convert STL to CFD acceptable NURBS.

Thanks for the link, I will try out the trial version.


ok, good luck!