At the outset I would like to say that T-Splines is not a reverse engineering software. It is an organic modeling product implemented as a plug-in for Rhino. In my quest to get a NURBS model of the Porsche 911 GT3 I started looking at reverse engineering software with the intention to cook up the NURBS model of an object from its mesh representation. One of my readers suggested that I try T-Splines. I got in touch with Matt Sederberg, Founder and CEO of T-Splines, and he gave me a license, with a reminder that his product was really not designed for what I was trying to do. But that didn’t stop me.
So after playing around for a while I have arrived at the conclusion that T-Splines can indeed be used to reverse engineer a NURBS model from a mesh. But there are a couple of limitations which I will get to later. First let me explain the process. It basically consists of three steps:
- Convert mesh to T-Spline mesh (using the tsConvert T-Splines command)
- Convert T-Spline mesh to T-Spline surface (using the tsSmoothToggle T-Splines command)
- Convert T-Spline surface to NURBS surface/solid (using the tsConvertToRhinoSurf T-Splines command)
Here is how I converted the main body shell of the GT3 using literally four mouse clicks (one object pick and three menu picks for the three commands). You will need to click the images for larger views to see the object properties window more clearly.
Now for the limitations. First of all, the mesh must be a quad-dominant mesh. This means that most of the faces must be quads and not triangles. If the mesh consists of only (or mainly) triangles there is a high probability that T-Splines will run out of memory. The reason for this is the T-Splines mesh conversion is similar to sub-division surfaces. It basically smooths the mesh vertices. This is different from a true reverse engineering system which fits a surface passing through the vertices of a mesh.
The second limitation is that since T-Splines has a sub-division surfaces kind of a mindset it cannot be used to reverse engineering objects with sharp feature edges and corners. For example take a look at what happened to this mesh when I ran it through the three T-Splines commands I mentioned above.
Nevertheless after hacking away at the meshes for a while using the three T-Splines commands I could convert most of the parts of the GT3. However, there were times when one of the three T-Splines commands failed and then I had to resort to Rhino’s MeshToNurb command which convert each triangle or quad in the mesh to a trimmed planar NURBS surface and stitches them up together. That bloated the Rhino model considerably.
Like I said, T-Splines is not designed to reverse engineering meshes. But frankly I was quite surprised that it was able to give me NURBS models of a number of parts of the GT3, especially the outer body shell. After I was done, I checked the Rhino file size. It was a whopping 500 MB, mainly because of all the solids created by the MeshToNurb command. I tried saving it out to IGES or STEP and Rhino ran out of memory, which was to be expected. In fact, I should be happy that it stuck with me for so long.
Here is a quick render I did in Rhino. All the objects in this model are NURBS surfaces or polysurfaces. No meshes. So I guess I was able to finally cook up my NURBS model of the Porsche 911 GT3 using T-Splines and Rhino.
T-Splines is priced at $599. If you don’t have Rhino you get a Rhino + T-Splines bundle for $1495. You can download a 25-save trial of T-Splines from here.
This is an example of what T-Splines is really used for. To see more example, you can visit the T-Splines Gallery.