Developer Desktop - Non-regularized Booleans

Developer Desktop - Non-regularized Booleans

By R. Sriprasadh, Developer

Imagine what would be the result of a Boolean intersection between a ‘block’ and another ‘block’ sitting on top of it?

Boolean Intersection

An intuitive answer could be a "planar face". But it may be surprising to know that the above operation gives an empty body (i.e. no intersection). The rest of this article explains this phenomenon and indicates how the intuitive result can be obtained.

ACIS Boolean operation can be defined as a set operation between two ACIS Bodies, typically first finding the intersections between the bodies, and then deciding which portions of the bodies to retain and which to discard.

According to the continuum point set model of solidity, all the points of any X ⊂ R3 can be classified according to their neighborhoods with respect to X as 'interior', 'exterior', or 'boundary' points. For X to be considered solid, every neighborhood of any p ∈ X must be consistently three-dimensional and points with lower dimensional neighborhoods indicate a lack of solidity. Dimensional homogeneity of neighborhoods is guaranteed for the class of 'closed regular' sets, defined as sets equal to the closure of their interior. In simple terms, any X ⊂ R3 can be turned into a closed regular set or 'regularized' by taking the closure of its interior, and thus the modeling space of solids is mathematically defined to be the space of closed regular subsets of R3. Solids are required to be closed under the Boolean operations of union, intersection, and subtraction. Applying the standard Boolean operations to closed regular sets may not produce a closed regular set, but this problem can be solved by regularizing the result of applying the standard Boolean operations.

Thus a Boolean operation can be classified as 'Regularized' and 'Non-regularized'. Regularized Boolean operations are performed on the interior point sets, exclusive of the model boundaries. Non-regularized Boolean operations include interactions of model boundaries, and leave all boundary coincidences unresolved. This also keeps boundary faces that are internal to a union in the model.

In the above example, if a non-regular intersection is performed, then a planar face is returned by Boolean.

bool:nonreg-intersect blank tool
(define blank (solid:block 0 0 0 10 10 5))
(define tool (solid:block 3 3 5 7 7 8))


(bool:nonreg-intersect blank tool)




A non-regularized Boolean operation is capable of returning a 'non-manifold' or a 'lower' dimensional body.


Non-regularized Unite examples


Non-regularized Subtract examples

One of the important applications is to create 'Cellular topology'. The following parts are created with Non-regularized Boolean, in which double-sided both-inside faces are introduced – and the internal regions can be represented as 'cells':

Solid Body with Internal Void and Internal Faces




Back to all Spring 2011 Articles

Featured Video


Build IT

eBooks & Whitepapers

eBooks & Whitepapers

Download technical eBooks and whitepapers on topics including industry challenges and product solutions.

Spatial Facebook Spatial Twitter Spatial LinkedIn Spatial YouTube Spatial Blog RSS


A quarterly e-Newsletter highlighting industry trends, and includes articles from Spatial developers. Sign up to receive The Spatial Blend.