Introduction

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. Its energy-minimization algorithm produces high-quality surfaces that are analogous to a physical model: when a wooden batten bends, it always assumes a shape that minimizes its bending energy to form a smooth curve.

Key Features:

· Unlimited capacity for solving NURBS: Its optimization algorithm can solve virtually any NURBS surface on the fly (regardless of how complex the constraints are).

· High-quality surfaces: For a given set of constraints, XNurbs’ optimization algorithm uses energy-minimization method to generate the smoothest NURBS surface among all possible solutions. The generated surface quality is outstanding.

· XNurbs is one super powerful NURBS tool that fixes virtually all surfacing issues for Rhino.

· Easy-to-use: It uses one simple UI for all kinds of NURBS modeling.

· Super robust: XNurbs is rock solid and works flawlessly.

· Native CAD surfaces: XNurbs generates native CAD surfaces, i.e., trimmed/untrimmed NURBS surfaces, which can be directly used for any CAD modeling operations.

· Fully support editing and rebuilding.

Users can compare the results themselves (You can find Y.stp and UVFlowAngle.stp illustrated in the images under the /Tutorial folder).

GTR Car (Most surfaces of the GTR model are generated by XNurbs. Courtesy of Alexandre Galin.)

Watertight Bumper (All surfaces of the bumper are generated by XNurbs with G2 continuity. Courtesy of Vladimir Aleksic, an experienced designer.)

Users should check out our tutorial videos for how to use x NURBS efficiently and correctly. (XNurbs Rhino plugin and XNurbs SolidWorks plugin have a very similar capacity and UI so they share some screenshots/videos.)

There are numerous operations or scenarios how XNurbs could be used. Since it is impossible to demonstrate all of them, the followings are just some examples. From users’ viewpoint, all operations or scenarios are the same: users just select curves or points, XNurbs will generate the smoothest NURBS surfaces that satisfy all the inputted constraints.

Watertight Jet Ski Hull (All are generated by XNurbs with G2 continuity. Refer to the Tutorial Section for how the Hull is created on the fly. Click here to play the demo video showing how the bottom surface of the Hull is created. While the video only demonstrates the most basic operation for XNurbs, once you understand how to operation XNurbs, then you can use XNurbs in thousands of different operations and XNurbs generates all other Hull patches in the same way. Notice the surface quality generated by XNurbs. Courtesy of Vladimir Aleksic.)

Watertight Mouse (All are generated by XNurbs with G2 continuity. Click to play the video for the creation of the top mouse surfaces, the video for the creation of the side mouse surfaces and the video for creating one side surface of the mouse in “slow-motion”. Courtesy of Vladimir Aleksic.)

Watertight Fender (All are generated by XNurbs with G2 continuity. Courtesy of Vladimir Aleksic.)

Aircraft Wing Tip (Click to play the demo video showing how XNurbs smartly blends G2 and G0 continuity along the edge of aircraft wing. Courtesy of FILOU)

Multiblending/Lofting with G2 Continuity

Y Lofting with G2 Continuity

Filling with G2 Continuity

From V3.0, XNurbs command supports history - it fully supports editing and rebuilding XNurbs surfaces created with History.


What’s New (V7.0)

V7.0 is powered by xn kernel 2025.0, which includes a number of enhancements. Except for surfacing quality improvements, the following are some of other main improvements:

1. V7.0 adds a new command “XNurbsSquare”, a tool for Class A surfacing, and users can specify surface degree and spans etc. “XNurbsSquare” fully supports history - users can select the command-line option "Edit" to edit a XNurbsSquare surface created with History. Also by simply modifying the inputted geometries, XNurbsSquare will automatically reproduce the surfaces it generated previously.

2. For four sided surfaces, including XNurbs and XNurbsSquare commands, users can add internal constraints, e.g., points and curves.

3. For Quad-sided surfaces, XNurbs and XNurbsSquare commands support “L” sided, two sided, three sided and four sided surfaces.

4. Add a tension option for XNurbs and XNurbsSquare commands.

5. Add a new “Align to Next” option.

6. Directly display the conflicting constraints on the model.

7. Fix the dark mode issue for Rhino 8.


Enabling the XNurbs Plugin

