The Field Guide to Future Craft


NURBS surface modeling in Rhino comprises of ‘surfaces’ and ‘open polysurfaces’. A surface can represent a simple shapes or freeform, sculpted surfaces and an ‘open’ polysurface is any two or more surfaces joined together but that are not a ‘closed’, solid.

Inherently, all NURBS surfaces in Rhino have a rectilinear organization - i.e. surface control points. This is to not be confused with the points that control or comprise anyone curve that has informed indirectly or directly to the creation of any one surface. This rectilinear organization instead is informed by, but not identical to, the comprising geometry of the surface.

Surfacing commands vary widely within Rhino which requires an in depth understanding regarding how each surface tool operates, what are its dependencies, its parameters, the advantages and the caveats of each and, more importantly, when to employ one technique over the other.

(Spectrum of surface commands and what underpins them)

Surfaces come from..

Core to the understanding and leveraging the potential of these surfacing commands is knowing what is used to create them and how many geometric or datasets you can use in order to control any one surface.

A surface by points can be generated by 3 to four points in space. This is the maximum amount of input data for this particular command rendering it ultimately not suitable for more complex surfacing requirements. By contrast, on the other end of the spectrum, a Network surface can be derived by any where from 3 or more edge curves that can either be closed, open or even separated in 3D space and can have any number of input curves as guide geometry to influence the development of a surface. The ability to provide discipling geometry with this surface technique deems it viable command for complex surface development.

An articulation of how points inform curves to derive surfaces, and the importance of control in the process, can be examined through the loft surface command. When producing a surface with the loft command via two curves in 3D space, examination of the isocurves (or the interior curves that bind and describe a surface once its created) can yield if there is a mis-match between the two curves and their constituent points that describe them. This is because when the loft command generates a surface between two curves, it attempts to create isocurves that connect point 01 on curve A with point 01 on curve B. If curve A has 10 points and Curve B has 25 points, the resulting surface will have a kink within it. This articulation is prevalent throughout all of the surfacing commands whether it is made explicit through the visualization of isocurves or not. For this reason, it is imperative to operate under the premise of using well-structured scaffolding, controlling and matching subsequent geometry, understanding the surfacing commands and techniques that underpin each and finally utilizing an iterative process of refinement.

By in large, for many surfacing tasks, especially more complex instances, simply having a well built scaffold is not enough in order to achieve a desired result. Instead an iterative process must be undertaken of using scaffold geometry to generate and discipline a surface then extracting select curves from said surface in order to embark on a second round of curve refinement towards resurfacing.

Surface Creation Commands

Helpfiles rule! In Rhino, go to help, command list, and type in any of the tools or commands sighted below in order to access further step by step information and parameters of each. Commands are denoted in Labels.
  • Join Join Ctrl + J

    Connects objects together to form a single object. Join turns lines into polylines, curves into polycurves, surfaces and polysurfaces into polysurfaces or solids.

    • You can join surfaces and polysurfaces that touch at naked edges. Joining does not change the underlying surface geometry. It simply "glues" adjacent surfaces together so meshing, Boolean operations, and intersections can go across the seam without gaps. To change a surface's geometry so it fills in a gap, use MatchSrfor fill the gap with a new surface created by FilletSrf, BlendSrf, BlendEdge, FilletEdge, NetworkSrf, or Patch.
    • To change two adjacent surfaces into a single surface, use MergeSrf. Pay special attention to the setting of the Smooth option to get the geometry you want.Ed
  • Surface From 3 or 4 Points SrfPt

    The simplest way to make a surface. You simply define three or four corner points. Draws a surface from specified corner points.

  • Surface From 2, 3 Or 4 Edge Curves EdgeSrf

    Creates a surface from two, three, or four selected curves.

    • You can use surface edges as the curves for a new surface.
    • For a surface from closed planar curves, use the PlanarSrf command.
  • Surface From Planar Curves (Planar Surfaces) PlanarSrf

    Creates a surface from closed planar curves. Creates a planar surface from a set of planar curves that define the surface edges.

    • If the curves partially overlap, each curve produces a separate surface.
    • If a curve is wholly within another curve then it will be treated as a hole boundary.
  • Surface From Network Curves NetworkSrf

    Creates a surface from a network of crossing curves.

    • All curves in one direction have to cross all curves in the other direction and cannot cross each other.
  • 3d Surface From Curves Loft

    Creates a smooth surface that blends between selected cross-section curves. A surface created with loft normally has no creases unless the cross-cross section curves have kinks. Fits a surface through selected profile curves that define the surface shape.

    • Loft options allows you to specify the smoothness/kinkinkiness of the surface.
    • The smoother the curves, the smoother the surface.
    • Lofts match endpoints of open curves, so curve direction matters. You can flip the interpreted direction of the curves within the command.
  • Patch Patch

    Fits a surface through selected curves, meshes, point objects, and point clouds.

    • Try using the Sweep2 command if Patch does not give good results.
    • For a trimmed patch, select curves that form a closed shape. Select them in order, so each additional curve touches one you already selected.
    • Select additional curves to influence the shape of the patch (such as dips or peaks in the middle of the patch). These do not have to be connected.
    • The patch may not pass exactly through all of the input curves.
  • Plane Surface Plane

    Draws a rectangular planar NURBS surface.

  • Extrude Curve ExtrudeCrv

    Creates a surface from any curve, in a straight line perpendicular to the construction plane

    • Arguements:
      • Direction - creates a surface from any curve, in a straight line perpendicular to a specified construction plane
    • ExtrudeCrvAlongCrv creates an extrusion along a path curve
  • Sweep One Curve Sweep1

    Creates a surface using profile curves and one edge to define the surface. Fits a surface through a series of profile curves that define the surface shape and one curve that defines a surface edge.

    • To create a single surface, the cross-section curves need to be compatible. If you use the Refit within option, the cross-section curves are refit with compatible cubic splines. If you do not use the Refit within option, the cross-section curves are made compatible by degree elevation and knot addition. (The original curves are not modified.) You can specify the fitting tolerance for the cross-section curves with the Refit within option, but the fitting tolerance for the rail curve is controlled by Document Properties > Units > Absolute tolerance.
    • With closed rail curves, the first cross-section curve you select is added to the end of the list if you choose to create a closed surface.
  • Sweep Two Curves Sweep2

    Creates a surface using profile curves and two edges. You can also use the edges of adjacent surfaces ensuring continuity where the surfaces meet. Fits a surface through a series of profile curves that define the surface shape and two curves that define the surface edges.

    • Make the degree and structure of the rail curves match each other.
    • Place cross-section curves so the endpoints are on the ends of the rails or on edit points of the rails.
    • Turn on edit points and use Point object snap to place the section curves between matching edit points on the rails.
    • If only one section curve is used, the entire length of the rails are used for the surface, regardless of the settings.
    • Section curves can have differing structures. The surface takes the complexity of the most complex one.
    • To use same shape curve in the whole sweep, with control over where the sweep ends, use the Orient commands to create a scaled copy of the shape curve and place its ends at the places on the rail curves where you want the sweep to stop.
  • Surface From Curve Revolution Revolve

    Creates a surface by revolving a profile curve that defines the surface shape around an axis.

    • Try RailRevolve also for more controlled surface creation.
  • Offset Surface OffsetSrf

    Copies a surface or polysurface so that locations on the copied surface are the same specified distance from the original surface.

    • Arguments:
      • Solid, Makes a closed solid from the input and offset surfaces by lofting a ruled surface between all of the matching edges.
    • Positive values offset in the direction the arrows. Negative values offset the other way.
    • When a plane, torus, sphere, open cylinder, or open cone surface is offset, the resulting surface is exact. Freeform surfaces are offset to within the value of the Tolerance option.
    • When offsetting surfaces are joined that are part of a polysurface, there is no guarantee that the offset surfaces will also join into another polysurface. For example, offsetting the six sides of a box will not result in a larger closed box. It will return six separate surfaces with gaps between the edges. The OffsetSrf command does not maintain the overall structure of the starting polysurface in the offsets. Each surface offsets as an individual object.
  • Tween Surfaces Plane

