NURBS viewing for Rhino
View Rhino points, curves, surfaces, edges and control nets, with local and Rhino Compute display generation.
# NURBS viewing for Rhino
NURBS is an optional viewing module in Professional and Advance. Open Panels → NURBS, import a Rhino 3DM, and enable its display controls. The setting belongs to the project. Existing points, curves and saved Rhino render meshes remain available without enabling the module.
HDRi Studio displays Rhino geometry through points, sampled curves and surface meshes. Your original 3DM stays intact. Use Geometry Properties to position a curve or object and Materials to change its appearance. Control points and control nets are inspection guides; changing a curve’s shape, trimming a surface or rebuilding a polysurface stays in Rhino.
Generate a display#
Choose Draft, Standard or Fine and click Generate display. This prepares surface edges, control points, control nets and available isocurves. Enable the guides you need. Point size is measured in screen pixels; edge and control colors use the shared color picker. Isocurve density and quality take effect when you rebuild.
The source list shows unique Rhino objects and their display status. Instances reuse the same source geometry and guide buffers. Selecting an item opens its Geometry Properties when a placement exists; unused definition content can be placed through Instances.
| Source geometry | Display behavior |
|---|---|
| Points and point clouds | Displayed as points, including single-point files |
| Lines, arcs and NURBS curves | Sampled polylines; generation uses adaptive sampling |
| Surfaces and polysurfaces with saved meshes | Rhino’s saved render meshes |
| Untrimmed surfaces without complete meshes | Local preview tessellation at the chosen quality |
| Trimmed surfaces with missing meshes | Retained in the scene; require Rhino Compute or render meshes saved in Rhino |
| Surface boundaries | Rhino edge curves, sampled for display |
| Untrimmed isocurves | Generated locally |
| Trimmed isocurves | Rhino Compute wireframe, including surface boundaries |
Local tessellation is a display approximation. It never fills trimmed holes using an underlying rectangular surface. Missing and partial meshes appear as source notices. Existing materials, layers, exact instance transforms and shared-definition relationships remain part of the scene.
Test with local Rhino#
- On Windows, install and license Rhino 8 and run the matching Rhino Compute service using McNeel’s local development guide. Confirm the service responds at its local endpoint, normally port 6500.
- Install Node.js 20 or later. In the NURBS panel choose Local Rhino and download the local bridge.
- Open a terminal in the download folder and run
node rhino-compute-bridge.mjs. Keep the terminal open. If your Compute service requires a key, setRHINO_COMPUTE_KEYin that terminal environment before starting the bridge. A different local service URL can be set withRHINO_COMPUTE_URL. - Copy the temporary bridge key printed in the terminal into the panel. This key stays in memory and is not saved in the project or browser preferences.
- Enable Isocurves if needed, then click Generate display. Allow local-network access if the browser asks. The bridge listens only on this computer at port 8765.
Generation explicitly sends the relevant encoded surfaces to local Rhino. It rebuilds surface meshes; trimmed isocurves are requested when their display is enabled. Cancel stops the current browser job and aborts pending requests. Already running Rhino work may finish on its service.
Browser policies for secure websites reaching local services vary. If the bridge cannot be reached, check its terminal, the Compute endpoint and browser local-network permission. Do not expose the bridge publicly. Live licensed Rhino Compute and browser/device acceptance are still being validated in this beta.
Server Rhino Compute#
The server option becomes available when the administrator configures the application’s Compute endpoint. Geometry is sent only after Generate is clicked. The Rhino key stays on the server; the browser uses the existing signed Studio session. Selecting a Usage Mode does not grant a paid subscription or server license.
Save and reuse#
Generated display data and the unchanged original 3DM are stored together in the project’s model package. Save the project normally. Reloading reuses its display cache, and Undo restores the previous model package. Rebuilding display data keeps scene placement, material and layer edits. A source hash prevents a cache from being applied to a different 3DM.
The module does not write edits back to a 3DM. Reimport after making CAD geometry changes in Rhino. Projects created before this module may have omitted surfaces that lacked render meshes; reimport their original 3DM to recover those objects.
Limits and source notices#
The existing scene limit is 5,000 expanded objects. A model package must be under 100 MB, with no more than 128 MB expanded data and a 64 MB display cache. Curve sampling and total generated geometry are bounded; use Draft or split the source model if a limit is reached. Compute requests are limited to 8 MB per encoded object and 32 MB per response.
Generation permits up to 64 Compute operations within two minutes. Requests stop after a failed operation; inspect its notice and fix the connection before retrying. Previously generated fallback meshes are retained where possible. A locally generated preview can remain usable while another object still needs Rhino. Control nets describe the underlying NURBS surfaces and can extend beyond trimmed boundaries.
See Instances, model imports and object transforms for the surrounding workflow.
Readable controls and source notices#
Find Source Geometry uses a full-height search field. Inputs per direction offers values from 1 to 12 and Point size offers 1 to 16 pixels as dropdowns, avoiding interrupted numeric typing. Labels stack above full-width choices in narrow panels.
A missing surface display cache is distinct from the saved render mesh used by the ordinary viewport. The notice explains when Local Rhino Compute or Server Rhino Compute is needed to generate trimmed display data. Existing render meshes can remain visible while a NURBS display cache is unavailable.
NURBS Representation controls#
The panel is named NURBS Representation. Its enable control is a toggle; source modeling remains in Rhino. Edge and control-color swatches have compact, consistent hit areas.
For Local Rhino, run Rhino Compute and the downloaded bridge with Node.js. Paste the temporary key printed by the bridge terminal into Temporary bridge key. This is an editable password field, not a status message. The key remains local to the open panel and is not saved in the project.
Use the troubleshooting guide to check the common causes and prepare a useful issue report.
Troubleshooting