To use XNurbs, you must install and enable the XNurbs Plugin. If you haven’t done it, you can download “XNurbsRhino.rhi” from www.xnurbs.com and run the rhi file, which should automatically install and enable the plugin. If xNURBS toolbar does not show automatically, you can manually add it to Rhino: From Rhino, navigate to Tools > Options. Navigate to the Toolbars page under “Rhino Options”. Then open “XNurbsRhino8.rui”, which is installed as a part of xNURBS rhi file. To run XNurbs, type “XNurbs” at the Rhino command prompt or click [image] on the toolbar. To run XNurbsSquare, type “XNurbsSquare” at the Rhino command prompt or click [image] on the toolbar. The XNurbs/Square UI will show up. Type the XNurbsHelp command or click [image] to show the help. For the first time of running XNurbs, you should adjust the XNurbs toolbar as shown in the screenshot below. You can drag the toolbar button or toolbar tab to a different Rhino toolbar.

For the first time of running XNurbs, you also need adjust the XNurbs dialog and you can drag and dock the dialog to any place. We recommend docking it to the Panel on the right of Rhino Windows.

In case you need manually enable the XNurbs plugin:

1. From within Rhino, navigate to Tools > Options. Navigate to the Plug-ins page under “Rhino Options”.

2. Click the “Install…” button, navigate to the fold where you install XNurbs and select XNurbsRhino.rhp.

3. Click OK to close the options dialog.


XNurbs Dialog:

xNURBS for Rhino plugin provides three commands: XNurbs, XNurbsSquare and XNurbsHelp. Both XNurbs and XNurbsSquare fully support history. XNurbsSquare is a tool for Class A surfacing, and users can specify surface degree and spans etc. Since the UIs and usage for XNurbs and XNurbsSquare are similar, the following will use XNurbs command as an example to introduce their usage.

To run XNurbs, type the XNurbs command name at the command prompt or click [image] on the toolbar as discussed in Enabling the XNurbs Plugin. The XNurbs Dialog will show up. After selecting constraints and specifying the options, click the Create Button to create a XNurbs surface. From V3.0, XNurbs command supports history. Type the XNurbsHelp command or click [image] on the toolbar to show the help. Refer to the Tutorial Section for how to use x NURBS efficiently and correctly.

When running XNurbs command, you can directly select constraints. If you would like to edit a xNURBS surface created with History, you can select the command-line option "Edit". As demonstrated by the animated GIF, by selecting a xNURBS surface created with History, you can change its constraint selection and xNURBS settings. Also by simply modifying the inputted geometries, XNurbs plugin will automatically reproduce the surfaces it generated previously. (To enable history, users need switch on Rhino "Record History" option.)

The XNurbs Dialog panel includes two sections:

· Constraints

· Options

Constraints:

The Constraints Section shows the constraints you select. You can select surface/solid edges, vertexes, as well as 2D or 3D curves and points as constraints. For each constraint, you can apply Contact, Tangent and Curvature continuity by selecting the corresponding radio button under “Continuity:”.

· For surfaces or solid edges, you can select a Contact, Tangent or Curvature continuity if the number of faces adjacent to the selected edges is 1.

· For curves and points, you can select only a Contact continuity.

· For vertexes, you can select a Contact continuity, and if the number of faces adjacent to this vertex is one, you can also specify a Tangent continuity.

For each constraint, you also need specify if the constraint is a boundary constraint (i.e., lie on the outer loop/boundary of the generated surface) or an internal constraint by selecting or de-selecting the “Boundary Constraint” checkbox under “Topology:”. (You must correctly specify the "Boundary Constraint" checkbox for each constraint. Otherwise, your input does not make sense because in the real world no geometries can meet your constraints and XNurbs cannot produce perfect surfaces from poor input.)

After selecting constraints, as shown in the image below, you can also re-specify a different continuity and topology for each constraint by selecting an item in the Selection Box and then changing its continuity and topology. (When you select an item in the Selection Box, the continuity and topology info for the constraint are shown in both the graphics and the dialog panel.)

Options:

In the Options section, you can

Show preview: Display a preview of the surface generated.

