Difference between revisions of "NURBS Booleans"

From BRL-CAD
(Clarify that the project links don't have source code we can use, just research papers.)
(Update NURBS Boolean task)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
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 calculationsThese 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.
+
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 are still developing the ability to perform operations such as subtraction and intersection between two solid NURBS Boundary Representations (Breps)This ability is 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: http://www.cs.unc.edu/~geom/CSG/boole.html These guys followed that work and implemented a robust solution, but killed performance: http://www.cs.unc.edu/~geom/ESOLID/ (Note that while the papers are excellent references from which to get ideas, the source code from these efforts is not license compatible with BRL-CAD.) 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.
+
This task would build on work done in previous GSoC projects to make existing functionality robust and fast.
  
 
=References=
 
=References=
  
 +
* src/libbrep
 
* src/librt/primitives/brep
 
* src/librt/primitives/brep
* src/librt/primitives/bspline
 
 
* src/other/openNURBS
 
* src/other/openNURBS
* src/librt/opennurbs_ext.*
 
* include/opennurbs_ext.h
 
 
* include/raytrace.h
 
* include/raytrace.h
 
* include/rtgeom.h
 
* include/rtgeom.h
 +
 +
* http://brlcad.org/wiki/User:Phoenix/GSoc2013/Reports
  
 
=Requirements=
 
=Requirements=

Latest revision as of 08:58, 1 March 2014

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 are still developing the ability to perform operations such as subtraction and intersection between two solid NURBS Boundary Representations (Breps). This ability is 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 build on work done in previous GSoC projects to make existing functionality robust and fast.

References[edit]

  • src/libbrep
  • src/librt/primitives/brep
  • src/other/openNURBS
  • include/raytrace.h
  • include/rtgeom.h

Requirements[edit]

  • Familiarity with C++
  • Solid mathematical foundations