is a graphics primitive that represents a nonuniform rational B-spline surface defined by an array of control points.

Details and Options

  • BSplineSurface is also known as basis spline surface and nonuniform rational B-spline (NURBS) surface.
  • BSplineSurface can be used in Graphics3D (three-dimensional graphics).
  • The positions of control points can be specified either in ordinary coordinates as {x,y,z}, or in scaled coordinates as Scaled[{x,y,z}].
  • The following options can be given:
  • SplineDegreeAutomaticdegree of polynomial basis
    SplineKnots Automaticknot sequence in each dimension
    SplineWeights Automaticcontrol point weights
    SplineClosedFalsewhether to make the surface closed
  • By default, BSplineSurface uses bicubic splines, corresponding to degree .
  • The option SplineDegree->d specifies maximal degree d in each direction. SplineDegree->{d1,d2} specifies different maximal degrees in the two directions within the surface.
  • By default, knots are chosen to be uniform and to make the surface reach the control points at the edges of the array.
  • SplineKnots->{list1,list2} specifies sequences of knots to use for the rows and columns of the array of control points.
  • With an explicit setting for SplineKnots, the degree of the polynomial basis is determined from the number of knots specified and the number of control points.
  • SplineWeights are automatically chosen to be 1, corresponding to a polynomial B-spline surface.
  • FaceForm and EdgeForm can be used to specify how the interiors and boundaries of BSplineSurface objects should be rendered.
  • You can use graphics directives such as GrayLevel, RGBColor, and Opacity to specify how BSplineSurface objects should be rendered.
  • You can specify surface material properties using the graphics directives Specularity and Opacity.
  • You can use FaceForm[front,back] to specify different properties for front and back faces.
  • Individual coordinates and lists of coordinates in BSplineSurface can be Dynamic objects.


open allclose all

Basic Examples  (1)

A B-spline surface for an array of control points:

Show the control points together with the B-spline surface:

Options  (2)

SplineKnots  (1)

Create a 3D disk using BSplineSurface:

SplineWeights  (1)

Create a 3D disk using BSplineSurface:

Applications  (1)

Pipe section using a B-spline surface with weights:

Wolfram Research (2008), BSplineSurface, Wolfram Language function,


Wolfram Research (2008), BSplineSurface, Wolfram Language function,


Wolfram Language. 2008. "BSplineSurface." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2008). BSplineSurface. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_bsplinesurface, author="Wolfram Research", title="{BSplineSurface}", year="2008", howpublished="\url{}", note=[Accessed: 16-July-2024 ]}


@online{reference.wolfram_2024_bsplinesurface, organization={Wolfram Research}, title={BSplineSurface}, year={2008}, url={}, note=[Accessed: 16-July-2024 ]}