Satisfy Precision Requirements: specify whether to output a surface that satisfies the precision requirements or a surface that ignores the precision requirements. Un-checking “Satisfy Precision Requirements” is useful for a number of circumstances, e.g., rapid concept design/form finding, refining layout/curves, or generating a single span surface etc.

Zebra Preview: Display the Zebra preview of the generated surface. (Zebra Preview is disabled for Rhino 5 as Rhino 5 SDK does not support Zebra Preview. The Zebra Preview uses the current Zebra setting. If your Zebra/Mesh setting is very high, then “Zebra Preview” may be slow.)

Apply Continuity to All Constraints: The Apply Continuity to all Constraints checkbox enables you to apply the current continuity control to all constraints when possible. (For some constraints, e.g., curves, only a Contact continuity can be specified.)

Optimize for Quad-Sided Surface: Specify if the generated surface is optimized as a trimmed surface or as an untrimmed surface (i.e., 4-sided). (If you select the Quad-Sided option, then the boundary curves must form a two-sided boundary, three-sided or four-sided boundary. When selecting the Optimize for Quad-Sided Surface option, no internal constraints is allowed.)

Trim the Generated Surface: Specify whether or not to trim the generated surface (Obviously, if you select Quad-Sided Surface, this option is ignored.). This is useful if you are not sure how to draw good curves in space. In this case, you can first create an untrimmed surface with a minimum number of constraints, and then draw/extract curves from the generated surface and trim the surface manually. (When selecting “Trim the Generated Surface”, if XNurbs were unable to trim the generated surface as expected, it would generally mean that the constraints are not correctly setup, i.e., incorrectly specifying the boundary/internal checkbox. In this case, using XNurbs standard, the quality of the generated surface is poor. The conflict constraints should be fixed first. Refer to the “Rules” section)

UV flow: There are four options

· Natural: No requirement for UV flow.

· Normal to Curve: With this option, XNurbs will try to keep U/V isocurves mutually perpendicular. Generally, users should switch on this option as it will normally generate better surfaces. For Quad-Sided Surface, as illustrated by the image below, this option will also keep the isocurves of generated XNurbs surface normal to the boundary curves. For some very curved surfaces, this option can prevent the generated surface from contracting (in case you do not specify enough boundary constraints).

· Align to Adjacent Curve: Align V isocurves of the generated XNurbs surface to adjacent curves. This option only works for Quad-Sided Surface and when “Quad-Sided Surface” is unselected, this option is the same as “Normal to Curve”.

· Align to Next: Align V isocurves of the generated XNurbs surface to the opposite boundary. This option only works for Quad-Sided Surface and when “Quad-Sided Surface” is unselected, this option is the same as “Normal to Curve”.

This animated gif shows the generated surfaces when using different “UV flow”.

The following four sliders (i.e., G0 Precision, G1 Precision, Quality Control and Flatness Control) can be used to further control the surface shape generated.

G0 Precision: The G0 Precision slider enables you to apply a different G0 precision, e.g., 0.001mm or 0.1 mm. Dragging to the right lowers the precision requirement, i.e.,

· 0.001mm

· 0.01mm

· 0.1mm

· 0.5 mm

G1 Precision: The G1 Precision slider enables you to apply a different tangent precision, e.g., 0.1 degree or 1 degree. Dragging to the right lowers the precision requirement, i.e.,

· 0.04 Degree

· 0.1 Degree

· 1 Degree

· 5 Degree

Relaxing precision requirement may improve the quality of generated surfaces (when using with Quality Control), and for some conflict (or ill-conditioned) constraints, it enables XNurbs to satisfy the precision requirement when it is difficult or impossible to meet a strict precision requirement under such circumstances.

Quality Control: If the generated surface is not smooth enough, you can improve its quality by adjusting this slider (Dragging to the right increases the surface quality).

Flatness Control: Control the flatness (also smoothness) of generated surface. This image demonstrates the effect of using this slider. Users should check out our tutorial videos for how to use x NURBS efficiently and correctly.

Click the Create Button (or press the Enter key) to create a XNurbs surface and exit the command. If XNurbs could not generate the correct surface from your input constraints, then nothing would be show and XNurbs won’t exit the command - XNurbs would wait your further action (Fixing conflict constraints, specifying additional constraints, or relaxing precision may solve the problem.). Click the Cancel button to cancel the XNurbs command. (To cancel the XNurbs command, you can also press the Esc key.) Click the Help button to show the help.

