User:Caste/Nurbs Overview

From K-3D

Jump to: navigation, search

NURBS Modeling Tools Overview

NURBS (Nonuniform Rational B-Splines, see [1]) are a very efficient way to model smooth 3D-shapes. My Google Summer of Code 2008 project was to add this modeling functionality to K-3D. Basically NURBS are curves or surfaces (represented as piecewise defined functions) whose shape is controlled via Control Points or Control Vertices (CVs). How many CVs influence a special part of the curve depends on the order (this is the mathematical degree + 1) and the knot vector. At each knot some CVs get deactivated and the same amount gets activated. See [2] for details.

Some terminology clearification: a patch is a surface and a spline can be both: a curve or a surface.

There are 3 kinds of plugins, some just deal with curves, others let you create surfaces from curves and last but not least these which just deal with surfaces.

Nurbs Plugins

PluginDescriptionDocs doneTests done
NurbsAddTrimCurveAdds a trimming curve to the selected patchyesyes
NurbsCloseCurveConnects the 2 end points of the selected curveyesyes
NurbsConnectCurvesConnects a set of NURBS curvesyesyes
NurbsCreateCapCreates a NURBS surface filling out the given closed curveyesyes
NurbsCurveGenerates a NURBS curveyesyes
NurbsCurveDegreeElevationTakes a curve of degree p and turns it into a curve with degree p+degreeyesyes
NurbsCurveInsertKnotInserts a new Knot with the specified u-valueyesyes
NurbsCurveTraversalCreates a NURBS surface while traversing one NURBS curve along anotheryesyes
NurbsEditCurveKnotVectorEdit the knot vector of a NURBS curveyesyes
NurbsExtrudeCurveNot yet in Wikinoyes
NurbsExtrudePatchExtrudes the selected patch along a coordinate axisyesyes
NurbsPatchDegreeElevationElevates the selected patches in either u or v directionyesyes
NurbsPatchInsertKnotAdds a new knot in either u or v direction to all selected patchesyesyes
NurbsPolygonizeCurveCreates a LinearCurve representation of the selected NURBS curveyesyes
NurbsPolygonizePatchCreates a Polyhedron representation of the selected NURBS patchyesyes
NurbsRevolveCurveTake a NURBS curve and rotate it around one of the coordinate system axisyesyes
NurbsRuledSurfaceCreates a NURBS surface stretched between the 2 curvesyesyes
NurbsSetWeightSets the weight of the selected Control Pointsyesyes
NurbsSkinnedSurfaceCreates a NURBS surface stretched along all selected curvesyesyes
NurbsSplitCurveBreaks a NURBS curve at a given u value (0...1)yesyes
NurbsSplitPatchSplits a patch at the selected u/v valueyesyes
NurbsSweepSurfaceCreate a Surface by traversing one curve along another and orienting it tangential to the traverse curveyesyes


[1] Wikipedia: NURBS (

[2] The NURBS Book by L. Piegl and W. Tiller (

Personal tools