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