Watertight Boolean Operations: A Framework for Creating CAD-Compatible Gap-Free Editable Solid Models

Benjamin Urick, Benjamin Marussig, Elaine Cohen, Richard H. Crawford, Thomas J. R. Hughes, Richard F. Riesenfeld

Research output: Contribution to journalArticlepeer-review


Boolean operations are fundamental for geometric modeling, but the resulting objects, defined by trimmed surfaces, are often difficult to edit directly, possess robustness issues, and lead to problems of watertightness for downstream users. We propose a framework that helps resolve these adverse side-effects based on a new modeling philosophy for dealing with the inevitable approximations involved with surface-to-surface intersections. The methodology uses a three-stage process of analysis of parametric space, reparameterization, and model space update to provide a well-defined mapping between conventional trimmed models and gap-free versions. The resulting models are watertight, consisting of un-trimmed surface patches of explicit continuity, and accurate to the same model tolerance employed in existing CAD systems. The core procedure uses information computed during conventional Boolean operations, and thus it can be easily integrated into existing CAD frameworks utilizing B-rep data structures. We also present several extensions to the basic framework that allow for further modeling options such as feature-based imprinting, partial Boolean operations, and compatibility with unstructured spline schemes.

Original languageEnglish
Pages (from-to)147-160
Number of pages14
JournalComputer-Aided Design
Publication statusPublished - 2019


  • Direct modeling
  • SSI
  • Surface intersections
  • Trim problem
  • Trimmed surfaces

ASJC Scopus subject areas

  • Industrial and Manufacturing Engineering
  • Computer Science Applications
  • Computer Graphics and Computer-Aided Design


Dive into the research topics of 'Watertight Boolean Operations: A Framework for Creating CAD-Compatible Gap-Free Editable Solid Models'. Together they form a unique fingerprint.

Cite this