NURBS Booleans

Revision as of 09:21, 11 March 2011 by Starseeker (talk | contribs) (surface/surface)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Non-Uniform Rational B-Splines are the dominant geometric representation format in Computer Aided Design. BRL-CAD's support for these primitives is relatively recent, and while we can raytrace them we do not have the ability to perform operations such as surface/surface intersection calculations. These abilities are fundamental to a wide variety of editing operations and essential to the process of converting implicit-primitive based boolean geometry trees to evaluated NURBS models.

This task would target the problem of implementing an algorithm to calculate surface/surface intersection for general NURBS surfaces. These guys implemented something very similar although their implementation was not robust: These guys followed that work and implemented a robust solution, but killed performance: You will need to be very careful about tolerances and tolerance tracking without resorting to fixed-precision arithmetic. There are a variety of other research papers on the surface/surface intersection problem - students interested in this topic should discuss it with developers on the IRC channel or via email.


  • Familiarity with C++
  • Solid mathematical foundations

Difficulty: high