1
57 2
58 3
9
Computer-Aided Design xx (xxxx) 1–15
4 60
www.else
vier.com/locate/cad
1 6 62 7 63
Computer-aided design of porous artifacts
8 64 9 65 66
a,
a,b
a
Craig Schroeder *, William C. Regli , Au Shokoufandeh , Wei Sung
b
11 67
a
12 Department of Computer Science, College of Engineering, Drexel University, Philadelphia, PA 19104, USA
b
Department of Mechanical Engineering and Mechanics, College of Engineering, Drexel University, Philadelphia, PA
19104, USA
13 69 14 Received 30 September 2003; received in revised form 15 March 2004; accepted 25 March 2004 70
1 16 72
Abstract
Heterogeneous structures represent an important new frontier for 21st century engineering. Human tissues, composites, ‘smart’
and multi-material objects are all physically manifest in the world as three-dimensional (3D) objects with varying surface,
internal and volumetric properties and geometries. For instance, a tissue engineered structure, such as bone scaffold for guided
tissue regeneration, can be described as a heterogeneous structure consisting of 3D extra-cellular matrices (made from
biodegradable material) and seeded donor cells and/or growth factors.
The design and fabrication of such heterogeneous structures requires new techniques for solid models to represent 3D
heterogeneous objects with complex material properties. This paper presents a representation of model density and porosity based
on stochastic geometry. While density has been previously studied in the solid modeling literature, porosity is a relatively new
problem. Modeling porosity of bio-materials is critical for developing replacement bone tissues. The paper uses this
representation to develop an approach to modeling of porous, heterogeneous materials and provides experimental data to validate
the approach. The authors believe that their approach introduces ideas from the stochastic geometry literature to a new set of
engineering problems. It is hoped that this paper stimulates researchers to find new opportunities that extend these ideas to be
more broadly applicable for other computational geometry, graphics and computer-aided design problems. q 2004 Elsevier Ltd.
All rights reserved.
Keywords: Computer-aided design; Representation; Heterogeneous models; Solid modeling; Porous models; Bio-medical applications
1. Introduction
This paper presents a mathematical framework
to computer-aided representation of and modeling
with heterogeneous solids. The major research
contribution of this paper is the study of how
porosity can be effectively represented and
modeled in a manner compatible with the
established mathematics and techniques of solid
modeling and Computer-aided Design. While
density has been studied much in past literature
[1,16,19,21,22,27,30,31,32,45], porosity is a
relatively new problem for computer-aided design
and of great importance in bio-medical and tissue
engineering domains. The representation we
present effectively unifies model density and
porosity using stochastic geometry techniques
adapted from the geophysics community
[16,19,30,31,45].
Heterogeneous solid modeling is an emerging
area with wide-spread applications in
computer-aided design, manufacturing,
bio-medicine, pharmacology, geology, and
physics. Existing research on heterogeneous
modeling has focused primarily on the needs of the
manufacturing processes and solid free-form
fabrication, usually with the goal of improving the
fidelity of the manufacturing process to produce
usable parts, rather than mere prototypes. Other
researchers have studied how to model material
gradients and multi-material objects. This paper
introduces the porosity problem, specifically in the
context of computer-aided design of replacement
bio-tissues, such as human bone, whose porosity is
illustrated in Fig. 1. It is our ultimate goal to
augment existing CAD representations and model-
UNCORRECTED
PROOF
* Corresponding author. ing
techniques with porosity information and show how
90 91
E-mail address: schroeder@santel.net (C. Schroeder). advanced
modeling systems can be used to develop smart
54 110
0010-4485//$ -see front matter q 2004 Elsevier Ltd. All rights reserved. 111 56 doi:10.1016/j.cad.2004.03.008 112
JCAD 1018—5/8/2004—14:34—VEERA—113789—XML MODEL 5 – pp. 1–15
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15
structures and algorithms and fabrication techniques 169
113
necessary to process them into reality. 170
114
115
There are many important approaches that have received 171
116
117
attention for representing heterogeneous objects. Represen-172
tations like voxels [7,21,22], tetrahedral meshes and related 173
118
cellular structures [23,28,29,35,44], and B-rep [7,21,22] 174
119
have proven effective for modeling and have been used for 175
120
fabrication via 3D printing. Here, heterogeneous materials 176
121
are represented as volume fractions, which may vary 177
122
throughout the object. 178
123
A different general approach is that of r-sets (and its 179
124
generalizations, rm-sets and a fiber bundle technique) 180
125
[25,26,33], ISO 10303 (STEP) [33,34] and an approach 181
126
intended for molding [10]. Here, the heterogeneous object is 182
127
broken down into a disjoint set of regions with material 183
128
information attached to each set. This
material information 184
Fig. 1. Porous bone, courtesy of NASA. This bone in this image is
and multi-material models for use in the design and fabrication of tissue engineering structures and scaffolds. The
improved capacity to model and generate porous designs implies far-reaching implications for bio-medical
engineering.
Current methods for representing porosity represent only the density of the object, the volume fraction, or
represent the internal porosity structure exactly. Representing just the density, while concise, is unable to take into
consideration connectivity, pore size, or pore structure. Representing the internal porosity structure geometry
quickly results in huge files. We observe that every bone is different and, for most design, modeling and analysis
applications, the exact internal geometric and topological structure of a bone is not needed. Ideally, one would like a
means of storing the important properties of porous objects in a concise and efficient manner. Conversion to and
from this representation as well as the application of operators would be accurate and efficient.
Section 2 presents background work that others have done on heterogeneous solid modeling. Then, Section 3
builds up a theoretical base for representing and modeling porous solids. Next, Section 4 provides a formulation of
the problem and a detailed treatment of our approach. Next, Section 5 discusses our implementation and empirical
results. Finally, Section 7 concludes the paper and highlights important points.
composition specified by analytical functions.
approaches use procedures to specify the material
composition of an object [8,32].
Another approach uses three-dimensional (3D)
B-splines to store volume fractions that may vary
through-out the object. It also investigates the
usage of property constraints enforced using finite
element techniques to model this material
information [36].
A different approach is a Boolean Reasoning
method [42]. Here, heterogeneous objects are
represented heterogeneous unit cells and CSG.
These techniques are designed to solve
problems from the one we are concerned with.
These approaches are not suitable for representing
the porosity of an object without storing its exact
geometry or throwing away the geometry
information altogether. We looked to the
geophysics community for ideas.
Background from geophysics. The porosity
tation we develop adapts work of the
geo-physicists community. They consider the solid
as a set [3,16,19,24,30,31,45], and they use
stochastic functions to try to reconstruct the
original model’s porous structure as best as
possible using simulated annealing [16,31,45],a
pressure correction algorithm [19], and Monte
methods [30]. In this work, stochastic functions
give them a distribution corresponding to internal
porosity sandstones they were attempting to
model. They also did significant work on
analyzing these synthetic (and real) sandstone
models [3–5,16,19,20,30,31,37,45]. They cerned
themselves heavily with analysis (two-phase flow
[15,18]; erosion–dilation [14,43]; connectivity [3];
percolation [4,12–14,20]; dielectric response
[12,14,17,37]; corrosion [24]; and various other
analyses [3,14]).
The principle issue with their methodology is
that it is
2. Background intended for reconstruction of shapes and it is not intended
UNCORRECTED
PROOF
osteoporotic.
takes the form of a
composition or a variable
Other
by
different
homogeneous
represen-203
of voxels
Carlo
of the
con-214
The potential to design and fabricate
multi-material
166
objects is very promising. The ability to
design and fabricate
167
such objects relies on representations to
model these
168
for design or CAD-like modeling. Its main purpose is to create virtual models with specific internal geometry that 222
matches the specific internal geometry of a sandstone 223
sample. Hence, they learn (via the simulated annealing 224
JCAD 1018—5/8/2004—14:34—VEERA—113789—XML MODEL 5 – pp. 1–15
books on the subject [2,40], with the first more introductory
and the second more detailed.
2
3
Geometric objects should be assumed to lie in R or R
k
although this treatment in general holds for R .One important
definition is needed for the Boolean model. Let A4BZ xC yx
2A; y 2B (Minkowski addition). One
g
fj
might think of this as taking a copy of A and pasting it at
each point in B. The operation is commutative and
associative. This operation will be used in Section 4.2.2 when
deriving Boolean operations in addition to this primer.
3.1. The stochastic point process
3.1.1. General
Definition.A point process is the family of all sequences of
points satisfying two special conditions: (1) The sequence is
locally finite. Each bounded subset must contain a finite
number of points. (2) The sequence is simple. That is, it
contains no duplicates. These sequences can in general be
considered as a random set, when order is not important.
Measure of a point process. A point process F has
associated with it a measure, which is denoted as ]FB:
ðÞ
This measure maps each random sequence r of this point
process into the number of points in the sequence r that lie in
some bounded set B.
Stationarity and isotropy. A stationary point process is one
whose properties are invariant under translation. Let Fx
denote the point process formed by translating F by some
vector x, then P]FBZ Y Z PBZ Y. (This says
]
Fx
ððÞÞððÞÞ
that the probability of any particular sequence r2F applied to
B having measure Y does not change if F is translated.)
An isotropic point process is one whose properties are
invariant under rotation. P]FBZ YZ P]rFBZ Y,
ððÞÞððÞÞ
where r is some rotation. A motion invariant point process is
one that is both stationary and isotropic.
UNCORRECTED
PROOF
Contact distributions. The contact distribution function
important. Recall that ]FAis the number of points of the point
ðÞ
process that are A, then ]F:Z 0 and ]FWZ n. If two
ðÞðÞ
sets are disjoint, then the measure of their union is the sum of their measures.
If A3W, then ]FAfollows a binomial distribution with
ðÞ
parameters nZn and pZV(A)/V(W). The intensity (points per unit volume) is lZnp/V(A). The measure is not
independent, even for disjoint subsets. For example, if ]FAZ m, then ]FW K AZ nK m.
ðÞðÞ
3.1.4. Poisson process
Consider the binomial process. If n/N, p/0 and W enlarges to fill the whole space, such that np is constant (for
any A), the result is a Poisson point process. Consequently, ]FAhas Poisson distribution with mean lV(A); l is the
ðÞ
intensity.
3.2. The Boolean model
Definitions. The Boolean model consists of a Poisson point process (the points of which are called germs).
Associated with each point is a closed set called the primary grain. The underlying point process has intensity l, as it
did when discussed earlier. The primary grains need not be the same. The ith germ (point) is xi, and the ith primary
grain is Xi.
A simple example of a Boolean model is a point process with a disc centered at each point. Here, the primary
grains are the discs, centered at the origin. The germs are the underlying point process composed of points at the
centers of the disks.
The Boolean model is subject to a regularity constraint: E(V(X04K))!N, where K is any compact set and X0 is a
random compact set with the same distribution as Xi, but independent of it. This ensures that only finitely many of
333 XZ 334 279 F,
N
where r is a nonnegative scalar and B is a set. g is the notation for the entire Boolean model. 335
X 4x
iZ1 i n
Þ
280 Expressed
ð
in the notation introduced above, we have This is just the union of all primary grains, shifted to 336
JCAD 1018—5/8/2004—14:34—VEERA—113789—XML MODEL 5 – pp. 1–15
278 HB(r) is defined as the probability that rB does
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15
not intersect these grains will overlap any given compact set.
337 the
corresponding points of the point process. X is itself 338 closed, but it need not be connected. 339 Stationarity
and isotropy. If the underlying point process 340 is stationary (its properties are invariant under translation) 341 then
the Boolean model will also be stationary. If the grains 342 are isotropic, then the Boolean model will also be
isotropic. 343 The condition, however, is not required. If the Boolean 344 model is both stationary and isotropic, it is
invariant under 345 rigid transformation. 346 Capacity functional. The capacity functional or hitting 347 distribution is
defined as TXK Z PXh K s: : The
ÞÞ
ðð
348 distribution of a Boolean model is uniquely determined by 349 its capacity functional. Application
assump350 tion and the assumption of stationarity yields the formula 351 TXKZ 1K expKlE
VX04K
Þðð
of the Poisson
.
ÞÞ
ð
352
Basic characteristics. The volume fraction p is the
pZE(V(XhB)), V(B)Z1. If the germs are stationary, this simplifies to pZP(o2X), where o is the origin. When KZ{o}
above, the formula simplifies to
pZ TX
o
Z
ðf gÞ
1K expKlEVX0 , under the assumption of stationarity. ðð
ÞÞ
Contact distribution functions.A contact distribution (or hitting distribution) function for a stationary random
closed set X is defined in terms of a convex test set B by the equation
Þ
P Xh rB Z :ðÞ 1 K p
HBrZ 1 K
ð
The spherical contact distribution is obtained by letting BZb(o, 1), the unit ball. It is also called the law of first
contact. If convex grains are assumed, this simplifies down
2
s
2
to HrZ 1K expK4plrER C 3rERC r . This distri
ðÞððÞðÞÞ
bution will be discussed later and is relevant to the work in
We wish to both represent and design heterogeneous objects with porosity information. Our approach to the
representation and modeling is as follows:
Representation. We develop a stochastic representation of both model density and porosity. A challenge with
modeling materials such as human bone is that the specific internal geometry of identical bones can vary
considerably from human being to human being. During the development process, bone growth proceeds organically
and not according to rigid manufacturing parameters. Rather than modeling the specific internal geometry of a bone
(which would be impossible, given that every bone is unique), we model the internal shape parameters as a
stochastic process. Similar stochastic processes have been used to model other natural mean fraction of occupied
volume per unit volume.
are compact and of a single material, whereas the
contents of the outside is completely void. Some
modelers however, permit the attachment of
attributes to materials [6,9,39,41]. This could
enable porosity information to be stored as
attributes in the modeler.
We show how to adapt CSG to model artifacts
of varying density and porosity using our
stochastic representations. This involves
identifying a mathematically manner for the
stochastic representations of internal model
properties to be unionited, intersected and
subtracted. Given two models, A and B, we show
the internal shape parameters for the resulting
model C for each of the major Boolean operations.
Hence, the resultant CSG models internally
compact—model density may vary. Furthermore,
these void places in the model are to be
represented by porosity. This gives the flexibility
to decide
this paper. not only how much void is inside a
m
o
d
e
l
b
u
t
t
h
e
g
e
n
e
r
a
l
p
r
o
p
e
r
t
i
e
s
a
n
d
a
r
r
a
n
g
e
m
e
n
t
o
f
t
h
o
s
e
v
o
i
d
p
a
r
t
s
.
V
a
l
i
d
a
t
i
o
n
.
L
a
s
t
l
y
,
w
e
p
r
o
v
i
d
e
s
o
m
e
e
m
p
i
r
i
c
a
l
d
a
t
a
t
o
d
e
m
o
n
s
t
r
a
t
e
a
n
d
v
a
l
i
d
a
t
e
t
h
e
a
p
p
r
o
a
c
h
.
S
p
e
c
i
fi
c
a
l
l
y
,
w
e
u
s
e
4. Our formulation
a well-known cellular automata-based technique to
generate synthetic data with varying density and
porosity properties and evaluate how well the
representation and modeling paradigm conforms to
experimental data. Additionally, we provide an
example of how the modeling technique can be
used to represent a synthetic bone structure.
4.1. Model representation
Models must have both external, boundary
representation as well as internal representation.
This develops the boundary and internal
representation of single model; the Section 4.2 will
show how to design heterogeneous models with
varying density and porosity using
UNCORRECTED
PROOF
CSG operations and solids whose representations
are those
do,
consistent
are not
themselves
section
model porosity and show how these can be used to create an 393 implicit shape representation for the internal
porosity of an 394 object. 395
Modeling. From a practical standpoint, a representation 396 is only useful if it can be used to support design and
397 manufacturing of heterogeneous objects. For the purpose of 398 this paper we assume the underlying
representation of the 399 boundary of the model is based on constructive solid 400 geometry (CSG). In CSG, a model
is designed and
401 represented starting with primitives, which are
403
402
manipulated by combinations of (sometimes regularized) unions, inter- sections, and differences. With this
405
404
assumption, our representation need only handle Boolean operations. Once all of these operations have been
406
407
performed, the external geometry and topology of the artifact results. Traditionally, CSG has generally assumed
408
that the contents of the models
phenomenon, cellular automata and systems emergent from this section. In this work, the structure of the
CSG-tree 446 391 behavior and structure. Drawing on work in geophysics, will capture the internal properties of the
final object based 447 392 we present and evaluate three stochastic representations for on stochastic Boolean operators
applied to object primitives. 448
390
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15
449 4.1.1.
Boundary representation 450 We are primarily concerned with the internal structures 451 of objects. For
simplicity, the boundary of the CSG 452 primitives can use a number of suitable boundary represen453 tation
structures (NURBS patches, implicit surfaces, etc.). 454 We note that this paper does not introduce new algorithms
455 for manipulating bounding surfaces but will give a 456 mathematical framework for representation of the internal
457 properties. Our representation is compatible with any B-rep-458 based modeling paradigm. 459 460 4.1.2. Internal
representation 461 For the internal shape, a model has statistical parameters 462 that represent the nominal porosity
and density. 463 464 4.1.2.1. Representing model density. The density, r,is
zero when not in a pore, since f( ) is only meaningful for the 505 pores (when considering materials, this is reversed).
506 Defining p(0) in this way causes p to be a full probability 507 distribution although for a given model there will
be limits 508 on the size a pore can be; i.e. one cannot have a pore of 509 infinite radius. This implies that: 510 511
ð
N
0
pvdv Z 1: 512 ðÞ513
Consider V to be the volume of S. Choosing an arbitrary
514
515
function g(r) results in:
516
ð
ð
N
V gvpvdv Z gf
517
x
0 ðÞðÞðð
S
dx;
ÞÞ
518
519
under the constraint that f(x) obey p(v). To see why this is
520
represented as a value in the range 0%r%1. The density the case, consider S as a large number of small volumes.
specifies what fraction of a certain volume is solid material.
Alternatively, the density r is a probabilistic description of
the likelihood of finding solid material at a given point
inside the boundary of the model. Note: this formulation can be used to derive several other
useful representations of density. For example, one could
consider an object as multi-material, where an extra material
called void represents the porous regions. The volume
fraction consisting of materials other than void is then the
density of the object. In this case, it is sufficient to store the
density itself. For the purposes of this paper, the density is
assumed to be constant or a given and be altered by each
Boolean operation.
4.1.2.2. Representing model porosity. The internal
representation of this density information is quite
different from the internal representation of the
porosity information. Whereas density is a general
property of a model’s interior, porosity refers
largely to the specific geometry of the inside. For
example, a model with high density might have a
single large pore or many infinitesimally small
pores. Conversely, a model with low density might
have a porous structure much like that of the
human bones shown in Fig. 1, where the pore sizes
are relatively consistent and result in a highly
connected internal structure. Hence, given a fixed
model density, the specific internal porous
geometry could vary greatly depending on the
statistical distributions that describe the locations
and sizes of the pores.
We will consider the interior geometry of a
model as a point set S. To quantify the porosity of
the model, we use a function f( ), where f : S 2R/
R: This function f( ) takes a point in the interior of
3
a solid x 2R and returns the value of an attribute v
2R at that point. More simply, f( ) takes a point in
the 3D model and returns some value describing
the internal properties of the model at that point.
We define the
UNCORRECTED
PROOF
probability distribution p(v) such that f( ) will result in a Applying f to one of these volumes results in a number
describing some property r of that volume. Apply g(r)to this number. Add these up for each of the small volumes to
obtain the left side of the equation. Note that the property r occurs with likelihood p(r), since f(x) obeys p(v). Over
the entire volume, Vp(r) describes the number of small volumes with property r. Because the same values r are
obtained with the same frequency on both sides of the equation, the same values g(r) will be added on both sides,
and the two sums are equal. If g(v)Zv then another useful identity is obtained:
ð
ð
N
v
Vpvpvdv Z f xdx:hð Þi
ZV
0 ðÞðÞ
S
Let PZ f Sbe the distribution corresponding to the
ðÞ
original model S. Multiple functions fi( ) may also be used; in this case P is a list of distributions, one distribution
for each function fi().
Given two models, A and B, with the same external boundary representation, we can consider an error function,
E( ), that determines the difference between two distributions that stochastically describe their internal geometries. P
b
is stored in the model, and both f( ) and E( ) are stored globally in the representation. F : R / R is defined by
F(x)ZE(f(x),P). f( ) assigns to each object a number signifying how close its distributions are to those of S. f() has a
large number of global and local minima; i.e. solids that have the same or similar distributions as S: One of those
global minima is S: A good choice of f( ) will tend to cause minima of f( ) to have properties similar to those of S.
In this way, a result similar to S can be reconstructed. In most cases, the exact location and size of pores is not
needed; only the properties are important. It is these stochastic properties of the shape, and not the specific
geometric configuration of pores, that this representation seeks to capture.
502 value v 2R with probability density p(v). For a given If multiple functions fi( ) are being used, E( ) determines
558 503 model, we start with p(0)Zd(0)r, where d is the Dirac delta the error between two lists of distributions, and
f(x)is 559 504 function and r is the density. The value 0 means that f() is replaced by the list of distributions fi(x). In
this paper, 560
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15
561 562 563 564 565 566 567 568 569 Fig. 2. Three choices for the stochastic function, f( ), to represent internal
570
model porosity.
use two closely related functions fi(). F(x) is used as our 573 measure of fitness when doing simulated
annealing. The 574 general form of the formula we chose for E( ) is given in 575 Section 4.1.2.2. 576 The next
question to address is the choice for the This representation is otherwise the same as the first 617 scheme. There is a
reverse of this one, too. We do not use 618 these functions. This function will result in stationary 619 results that are
isotropic in the directions of the axes. 620
For the third choice of f( ), consider the longest segment 621 that can be embedded in pore space and pass through
571 572 we
†
the 622 point. This involves checking the embedding in every 623 direction and taking the length of the shortest
such 624 segment as the measure, as shown in Fig. 2(c). The same 625 is done for the material as with the first
case. We do not 626 use these functions, either. This function will result in 627 stationary results that are
anisotropic. 628
629
An example: the UC Berkeley bone. This example walks 630 through the full cycle, from a porous object to our
631 representation, and back again. It also provides insight 632
Boolean operations in a logical, efficient, and effective manner. Furthermore, the function f( ) should adequately
describe the porosity of the function that models reconstructed from it will be sufficiently similar to the original in
properties. We evaluated three functions based on those used by [31].
3
The first choice off: f : x 2R / vZ2R is based on the distance from points in pore space to the material matrix.
†
Formally, consider the input of the function, a single point in pore space. Find the nearest point in/on material to
this point, as shown in 2D in Fig. 2(a). The distance from the input point to this material is v. This is equivalent to
finding the largest sphere centered at the given point that fits entirely inside pore space. vZ0 elsewhere. The
reverse of this function requires that the input is a material point, and the same measure is performed but with
material space. This becomes v. In this case, vZ0if the input point is in void. We both of these two choices and
maintain a distribution for each. The reason for applying the same measurement to both material and pore is that
it permits effortless inversion of the model. This will aid in subtraction when doing Boolean operations. When
applying these functions we wrap around to avoid boundary problems. This is what you would expect if the cubes
we are using were tiled. This function is quit similar to the spherical contact distribution (Section 3.1.1), but there
are some subtle differences. For example, it cares about the point under consideration, unlike the contact
distribution which does not care. Computing these functions is straightforward and is described briefly in Section
5.1. Note that because this function does not care about absolute position or direction, reconstructions will result
in objects that are
stochastic function f( ). Good choices of f( )
w
i
l
l
s
u
p
p
o
r
t
t
h
e
a
n
d
d
e
t
a
i
l
s
a
b
o
u
t
o
u
r
i
m
p
l
e
m
e
n
t
a
t
i
o
n
.
T
h
e
c
y
c
l
e
s
t
a
r
t
s
w
i
t
h
a
m
a
t
e
r
i
a
l
s
a
m
p
l
e
.
F
o
r
t
h
i
s
,
c
h
o
s
e
t
o
w
o
r
k
w
i
t
h
a
b
o
n
e
m
o
d
e
l
1
f
r
o
m
U
C
B
e
r
k
e
l
e
y
’
s
t
i
s
s
u
e
e
n
g
i
n
e
e
r
i
n
g
g
r
o
u
p
.
T
h
i
s
b
o
n
e
i
s
a
V
R
M
L
fi
l
e
w
i
t
h
2
8
0
,
4
7
4
p
o
i
n
t
s
a
n
d
5
6
4
,
3
2
0
f
a
c
e
s
t
h
a
t
d
e
s
c
r
i
b
e
s
s
t
r
u
c
t
u
r
e
o
f
a
p
o
r
o
u
s
b
o
n
e
a
n
d
i
s
s
h
o
w
n
i
n
F
i
g
.
3
(
a
)
.
T
h
e
s
e
c
o
n
d
s
t
a
g
e
o
f
t
h
e
d
a
t
a
p
a
t
h
i
s
v
o
x
e
l
i
z
a
t
i
o
n
.
T
o
c
o
n
v
e
r
t
f
r
o
m
a
t
r
i
a
n
g
u
l
a
r
m
e
s
h
t
o
a
s
e
t
o
f
v
o
x
e
l
s
,
w
e
fi
t
t
h
e
m
e
s
h
t
o
a
l
a
t
t
i
c
e
a
n
d
r
u
n
l
i
n
e
s
d
o
w
n
t
h
e
c
e
n
t
e
r
o
f
e
a
c
h
s
t
r
i
n
g
o
f
c
e
l
l
s
i
n
t
h
e
l
a
t
t
i
c
e
i
n
o
n
e
d
i
r
e
c
t
i
o
n
.
W
e
t
h
e
n
i
n
t
e
r
s
e
c
t
t
h
e
s
e
l
i
n
e
s
w
i
t
h
t
h
e
m
e
s
h
.
W
e
t
h
e
n
c
l
a
s
s
i
f
y
t
h
e
c
e
n
t
e
r
s
o
f
t
h
e
c
e
l
l
s
a
s
i
n
o
r
o
u
t
b
y
c
o
u
n
t
i
n
g
t
h
e
n
u
m
b
e
r
o
f
i
n
t
e
r
s
e
c
t
i
o
n
s
b
e
t
w
e
e
n
t
h
e
c
e
l
l
’
s
c
e
n
t
e
r
a
n
d
t
h
e
o
u
t
s
i
d
e
o
f
t
h
e
m
o
d
e
l
.
W
e
t
a
k
e
a
c
e
l
l
t
o
b
e
p
a
r
t
o
f
t
h
e
m
o
d
e
l
w
h
e
n
i
t
s
c
e
n
t
e
r
i
s
.
W
e
s
t
o
r
e
t
h
i
s
a
s
a
s
i
m
p
l
e
l
i
s
t
o
f
v
o
x
e
l
c
o
o
r
d
i
n
a
t
e
s
.
O
u
r
l
a
t
t
i
c
e
i
s
1
0
0
b
y
1
0
0
b
y
1
0
0
.
T
h
e
r
e
s
u
l
t
i
n
g
m
o
d
e
l
c
o
n
t
a
i
n
s
3
2
5
,
0
2
6
v
o
x
e
l
s
,
g
i
v
i
n
g
t
h
e
m
o
d
e
l
a
d
e
n
s
i
t
y
o
f
0
.
3
2
5
.
T
h
e
v
o
x
e
l
i
z
e
d
B
e
r
k
e
l
e
y
b
o
n
e
i
s
s
h
o
w
n
i
n
F
i
g
.
3
(
b
)
.
T
h
e
t
h
i
r
d
s
t
a
g
e
i
s
c
a
l
c
u
l
a
t
i
n
g
t
h
e
d
i
s
t
r
i
b
u
t
i
o
n
s
.
T
h
i
s
s
t
e
p
i
s
d
e
s
c
r
i
b
e
d
i
n
S
e
c
t
i
o
n
5
.
1
.
W
e
w
i
l
l
n
o
t
d
e
s
c
r
i
b
e
t
h
i
s
s
t
a
g
e
h
e
r
e
.
T
h
e
d
i
s
t
r
i
b
u
t
i
o
n
s
a
r
e
s
h
o
w
n
i
n
F
i
g
.
3
(
c
)
.
T
h
e
f
o
u
r
t
h
s
t
a
g
e
w
o
u
l
d
n
o
r
m
a
l
l
y
b
e
t
h
e
m
o
d
e
l
i
n
g
p
h
a
s
e
,
w
h
e
r
e
i
n
v
e
r
s
i
o
n
s
,
u
n
i
o
n
s
,
a
n
d
i
n
t
e
r
s
e
c
t
i
o
n
s
f
o
r
m
e
d
w
i
t
h
m
u
l
t
i
p
l
e
p
r
i
m
i
t
i
v
e
s
t
o
y
i
e
l
d
a
n
e
w
d
i
s
t
r
i
b
u
t
i
o
n
.
F
o
r
t
h
e
p
u
r
p
o
s
e
s
o
f
t
h
i
s
e
x
a
m
p
l
e
,
w
e
o
n
l
y
w
i
s
h
t
o
r
e
c
o
n
s
t
r
u
c
t
t
h
e
d
i
s
t
r
i
b
u
t
i
o
n
w
e
s
t
a
r
t
e
d
w
i
t
h
.
T
h
e
fi
f
t
h
s
t
a
g
e
i
s
r
e
c
o
n
s
t
r
u
c
t
i
o
n
.
W
e
s
t
a
r
t
t
h
e
r
e
c
o
n
s
t
r
u
c
t
i
o
n
p
r
o
c
e
s
s
w
i
t
h
a
g
r
i
d
o
f
v
o
x
e
l
s
.
O
u
r
g
r
i
d
i
s
3
2
!
3
2
!
3
2
.
W
e
t
h
e
n
r
a
n
d
o
m
l
y
s
e
t
v
o
x
e
l
s
a
s
b
e
i
n
g
m
a
t
e
r
i
a
l
,
u
n
t
i
l
t
h
e
d
e
s
i
r
e
d
d
e
n
s
i
t
y
i
s
m
e
t
.
W
e
t
h
e
n
a
p
p
l
y
s
i
m
u
l
a
t
e
d
a
n
n
e
a
l
i
n
g
t
o
i
m
p
r
o
v
e
t
h
e
d
i
s
t
r
i
b
u
t
i
o
n
’
s
fi
t
w
i
t
h
t
h
e
o
r
i
g
i
n
a
l
.
(
A
d
e
s
c
r
i
p
t
i
o
n
o
f
t
h
e
s
i
m
u
l
a
t
e
d
a
n
n
e
a
l
i
n
g
p
r
o
c
e
s
s
c
a
n
b
e
f
o
u
n
d
h
e
r
e
[
3
8
]
)
.
U
p
d
a
t
e
s
t
o
t
h
e
g
r
i
d
a
r
e
d
o
n
e
b
y
s
e
l
e
c
t
i
n
g
a
v
o
x
e
l
a
n
d
w
a
l
k
i
n
g
r
a
n
d
o
m
l
y
a
r
o
u
n
d
t
h
e
m
o
d
e
l
u
n
t
i
l
a
n
o
t
h
e
r
v
o
x
e
l
o
f
t
h
e
s
a
m
e
t
y
p
e
(
m
a
t
e
r
i
a
l
o
r
p
o
r
e
)
i
s
f
o
u
n
d
.
W
e
b
a
c
k
u
p
a
n
d
c
h
o
o
s
e
t
h
a
t
v
o
x
e
l
,
w
h
i
c
h
w
i
l
l
b
e
o
f
d
i
f
f
e
r
e
n
t
t
y
p
e
.
W
e
t
h
e
n
UNCORRECTED
PROOF
we
the
can be per
614 motion
invariant (Section 3.2).
swap these two voxels, update the
distribution, and choose
70 615
The second choice of f( ) is based on the largest cube that
†
71 616 can
be centered at the given point as shown in Fig. 2(b). 1 http://biomechl.me.berkeley.edu/tbone-fail/ 672
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15 7
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
Fig. 3. The stages of the full data cycle for the Berkeley bone.
to accept or reject the modification according to its
affect on the fit of the model and the cooling
schedule. We permit the annealing process to
continue until the solid is completely frozen.
F( ) as described earlier is the fitness function
used during this reconstruction phase. For our
function E({pi},{qi}) (a function that compares
lists of distributions i and qi) is computed as:
The seventh and final stage is fabrication.
Pictures of the fabricated models are shown in Fig.
3(e) and (f).
Example artifact: a femur cross-section. Fig. 4
shows a hypothetical approximation of a femur as
a cylinder with rings with increasing porosity as
the center of the cylinder is approached. The
density is 0.90 at the perimeter and 0.10 in the
center. Varying the density in this way may be
used to model not only the density but also the
porosity of the bone. Regions of differing porosity
and density may be achieved
N
XX
2 arby
assigning different sets of properties to those areas and
E pi qi Z
r
ðf gf gÞ irZ0 ððÞ ð ÞÞ
;pirK qie ;
allowing reconstruction to transition between
them.
where a is a constant. Including the exponential
factor accelerates convergence.
Our cooling schedule consists of multiplying
the temperature by the constant factor at regular
intervals. The result is a model with similar
density and distribution as the original model. The
simulated model is shown in Fig. 3(d).
Though convergence is not guaranteed (e.g.
when the distribution does not correspond to a
valid model, and thus there is nothing to converge
to). When convergence occurred, we typically
obtained a very high degree of accuracy. For a
32!32!32 reconstruction, we allowed annealing to
continue for three million iterations (a few hours).
Convergence speed depends on the nature of the
input distribution, cooling schedule, the fit
function, and the
UNCORRECTED
PROOF
way in which one configuration is changed into the next.
sixth stage is to convert the model back into a
726 The
triangular mesh. We converted our voxel
representation 728 back into STL for the
fabrication process.
727
Fig. 4. Porous cylinder generated by removing spheres
from a cylinder. 783 Resulting object has increased
porosity towards the center. 784
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
regularized union (g ), intersection (h ), and subtraction cylinder A has density rAC rBK rArB
*
(K). Standard regularized Boolean operations were not
developed to model with the stochastic representations of
density and porosity. In this section we develop Boolean
operations that preserve the stochastic properties of the internal
geometry.
4.2.1. Density-preserving operations
The density must undergo the operations of union (g),
intersection (h), and subtraction (K). Regularization of the
resulting solid may be necessary.
The probability of finding material at a certain point in
region A is r(A), and the probability of finding material in
region B is r(B).
Consider the intersection of these two solids A and B. Four cases can occur at any point. Both regions can
†
have material. This case occurs with probability r(A) r(B). In this case, the resulting region CZAhB, will possess
material at the same location. In all other cases, one or both of the regions A and B will be void. In these cases, the
regions do not intersect, so that the region AhB is also void at that point. Because material occurs at a given point
with probability, the density is r(AhB)Z r(A)r(B).
Next consider the union CZAgB with A and B as before. The probability that a point is not material is rBZ 1K
†
rBThus, the chances of B being void are
ðÞðÞ
1Kr(B). r(AgB)Z(prob. of A)C(prob. of B)K(prob.
of A and B)Zr(A)Cr(B)Kr(A)r(B).
Finally, consider the difference AKB.Thisisthe probability of
†
A having material and B not having material. Thus, rAK BZ
rAK
A
ðÞð Þð
1K r B
Zr
ð ÞÞ ðÞ
rAh B:
ðÞ
UNCORRECTED
PROOF
Z 0C rðÞðÞ
ðÞðÞ
0
r B
Zr
Þ
B. The portion of C contained inside the ð Þð ð ÞÞ ðbutcylinder A not inside the block B
A
0
rAC rBK rArBZ rAC 0K rðÞðÞðÞðÞðÞðð ÞÞð Þ
portion of C at the intersection of A and C has density.65; the rest of C has the same density as the corresponding
portions in A and B.
Consider a subtraction between a 50% dense cylinder A and a 40% dense block as shown in Fig. 5(c).
AKBZC.At the intersection of A and B, the density is r(A)(1Kr(B))Z (0.50)(1K0.40)Z0.30. At points outside of A,
the density is r(A)(1Kr(B))Z(0)(1Kr(B))Z0. At portions outside of B, the density is r(A)(1Kr(B))Zr(A)(1K0)Zr(A).
Thus, C is just A, but with the intersection reduced in density to 30%.
4.2.2. Porosity-preserving operations
This section begins by considering pA as pA0 and so on for brevity. That is, pA will be used to denote just the
porosity distribution for model A. The general case where the material distribution is also considered is treated later.
Performing Boolean operations on the porosity requires that one be able to obtain a new distribution pC from the
original distributions pA and pB. The stochastic function f( ) is global and is the same for all objects. In general, the
distribution that is obtained by Boolean operations applied to the input distributions will not be unique. The
geometry original objects themselves determine the exact properties of the resulting solid. It is, however, possible to
calculate a likely distribution that one might expect to means of calculating such a distribution is dependent on the
function f( ) used to create the distribution.
In developing these operators, we will function fs( ) which finds the sphere of largest
K
Þ
B
ð
has density
Zr
A. The
ð
Þ
of the
obtain. The
employ the
radius
838
894 839
95 840 Fig. 5. Boolean operations that preserve density in a manner consistent with the original models. 896
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15 9
897 centered at the desired
899 operators based on the
point in pore space which has an 898 empty intersection with the model. Development of
other stochastic function would 900 proceed in a similar manner. 901 Intersection. If two
objects, A and B, were to intersect,
of the new distribution: 953 ðN ðN 954 pC xZ
pAxpBtdt C pBxpAtdt: 955
ðÞ ðÞ x ðÞðÞ x ðÞ
956
902 the
result, C, would have less material
and more pore space. 903 The size of the
smallest sphere is at least as large as either of
904 the original objects. This suggest the
following calculation The union formula is
957
obtained in a similar manner as the
intersection formula. In this case, however,
958
959
strict equality is obtained.
ð 960
r
905 of
the new distribution:
pAgBtdt
961 906 ðð 0 ðÞ962 907 pC
x Z pA x
pA t dt: V M
pB t dt C pB x
ð Þ0
ð Þ
ð Þ0
ð Þ
ð Þ
Z
4b o;r
AgB
ð
ð
ÞÞ Z
V M g M 4b o;r
A
ðð
B
Þ
ð
ÞÞ 964
xx
63 908
VUVU
909 This
formula can be derived mathematically using methods ðÞ ðÞ 965
MB4b
V
910 of
Stochastic geometry, and the notation is based on the Z
Method in Section 3.2. First, it is
V U
ð
MA4b o;r
ðð
ð
g
o;r
ÞÞ ðð
ÞÞÞ
966 911 treatment
of the Boolean
967
ÐÞ
912 necessary to build up a formula for 0 ptdt Consider MA to h
0
r
MB4b00968ðÞ913
be the material portion of A. b(o, r) is
ð
V
the ball of radius r
Z
MA4b o;r
ððð
o;r
ð ÞÞð ÞÞÞÞ 969
924 925
928 929
935 936
centered at the origin. MA4bo;rincludes everything in
ðÞ
the material portions of A, as well as everything no more than
r away from the material portions. VMA4bo;r is
ÞÞ
ðð
the volume of A that is material or at most r from material.
o;r
=V
VMA4bUis then the volume fraction for this ðð ÞÞ ðÞ
region, where U is the universe of interest. But this is
Ð
r
precisely what 0 ptdt represents. Remember that the pores
ðÞ
are being considered here.
ð
r
V MA4b
o;r
pA t dt Z ðð ÞÞ :
ð Þ
0 VU
ðÞ
Similar formulas hold for pB and pAhB :
ð
r
VMB4b
o;r
pB t dt Z ðð ÞÞ :
ð Þ
0 VU
ðÞ
Now for the intersection version, we can simplify this down,
but only as far as an inequality. We assume strict equality for
purposes of calculations. Note that independence between A
and B is required for the fourth step to hold.
ð
r
V MAhB4b
o;r
pAhB t dt Z ðð ÞÞ
ð Þ
0 VU
ðÞ
UNCORRECTED
PROOF
V
Z
MAð
o;r
h
MB4bÞVUðÞ
ð ÞÞ ffpC Z pA g pB Z pA0;pA1 g pB0;pB1 fZ pA0 g pB0;pA1 h
g
g
pB1 :
g
MB4b
V
MA4b o;r
R ðð
h
o;r
ð ÞÞ ðð ÞÞÞ
VU
ðÞ
o; r
o;r
V MA4bVMB4bZ ðð ÞÞðð ÞÞ
VUVU
ðÞ ðÞ
ðð
rr
Z pAtdt pBtdt
0 ðÞ0 ðÞ
The formula originally presented is obtained by differentiating this equation. Union. If two
objects, A and B, were to be united, the
VU
ðÞ
0 h MB4b0
V
Z 1 K ðð
MA4b o;r
o;r
ð ÞÞðð ÞÞÞ
VU
ðÞ
00
V
Z 1 K ðð
MA4b o;r
V
MB4b o;r
ð ÞÞÞ ðð
ð ÞÞÞ
VUVU
� ðÞ � ðÞ �
VMA4bVMB4b
o;r
o;r
Z 1 K 1 K ðð ÞÞ 1 K ðð ÞÞ
VUVU
ðÞ ðÞ
ðð
rr
Z 1 K 1 K pAtdt 1 K pBtdt
0 ðÞ0 ðÞ
As before, the formula is obtained by differentiating this equation.
Up until now, only the porosity distribution has been considered. Now treat both distributions at once using the
above union and intersection equations. For intersection:
pC Z pA h pB Z pA0;pA1 h pB0;pB1
g
g
ff
Z pA0 h pB0;pA1 g pB1;
fg
and similarly for union:
Inversion and subtraction. Inversion (l) of the model is accomplished by:
pB ZlpA ZlpA0;pA1 ZlpA0;lpA1 Z pA1;pA0 ;
g
g
g
fff
and by using inversion, subtraction (K) is achieved by applying the intersection and the inversion:
pC Z pA K pB Z pA hlpB Z pA0;pA1hlpB0;pB1
fgfg
Z pA0;pA1hlpB1;pB0Z pA0 h pB1;pA1 g pB0
fgfgfg
950 result,
C, would have more material and
less pore space. 951 The size of the smallest
sphere is at most as large as either of 952 the
original objects. This suggests the following
calculation Examples of the porosity
operators. A 2D illustration of the 1006
behavior of the three Boolean operations is
shown in Fig. 6. 1007 The first two images
represent the input models, A and B. 1008
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15
1018
Fig. 6. Examples of the effects of Boolean operations on porous models (shown in 2D). The black portions are the resulting models. Note
that this exampleis 1019 using exact geometry. We would like to avoid this level of detail by capturing these images statistically. 1075 1020 1076
The white parts represent pores and the colored portions needs to have predictable and convergent behavior (i.e.
we 1077
represent material.
cannot simply move voxels around randomly).
Given these
1021
1022 1078 The
remaining three represent the union (g), intersec-constraints, several classes of algorithmic technique
present
1023 1079 tion
(h), and difference (K) between the input solids A and could be equally suitable: L-systems, fractal
models, or1024 1080 1025 B. The black portions are the actual output of the operations. techniques from emergent
behavior and artificial life. We
The lightly shaded portions portions show, for purposes of chose the ladder category and well known
demonstration and clarity only, where the original input involving simulated, digital, termites [11].
models are situated relative to the output. These are not part The basic idea behind the termites
simulation is that a
of the output.
population of one or more termites is unleashed on
the voxel grid. These termites move through the
voxel grid picking up, and moving around, the
voxels (a.k.a. woodchips) in the
5. Empirical results
following manner. When they hit a piece of
material, if they have a woodchip, they drop it. If
they do not, they pick up the one they ran into.
Otherwise, they just go straight. When
5.1. Validation of modeling operators
they hit material, they turn. The direction of the
turn is random.
To test the proposed method for combining distributions,
we first generated two 100!100!100 voxelized cubes, A
calculated explicitly by
While one can terminate the algorithm at any time, it has
and B. Then, a third cube AgB was
several interesting (and provable) emergent properties which applying the union, subtraction and intersection voxel by
appear over time. Of specific interest for our experiments, the voxel. algorithm will cluster the voxels into clumps,
which get For the first set of tests, we calculated the voxelized larger and more connected as time goes on. Tile result, after
several seconds of execution, is a porous structure not unlike cube. We then
cubes by starting with a completely solid 100!100!100
a bone, honeycomb or a piece of termite-infected wood. An
generated spheres with radii according to an
exponential distribution, scaled
example of this is shown in Fig. 7.
and shifted to reasonable
values (at least two voxels in radius). These spheres were In our
experiments, after these cubes are generated, they removed from the cube until the density reached 0.7 of the are
stored, loaded into an analysis program, and inverted.
total volume, as shown in Fig. 7(a) and (b). (This swaps the pore and material portions, making the In order
to generate a suitable family of porous shapes of density 0.7.) A sample cross-section from such a cube
is the same density for the second set of tests, we need an illustrated in Fig. 7(c). algorithmic technique
for moving the voxels around in a The distributions p(A), p(B), and p(AgB) were calcumanner that
changes the object porosity while keeping lated by searching outwards from each voxel density
constant. Further, the porousity varying algorithm voxel with the opposite type (pore or material) was
found.
technique
until
a
1062
118 1063
119 1064 Fig. 7. Cubes used for Boolean operations. 1120
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15
1121 Then,
the distance was calculated and the appropriate
1122 counter
1123 each
was incremented. Separate counters were kept for
type. The result is a histogram for pores and a
1124 histogram
for material.
1125 Another
set of distributions p(Q) were generated by
1126 applying
the suggested formula for union. This requires a
1127 union
1128 pore
of the material distribution and an intersection of the
distribution. The union of a distribution was suggested as:
1129 ð x ð
x
1130 pC xZ pAxpBtdt
C pBxpAtdt;
ðÞ ðÞ 0 ðÞðÞ 0 ðÞ
1131
1132 which
1133
becomes:
x
x
X
X
1134 pC xZ pAxpBiC pBxpAiZ
KpAxpBx
1135 ðÞ ðÞ iZ0 ðÞ ðÞ iZ0 ðÞ ðÞðÞ
1136
due to voxelization. Similarly the suggested intersection:
1172
UNCORRECTED
PROOF
ð
ð
N N
pC Z pAxpBtdt C pBxpAtdtðÞ x ðÞðÞ x ðÞ
becomes:
mm
0
XX
pC Z pAxpBtC pBxpAtK pAxpBx;ðÞ iZx ðÞ ðÞ iZx ðÞ ðÞðÞ
where m is the size of largest nonzero element in pA(t), and m0 is the size of the largest nonzero element in pB(t).
Fig. 8 shows the result of a union operation on two cubes formed by removal of random spheres from a cube. The
lighter distribution represents the probability that a point in material space will have a pore a given distance away.
This is the radius of the largest sphere that can be inserted at a point and fit entirely in the material of the solid. The
darker distribution represents the probability that a point in pore space will, have material a given distance away.
This is the radius of the largest sphere that can be inserted at a point and fit entirely within the pore of the solid.
The distribution from cube A is shown in Fig. 8(a), and the distribution from cube B is shown in Fig. 8(b). The
distribution p(Q) calculated from the formulas, shown in Fig. 8(d), should be similar to the distributions calculated
from the Boolean operations applied to the voxels, shown in Fig. 8(c).
The colors in Fig. 9 have the same meaning as before. Cube A is shown in Fig. 9(a), and cube B is shown in Fig.
9(b). These cubes, unlike those in the last example, are formed by running the termite simulation on a cube of
randomly placed voxels. Again, the figure calculated by performing the voxel-by-voxel union operation, shown in
Fig. 9(c), should be similar to the distribution calculated from the formulas, shown in Fig. 9(d).
The calculated porosity distributions tended to be similar to the distributions computed by performing the actual
union. This is consistent with the equality in the derived
x
ðÞ
x
ðÞ
Fig. 8. Union operation on cubes formed by sphere removal.
than the actual for lower radii and less for the greater radii. This behavior can be explained by noting the inequality
in the formula. The assumed equality is likely to become less accurate for larger radii. The calculated values for
larger
1174 formula. The calculated material
distributions were similar 1175 to the actual
distributions, but there was a noticeable and
1176 consistent deviation. The predicted
distribution is greater radii are understated.
Because this causes the calculated 1230
values to be smaller, all values are adjusted
to bring the area 1231 under the distribution
to unity. This adjustment causes lower 1232
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15
to create a bone scaffold suitable for supporting bone 1289 1234
1233
growth. Since we have this primitive, we
may obtain the 1290 1235
scaffold we desire by subtracting this
distribution from a 1291 1236
solid block; i.e. a simple inversion. The
distribution 1292 1237
obtained from this inversion is shown in
Fig. 10(a). This 1293 1238
model
was
then
reconstructed.
The
reconstructed model is 1294 1239
shown in Fig. 10(b). The fabricated model
is shown in 1295 1240
Fig. 10(c). 1296 1241
297 1242
5.3. Example: modeling porosity with a
CSG tree 1298 1243
299 1244
Modeling with Boolean operations starts
with primitives. 1300 1245
In this example, we have chosen primitives
with distri-1301 1246
butions shown in Fig. 11(a). Primitives
might be hardcoded 1302 1247
in the system, obtained from existing
porous primitives, or 1303 1248
specified at design time. 1304
The next step involves modeling
with these primitives. In our case, we
chose to model our result according
to this
equation: ResultZ((AhB)hC0)0. The corresponding
CSG tree is shown in Fig. 11(a). The target in this
example is a distribution that describes properties
similar to the inverse of bone matrix.
In practice, one would attach these properties
geometry. In our case, we are only concerned with
these properties. For this reason, geometry is not
considered in this example.
The next step is to convert the model with attributes
into a geometric model that can be fabricated. For this
step, we apply the reconstruction techniques described
earlier. The reconstructed geometry for our finished
product is shown in Fig. 11(b). The cube is 32!32!32.
The final step is to fabricate the finished product. A
fabricated unit cell describing the properties of the
product is shown in Fig. 11(c). This end result is
intended to be a growth bone matrix with properties
similar to the inverse of bone matrix. In this way, bone
matrix can fill the pores of the reconstructed bone, and
the reconstructed bone degrade away over time.
5.4. Implementation
Several programs were created during the course of
this research. One program analyses these synthetic
models, performs the explicit (voxel-by-voxel)
Boolean operations, calculates their internal density
and porosity distributions as well as the calculated
distribution. Another program generates synthetic
models using the sphere-based porosity function, by
removal of spheres of varying sizes. Yet another
program was written to perform simulated annealing
and reconstruction. Each of these are ANSI CCC and
compiled under GCC and run on Solaris. Some illustrations were made using CCC, GLUT, and OpenGL.
The
UNCORRECTED
PROOF
distributions were plotted using GNUplot on Solaris.
to
can 1325
Fig. 9. Union operation on cubes formed by termite simulation.
radii to go high (since the distribution is lifted without having fallen) and higher radii to go low (since they are not
lifted as much as they fell).
5.2. Example: simple Boolean operation
1286 1287 Since we have the distributions describing the properties 1288 of a bone, we may use this as one of our
primitives. We wish
The complexity of the code for
generating synthetic 3D 1342 voxel-based
models using removal of spheres is Q(n ),
1343 where the basic cube is n!n!n voxel
matrix. The memory 1344
3
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15 13
1345
1401
1346
1402
1347
1403
1348
1404
1349
1405
1350
1406
1351
1407
1352
1408
1353
1409
1354
1410
355 Fig. 10. Bone scaffold example formed by subtracting bone from solid material. 1411
1356
1412
3
requirement is also Q(n ), the volume of the cube. In our a theoretical framework for representing and modeling
1357 1413
case, nZ100. porous, heterogeneous objects. We have extended the
1358
3
2
The complexity of the analysis code is O(n s ), where s is traditional Boolean operations of union, intersection, and
1414
1359 1415
the average size of the spheres that could be fit at any point. subtraction into a domain where representing,
manipulating, 1360 1416
used in this paper, s was rarely greater than 10). The worst
n
5
case for s is just : The resulting O(n
) time bound occurs
2
3
2
3
6
is O(ns CIn CIs ) in the worst case, where I is the number
of iterations performed. In practice, the last term is not too bad; s tends to be small, and the constant is not too large. The memory requirement is
3
Q(n
).
6. Discussion used to aid in the design of more complex solids than was
3
), the volume of the cube.
The reconstruction code is written in ANSI CCC, compiled and run under Solaris. The complexity of this code
when the cube is nearly empty or nearly solid. The memory requirement is again Q(n
Through the use of stochastic functions in combination with density and the methods of CSG, we have
laidmanner.
We suggest the usage of stochastic functions as a means of representing porosity in addition to the density,
making it possible to specify not only how much material and pore space exist but also describe the properties of the
pores themselves (e.g. pore size or pore roughness). We also explored the theoretical basis for the Boolean
manipulation of these stochastic functions without knowledge of the underlying geometry or the representation of
individual pores. In doing so, we suggested a means of extending the Boolean operations to the domain of porous
solids, where objects of varying geometry, density, and porosity may be before possible.
The effectiveness and consistency of the Boolean density operations is theoretically and empirically sound.
1398
1454
1399
1455
400 Fig. 11. 1456
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15
1569 [27] Kumar V, Rajagopalan S, Cutkosky M, Dutta D. Representation and
[36] Qian X, Dutta D. Physics-based modeling for heterogeneous objects. 1625
[28] Liu H. Algorithms for design and interrogation of functionally graded
1572 material. Master’s Thesis. Massechusetts Institute of Technology;
[38] Russell
S, Norvig P. Artificial intelligence: a modern approach. 1628 1629 1630
1573 2000.
Englewood Cliffs, NJ: Prentice-Hall; 1995.
1574 [29] Liu H, Cho W, Jaction T, Patrikalakis N, Sachs E. Algorithms for
[39] Spatical Technology, Inc. ACIS 3D Toolkit: Getting Started, 3.0
[30] Manwart C, Hilfer R. Reconstruction of random media using Monte
1577 Carlo methods. Phys Rev E 1998;59(5):5596–9.
[41] Structural Dynamics Research Corporation. Exploring I-DEAS 1633 1634 1635
1578 [31] Manwart C, Torquato S, Hilfer R. Stochastic reconstruction of
Generative Machining, 2 edition.
1579 sandstones. Phys Rev E 2000;62(1):893–9.
[42] Sun W, Hu X. Reasoning boolean operation based modeling for
Modeling and Applications 2001.
1582 [33] Patil O, Dutta D, Dhatt AD, Jurrens K, Lyons L, Pratt MJ, Sriram RD.
46–58. 1638 1639 1640
1583 Representation of heterogeneous objects in iso 10303 (step) Proceed[44] Voelcker H, Requicha A, hartquis E, Fisher W, Meizger J, Tilove R,
1584 ings of the ASME Conference 2000.
Bitrrell N, Hunt W, Armstrong G. The padl-1.0/2 system for defining
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
7. Conclusions
fabrication of parts with local composition control
Proceedings of the
NSF Design and Manufacturing Grantees Conference
2000.
[8] Cho W, Sachs EM, Patrikalakis
NM, Cima MJ, Liu H,
Serdy J, Stratton CC. Local composition control in solid
freeform fabrication Proceedings of the NSF Design,
Service and Manufacturing Grantees and Research
Conference 2002.
[9] Corney J, Lim T. 3D Modeling with ACIS.: Saxe-Coburg
Publications; 2001.
[10] Davis
D, Ribarsky W, Jiang TY, Faust N, Ho S.
Real-time visualization of scalably large collections of
heterogeneous objects. IEEE Visualization ‘99. Report
GIT-GVU-99-13; 1999. p. 99–113.
[11] Flake GW. The computational beauty of nature: computer
explorations of fractals, chaos, complex systems, and
adaptation. Cambridge, MA: MIT Press; 1998.
[12] Hilfer R. Geometric and dielectric characterization of
porous media. Phys Rev B 1991;44(1):60–75.
[13] Hilfer R. Local-porosity theory for flow in porous media.
Phys Rev B 1992;45(13):7115–221.
[14] Hilfer R. Transport and relaxation phenomena in porous
media. Adv Chem Phys 1996;92:299.
[15] Hilfer R. Macroscopic equations of motion for two-phase
flow in porous media. Phys Rev E 1998;58(2):2090–6.
[16] Hilfer R. Local porosity theory and stochastic
reconstruction
for porous media. Lecture Notes
Phys 2000;31:203–41.
[17] Hilfer R. Fitting the
excess wing in the dielectric
(-relaxation of propylene carbonate. J Phys: Condens
Matter 2002;14(9):2297–301.
[18] Hilfer R, Besserer H. Macroscopic two-phase flow in
porous media. Phys B 2000;279:125–9.
[19] Hilfer R, Manwart C. Permeability and conductivity for
reconstruction models of porous media. Phys Rev E
2001;64.
[20] Hilfer R, Rage T, Virgin B. Local percolation
probabilities for natural sandstone. Phys A
1997;241:105–10.
[21] Jackson
TR. Analysis of functionally graded material
object representation methods. PhD Thesis.
Massachusetts Technology; 2000.
[22] Jackson TR, Cho W, Patrikalakis EMSNM. Memory
analysis of solid model representations for heterogeneous
objects. J Comput Inform Sci Engng 2002;2(1).
[23] Jackson TR, Liu H, Patrikalakis NM, Sachs EM, Cima MJ.
Modeling and designing functionally graded material
components for fabrication with local composition
control. Mater Design 1999;20(2):63–75.
[24] Johnsen T, Hilfer R. Statistical prediction of corrosion
front
UNCORRECTED
PROOF
penetration. Phys Rev E 1997;55(5):5433–42.
a
Institute of 1557
The design and fabrication of heterogeneous structures requires new techniques for solid models to represent
such 3D objects with complex internal shape and material properties. This paper introduced a novel representation
of model density and porosity based on stochastic geometry and showed how to use this representation to create
CSG-based models of heterogeneous objects. The authors believe that, while density has been previously studied in
the modeling literature, representation and modeling with porosity is a new problem for solid modeling.
In a number of bio-material and composites applications, porosity is a critical design and fabrication parameter.
Using our mathematical formulation, we performed a set of experiments that showed that the techniques can be
implemented and that the results are well-behaved with respect to synthetic model data. We believe that results from
these limited experiments indicate our technique could be the basis of a new set of data structures and algorithms for
high-fidelity representations of heterogeneous objects. Our future work includes integration of these techniques into
CAD, enabling interactive design, analysis and (eventually) manufacturing of customized heterogeneous materials.
Acknowledgements
This work was supported in part by National Science Foundation Grants ITR/DMI-0219176,
DMS/CARGO-0310619, and NSF/EIA 0205178. Any opinions, findings, and conclusions or recommendations
expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science
Foundation or the
[25] Kumar V, Burns D, Dutta D, Hoffmann C. A
framework for object
1510 other
1511
supporting government and corporate organizations.
Additional thanks to Dr Earlin Lutz for his helpful
modeling. Comput-Aid Des 1999;31:541–56.
[26] Kumar V, Dutta D. An approach to modeling multi-material objects 1567 1512
comments
on an earlier draft of this paper. Fourth ACM Symposium on Solid Modeling 1997. 1568
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
processing of heterogeneous objects for solid freeform fabrication.
1570
ASME Trans J Mech Des 2003;125:416–27. 1626
[37] Hilfer BBR, Widjajakusuma J. Macroscopic dielectric constant for
Geometric Modeling Workshop; 1998. 1571
1627
microstructures of sedimentary rocks. Granular Matter 2000;2:137.
design and interrogation of functionally gradient material objects 1575
edition; 1997. 1631
[40] Stoyan D, Kendall W, Mecke J. Stochastic geometry and its
Proceedings of ASME IDETC/CIE 2000. 1576
1632
applications. New York: Wiley; 1987.
[32] Park SM, Crawford RH, Beaman JJ. Volumetric multi-texturing for
1580
heterogeneous objects. Comput Aid Des 2002;34(6):481–8. 1636
[43] Tscheschel A, Stoyan D, Hilfer R. Erosion analysis for experimental
functionally gradient material representation Symposium on Solid 1581
1637
and synthetic microstructures of sedimentary rock. Phys A 2000;284:
[34] Pratt MJ, Bhatt AD, Dutta D, W LK, Patil L, Sriram RD. Progress 1585
and displaying solid objects Proceedings of the 5th annual conference 1641
towards an international standard for data transfer in rapid prototyping on Computer graphics and interactive techniques 1978.
and layered manufacturing. Comput-Aid Des 2002;34(14):1111–21. [45] Yeong CLY, Torquato S. Reconstructing random media. ii. three[35] Qian X, Dutta D. Direct face neighborhood alteration for heteroComput Graph 2003;27:943–61. 58(1):224–33.
dimensional media from two-dimensional cuts. Phys Rev E 1997; geneous object design.
UNCORRECTED
PROOF
1622
1678
1623 1679
1624 1680
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15
225
226
227
228
229
230
and other techniques) the specific distribution function
associated with a specific piece of rock. In our work, we
have extended aspects of their representation to work
with
CAD models in a CSG modeling environment to
produce a
modifiable representation for any manner of porous
object.
HBðrÞZ 1K Pð]FðrBÞZ 0Þ. If we let B be the unit sphere, we
are left with the spherical contact distribution.
3
281
282
283
3.1.2. Uniform point process
This point process consists of a single point x, uniformly
distributed on a compact subset W of the whole space.
284
285
286
231
232
233
234
235
236
237
238
239
240
3. A brief stochastic geometry primer
P(x2A)ZV(A)/V(W), where A3W and V represents the
volume, in AhWZ:.
the appropriate dimension. P(x2A)Z0,
Stochastic geometry is the study of random processes
whose outcomes are geometrical objects or spatial
patterns. This section gives a basic introduction to
stochastic geometry and is intended for those readers not
intimately familiar with the mathematics of stochastic
structures. Readers knowledgeable about this material
may safely skip this section. The basis for this primer are
the two excellent
287
if
3.1.3. Binomial point process When n independent points
x1,.,xn are uniformly distributed over the same set W, the result
is a binomial point process of n points. Pðx1 2A1;.;xn 2AnÞZ
VðA1Þ,.,VðAnÞ=VðWÞn . The points of this set are unordered
and can be considered as a set when order is not
288
289
290
291
292
293
294
295
296
8
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15
4.2. Modeling and design with heterogeneous solids
A heterogeneous 3D model, M, is represented as a CSG
tree with the porosity and boundary information for each
model stored
in the leaves and regularized Boolean
operations stored in the nodes. Modeling with CSG requires
a set of objects (solids, halfspaces, etc.) which will be used
as building blocks for the artifact. In the context of this
the primitive
paper, we assumed the boundaries of
are
suitable for traditional CSG operations and that the density
and porosity of the regions bounded by these patches are
represented as in Section 4.1. Hence, we need mathematics
describing the results of CSG-like operations for the
internal model properties under these operations.
To perform design with CSG, we require the ability to
manipulate objects through the Boolean operations of
*
*
We note that these Boolean operations
same as the ones most are used to from
design Additionally these operators, while developed for
CAD, do have analogues in geophysics [2,26].
Examples of the density operators. Consi
cylinder A and a 40% dense block as shown in Fig. 5(a).
AhBZC. The density of the cylinder at which the geomet
intersects is r(A)r(B)Z(0.50)(0.40)Z0.20.
not contained within the geometry of both have zero dens
since r(A)Z0or r(B)Z0 here. The resulting solid is a 20%
dense object at the intersection of the geometries of A an
For the union, consider a 50% dense
30% dense block B as shown in Fig. 5(b). AgBZC. At the
intersection of their geometry, the dens
r(B)Kr(A)r(B)Z0.50C0.30K(0.50)(0.
portion of C contained in the block B bu
14
1457
1458
1459
1460
1461
1462
1463
1464
C. Schroeder et al. / Computer-Aided Design xx (xxxx) 1–15
The proposed method of combining stochastic functions,
though not perfect, is both theoretically sound and shows
great promise.
Combining stochastic functions using a means independent
of the geometry of the object has serious shortcomings.
Because the geometry is not entirely described by the
distributions, the combination of these distributions can be
done only statistically. Considering the stochastic nature of
References
[1] Adzhiev V, Kartasheva E, Kunii T, Pasko A, Schmitt B. Cellular
functional modeling of heterogeneous objects Proceedings of the seventh
ACM Symposium on Solid Modeling and Applications 2002. [2]
Barndorff-Nielsen O, Kendall W, van Lieshout M. Stochastic
Geometry: Likelihood and Computation. London: Chapman &
Hall/CRC; 1999.
[3] Biswal B, Hilfer R. Microstructure analysis of reconstructed porous
151
151
151
151
151
151
151
152
1465
1466
1467
1468
1469
1470
1471
1472
media. Phys A 1999;266:307–11. [4] Biswal B, Manwart C, Hilfer R.
the problem, the distributions calculated using the described
Three-dimensional local porosity analysis of porous media. Phys A
formulas describes the actual distributions approximately.
1998;255:221–41.
One might apply adjustments to the resulting distributions
[5] Biswal B, Manwart C, Hilfer R, Bakke S, Oren P. Quantitative
to
analysis of experimental and synthetic microstructures for sedimen
correct error that systematically results in practice. This is
tary rock. Phys A 1999;273:452–75.
especially useful where the inequality was replaced with
[6] A. Bowyer. SvLis—introduction and user manual; 1999. Online:
equality for calculations.
http://www.bath.ac.uk/~ensab/G_mod/Svlis/book/.
[7] Cho W, Sachs EM, Patrikalakis NM, Cima MJ, Jackson TR, Liu H, Serdy J, Stratton CC,
Wu H. Methods for distributed design and
JCAD 1018—5/8/2004—14:35—VEERA—113789—XML MODEL 5 – pp. 1–15
152
152
152
152
152
152
152
152