Tween Surfaces - TweenSurfaces - Creates intermediate surfaces between two input surfaces.

Like curves, the shape of surfaces are defined by a set of control points, a 1D array for curves and 2D array for surfaces.

Manipulation Commands

Helpfiles rule! In Rhino, go to help, command list, and type in any of the tools or commands sighted below in order to access further step by step information and parameters of each. Commands are denoted in Labels.
  • Split Split

    Divides objects into parts using other objects as cutters.

    • The Isocurve option only appears when a single surface is selected.
    • Use Untrimto remove a trimming boundary from a surface.
    • When you split a surface with a curve in a plan parallel view like the default Top , Front, and Right view, the cutting curve is projected on the surface in the view direction.
    • When you split a surface with a planar curve in an angled parallel or a perspective view like the default Perspective view, the cutting curve is projected on the surface in a direction perpendicular to the curve plane.
    • When you split a surface with a 3-D curve in an angled parallel or a perspective view, the cutting curve is pulled onto the surface by closest points.
  • Edit Control Points PointsOn F10

    Turns the control points on for curves and surfaces.

    • Not possible with polysurfaces.
  • Rebuild surface Rebuild

    Reconstructs selected curves or surfaces to a specified degree and control point number.

  • Rebuild Surface UV RebuildUV

    Reconstructs selected surfaces to a specified control point number in either the u- or v-directions independently.

  • Rebuild Edges RebuildEdges

    Restores original 3-D surface edges that have been forced away from the surface through editing.

  • Change Surface Degree ChangeDegree

    Changes the degree of a curve or surface.

    • This command changes the degree of the polynomial Rhino uses to create the curve. It keeps the knot structure of the curves the same, but it adds or subtracts control points between each knot span.
    • Often it is better to use InsertKnow and RemoveKnot instead, because you can add/remove control points more locally.
    • If you want the surface to have the same geometry, but more control points for editing, then try increasing the degree to 5 with the Deformable option set to No. In this case, you may want to consider using the InsertKnot command, which will add control points but leave the degree unchanged.
    • If you are going to export your geometry to another application, make every attempt to keep the degree of your surfaces low. In particular, many mechanical CAD systems cannot import surfaces that have degrees greater than 3.
    • The number of control points you add or subtract depends on the degree; the higher the degree, the greater the number of control points.
    • If you raise the degree of a surface, it will no longer be periodic. Use MakePeriodic to restore the periodicity of the surface.
    • Objects with higher degrees take longer to display and use more memory.

Selection Commands

Helpfiles rule! In Rhino, go to help, command list, and type in any of the tools or commands sighted below in order to access further step by step information and parameters of each. Commands are denoted in Labels.
  • Select Surfaces SelSrf

  • Select Open Surfaces SelOpenSrf

  • Select Closed Surfaces SelClosedSrf

  • Select trimmed Surfaces SelTrimmedSrf

  • Select Untrimmed Surfaces SelUnTrimmedSrf

  • Select Open Polysurface SelOpenPolySrf




Success! You now have the tools to effectively implement surfaces in your design project.