You should understand the discussions in the “Rules” section before using XNurbs in professional design!


Rules (or Tips):

· The “Boundary Constraint” checkbox under “Topology” means whether or not a constraint lies on the outer loop/boundary of a trimmed surface, i.e., whether a constraint is a part of a curve that trims a surface. If not, it should be specified as an internal constraint, i.e., the unchecked state of the “Boundary Constraint” checkbox. The following image shows the definition of boundary and internal constraints for a trimmed surface.

Correctly specifying the “Boundary Constraint” checkbox is necessary, otherwise, except for very simple surfaces, incorrectly specifying the “Boundary Constraint” checkbox always results in poor surfaces, i.e., larger tolerance, more control points and surfacing imperfection etc. Obviously, any open surface can only contain one outer loop. Forgetting to specify the boundary/internal checkbox is the most common mistake when operating XNurbs. For example, in the example below, obviously the two points should be internal constraints.

When specifying boundary/internal constraints, there is a case that needs a special treatment:

For the left image below, the points in the red boxes belong to Internal (I) constraints, but they obviously should be a part of Boundary (B) constraints. You should either keep the internal constraint within the boundary (i.e., leaving “a noticeable gap” between the boundary and internal constraint) or add two boundary point constraints (two red points as two boundary point constraints). The right image below illustrates the scenario that, by adding two boundary point constraints (i.e., simply selecting two red points as boundary point constraints), the trimmed surface is correctly generated.

The image below (Courtesy of Vladimir Aleksic) illustrates the scenario of keeping the internal constraint within the boundary (a “lofting” operation. Also note the fact that some curve constraint is much shorter than others: For XNurbs, you can use any constraints suitable for your design.).

· If Show preview does not show the correct trimmed surface (a rare case), then it means that XNurbs cannot deduce the correct surface from the input constraints due to the following reasons:

1. Conflict/unrealistic constraints, e.g., incorrectly specifying the “Boundary Constraint” checkbox.

2. Lack of constraints. There is not enough information for XNurbs to deduce the correct surface from your input, e.g., only specifying a straight line as a constraint or the desired shape is too difficult to work out from your input. Simply adding some (boundary or internal) constraints will provide XNurbs with additional information to deduce the correct surface.

· For most design, XNurbs can generate satisfied surfaces without users’ interaction. However, for some complex surfaces, interactive design might be necessary. If XNurbs does not generate a satisfied surface (it means the desired shape is too complex to work out from your input), you should add more internal or boundary constraints, consider “layout”, i.e., splitting the surface into two or more patches, or change the settings of XNurbs dialog. For example:

1. In the following tunnel design, without the inner guiding curve, XNurbs won’t generate a satisfied G2 surface. Simply specifying a guiding curve will generate the right surface. (The inner guiding curves don’t need to be perfect or precise, as XNurbs will automatically optimize and “correct” the guiding curves. So you can just draw the inner curves on the fly.)

For complex surfaces, e.g., the following aircraft wing tip, you may need to add more internal curves.

2. In the following example, without the two inner point constraints, XNurbs would generate a surface with a dip (This could happen for very curved/complex surfaces when only specifying boundary constraints).

Simply specifying inner point/curve constraints will produce a satisfied surface, e.g., adding two inner point constraints as shown below.

3. For some very curved surfaces, if you do not specify enough boundary constraints, then the generated surface might tend to “contract”. Simply adding more boundary constraints will produce a desired surface.

· You can use internal constraints to control the surface shape generated. Also when necessary, internal constraints can be used to reduce the deviation XNurbs can achieve.

· XNurbs generates native CAD surfaces, i.e., trimmed NURBS surfaces, which can be directly used for any Rhino modeling operations. (Some Rhino modeling operations may also require a surface being a part of solid models or knitted with other surfaces, so you may need to join the surface with others.)

