Dept of Mathematics/Research /Geometry & Analysis

Geometry & Analysis: Thesis Projects Spring 1998: NURBS programming


NURBS (Non-Uniform Rational B-Splines) are a way to represent complicated 2 dimensional surfaces in 3D, and are the de facto standard in both CAD and VR (Virtual Reality) applications. These kind of surfaces are especially nice with respect to both mathematics and algorithmic implementation.

The main idea is that instead of keeping the whole surface in computer memory (i.e. an "infinite" number of points), one is able to represent the entire surface by storing only a few points, known as the control points of the surface, (+ some extra info) and then let the computer approximate the rest of the surface by means of some algorithms.

These algorithms are designed in such a way that if one wants to e.g. translate or rotate a NURBS surface, one only has to translate or rotate the corresponding control points. This can be done very quickly, hopefully quickly enough that a potential VR user will not notice the delay.

The price that one pays for this is that these surfaces are not complex enough to model the complicated shapes that often arise in e.g. the automotive CAD industry. To solve this problem one has to build up the surface as a mosaic of small NURBS tiles or "patches".

The purpose of this project will be to understand the mathematics of NURBS and implement the necessary computer algorithms in C++, in a clean, object oriented fashion, and in such a way that it can be used as subroutine/class library in other projects.

Theory and implementation issues are covered in:
Les Piegl, Wayne Tiller: The NURBS Book, 2:nd ed. Springer 1997. ISBN 3-540-61545-8