XNurbs Rhino plugin is available!

Fo you have a sense of timing for this? when would you see the CloudZoo being implemented.

From a user standpoint we find Cloud-Zoo a trivial one to use and manage, and any other online cloud-based licensing system something that always has problems and we decided we are done bringing any more to the team.


Even the first created surface had many wavy areas (check 1:15 minute of your video), then virtually any new surface patch also had similar improper shape. As a result, while the bumper may have G2 continuity between the adjacent patches, it’s nowhere close to the surface quality necessary to manufacture a bumper or other part where a proper surface flow (consistent, smooth reflections) is a must. My suggestion is to try to make a new sample bumper with those imperfections being solved or at least made less obvious. The bumper in its current state has plenty of surfaces that randomly change their angle of inclination, hence they make the reflections look wavy. As a result, they appear to be something like a smoothed out mesh model from 3DS Max. Many Rhino users could achieve better surface quality with Rhino 2.

The same happened with the mouse’s top shape that has wavy area in the middle. The eventual Zebra analysis just made it even more obvious.

The last example on your website (a patch that fills a 5-sided hole at the end of two fillets) creates extremely wavy surface that’s nowhere near of the target result.

I think that XNurbs is a very good patch command with real-time preview whose capabilities are far better than the regular “Patch” command of Rhino. However, I find it overly-optimistic to advertise XNurbs as a powerful tool that could find solution for any situation. The sample 3d models of the front bumper, the jet body, the computer mouse and several others proved that XNurbs can’t compete with classic tools like “Blend surface”, “Sweep 2 rail”, “Match surface”, “Loft” etc. There is a good reason for each of them to exist and perform best in specific situations.

On a side note, many people already noted that you will gain more respect if you stop repeating that even experienced Rhino users don’t know how to properly use XNurbs. XNurbs, even used by its creator (supposedly you) and the guy who made those demos (Vladimir Aleksic) is still not capable to provide optically proper surface quality. Having G2 continuity is one thing. Having smooth flow of the whole shape is another thing.

Could you upload the “Watertight Fender” 3d model here so that I could examine its surface quality?

I’m considering purchasing your patch plug-in if it proves to be good enough. Could you explain what is “The price includes all minor updates and tax”? Since the current XNurbs is version 2.*, does that mean that owners of version 1 had to pay extra to unlock the bug fixes and improvements of version 2? What happens after a few months, when you add a few more bug fixes and improvements and rename the plug-in as version 3? Will that require existing owners to pay extra to get access to that functionality?



1 Like

Could XNurbs solve that Y-branch situation yet? 3 months ago it was not capable of doing it.
On your website XNurbs is advertised that way:

XNurbs uses one simple UI to solve all kinds of problems for NURBS creations – It virtually has an unlimited capacity for solving NURBS and generating high-quality surfaces based on energy-minimization method.

Test multiblend using basic Rhino 6 surface tools.3dm (10.1 MB)

1 Like

Most of the the XNurbs results shown in this thread do not appear to be suitable for modification and editing after creation. As @Rhino_Bulgaria mentioned XNurbs appears to be a good substitute for Patch in many situations. However I typically use Patch with starting surface option and fixed boundary option. ere I create an intial surface with the desired degrees and number of control points and then use Patch to fit the surface to interior curves and/or points. Does XNurbs have any ability to start with a user specified surface?

1 Like

That was super easy to beat with Rhino’s basic tools for less than a minute (with the added benefit of having a total control of the surface flow for future modifications). Here is a short tutorial showing how to do it:

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

It appears that you don’t understand the basic concept of NURBS: how could you use one single NURBS surface to satisfy such a G0 boundary condition. As said by others,

Your example is the same as that crap.

“There is a good reason for each of them to exist and perform best in specific situations.”
Wrong. They were developed because of mathematical limits in 1980s: to solve a surface, developers had to create a linear system. xNurbs is a non-linear system. I guess that you don’t understand the difference between a linear system and a non-linear system.

BTW, for UVFlowAngle, you manually manipulate control points and manually create the surface. You may need to provide some GIF animations to show others how you did it. If the original surfaces are deformed/trimmed and the isocurve directions do not make any sense, then how could you manually create the surface? Also, the xNURBS surface uses an un-optimized input. If it uses an optimized input from those linear tools and solve the condition with its non-linear solver, then you won’t stand a chance. As said “if anyone could produce a better G2 surface with other surfacing tools, we would consider to further optimizate the new UV flow option of V2.1.”. In other words, we are considering if it is necessary to uses an optimized input. We don’t see any reason to further optimize the input condition.

The videos you mentioned were created by V1.1 and V2.x can produce better surfaces. However, we won’t waste our time to reproduce them so as to satisfy a tiny number of users who prefer to manually create surfaces by some primitive tools.

Yes, the most basic version of xn kernel has this capacity: you can simply the desired degrees and number of control points.

However, designing a simple UI for it won’t be easy: xNURBS supports degree 1 up to degree 20. So it could produce a surface with degree 9 in U and degree 6 in V.

We plan to provide a cloud-based licensing with V2.2. So it is about two months.

As said, “While Rhino Cloud-Zoo is available to plugins, it is a bit difficult for a plugin to support the current Cloud-Zoo SDK”. Rhino may improve its Cloud-Zoo SDK over time, but we want to provide a cloud-based licensing ASAP. So we will go ahead to implement some cloud-based licensing, which should be trivial to use and manage.

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)