XNurbs Rhino plugin is available!

You misuse “NURBS” with “patch”. While “XNurbs” is based on NURBS (like “Blend surface”, “Network surface”, “Sweep 1 rail”, “Sweep 2 rails”, “Loft” and many others"), in essence it’ a patch tool. A good patch tool that’s comparable to the patch tools in some other CAD programs. And much better than Rhino’s own “Patch” tool.

You mentioned that I “don’t understand the basic concept of NURBS”. Were not your car front bumper, jet hull and mouse body examples shown here to advertise the capabilities of XNurbs to combine multiple patches, in order to build whole models? As you know, I filled the middle area of the Y-branch model with several surfaces build with a few basic Rhino tools. The same should be possible with XNurbs, too. The latter could use curves as boundary constraints to G0 (exactly what I did while using Rhino’s basic “Patch”).

Your description of XNurbs is a bit loose, and, in my opinion, it’s more safe to advertise it as an advanced patch tool that could deal with many (but not all) scenarios where other NURBS tools fail to deliver the same results. By providing two different 3d models above, I already proved that some basic Rhino tools are far superior in the same circumstances where XNurbs showed obvious weakness. There is nothing wrong with that, because it’s natural for a patch tool to be less accurate and smooth than well-balanced “Blend surface”, “Sweep 2 rail” or other types of NURBS surfaces that were additionally improved with control point manipulation and “Match surface”.

You assumed:

I guess that you don’t understand the difference between a linear system and a non-linear system.

That’s right, I have no idea what those two are about. However, I pretty much understand what’s a smooth flow of the whole model, which is the primary reason for using NURBS over mesh modeling for manufacturing purposes. Both, the car bumper and mouse body of your examples have inconsistent wavy areas that will never meet the requirements for manufacturing.

You are welcome to use my 3dm model from my previous post and follow the guides that I wrote next to each 3d model, describing the modeling process step by step.

Are you willing to share the 3d model of the car fender that you posted on your website as an example of the capabilities of XNurbs over other NURBS tools? I would like to examine it and, if I have some free time, I will send you my own version with better surface quality made entirely with basic Rhino tools.


The bumper model seems to have some surfaces of dubious quality.
But to me that is caused by the general layout of the bumper.
Lots of very shallow angles between surfaces mean that in tricky situations (sharp radii) some surfaces seem to change between concave (- curvature) and convex (+ curvature).

1 Like

While all xNURBS users satisfy xNURBS’ capacity of solving NURBS surface and the surface quality xNURBS produces, we have no intention to satisfy a tiny number of “unique” users. I am afraid that xNURBS is not for you.

We might provide a free patch tool for newb and dummy who could only manage to use xNURBS as a patch tool. So you could wait for that version and it is cheap.

Sorry, we cannot offer you more and xNURBS is not for you.

BTW, for that trivial UVFlowAngle, you manually manipulate control points and manually create the surface. You really need to provide some GIF animations to show others how you did it. Also you should show users how you could manually create the surface if the original surfaces are deformed/trimmed and the isocurve directions do not make any sense.

The videos were created by V1.1. That issue has been fixed in previous versions when @Gijs reported it. So now xNURBS should produce perfect surfaces (from the viewpoint of a vast majority of users).

@XNurbs - For the benefit of the “newb and dummy” here (many of whom have decades of experience in NURBS modelling), would you care to educate us all with your new learning by explaining these terms in a way that we can all understand?

Are you implying that the surfaces created in the bumper demo are in your view suitable for production? I want to fully understand your opinion in this respect.


@XNurbs Am I correct in understanding your response to mean that while the kernel has the capability to allow user control of the degree and number of control points the current implementation of XNurbs does not have that capability?

If the outer boundary of the area of interest is a topological rectangle then will XNurbs create a solution which does not go outside of the boundary?

xNURBS manual explains this: To use XNurbs efficiently: First use XNurbs with a small number of constraints for the rapid concept design, i.e., form finding or generating a draft surface, then extract curves from the draft or concept surface, edit the curves and/or split the surface into two or more patches, then run XNurbs again to generate the refined surfaces.

No. Explain 3 times: The bumper video were created by V1.1 (or V1.2?). That issue shown in the bumper model has been fixed in previous versions when @Gijs reported “ripples” in surfaces generated by xNURBS. So now xNURBS should produce perfect surfaces (from the viewpoint of a vast majority of users). Hope this clarifies the issue.

Can you break that down to relate it to the terms you used: Namely “linear system” and “non-linear system”?

Yes. xNURBS is just a dialog based on xn kernel. Adding some options in the dialog will switch on the capacity. As simple as that. Some users already asked this option (it seems many users want to edit the control points.)

Selecting “Optimize for Quad-Sided Surface” will produce the surface you want.

It is not related. For a linear system, you could think a straight line. For a non-linear system, you could think a quadratic curve. Which one is smoother? Of course, a quadratic curve. Also a quadratic curve can generate any shape straight lines could produce.

For that trivial UVFlowAngle, Rhino BlendSrf will generate a surface shown in the screenshot below.

It would just be a lie for anyone who claims that a linear surfacing tool can produce a better quality surface than a non-linear surfacing tool.

XNurbs was advertised from day one as a superior tool to all other tools of Rhino (and NURBS as a general). And that front bumper was given as an example of its capabilities that other NURBS tools can’t match. Now you say that the wavy surfaces made by XNurbs were caused by the immature version 1.1 or 1.2. Now that you already have a much more refined version of XNurbs, the easiest thing for you is to actually prove your brags about its superior capabilities and make a new bumper using the same input curves or other curves as you desire. Then upload the 3d model here. And then I will make my own version of that bumper with Rhino 1 or Rhino 2 (released nearly two decades ago) if I can find an evaluation copy of the program. Then you will be able to compare the quality of both bumpers.


In my earlier post above I already provided a 3dm file with the model, complete with a simple step-by-step tutorial showing the process of creating the blend surface that’s obviously better than the XNurbs patch in the exact same circumstances. I will attach it again just for you.

You intentionally selected this example with wavy bottom surface, because you already tried and perfectly knew that the basic “Blend surface” in Rhino will fail when the “Curvature” or “Tangent” options are used. This is good, because it shows where “Blend surface” sometimes fails to deliver the perfect result usually associated with it. I just showed you a clear and simple solution to this by using other basic Rhino tools: either “Sweep 2 rails” or “Loft”, combined with “Match surface”. I can also achieve the same perfect result with “Blend surface” with the “Position” option, followed by “RebuildUV” and “Match surface”.

Rhino tools are superior in this scenario.3dm (1.4 MB)

So I’m one of the users that has asked for this ability. I can’t speak for others, but I can speak for myself. Often times when I create primary surfaces, which I try to keep single span (either degree 3 or degree 5) A little control point modeling goes a long way. The matchsrf command in Rhino may produce a mathematically correct G2 result, but that doesn’t mean you have good control point distribution.

As mentioned by @Rhino_Bulgaria, he creates the initial surface layout, does a little control point modeling and after this performs a matchsrf commend.

To me, this is a way of modeling that works quite well. In addition to that, XNurbs is a very welcome addition to my toolbox, but it will not replace the other tools. I will often create a surface with a variety of tools, loft, blend, sweep2, networksrf, XNurbs. The different tools will produce different results in different situations. Based on this I will create several surfaces, judge which one is best and keep that one. I really don’t care what method was used to create it, I only care about the result. If Loft has the best result than great. If XNurbs has the best result than also great.

I believe adding control over the UV degree in XNurbs would be a very welcome addition for a variety of users. Glad to have added it to my toolbox and looking forward to see future enhancements.

1 Like

Loose loft is another way to get a clean simple surface in Rhino

Loose_Loft.3dm (109.7 KB)


@jim I looked at your model, impressive result looks really good:+1:

1 Like

I don’t understand using a patch for surface blends. Surface patches should only be used when all else fails.

I’d much rather see a decent fillet plugin.


That’s called - Profession Designer

Alternatively, one may go this route perhaps…

Hi Guys,

I think most users should know that the current xNURBS version is V2.0.

All genuine xNURBS users should have updated to V2.0, and all pirated users are stuck in V1.2. I would say a vast majority of xNURBS users are decent.

Thanks @norbert_geelen . We know you are a genuine xNURBS user and all xNURBS users satisfy xNURBS’ capacity of solving NURBS surface and the surface quality xNURBS produces.

On the other hand, for pirated xNURBS users, they generally use “fantastic” to comment xNURBS. As shown in the screenshot below, our license server recorded people who pirate xNURBS. (each item means one pirated xNURBS copy is activated on one computer. Call it xNURBS piracy frenzy. Everything on the server is managed by a native US based company, so we are not spied on you.)

I would say a vast majority of pirated xNURBS users are well-behavior-ed. Some even can provide useful feedback. A tiny number of pirated xNURBS users may be internet trolls and they would explore the weakness of V1.2 (they are stuck in V1.2) and attack us. I believe that a vast majority of users understand that we do not have the obligation to provide any fix for the out-of-date pirated xNURBS version. As with nearly all software, there is always room for enhancement.

Some already find that the latest version produces better surfaces and fix a number of issues. So they want to update. We will provide cloud-based licensing, and hopefully it will make it easier to become a genuine xNURBS users.

The message does not intend to embarrass the vast majority of pirated xNURBS users. A tiny number of trolls who stuck in V1.2 are a bit annoying.

Hope users can use this thread as a place to provide useful feedback.

Your method is the best so far. However, it explores the special shape of the origianl surfaces, i.e., the bottom surface is a cylinder. If the original surfaces are deformed/trimmed and the isocurve directions do not make any sense, could you still use this method?

The purpose of this trivial model is to see if anyone could use whatever surfacing tools they have to “really” solve the surface (i.e., generating a reasonable surface without dodging it. I would say you dodge the task).

If anyone could generate a reasonable surface with whatever surfacing tools they have (not Rhino software), then it would justify our optimization: unlike linear surfacing tools, xNURBS does not explore the boundary conditions, e.g., the isocurve directions. We already know that, if we explore the boundary conditions, e.g., isocurve directions etc., then xNURBS will generate 100% perfect surfaces. You might like it, but think again: Except for special cases, e.g., ruled surfaces, xNURBS is superior to traditional surfacing tools. If we optimize xNURBS for the special cases, then do you think how we could maintain a reasonable relationship with others?

Without optimization for special cases, the surfaces generated by current xNURBS is very close to the perfect surfaces. Most users can directly use them without any modification. A small number of users may want to further edit the control points, but that should be very easy as the xNURBS control points is very close to the perfect position.

Sorry that you had to purchase additional xNURBS Rhino plugin though you already own xNURBS SolidWorks plugin. The discussions above should explain why the control points generated by xNURBS is so smooth. xNURBS is a non-linear surfacing tool: thinking a straight line (a linear system) VS. a quadratic curve (a non-linear system), which one is smoother? So unlike linear surfacing tools, xNURBS can easily generate surfaces that are very close to the prefect solution.

Can’t wait to see and examine the quality of the updated 3d front bumper made with XNurbs 2.0. Should take you just a few minutes to complete and upload it here. That’s a great chance for you to prove your claims about the superiority of XNurbs 2.0 compared to basic Rhino tools and XNurbs 1.1 or 1.2 that failed to deliver the necessary quality as shown in the video on your website.

1 Like