📄 threejs/Addons/Curves/NURBSCurve

File: NURBSCurve.md | Updated: 11/15/2025


title: NURBSCurve category: Addons layout: docs

NURBSCurve

This class represents a NURBS curve.

Implementation is based on (x, y [, z=0 [, w=1]]) control points with w=weight.

Import

NURBSCurve is an addon, and must be imported explicitly, see Installation#Addons.

import { NURBSCurve } from 'three/addons/curves/NURBSCurve.js';

Constructor

new NURBSCurve( degree : number, knots : Array.<number>, controlPoints : Array.<(Vector2|Vector3|Vector4)>, startKnot : number, endKnot : number )

Constructs a new NURBS curve.

degree | The NURBS degree.
---|---
knots | The knots as a flat array of numbers.
controlPoints | An array holding control points.
startKnot | Index of the start knot into the knots array.
endKnot | Index of the end knot into the knots array.

Properties

.controlPoints : Array.<Vector4>

An array of control points.

.degree : number

The NURBS degree.

.endKnot : number

Index of the end knot into the knots array.

.knots : Array.<number>

The knots as a flat array of numbers.

.startKnot : number

Index of the start knot into the knots array.

Methods

.getPoint( t : number, optionalTarget : Vector3 ) : Vector3

This method returns a vector in 3D space for the given interpolation factor.

t | A interpolation factor representing a position on the curve. Must be in the range [0,1].
---|---
optionalTarget | The optional target vector the result is written to.

Overrides: Curve#getPoint

Returns: The position on the curve.

.getTangent( t : number, optionalTarget : Vector3 ) : Vector3

Returns a unit vector tangent for the given interpolation factor.

t | The interpolation factor.
---|---
optionalTarget | The optional target vector the result is written to.

Overrides: Curve#getTangent

Returns: The tangent vector.

Source

examples/jsm/curves/NURBSCurve.js