NURBS Extension for VRML97

Discussion & Node proposal
12 March 1999

updated 15 Nov 1999

Background Clauses Annexes
Introduction 1 Concepts References
2 Proposed Nodes API's and Libraries
3 Conclusion Tools


This paper describes new nodes proposed for VRML97, based on Non Uniform Rational B-Splines (NURBS). In general, use of NURBS in VRML would have the following immediate benefits: NURBS curves and surfaces have been used in industrial design of car bodies, ship hulls and airplanes for a long time since their mathematical qualities are especially suited for modeling fluid shapes. Designing with NURBS is intuitive and easy to understand. Hence, numerous tools beyond CAD/CAM offer NURBS support. The success of NURBS throughout CAD/CAM/CAE and CGI in general is due to the following: Therefore adopting NURBS support  in a VRML environment seems to be a self-evident step that would yield a number of benefits: The mathematical background required to work with NURBS is not very complex. There are many toolsthat can assist in the creation and editing of NURBS surfaces. A good introduction to NURBS is given in [1]. A thorough mathematical study on NURBS can be found in [2].


[2] The NURBS Book, Les Piegl and Wayne Tiller, Springer 1997
[3] Open Inventor C++ Reference Manual: The Official Reference Document for Open Inventor, Release 2, Open Inventor Architecture Group, Addison-Wesley, 1994.

Some Tools supporting NURBS

[1] Kinetix 3D Studio Max
[2] Rhino3D
[3] TGS Amapi
[4] Alias|Wavefront Maya

API's or libraries supporting NURBS

VRML Java Nurbs package from Timothy F. Rohaly
This package contains a general set of classes written in Java to represent and manipulate NURBS.
In addition to a NurbsSurface PROTO a NurbsCurve and  NurbsRevolve PROTO is implemented.

OpenGL contains in the glu extensions package NURBS Curve & Surface Primitives.
A surface can optionally be trimmed by a NURBS Curve or a piece wise linear curve.

Open Inventor has the SoNurbsSurface node.

Example C Source code for evaluating Points on a NurbsCurve or NurbsSurface based on the NURBS Book.