Constraint-Based Fairing of Surface Meshes
Constraint-Based Fairing of Surface Meshes
Constraint-Based Fairing of Surface Meshes
Abstract
We propose a constraint-based method for the fairing of surface meshes. The main feature of our approach is that
the resulting smoothed surface remains within a prescribed distance to the input mesh. For example, specifying
the maximum distance in the order of the measuring precision of a laser scanner allows noise to be removed while
preserving the accuracy of the scan.
The approach is modeled as an optimization problem where a fairness measure is minimized subject to constraints
that control the spatial deviation of the surface. The problem is efficiently solved by an active set Newton method.
Figure 1: An original noisy scan of a Chinese lion with 1.3 m triangles and height about 10 cm (left).The smoothed mesh (right)
stays within a 0.1 mm distance from the initial mesh. The surfaces are colored by mean curvature, with color range from white
(negative curvature) to red (positive curvature).
on this linear equation, he constructed a low-pass filter for recent years. Yoshizawa and Belyaev [YB02] describe a di-
meshes in analogy to filters used in signal processing. Des- rect discretization of the flow equation using the cotan for-
brun et al. [DMSB99] applied the mean curvature flow to mula to discretize terms related to mean curvature and the
mesh smoothing and used the more faithful cotan discretiza- angle defect for Gauss curvature. Clarenz et al. [CDD∗ 04]
tion of the Laplace-Beltrami operator. Furthermore, they em- present a finite element discretization using linear Lagrange
ployed an implicit scheme for the time integration to over- elements. The basis of their scheme is a decomposition of
come the step-size restrictions of explicit schemes. the weak formulation of the flow equation into a coupled
system of second-order equations in which the Gauss cur-
Feature preserving schemes. A side effect of Laplace vature term, which is difficult to discretize, is removed.
smoothing is that it quickly smoothes out geometric Bobenko [Bob05] constructs a discrete Willmore functional
features such as sharp corners. Anisotropic diffusion that preserves the Möbius group, the symmetry group of the
schemes [CDR00, TWBO02, BX03, HP04] preserve or even continuous energy. Bobenko and Schröder [BS05] present an
enhance sharp corners by suppressing diffusion in direc- implicit scheme to integrate the gradient flow of this energy.
tions of high curvature. Anisotropic geometric diffusion de-
rives from the Perona Malik filter [PM87] in image process- The bending energy plays an essential role in the
ing. A related technique - the bilateral filter [TM98] - has simulation of cloth. Common edge-based discretization
been transferred to meshes by Fleishman et al. [FDCO03] schemes [BW98, BMF03, GHDS03, WBH∗ 07] measure
and Jones et al. [JDD03]. Recently, an extension employ- mean curvature at the edges of the mesh [CSM03, HP04].
ing non-local means has been presented by Yoshizawa et Such a discrete energy is given as a sum of contributions
al. [YBS06]. Comparable results can be achieved by meth- from stencils that consist of two triangles sharing an inte-
ods based on Wiener filtering [PSZ01, GP01, Ale02]. rior edge. The small stencil reduces the complexity of the
expressions for the energy and its gradient, which in turn ac-
Second order fairness measures. While minimizers of the celerates the evaluation and simplifies the implementation.
area functional are determined by values at the boundary,
second order fairness measures such as bending energy or Constrained fairing. To assess the quality of the output
Willmore energy allow for C1 boundary conditions; i.e. po- of a smoothing method, additionally to fairness, the devi-
sitions and normals can be prescribed. This makes second- ation of the result from the initial surface (e.g. measured
order functionals attractive for the construction of fair spline data) is an important criterion. Belyaev and Othake [BO03]
surfaces in geometric design [WN01]. By specifying consis- use integrals of the squared distance and the squared devia-
tent data at the boundaries of the individual patches, glob- tion of normals to compare the results produced by different
ally G1 surfaces can be constructed. Kobbelt and Schnei- smoothing methods.
der [SK00] construct fair meshes with G1 boundary condi-
tions as the solution of a fourth-order differential equation. Least-square meshes proposed by Sorkine et al. [SCO04,
NISA06] minimize a weighted sum of two quadratic en-
For meshes, stable discretizations of the Willmore energy ergies, the biharmonic energy and a weighted sum of the
and its fourth-order gradient flow have been developed in squared distances of each vertex to its initial position. Ex-
Figure 2: Removing marching cubes artifacts from a human pelvis (~28 cm width) model extracted from computed tomography
data. The maximum deviation of the smoothed mesh (right) from the initial surface is 1 mm.
Figure 3: Noise removal from a range image. The maximum tolerance is 0.1 mm and the height of the object is 30 cm. The right
image shows the smoothed surface colored by the distance of the initial (noisy) to the smoothed surface.
Figure 4: Noise removal from the scanned blade model with 390 k triangles. Details are shown on the right.
where mi and ni are the vertices of M respectively N. The part δ∞ . At first the maximum deviation measure is only
measure d∞ describes a metric on the set of all meshes with defined for parametrized surfaces. Since the maps f and g
a fixed connectivity. Let Bε (M) denote the closed ball with are only required to be continuous, the measure δ∞ can be
radius ε around a mesh M with respect to this metric. Ge- evaluated for meshes as well. Let the domain A be a mesh
ometrically speaking, a mesh N is in the set Bε (M) if each embedded in R3 . Then every mesh M in R3 with the same
vertex ni of N lies in the Euclidean ball of radius ε around connectivity as A can be parametrized by the continuous
the corresponding vertex mi of M. function IM : A → R3 mapping each vertex of ai of A to the
coordinates of the corresponding vertex mi of M and linear
Now we can state the optimization problem. Given a mesh
interpolation in the triangles. For two such functions IM and
M and a positive ε, find a mesh N that minimizes the discrete
∈ Bε (M). IN representing meshes M and N the continuous deviation
bending energy over all meshes N
measure δ∞ (IM , IN ) equals the supremum of the function
IM − IN R3 . The supremum is attained at a vertex of the
3.1. Discrete Deviation Measure mesh, hence for meshes the continuous measure equals the
Consider two surfaces described by continuous functions discrete measure
f , g mapping a domain A into R3 ; the (continuous) maxi- δ∞ (IM , IN ) = d∞ (M, N).
mum deviation measure is then
δ∞ ( f , g) = sup f (x) − g(x)R3 . 4. Minimization Procedure
x∈A
The objective of this section is to relate the discrete max- The constraints we are dealing with are spheres around all
imum deviation measure d∞ to its continuous counter- vertices of the mesh. In order to simplify the minimization
procedure we approximate the spheres by boxes with side
length 2ε. Active set Newton solvers with gradient projec-
tion are among the most effective solvers for large-scale box
constrained non-linear optimization problems. For a general
introduction to active set and gradient projection methods we
refer to [NW06]. For an analysis and discussion of solvers
of this type for large-scale problems see [LM99, Kan01]
and references therein. First, we briefly describe the general
scheme and describe in Section 4.1 how to approximate the
required second-order information in an efficient and robust
way.
By listing the coordinates of all vertices we identify a
mesh with a point in Rn where n equals three times the
number of vertices in the mesh. Let x0 ∈ Rn be the point
representing the initial mesh. Then the feasible set Ωx0 ,ε is
the n-dimensional cube with edge length ε and midpoint x0 .
Figure 5: The bunny model (70k triangles) is shown on The projection P of a point x in Rn onto Ωx0 ,ε can be com-
the left and after unconstrained minimization of the discrete puted by projecting each coordinate xi of x onto the interval
bending energy on the right. The zoom shows the difference [x0i − ε, x0i + ε], where x0i is the i-th coordinate of x0 . During
in size of the triangles corresponing to the region around an the minimization process we search for (usually non-unique)
ear. This demonstrates the robustness of the discrete energy. minima along projected rays. The idea is that whenever a
bound is encountered, the direction of the ray is bent such
Figure 6: Noise removal from a range image of a part of a Neptune statue (height ~10 cm) with a maximum deviation tolerance
of 0.04 mm.
that the ray remains in the feasible set. The projected ray where λ < 1 is a constant. In our experiments we always set
starting at a point x with initial direction v is obtained by λ = 0.01. The last term in the equation uses the gradient to
projecting the ray x + t v onto the feasible set, i.e. it is given compute how much decrease of energy we can expect when
by moving in direction yi − xi . The equation guarantees that the
actual choice of yi produces a decrease that is at least within
r(t) = P(x + t v).
a fraction of the estimate which is important to guarantee
This describes a piecewise linear path that, after first hitting rapid decrease of the energy.
a face of the feasible set, leads along the boundary. Note
2. Subspace minimization. The point yi lies in some face of
that for any t this can be evaluated by a simple loop over all
the feasible cube Ωx0 ,ε . In this step we perform a minimiza-
coordinates.
tion step constrained to this face. More specifically: deter-
The set of active constraints for a point x ∈ Ωx0 ,ε is de- mine the active set A(yi ) of yi and compute the reduced Hes-
fined as sian Hr and the reduced gradient gr with respect to the free
variables. Here reduced means: for all i ∈ A(yi ) remove the
A(x) = {i ∈ {1, 2, ..., n} | xi − x0i = ε}.
i-th column and row from H and the i-th entry from g. Then
For a point away from the boundary the active set is empty, compute the reduced Newton direction vir = Hr−1 gr . The
and for a vertex of the cube Ωx0 ,ε all constraints are active. next position xi+1 is a point on the projected path P(yi + t
Let E : Ωx0 ,ε → R be our energy and let H(x) denote the vir ) that satisfies the condition
Hessian and g(x) the gradient. The Newton direction v(x) at
E(xi+1 ) < E(yi ) (4)
a point x ∈ Ωx0 ,ε is
ensuring a decrease of the energy.
v(x) = −(H(x))−1 g(x).
A local minimum is reached if the gradient either vanishes
The active set method iterates the following two steps. Let or is orthogonal to the boundary.
xi be the current position.
In steps 1 and 2 we search for a good point on a pro-
1. Cauchy step. Compute the gradient direction g(xi ). Find a jected ray r(t). Such a point is found by an iterative proce-
point yi along the projected path P(xi +t g(xi )) that produces dure, which starting from an initial guess t = t 0 either mono-
a sufficient reduction of energy; i.e. that fulfills tonically increases or monotonically decreases the value of
t. It is increasing if the guessed point r(t 0 ) fulfills the de-
E(yi ) < E(xi ) − λ g(xi ), yi − xi , (3) scent condition (eq. (3) in step 1 and eq. (4) in step 2) or
otherwise decreasing. In each iteration the value of t is mul- essentially depends on the choice of a good preconditioner.
tiplied by a factor of 2 (increasing case) or 0.5 (decreasing We compute a sparse Cholesky factorization of S only once
case). The iteration terminates if the descent condition is no as a preprocessing step and use the factorization in each iter-
longer fulfilled (increasing case) or if it is fulfilled (decreas- ation to build a constraint preconditioner [NW06] for solv-
ing case). In the case of an increasing sequence the last value ing the reduced system (5).
satisfying the descent condition is used. In each Cauchy step
(respectively Newton step) we use the result of the previous
iteration as an initial guess for t. 5. Experimental Results
We have tested our method on laser-scanned real-world
4.1. Approximation of the Hessian models, except for the pelvis model shown in Figure 2 that
has been extracted from computed tomography data. No ar-
Since the Hessian of the discrete bending energy is not nec- tificial noise has been added to the models, we tested the
essarily positive definite, there is no guaranty that the New- method with the noise inherent to the scanned data. The only
ton direction is indeed a descent direction. One way to deal exceptions are Figures 7 and 8 where artificial noise has been
with this issue is to replace the Hessian by a positive definite added to the models in order to have a goal surface for the
approximation. Note that we only modify the search direc- comparison of methods.
tion but still minimize the same energy. This technique is
used in inexact Newton methods. Noise removal from range images is shown in Figures 3
and 6. These models have a regular quad connectivity which
To approximate the Hessian of the bending energy we use
we triangulated in order to get planar faces. The two range
the Hessian of the thin plate energy with the initial surface as
images differ in size and resolution: the image of the Caesar
parameter domain. This matrix has the form S M −1 S, where
model has 190 k triangles and a height of 30 cm whereas the
S is the usual cotan matrix [PP93, DMSB99], and M con-
Neptune model has 270 k triangles and a height of 10 cm.
tains the masses; e.g. M is a diagonal matrix containing the
Accordingly, we specified a smaller value for the maximum
Voronoi areas. Since the Laplace matrix S has a kernel con-
deviation tolerance for Neptune than for Caesar, 0.04 mm
sisting of the constant functions we add the constant value
for Neptune and 0.1 mm for Caesar. These values are much
0.1 to all diagonal entries of S. The resulting approxima-
smaller then the size of features like the eyelids or wrinkles,
tion of the Hessian is positive definite, can be written as the
which are preserved. The third image of Figure 3 shows the
square of a matrix, and decouples the x, y, and z coordinates.
smoothed Caesar mesh colored by the distance of the ini-
Therefore the linear systems that need to be solved have bet-
tial (noisy) to the smoothed surface. The colors seem to be
ter condition (the condition number is only the square root of
randomly distributed, which indicates that mainly noise has
the original), higher sparsity and lower dimension. This al-
been removed and little structured deviation, like shrinkage
lows the approximate Newton direction to be computed and,
of features, took place. The Figures 1 and 4 show models
in effect, the method to be applied to larger models. This is
with clean connectivity and filed holes. The Chinese lion
demonstrated on the Chinese lion model with 1.3 m triangles
model has 1.3 m triangles and a height of 10 cm and the
in Figure 1.
blade has 390 k triangles and measures about one meter in
A related approximation of the Hessian of the bending height. We used 0.1 mm maximum deviation tolerance for
energy has been proposed and used to accelerate the integra- the Chinese lion and 1 mm for the blade.
tion of Willmore flow in [WBH∗ 07]. A main difference is
The pelvis model (Figure 2) suffers from artifacts caused
that the approximate Hessian we use is a product of square
by a rudimentary volume-extraction method. The ε maxi-
matrices, whereas their approximation is a product of non-
mum deviation for this model is 1 mm which suffices to pro-
square matrices.
duce a smooth model.
Efficiently solving the linear system. We need to solve the
We compare our method to the feature-preserving
linear system
anisotropic diffusion as described in [HP04] on the armadillo
(S M −1 S)r vr = gr , (5) model in Figure 8. Despite the larger amount of noise used
in this example, our method produces a result that comes
where g is the gradient of the discrete bending energy eq. (1).
close to the original surface. The anisotropic diffusion fo-
Note that we solve only the reduced system, indicated by
cusses on preserving the features and even enhances them;
the subindex r. The variables in the active set remain fixed; e.g. the teeth are sharper than in the original model. On the
the corresponding rows and columns are removed from the
other hand the noise is also preserved for a longer time. At
system. It is not necessary to completely solve the system;
the instant when the noise is removed, the non-feature re-
approximating the solution by performing only a few itera- gions are already oversmoothed. For the goal of reproducing
tions of preconditioned conjugate gradients is usually more
the original shape, our method produces better results.
efficient for large-scale problems. These type of methods are
called Newton-CG methods. The performance of the method We compare our method to the unconstrained gradient
Figure 7: Comparison of the constrained optimization and the unconstrained gradient flow of the bending energy on the Caesar
model (a). The model has been artificially corrupted by random noise with 0.2 mm maximum deviation (b), where the height
of the object is 30 cm. The constrained optimization (c) keeps all vertices within 0.2 mm distance. The bottom row shows the
gradient flow at different times. Vertices that leave the 0.2 mm distance are colored red. The first vertices leave the 0.2 mm
distance (d). When the same bending energy is reached (e) the maximum distance is 2 mm and shrinkage effects appear for
example at the eyelids. Further time steps (f) induce more shrinkage.
flow of the bending energy on the Caesar model in Fig- of a volume grid. Our method offers different improvements
ure 7. The model has been corrupted by random noise with a over this scheme. Shrouds is only defined for meshes that
maximal deviation of 0.2 mm, where the height of the object enclose a volume, whereas our method can process arbitrary
is 30 cm. The constrained optimization (top row right) keeps surface meshes with or without boundary. The maximum de-
all vertices within 0.2 mm distance to the noisy mesh. The viation used for denoising scan data in our examples is very
bottom row shows snapshots of the unconstrained evolution. small; e.g. 0.1 mm for an object that has a bounding box with
Vertices that leave the 0.2 mm distance are colored red. The edge length 100 mm. This means that the volume grid that
first image shows the moment when the first vertices leave Shrouds generates would have about 109 grid points. The
the 0.2 mm distance. The model is still very noisy. When mesh that Shrouds extracts from the volume grid would be
the fairness energy equals the fairness energy of the surface much larger then the initial mesh. Additionally, since the op-
produced by the constrained optimization, the maximum dis- timization method uses a variant of an explicit gradient de-
tance is already 2 mm and shrinkage effects appear in regions scent, one expects a large number of iterations.
with high curvature, e.g. at the eyelids. Further time steps in-
duce more shrinkage. Optimization procedure. The active set Newton scheme
produces a rapid decrease of energy. All presented exam-
Shrouds [NGH∗ 03] allows the smoothing of surface ples, including the 1.3 m triangles Chinese lion model, were
meshes with spatial constraint that are defined with the help stopped after 10-25 iterations. The most time-consuming op-
(a) (b)
(c) (d)
Figure 8: On the armadillo model (a) that has been artificially corrupted with random noise (b) a comparison of our method (c)
with feature preserving anisotropic diffusion (d) is shown. The anisotropic flow sharpens features, but regarding the reproduction
of the original model the result of our method is much closer.
References [Kan01] K ANZOW C.: An active set-type newton method for con-
strained nonlinear systems. In Complementarity: Applications,
[Ale02] A LEXA M.: Wiener filtering of meshes. In Proceedings
Algorithms and Extensions (2001), Ferris M., Mangasarian O.,
of the Shape Modeling International (2002), IEEE Computer So-
Pang J.-S., (Eds.), Kluwer Academic Publishers, pp. 179–200.
ciety, pp. 51–57.
[LBH∗ 01] L IU X., BAO H., H ENG P., W ONG T., P ENG Q.:
[BMF03] B RIDSON R., M ARINO S., F EDKIW R.: Simulation of
Constrained fairing for meshes. Computer Graphics Forum 20
clothing with folds and wrinkles. In Proceedings of the ACM
(2001), 115–122.
SIGGRAPH/Eurographics Symposium on Computer Animation
[LM99] L IN C.-J., M ORÉ J. J.: Newton’s method for large
(2003), pp. 28–36.
bound-constrained optimization problems. SIAM Journal on Op-
[BO03] B ELYAEV A., O HTAKE Y.: A comparison of mesh
timization 9, 4 (1999), 1100–1127.
smoothing methods. In Proceedings of the Israel-Korea Bi-
[MS92] M ORETON H. P., S ÉQUIN C. H.: Functional optimiza-
National Conference on Geometric Modeling and Computer
tion for fair surface design. In Proceedings of ACM SIGGRAPH
Graphics (2003), pp. 83–87.
[Bob05] B OBENKO A. I.: A conformal energy for simplicial sur- (1992), pp. 167–176.
[NGH∗ 03] N IELSON G. M., G RAF G., H OLMES R., H UANG
faces. Combinatorial and Computational Geometry (2005), 133–
A., P HIELIPP M.: Shrouds: Optimal separating surfaces for enu-
143.
[BS05] B OBENKO A. I., S CHRÖDER P.: Discrete Willmore flow. merated volumes. In Symposium on Visualization (2003), Euro-
In Proceedings of the ACM SIGGRAPH/Eurographics Sympo- graphics Association.
[NISA06] N EALEN A., I GARASHI T., S ORKINE O., A LEXA
sium on Geometry Processing (2005), pp. 101–110.
[BW98] BARAFF D., W ITKIN A.: Large steps in cloth simula- M.: Laplacian mesh optimization. In Proceedings of ACM
tion. In Proceedings of ACM SIGGRAPH (1998), pp. 43–54. GRAPHITE (2006), pp. 381–389.
[BX03] BAJAJ C., X U G.: Anisotropic diffusion on surfaces and [NW06] N OCEDAL J., W RIGHT S. J.: Numerical Optimization
functions on surfaces. ACM Transactions on Graphics 22 (2003), (2nd edition). Springer Series in Operations Research. Springer-
4–32. Verlag, New York, NY, 2006.
[CDD∗ 04] C LARENZ U., D IEWALD U., D ZIUK G., RUMPF M., [PM87] P ERONA P., M ALIK J.: Scale space and edge detection
RUSU R.: A finite element method for surface restoration with using anisotropic diffusion. IEEE Computer Society Workshop
smooth boundary conditions. Computer Aided Geometric Design on Computer Vision (1987).
21, 5 (2004), 427–445. [PP93] P INKALL U., P OLTHIER K.: Computing discrete minimal
[CDR00] C LARENZ U., D IEWALD U., RUMPF M.: Anisotropic surfaces and their conjugates. Experim. Math. 2, 1 (1993), 15–36.
geometric diffusion in surface processing. Proceedings of IEEE [PSZ01] P ENG J., S TRELA V., Z ORIN D.: A simple algorithm
Visualization (2000), 397–405. for surface denoising. Proceedings of IEEE Visualization (2001).
[CSM03] C OHEN -S TEINER D., M ORVAN J.-M.: Restricted De- [SCO04] S ORKINE O., C OHEN -O R D.: Least-squares meshes.
launay triangulations and normal cycles. Proceedings of the ACM In Proceedings of Shape Modeling International (2004), IEEE
Symposium on Computational Geometry (2003), 237–246. Computer Society Press, pp. 191–199.
[Del01] D ELINGETTE H.: On smoothness measures of active [SK00] S CHNEIDER R., K OBBELT L.: Generating fair meshes
contours and surfaces. In Proceedings of the IEEE Workshop with G1 boundary conditions. Proceedings of ACM SIGGRAPH
on Variational and Level Set Methods (Washington, DC, USA, (2000), 247–256.
2001), IEEE Computer Society. [Tau95] TAUBIN G.: A signal processing approach to fair surface
[DMSB99] D ESBRUN M., M EYER M., S CHRÖDER P., BARR design. Proceedings of ACM SIGGRAPH (1995).
A. H.: Implicit fairing of irregular meshes using diffusion and [TM98] T OMASI C., M ANDUCHI R.: Bilateral filtering for gray
curvature flow. Proceedings of ACM SIGGRAPH (1999), 317– and color images. In Proceedings of the Sixth International Con-
324. ference on Computer Vision (1998), pp. 839–846.
[FDCO03] F LEISHMAN S., D RORI I., C OHEN -O R D.: Bilateral [TWBO02] TASDIZEN T., W HITAKER R., B URCHARD P., O S -
mesh denoising. Proceedings of ACM SIGGRAPH (2003), 950– HER S.: Geometric surface smoothing via anisotropic diffusion
953. of normals. Preceedings of IEEE Visualization (2002), 125–132.
[GHDS03] G RINSPUN E., H IRANI A., D ESBRUN M., [VVR06] V OLODINE T., VANDERSTRAETEN D., ROOSE D.:
S CHRÖDER P.: Discrete shells. In Proceedings of the ACM Smoothing of meshes and point clouds using weighted geometry-
SIGGRAPH/Eurographics Symposium on Computer Animation aware bases. In Proceedings of Geometric Modeling and Pro-
(2003), pp. 62–67. cessing (2006), pp. 687–693.
[Gib98] G IBSON S. F. F.: Constrained elastic surface nets: Gen- [WBH∗ 07] WARDETZKY M., B ERGOU M., H ARMON D.,
erating smooth surfaces from binary segmented data. In Medical Z ORIN D., G RINSPUN E.: Discrete quadratic curvature energies.
Image Computing and Computer-Assisted Intervention - MIC- to appear in Computer Aided Geometric Design (2007).
CAI (1998), Wells W. M., Colchester A. C. F., Delp S. L., (Eds.), [WN01] W ESTGAARD G., N OWACKI H.: A process for surface
Springer, pp. 888–898. fairing in irregular meshes. Computer Aided Geometric Design
[GP01] G ROSS M., PAULY M.: Spectral processing of point- 18, 7 (2001), 619–638.
sampled geometry. Proceedings of ACM SIGGRAPH (2001), [YB02] Y OSHIZAWA S., B ELYAEV A. G.: Fair triangle mesh
379–386. generation with discrete elastica. In Proceedings of Geomet-
[HP04] H ILDEBRANDT K., P OLTHIER K.: Anisotropic filtering ric Modeling and Processing (2002), IEEE Computer Society,
of non-linear surface features. Computer Graphics Forum, 23(3) pp. 119–123.
(2004), 391–400. [YBS06] Y OSHIZAWA S., B ELYAEV A., S EIDEL H.-P.: Smooth-
[JDD03] J ONES T. R., D URAND F., D ESBRUN M.: Non- ing by example: Mesh denoising by averaging with similarity-
iterative, feature-preserving mesh smoothing. Proceedings of based weights. In Proceedings of the IEEE International Confer-
ACM SIGGRAPH (2003). ence on Shape Modeling and Applications (2006), IEEE.