· In case the surface generated by XNurbs cannot “Edit > Join” with the existing surfaces, please check “Tools > Options > Units > Absolute Tolerance”. You may also need to run “RebuildEdges” on existing surfaces (The edges of existing surfaces may have large deviation.). For example, in the image below, the surface generated by XNurbs has a large “gap” with the existing surface. The “gap” actually is the deviation of the existing edge and has nothing to do with XNurbs. (To show the deviation of existing edges, select the associated surface and navigate to Edit > Object Properties... and Click the “Details…” button.) Running “RebuildEdges” on existing surfaces will eliminate the gap.

· Conflict Constraints:

1. Forgetting to specify the boundary/internal checkbox is the most common mistake when operating XNurbs. Please correctly specify the “Boundary Constraint” checkbox for each constraint.

2. Tangent/Curvature continuity: Many existing models or boundary conditions may not support Tangent/Curvature continuity. For example, the boundary conditions below only support tangent continuity, and they have inconsistent or conflict curvatures. For such models, directly enforcing a higher continuity, e.g., Curvature, is not recommended. (You can use XNurbs to re-generate the surrounding surfaces so that they are G2 continuous.)

3. Overlaps/Gaps: Many existing models have some tolerances. For example, in the image below, the original curves/edges have a gap/overlap, and they actually do not connect with each other. If the constraints are curves and you would like to modify them, then you could make them connect to each other. If they are a part of existing edges or you won’t modify them, then the specified tolerance should be >= 0.5 * the original tolerance/gap (using the Relax Precision slider).

The image below illustrates that, because of the overlap/gap between the boundary edges, it may not be possible to strictly satisfy the tangent requirement. While XNurbs can blend such “unintentional” conflict constraints, users should be aware that, except for positional deviation, there may be some tangent deviation at the gaps.

4. Curvature continuity involving curves: The intersection of two curves or edges determines the generated surface’s tangent plane and curvature at that point, which may not agree to the existing surface’s tangent plane and curvature. In other words, the boundary conditions may not support Tangent/Curvature continuity. For example, in the following model, the existing boundary curves do not support G2 continuity (For designers, it may be difficult to draw a curve that is G2 continuous to the connected surface.). Disconnecting the boundary curves is a solution for enforcing G2 under such circumstance.

G2 Curve Solution1600.png

· XNurbs mainly handles open surfaces (like a sheet of paper). For closed surfaces, e.g., a cylinder that is closed in one parametric direction and a sphere that is closed in both parametric directions, you should split such a surface into two surfaces.

· Single span surface: The main applications of un-checking “Satisfy Precision Requirements” are for rapid concept design/form finding and refining layout/curves etc. However, as shown in the following image, by using “Satisfy Precision Requirements” and “Quality Control”, users can also use this option to generate a single span surface.

· Before roughly selecting all constraints, you may not want to switch on “Show preview” as it only wastes your computer power to generate some useless surfaces.


Tutorials:

Users should check out our tutorial videos for how to use x NURBS efficiently and correctly.

The following are additional tutorials and do not need an internet connection.

1. Jet Ski Hull Tutorial: This tutorial demonstrates the creation of watertight hull with G2 continuity. (Courtesy of Vladimir Aleksic)

Click here to go through the step-by-step design.

2. Watertight Mouse: This tutorial demonstrates the creation of watertight mouse with G2 continuity. (Courtesy of Vladimir Aleksic)

Click here to go through the detailed design.

3. Watertight Bumper: This tutorial demonstrates the creation of watertight bumper with G2 continuity. (Courtesy of Vladimir Aleksic.)

Click here to go through the step-by-step design.


Jet Ski Hull Tutorial:

This tutorial demonstrates the creation of watertight hull with G2 continuity. The demo video shows how XNurbs creates the bottom surface of the Hull. While the video only demonstrates the most basic operation for XNurbs, once you understand how to operation XNurbs, then you can use XNurbs in thousands of different operations and XNurbs generates all other Hull patches in the same way: users just select curves or points, XNurbs will generate the smoothest NURBS surfaces that satisfy all the inputted constraints. (Courtesy of Vladimir Aleksic)

Step 1: Create the bottom surface (two boundary curves + two internal curves. Play the video. Note how this video handles Case 1 and Case2 discussed in the Rules section.)

