BOOLE is a system that converts a CSG (Constructive Solid
Geometry) model into B-rep (Boundary Representation) form. It is
designed to work on curved solid primitives like cylinders, tori,
spheres, generalized prisms etc., as well as polygonal solids.
BOOLE performs the set operations union, intersection, and
difference on solids.
The boundary of the solid is represented using trimmed Bezier
The BOOLE distribution includes, as an example, a file describing
each of these two (truncated) cones, and instructions for
computing their difference. Here are rendered images of this
boolean operation. On the left, the two cones (cone1 and cone2)
are rendered together on the screen. On the right, their
difference, as computed by BOOLE. The rendering is by our own
trimmed NURBS viewer, now available for download.
BOOLE, release 1.1
The public release of BOOLE was updated on October 17, 1997.
Features of BOOLE 1.1 over 1.0:
Contemporary with this release is a release of our viewer, in
precompiled binary format only for SGI workstations running
- Many memory access bugs fixed
- Dependence on dmalloc removed
- Functions to read and write a file format for free-form
- Simplified source tree; single Makefile
- Compiles under Linux
For help in unpacking and compiling BOOLE, see the compiling text file.
BOOLE 1.1 is known to compile and run in the following
and we expect compilation problems to be minimal under other
- Sun SPARC, Solaris, with GNU's C compiler "gcc"
- SGI, Irix, with SGI's "cc" compiler
- Intel, Linux
Send mail to email@example.com
with questions, comments, and bug reports.
The documentation of BOOLE is very much a work in progress. If
you mail us a question, we will likely include the answer in the
docs. The latest versions of the doc files are available
separately for browsing here. Note
especially the copyright.
Papers and tech reports on the BOOLE system and surface-intersection
algorithms can be downloaded from here.
Last modified: Mon Mar 16 11:12:16 EST 1998