This is documentation for Mathematica 7, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)


is a graphics primitive which represents a non-uniform rational B-spline surface defined by an array of x,y,z control points.
  • 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
SplineKnotsAutomaticknot sequence in each dimension
SplineWeightsAutomaticcontrol point weights
SplineClosedFalsewhether to make the surface closed
  • By default, BSplineSurface uses bicubic splines, corresponding to degree {3,3}.
  • 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.
  • 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.
A B-spline surface for an array of control points:
Show the control points together with the B-spline surface:
A B-spline surface for an array of control points:
Click for copyable input
Click for copyable input
Show the control points together with the B-spline surface:
Click for copyable input
Pipe section using B-spline surface with weights:
New in 7