Step 2: Create the side surface from a curve network, which is used as a draft surface for form finding or a rapid concept design (Keep G2 continuity with the bottom surface created in Step 1.)

Step 3: Refine the side surface created in Step 2. (Use the surface created in Step 2 as a rapid concept surface, extract curves from the draft surface, split the side surface into two patches and edit the extracted curves, then run XNurbs again to generate the refined surfaces on the fly.

Step 4: Refine the bottom surface and complete the front surface. (Similar to Step 3, use the surface created in Step 1 to extract curves, edit the middle curve to the desired shape, then run XNurbs again to generate the refined bottom surface. As shown in the image, keep G2 with the neighboring surfaces.)

Step 5: the whole watertight Jet Ski Hull.


Mouse Tutorial:

This tutorial demonstrates the creation of watertight Mouse with G2 continuity (Courtesy of Vladimir Aleksic).

Click here to play the video for the creation of the top mouse surfaces.

Click here to play the video for the creation of the side mouse surfaces and click here to play the video for creating one side surface of the mouse in “slow-motion”.

Click here to play the video for the mouse rendering.


Bumper Tutorial:

This tutorial demonstrates the creation of watertight Bumper with G2 continuity. You can play the video for the creation of the whole Bumper surfaces - https://www.xnurbs.com/videos/Bumper.mp4. (Courtesy of Vladimir Aleksic)

Step 1: Create the first front surface from boundary curves.

Step 2: Create other two front surfaces (Keep G2 with the surface created in Step 1)

Step 3: Create the top and bottom surfaces (Selecting Quad-Sided option. Keep G2 with the surfaces created previously).

Step 4: Create and refine the remaining front surfaces. (First use XNurbs to create a draft surface with a “Relax Precision”. Extract curves from the draft surface and edit the extracted curves. Then refine the surface by splitting it into multiple patches and running XNurbs again to generate the refined surfaces on the fly.)

Step 5: Edit the small feature (Split the surface, bend cv rows, then trim the bended surface, and use XNurbs to blending the gap with G2 continuity).

Step 6: Mirror and done


Troubleshooting:

When using XNurbe correctly, XNurbs should always generate high-quality NURBS surfaces that satisfy all the inputted constraints. Incorrectly specifying the constraints generally results in poor surfaces, i.e., larger tolerance, more control points and surfacing imperfection etc. However, even under such circumstances, the poor surfaces generated by XNurbs may be still better than the surfaces generated by other tools. So from XNurbs’s output, users should be able to know if they setup the constraints properly and the wrong constraints should be fixed first.

Before you click the “Create” Button to create a surface, it is wise to review the generated surface by switching on the "Show preview" and “Full Preview” checkboxes. You can use the "Show preview" and “Full Preview” checkboxes to troubleshoot if the constraints are setup properly.

Step 1: When selecting the "Show preview" checkbox and unselecting the “Full Preview” checkbox

If “Show preview” does not show anything, then it means that XNurbs cannot deduce the correct surface from the input constraints. There are two possible reasons:

· There is not enough information for XNurbs to deduce the correct surface from your input, e.g., only specifying a point as a constraint;

· The desired shape is impossible or too complex to work out from your input. Fixing conflict constraints, simply adding some (boundary or internal) constraints or considering “layout” will provide XNurbs with additional information to deduce the correct surface.

If XNurbs would show a surface but it were unable to trim the generated surface as expected, it would generally mean that the “Boundary Constraint” checkbox is not correctly specified. (You must correctly specify the "Boundary Constraint" checkbox for each constraint. Otherwise, your input does not make sense because in the real world no geometries can meet your constraints and XNurbs cannot produce perfect surfaces from poor input.)

Step 2: When selecting both the "Show preview" and “Full Preview” checkbox

If XNurbs could not generate a perfect surface, i.e., it generates an imperfect surface, e.g., larger tolerance, more control points and surfacing imperfection etc., then you need first check Step 1 above (selecting the "Show preview" checkbox and unselecting the “Full Preview” checkbox). If Step 1 works correctly, then there are two possible reasons:

· “Conflict Constraints” as discussed in the Rules section. Please refer to the discussion in the Rules section. You should fix the "Boundary Constraint" checkbox, fix the conflicting Tangent/Curvature continuity or manipulate the Relax Precision slider.

· As discussed in the Rules section, the desired shape is too complex to work out from your input. You can improve the surface by adding more constraints or considering “layout”, i.e., splitting the surface into two or more patches, or changing the settings of XNurbs dialog.


License Activation

If you use the 30-day trial version, after 15 days of installation, XNurbs will pop up a message box and ask you if you would like to activate XNurbs plugin with a license key. (The message box also provides the detailed info if it fails to find a valid license so users themselves can follow the instruction and fix potential licensing issues.) Clicking the “Yes” button will start “xNURBS License Manager.exe”.

After purchasing a license, you will receive the key by email and you can activate XNurbs by running “xNURBS License Manager.exe” and inputting your key. (“xNURBS License Manager.exe” is under your XNurbs installation directory. To manually access the installation directory, run Rhino, then Tools > Options > Plug-ins > XNurbs > details > File Name. Or click here for the detailed instruction of accessing XNurbs installation directory).

xNURBS License Manager:

This simple tool should be used as the main tool for XNurbs license management. You can use it to activate or deactivate/transfer XNurbs license to other PC. You can also use it to switch between computer-locked and cloud-based licenses with just one click (if your licenses support cloud-based licenses). xNURBS License Manager includes two pages:

· Status page

· Standalone/Cloud page

Status page:

Status page shows the status of your license on this computer. If your computer has an activated key or seat, then the “Refresh License” button will be enabled. You can use the button to update your license. For example, if you purchase an upgrade to cloud-based licenses, then clicking the “Refresh License” button will immediately refresh and update your existing license to the cloud-based license on the computer you are running.

Standalone/Cloud page:

In this page, you can

“Activate”: By clicking the “Activate” button, you can activate an inputted key on the computer. (If this computer is currently activated with a license key, then you need deactivate the key first before you can access the “Activate” button. If the computer was activated before, then you can also specify the “Use the existing key” checkbox when activating XNurbs.)

“Deactivate”: By clicking the “Deactivate” button, you can deactivate XNurbs license. (To transfer a XNurbs license to other PC, you need deactivate the XNurbs license on the PC and then activate the key on other PC.) If your licenses only support standalone or computer-locked licenses, then each license only has 10 deactivations in total. Cloud-based licenses have unlimited deactivations and can be used on any computer.

“Automatic”/“Standalone”: If your licenses support cloud-based licenses, you can switch between computer-locked and cloud-based licenses by selecting the “Automatic” or “Standalone” option.

· Selecting the “Automatic” option will enable “clouding” licenses. “Clouding” licenses will work without a constant internet connection – it only needs an internet connection when starting and exiting xNURBS plugin, i.e., when requesting a clouding license seat and when freeing up the seat.

· Selecting the “Standalone” option will “check out” a license for this particular computer and the clouding license will behave like a standalone or computer-locked license. The “Standalone” option enables xNURBS plugin work “offline”. For example, if you are going to work on the road without an internet connection, you can use the “Standalone” option to check out a license in advance. To free up the license seat when you are done with the license, just select the “Automatic” option and click the “OK” button (You need an internet connection when freeing up the license seat).

· The “Automatic” and “Standalone” option are ignored if your license is a standalone license.


APIs Exported from XNurbs Rhino Plugin

From V5.0, XNurbs exports a set of APIs so that users can run XNurbs inside the code they develop or run XNurbs without showing the XNurbs UI. The APIs are a subset of the fully-fledged APIs from XN Kernel.

The API package is freely available to customers with a XNurbs Rhino Plugin license key. Please contact our support for the API package.


About XNurbs Rhino Plugin V7.0

Copyright (C) 2025 XNurbs. All rights reserved.

This software is powered by XN Kernel. All rights reserved.

Check www.xnurbs.com for Updates.


XNurbs installation directory

Inside Rhino, click Tools > Options > Plug-ins > XNurbs > details

Rhino Options Dialog690.png

Inside the properties-window of the Plugin, click on the “File Name”, and this will jump directly to the XNurbs installation folder where the executable, e.g., “xNURBS License Manager.exe” or "TurboActivate.exe", can be found.

Rhino Plugin Property Dialog.png