1-s2.0-S0010448504000892-main_2

download 1-s2.0-S0010448504000892-main_2

of 14

Transcript of 1-s2.0-S0010448504000892-main_2

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    1/14

    Drawing curves onto a cloud of points for point-based modelling

    Phillip N. Azariadisa,b,*, Nickolas S. Sapidisa

    aDepartment of Product & Systems Design Engineering, University of the Aegean, Ermoupolis, Syros 84100, Greeceb

    ELKEDETechnology & Design Centre SA, Research & Technology Department, 14452 Metamorphosis, Greece

    Received 18 December 2003; received in revised form 30 April 2004; accepted 4 May 2004

    Abstract

    Point-based geometric models are gaining popularity in both the computer graphics and CAD fields. A related design/modelling problem is

    the focus of the reported research: drawing curves onto digital surfaces represented by clouds of points. The problem is analyzed and solved,

    and a set of design tools are proposed which allow the user/designer to efficiently perform product development (alternative name: detail

    design) tasks which require efficient processing of a digital surface. The primary tool is a robust and efficient point projection algorithm

    combined with a smoothing technique for producing smooth digital curves lying onto the cloud surface. The new design tools are tested on

    a real-life industrial example with very satisfactory results, which are thoroughly presented in the paper.

    q 2004 Elsevier Ltd. All rights reserved.

    Keywords: Digital curves; Digital surfaces; Point-based representation; Point projection algorithm; Polylines; Smoothing polylines

    1. Introduction

    During the last 56 years, an increasing trend has been

    developing in Computer-Graphics, as well as in the CAD

    community, towards surface models based on discrete

    elements like polygons, triangles and, very recently, points.

    Regarding polygons and triangles, these have long been the

    standard basic element in graphics, and recently their

    importance has also been increasing in CAD/CAE/CAM.

    Indeed, modern design-technologies like Reverse

    Engineering (RE)[7], Virtual Engineering[15]and Rapid

    Prototyping [37] are using, almost exclusively, polygonmeshes. Collaborative design methods are also using

    meshes [28]; e.g. Ref. [36] contributes to network-based

    integrated design and reports that "faceted models have

    become the de facto standard model for describing complex

    geometry over the Internet". Finally, concept development

    systems most often use a polygon mesh [28,30]rather than

    analytic geometric models.

    Very recently, the above trend, towards discrete

    models, has been culminating by bringing to the foreground

    the plainest of all geometric elements, the point! The reasons

    are very convincing: regarding modern computer graphics,

    in complex models the triangle size is decreasing to pixel

    resolution[3], thus, points, and more specifically connec-

    tivity-free points, are the obvious choice for a primary

    surface model. Many recent papers (see Refs. [2,40] and

    references therein) adopt this approach, and develop

    efficient algorithms to solve related problems. For CAD,

    since the design process starts with points (user defined or

    imported using RE) and ends with points (VE/simulation/

    analysis models or NC data), why use as primary model

    something else? This argument is developed in Ref. [10],which updates the related discussion first presented, long

    time ago, by McLaughlin[23].

    Cripps [10] presents a comprehensive point-based

    CAD/CAM system for design/visualization and tool-path

    generation using subdivision-surfaces for model refinement,

    when this is needed. The pioneering work [16] reviews

    geometric modelling methods for NC machining and

    proposes point-based approximations as the most appro-

    priate. Vergeest et al.[31]focus on shape reuse in modern

    design and proposes a novel methodology combining a

    primary CAD model with many auxiliary shape models in a

    corporate library. This family of shape models includes

    feature-, geometric-, CAD-, as well as point cloud modelsused as descriptors of library items.

    0010-4485//$ - see front matter q 2004 Elsevier Ltd. All rights reserved.

    doi:10.1016/j.cad.2004.05.004

    Computer-Aided Design 37 (2005) 109122www.elsevier.com/locate/cad

    * Corresponding author. Address: Department of Product and Systems

    Design Engineering, University of the Aegean, Ermoupolis, Syros, 84100,

    Greece. Tel.: 30-228-109-7129; fax: 30-228-109-7009.E-mail addresses: [email protected] (P.N. Azariadis), [email protected]

    (N.S. Sapidis).

    http://www.elsevier.com/locate/cadhttp://www.elsevier.com/locate/cad
  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    2/14

    In RE, current systems allow acquisition/processing of

    clouds of points so dense that triangulation is meaningless,

    in complete analogy to computer-graphics applications.

    Some very recent examples of publications, adopting this

    approach, are: Woo et al. [34] proposing a new

    segmentation method combining unorganized points with

    an octree. Benko et al. [6] enhance the standard reverse-

    engineering problem with constraints; the whole develop-

    ment is based on point clouds. Corbo et al. [11] combine

    up to 50 views of objects, measuring 1.2 m 0.6 m 2 m,

    producing clouds with millions of points. This work

    proposes novel design analysis tools solely based on

    point clouds.

    Point-based models, enhanced with atomic-level physics,

    lead to the so-called particle systems, which are

    extensively used in discrete mechanics models for virtualclaying (see Refs.[17,20]and references therein) competing

    against standard methods based on finite elements or

    boundary elements. Horvath and his co-workers [15,29]

    enhance point-based models and propose vague discrete

    modelling, capable of simultaneously describing multiple

    objects, to support concept development in collaborative

    virtual environments.

    Concluding this short review of point-based surface

    modelling, we note that similar proposals for describ-

    ing volumes/solids are constantly appearing, with typical

    examples the various volumetric representations, like

    voxels [8], and the ray- and triple-ray representations

    [9,24,25].

    1.1. Drawing curves on clouds of points

    The present paper deals with product design using a point

    cloud and focuses on drawing curves on (more accurately:

    within) a thick or thin cloud of points. The core of the

    proposed product design approach is shown in Fig. 1:

    initially the user constructs a rough shoe design composed

    of polylines which only look like they lie onto the cloud

    surface (e.g. of a shoe last). The system eventually replaces

    these polylines by smoothed ones lying exactly onto the

    cloud surface (according to a specific mathematical model)

    as it is shown in Fig. 1c. The transformation of the initial

    design (Fig. 1a) to the final smooth one (Fig. 1c) requires the

    elimination of intermediate side effects, like the line

    wrinkles shown inFig. 1b.

    Designing curves onto a cloud of points is a surprisinglydifficult problem, and although no publication on it has been

    yet identified, few recent papers deal with 2D versions of the

    problem and clearly show the related difficulties. Benkoand

    Varady [7] deal with segmentation of thin, and thus

    triangulated, points, yet curve-fitting to thick 2D clouds of

    points does emerge, and heuristics are used to thin a cloud

    before curve fitting. Curve-fitting to a thick 2D point set is a

    vital subproblem in Ref.[26], too. Again, 2D curve-fitting is

    preceded by thinning, based on related tools from image

    processing. Polygonal curve-fitting to a 3D point cloud

    appears in Ref.[21];this is heuristically treated by solving

    the corresponding 2D problem, which is a reasonable

    approach given the papers subject (rapid prototyping).

    Fig. 1. Product design using a cloud of points. (a) The user defines design polylines in one or more views, (b) the system projects the design polylines onto the

    cloud, (c) the system calculates projected smooth cubic B-splines which are finally described as digital curves, i.e., dense polylines.

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122110

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    3/14

    The work of Lee[19]is devoted almost entirely to the

    problem of curve-fitting to thick point clouds. It identifies

    shortcomings in existing methods and focuses on the major

    issue of difficulties caused by varying thickness. A new

    solution is proposed for the 2D case, based on thinning using

    the moving least-squares technique. The author recognizes

    that this new method cannot be directly extended into the 3D

    case, yet he describes an interesting heuristic that performs

    well for a number of examples. Finally, the recent

    publication[37] deals with direct construction of a layer-

    based rapid prototyping model from cloud data. A significant

    part of this work is devoted to fitting to a 2D cloud a

    polygonal curve with as few linear pieces as possible.

    Related difficulties are identified and an interesting algor-

    ithm is proposed, which suffers from several deficiencies:

    (a) selection of the starting point is accomplished by trial-and-error, (b) it involves four parameters that the user must

    specify, and (c) no proof of converge is presented, neither

    any measure for the required execution time.

    1.2. Drawing curves onto a point cloud based

    on point projection

    The proposed Curve-Drawing technique, detailed in

    Section 3, (a) is based on projecting points onto a cloud (this

    problem is analyzed and solved in Section 4) and (b) is

    not using any surface fitted to (in other words: reverse-engineered from) the given point cloud. Part (b) of this

    strategy is due to the following reasons:

    1. Drawing curves on a point cloud is viewed as a low

    level procedure, employed by many high level

    operations, including surface reconstruction (e.g.

    methods using curve networks [32]). In this frame-

    work, it does not make sense for the Curve-Drawing

    procedure to employ a surface reconstruction method.

    2. For the current highly accurate and dense (and thus

    often thick) point clouds, surface reconstruction is

    always an approximation operation that causes some

    loss of information ([4, Section 2]). This is avoidedwhen one operates directly on the given point cloud.

    3. Current scanning systems produce highly accurate and

    dense (thick) point clouds, implying the following

    characteristics for the point set and the corresponding

    surface reconstruction problem:

    (a) Although point clouds are usually dense, it is not

    rare for a pointset to include undersampled areas.

    Thus, it is vital for an industrial system to employ

    processing algorithms that are free of any strict

    conditions regarding sampling density.

    (b) It is meaningless to try to reconstruct an

    interpolating surface. Only surface approxima-

    tion is a reasonable framework for surfacereconstruction.

    (c) Since the point cloud is thick, one should not

    assume that the given points are equipped with

    normal-vector and/or orientation.

    (d) It is quite possible that the underlying surface of a

    point cloud is neither smooth(i.e. it mayhave sharp

    edges) nor closed (i.e. it may have a boundary).

    The above characteristics render many published surface

    reconstruction methods, from the fields of Computational

    Geometry and Computer Graphics, inappropriate for

    industrial use. This is the case, e.g. for the crust algorithm

    [4], which contradicts all the above characteristics, as it

    needs to operate on a good sample from a smooth surface, it

    interpolates data using a normal filtering step, and handles

    neither sharp edges nor boundaries. Another example is

    natural neighbour interpolation[5],which also contradictsall characteristics stated above, as it requires a sufficiently

    dense sample (see Theorems 2 and 3 in Ref. [5]), interpolates

    the input points (see Introduction in Ref.[5]), assumes that

    the given points are equipped with normal directions and

    handles neither sharp edges nor boundaries. Regarding the

    surface reconstruction methods offered by RE and CAD, it is

    fair to say that early efforts (including those of the second

    author), reviewed in Ref. [32], were quite far from

    satisfactory, as manifested by the current intense research

    on the various components of the Reverse Engineering

    problem, like data parameterization[1], free-form surface

    fitting[33,38], standard shape reconstruction[6], and cloud

    segmentation[7,39].In conclusion, it is the immaturity ofthis field and remark (1) above that force us to adopt

    the strategy of avoiding, as much as possible, surface

    reconstruction in designing with point clouds.

    Note 1. Though the proposed curve-drawing method is in

    accordance with point (a) above (i.e. it imposes no a priori

    requirements on a clouds density), its performance is surely

    affected by the local density of the given point cloud.

    Extensive numerical tests (some are presented in Section

    2.5) demonstrate that the methods performance is very

    stable even for a point cloud with a varying density. Despite

    this, influence of density variation on curve-drawing is one

    of the main topics of the authors current research.

    2. Point projection onto a cloud of points

    The surface model considered in this paper is a collection

    of (possibly noisy) points, sampled on a physical object,

    without any topological information. A vital component of

    the digital-curve design methods, presented below, is a

    method to project points onto a cloud surface. This is

    exactly the subject of this section.

    Projecting an arbitrary point onto a cloud surface is based

    on the following methodology:

    Firstly, an error function is defined for measuring the

    distance between the point to be projected and the pointcloud.

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122 111

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    4/14

    Secondly, the point of interest is projected onto the cloud

    surface by minimizing the above error function.

    The current literature does not offer a satisfactorysolution to the problem of specifying an appropriate

    point cloud error function. Only Ref. [13] proposes a

    related error function (and employs it in developing an

    LOD surface representation), yet this cannot be used in

    the present research as it is based on a polygonal

    representation of the models surface. The rest of this

    section derives an appropriate point cloud error function

    and uses it to solve the problem of projecting a point onto

    a cloud.

    2.1. The directed projection problem

    Let CN {pm xm;ym;zmlm 0; ;N2 1} be the

    given cloud of points and let p x;y;z be an arbitrary

    3D point, hereafter called a vertex, withn nx; ny; nzan

    associated projection vector. The pair p; n is denoted by

    p kp; nl:Then,

    Definition 1 (The directed projection problem). The

    directed projection pp ofp; in the direction ofn; onto the

    cloud of points CN is defined as follows. Eachpm [ CN is

    associated to a positive weightam: Then,pp is the solution of

    the problem:

    Findpp

    minimizingEpp

    XN21m0

    amkpp

    2 pmk2

    :

    1

    The point pp is also called the directed projection ofp

    kp; nlonto CN:For given weights {am} (these are specified

    in Section 2.2), one writes pp xp;yp;zpas

    pp ppt p tn; t[ R 2

    Then, the solution of problem (1) is [1]

    tl2 pn

    knk2

    3

    where

    l c1nx c2ny c3nz

    c0; andc0

    XN21m0

    am;

    c1 XN21m0

    amxm; c2 XN21m0

    amym; c3 XN21m0

    amzm:

    4

    Intuitively, the projection process defined by Eqs. (2) and

    (3) can be regarded as a method for intersecting a given

    cloud surface with the semi-infinite line defined by p:

    2.1.1. Investigating the intuitive correctness of Definition 1

    Although the projection method developed here, on the

    basis of Eqs. (2) and (3), produces reasonable results (seesections with examples below), one would certainly like to

    have a theoretical justification for this. A possible

    approach would be to consider a point set CN lying on a

    known parametric surface S Su; v: Then, if Spp is the

    projection ofpontoS;the method (2) (3) should produce

    a vertex pp sufficiently close to Spp : Though no theoretical

    results have been produced yet along this direction, the

    related numerical experiments (see Section 2.5) are very

    convincing.

    2.1.2. Error analysis of the projection method

    of Definition 1

    The present analysis relates the measurement error 1 in

    the point cloud with the implied error in the solution of the

    directed projection problem (expressed by Eq. (3)). It is

    assumed that a cloud has been derived with points lying

    within a maximum Euclidean distance 1

    from their truelocation:

    C0N {p

    0m x

    0m;y

    0m;z

    0m;lkp

    0m 2 pmk # 1;m 0; ;N2 1}:

    Using C0N the corresponding solution of the directed

    projection problem is given by

    t0

    l0 2 pn

    knk2

    5

    where

    l0 c01nx c

    02ny c

    03nz

    c0

    0

    and c00 c0;

    c01

    XN21m0

    amx0m; c

    02

    XN21m0

    amy0m; c

    03

    XN21m0

    amz0m:

    Then

    lt02 tl

    ll0 2 ll

    knk2

    6

    and

    ll02 ll

    lc01 2 c1nx c02 2 c2ny c

    03 2 c3nzl

    c0

    #1

    c0l

    c

    0

    12

    c1ll

    nxll

    c

    0

    22

    c2ll

    nyl

    lc03 2 c3llnzl

    #1

    c01

    XN21m0

    amlnxllnyllnzl

    24

    35

    Then one derives

    lt02 tl # 1

    XN21m0

    amlnxllnyllnzl

    c0knk2

    # 13knkc0

    c0knk2

    13

    knk

    7

    Conclusion. Eq. (7) proves that there is a constantscalar k; independent of the cloud of points, such that

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122112

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    5/14

    lt0 2 tl # k1: In other words, the error in the computed

    solution (3) is always bounded and depends linearly on the

    error in the measured cloud points.

    2.2. Selecting an appropriate weight function

    The weightsam play a dominant role in the computation

    of pp and thus they should be chosen very carefully. In

    general, the weightam $ 0 ofpm [ CNshould take a larger

    value whenpmis closer to the vertexp;to be projected, and

    a descending value as the distance from pm to p increases.

    The weight function used in Ref.[1] is

    am 1

    kp2 pmk4

    ; am [ 0;1; 8

    which is adequate for the introduced point-parameterizationmethod. Eq. (8) takes into account only the distance

    between pm and p: Erikson and Manocha [13] utilize a

    weight function based on the surface area of the faces

    adjacent to pm: This is inapplicable to the present surface-

    representation which is solely a pointset without any

    topological information.

    Solving the problem described by Definition 1 requires a

    new weight function taking under consideration also the

    direction n associated to the given vertex p: Systematic

    experiments have led to the conclusion that one should use a

    weight function taking under consideration both the

    distance betweenpandpm;kpm 2 pk;as well as the quantity

    kpm2 p nk measuring the distance between pm and theaxis defined by p and n:We propose:

    am1

    1 kpm2pk2kpm2pnk

    2 ; am [ 0; 1 9

    We force am [ 0; 1 in order to ensure numerical

    stability of this quantity; am 1 when p [ CN; i.e. pcoincides with one of the cloud points or when pm lies onto

    the projection axis.

    Fig. 2a shows the difference between Eqs. (8) and (9): the

    former takes a maximum value for points in the vicinity of

    the top-left part of the cloud while the latter is maximized at

    cloud points near the axis of projection. Fig. 2b shows theimproved local value-distribution of the weight function (9).

    Several vertices are projected onto the cloud surface of ashoe last along the directions shown as dark lines. The larger

    amis, the darker we paint the corresponding part of the cloud.

    It is obvious that the weights are maximized in the vicinity of

    the axis of projection. Indeed, the darkest points correspond

    to the intersection of projection axes with the cloud.

    2.3. Specification of projection vectors

    The directed projection problem (Definition 1) and

    formulae (3), (4) and (9) require specification of adequate

    projection directions. The present research deals withinteractive curve-drawing and thus it relies on the user

    to define, through a Graphics Interface tool, projection

    vectors.

    In general, the geometric pipeline utilizes viewing and

    projection matrices and a viewport for clipping to transform

    the world (or object) coordinates of a point into window (or

    screen) coordinates. For interactive curve design one has to

    reverse this process. Specifically, in the present implemen-

    tation, users utilize the mouse to specify the image of a

    vertexin the rest of this paper, all user-defined points will

    be called verticesas a location in the two-dimensional

    screen. Then, the system reverses the transformation process

    and maps the specified screen point onto the near and farclipping planes as it is shown inFig. 3, producing the two

    auxiliary vertices pn and pf; marked with small circles.

    These two vertices define both the input vertex and the

    associated projection vector (see Definition 1), as follows:

    p kp; nl pn;pf2 pn

    kpf2 pnk

    * +: 10

    Eq. (10) holds also for parallel viewing transformations.

    2.4. The proposed point-projection algorithm

    The outline of an algorithm for projecting an arbitrary

    vertex onto a cloud of points, called PointProjection,is given inFig. 4. The algorithm takes as input a vertex p

    Fig. 2. (a) Directed projection of a vertex p onto the cloud of points CN:

    (b) Colour map representing values of the weight function (9).

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122 113

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    6/14

    and a cloud surface CNand computes the projectionpp ofp

    onto CN: This is achieved through an iterative procedure

    with the aid of a local variable cn which is a working sub-

    cloud of CN; initially, cn ; CN: During the projection

    calculation, the cardinality of cn is gradually reduced by

    removing from it cloud points which are found to be

    insignificant for the projection calculation. In this way, one

    is able to reduce processing time and also increase the

    accuracy of the projection procedure. The significance of

    each cloud point in the current cn is determined by the

    corresponding weight am; calculated using Eq. (9); all

    weights are stored in a single vector a [ Rn:

    In order to decide which cloud points should be ignored

    in the Kth iteration, another local variable named alimit is

    defined

    alimit

    amean amax 2 amean

    102K ; K, 9

    ameanamax 2 amean

    2 ; otherwise

    8>: 11

    where the real parameters amax; amean; correspond to the

    maximum and mean value of the computed weights { am}:

    Eq. (11) is defined in such a way that cloud points with a

    small influence (i.e. small am) are discarded in the first

    iterations of the algorithm. This is particularly useful for

    large data sets with tenths or hundreds of thousands of

    points, improving considerably the efficiency of the

    algorithm.

    According toFig. 4, the proposed algorithm is initiatedby setting the working sub-cloud equal to the initial one

    cn U CN:Then a loop begins and the given vertex pwith

    the current working cloud cn is passed into the OptimPro-

    jectToCloud procedure (Fig. 5) producing pp; which is the

    current estimation for the projection of p onto cn:

    OptimProjectToCloud also returns the weight vector awith respect to the input vertex p:If the Euclidean distance

    between the current projection estimation pp and the vertex

    p is less than a threshold 1; the procedure is terminated.

    Fig. 3. The perspective viewing volume and the ray defined through users

    input.

    Fig. 4. The fundamental PointProjection algorithm. Fig. 5. The algorithm for estimating the optimal projection ofp onto cn:

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122114

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    7/14

    In the opposite case, the vertex pis moved to the currentpp

    p U pp and a new iteration commences with redefining

    cn : cloud points with a weight smaller than the current

    alimit are removed from cn; for the reasons explained

    above. Finally, if amax 1 ak; the algorithm terminates

    and returns as projection vertex the cloud point pk:

    An in-depth experimental evaluation of the accuracy and

    robustness of the proposed point-projection method is given

    in the following section.

    2.5. Numerical/experimental results

    In order to investigate the performance of the proposed

    PointProjection algorithm, several experiments have been

    conducted. Two representative sets of results are discussed

    to illustrate the accuracy and robustness of this algorithm.

    2.5.1. Testing the effectiveness of the PointProjection

    algorithm for a thin cloud of points

    The first experiment investigates the accuracy of

    PointProjection for thin point clouds, i.e. clouds of

    points lying exactly on a mathematical surface (this is the

    case here) or on a polygonal surface. Several clouds CN;

    with a varying density, have been derived from a known

    cubic B-spline surface. The number of points ranges from

    N 10; 000 to 300,000. Four specific vertices pi kpi;

    nil; i 0; ; 3; are projected onto each CN using

    PointProjection, producing four pp

    i;

    N vertices per cloud.The intersection psi;Nof the axis defined by pi and ni with

    the given B-spline surface is pre-computed using a

    modified Newton method. Finally, the Euclidean norm

    Ri;N kpsi;N2 p

    p

    i;Nk is used for measuring the accuracy of

    PointProjection.

    Table 1 summarizes the obtained results. Several

    interesting conclusions are derived:

    The accuracy of the projection (measured byRi;N) is very

    satisfactory: the average value ofRi;Nis 0.05 mm even

    when Nis relatively small.

    Although the employed threshold 1 1026 mm is quite

    small, the convergence of the algorithm is fast; in theworse case, seven iterations are required.

    The required execution time is quite small (see fifth

    column of Table 1) despite the fact that no special

    acceleration techniques (like bucketing) are included in

    this version ofPointProjection.

    Generally, when the number of points is increased the

    corresponding projection error is reduced. Although,

    some minor deviations have been observed (i.e. for

    i 2; 3), these are due to two reasons: the numerical

    nature of the computation of both psi;N and pp

    i;N; and the

    varying cardinality of the final working sub-cloud cn:

    Generally a change in the cardinality of the working sub-

    cloud implies a change in relations (4) which in turn mayresult to slightly altered results.

    2.5.2. Testing the effectiveness of the PointProjection

    algorithm for a thick cloud of points

    The second experiment focuses on the efficiency of the

    PointProjection algorithm for a thick cloud of points,

    which is defined to be any cloud that is not thin. Indeed,

    in many modern applications, one deals with highly

    accurate clouds where the point-density is comparable to

    the point-error (or cloud thickness). Here, it is mean-

    ingless to triangulate the given points as this would

    produce triangles of sub-pixel size [3] or a surfacewhich would not be unambiguously defined.

    Our aim is to test whether the projected vertices

    lie within the boundaries of the given thick cloud. Also, a

    robust algorithm should produce consistent results with

    respect to the cloud thickness: when the thickness is

    reduced the projection error should be reduced

    accordingly.

    For this experiment, a series of clouds CrN with a

    varying thickness have been produced. The initial cloud

    C0N is derived by calculating points on a known cubic

    B-spline surface, i.e. p0m Sum; vm: Additional clouds

    are produced by adding to each cloud point in C0N a noise

    factor along the corresponding normal direction of theinitial B-spline surface S: Specifically, the cloud C

    rN

    Table 1

    Numerical results of the PointProjection algorithm with a cloud surface

    with increasing density

    i iter Ri;N (mm) Final

    sub-cloud

    Time (s) N

    0 4 0.070434 1 0.005844 10,000

    0 4 0.070434 1 0.017753 30,000

    0 8 0.018149 2 0.040418 60,000

    0 4 0.008543 1 0.065357 100,000

    0 4 0.008543 1 0.086174 140,000

    0 4 0.008543 1 0.123222 200,000

    0 4 0.008543 1 0.186434 300,000

    1 4 0.123624 1 0.005813 10,000

    1 4 0.123624 1 0.018155 30,000

    1 5 0.113043 2 0.037524 60,000

    1 5 0.113043 2 0.062263 100,000

    1 5 0.075981 3 0.087527 140,0001 5 0.075981 3 0.125088 200,000

    1 6 0.063970 4 0.194163 300,000

    2 4 0.015238 1 0.005459 10,000

    2 6 0.012163 2 0.017900 30,000

    2 6 0.009992 3 0.038129 60,000

    2 6 0.009992 3 0.064427 100,000

    2 4 0.010989 1 0.084991 140,000

    2 4 0.010989 1 0.120740 200,000

    2 4 0.010989 1 0.184584 300,000

    3 4 0.062142 1 0.005572 10,000

    3 4 0.062142 1 0.017471 30,000

    3 6 0.029960 2 0.037981 60,000

    3 6 0.029960 2 0.063716 100,000

    3 7 0.029960 2 0.092502 140,000

    3 6 0.031314 3 0.129766 200,000

    3 6 0.031314 3 0.231826 300,000

    The surface bounding box is 246 38 102 mm, 1 1026 mm.

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122 115

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    8/14

    includes the points

    pr

    m Sum;

    vm rdrnum;

    vm;

    12

    where r is the clouds thickness factor, dr represents a

    random number dr[ 21; 1 which is different for

    each prm; and num; vm is the unit normal-vector of the

    surface S: Thus, the actual thickness of CrN is not

    constant and varies between 2r; r with respect to the

    first cloud C0N; which corresponds to r 0 (this cloud is

    also considered as the mean cloud). This thickness

    variation increases significantly the complexity of the

    experiment.

    Four vertices pi kpi; nil; i 0; ; 3 (different from

    those used in Section 2.5.1) are projected onto each C

    r

    Nusing the PointProjection algorithm, producing four ppi;rvertices per cloud. The intersection of the axis defined bypiand ni with S is p

    si;r: Finally, the Euclidean norm Ri;r

    kpsi;r2 pp

    i;rk is used for quantifying the accuracy of the

    projection. All the obtained results are listed in Table 2.

    Some observations:

    Although the employed threshold 1 1026 mm is quite

    small, the convergence of the algorithm is fast: on an

    average, less than 14 iterations are required.

    The computed error Ri;r is significantly smaller than

    r; i mplying t hat t he proposed algor it hm i s

    consistently accurate for cloud surfaces with variablethicknesses.

    The produced results comply with the general obser-

    vation: if r! 0 then Ri;r! 0; which is a direct

    consequence of the conclusion derived in Section 2.1.2.

    There are some cases, though, that this observation does

    not hold, like for instance i; r 0; 0:5 and i; r

    1; 4: In the first case, we notice a decrease in theprojection accuracy, while in the latter case, the

    projection accuracy is higher than that of the thin clouds

    produced for r, 4:Both cases are explained if we take

    into account that the thickness of each cloud is not

    constant but varies between2r; r:Thus, it is likely that

    in the neighbourhood of a point psi;rthe cloud thickness ismuch smaller than r resulting to a very small Ri;r and

    vice versa.

    2.5.3. Conclusions

    Two extensive experiments have been presented estab-

    lishing the accuracy and robustness of the proposed

    PointProjection algorithm. The former is confirmed by

    projecting a series of vertices onto thin clouds with a

    varying number of points. The latter is illustrated by

    projecting a set of vertices onto a series of thick clouds of

    varying thickness. It must be emphasized that (a) for both

    experiments, we have visually confirmed that the produced

    results are compatible with the intuitively expected output,and (b) similar results have been obtained for about a dozen

    other data-sets including both academic and industrial

    cases.

    3. Interactive design of discrete curves onto a cloud

    of points

    This section focuses on constructing discrete (or digital)

    curves onto a given digital surface. The proposed design

    paradigm is point-based, thus, the surface model is the

    cloud of points while smooth curves are approximated by a

    finite number of vertices, defined interactively by a

    designer/stylist. Given as input an ordered sequence of

    verticespi kpi; nilthe output of the following design tools

    is either a linear or a higher-order curve (in the pointwise

    sense) which either interpolates or approximates the

    projections ppi of pi onto CN and lies onto the given

    cloud surface. The PointProjection algorithm is the main

    part of this process, which is supported by the method

    for specifying the projection directions described inSection 2.3.

    Table 2

    Numerical results of the PointProjection algorithm with a series of cloud

    surfaces with decreasing thickness

    i iter Ri;r (mm) Final

    sub-cloud

    r(mm)

    0 17 2.233382 5 4

    0 13 1.835266 5 3.2

    0 11 1.482495 5 2.5

    0 9 1.441944 5 2

    0 10 1.084490 5 1.5

    0 10 0.414982 5 1

    0 10 0.004411 5 0.5

    0 13 0.061961 5 0

    1 76 0.035033 5 4

    1 20 0.538647 5 3.2

    1 17 0.308358 5 2.5

    1 18 0.159938 5 21 15 0.096234 5 1.5

    1 13 0.050045 5 1

    1 13 0.067558 5 0.5

    1 5 0.053186 7 0

    2 10 0.837105 5 4

    2 10 0.610330 5 3.2

    2 9 0.410340 5 2.5

    2 10 0.107808 5 2

    2 8 0.069722 5 1.5

    2 7 0.037446 5 1

    2 7 0.356098 5 0.5

    2 5 0.018793 5 0

    3 10 1.120749 5 4

    3 11 0.874228 5 3.2

    3 13 0.632466 5 2.5

    3 16 0.336782 5 23 15 0.222144 5 1.5

    3 13 0.122572 5 1

    3 11 0.254029 5 0.5

    3 11 0.085678 5 0

    The surface bounding box is 246 38 102 mm, N 10; 000;

    1 1026 mm.

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122116

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    9/14

    3.1. Designing line segments onto a cloud of points

    Utilizing the proposed point projection algorithm, it is

    possible to develop a scheme where the user will be able to

    trace digital curves onto clouds of points. The simplest

    type of curves that can be constructed are piecewise linear

    curves or polylines. Each polyline is created after

    projecting user-defined vertices pi onto the cloud surface

    and connecting successive projected-vertices ppi with line

    segments. Since the cloud surface is curved, these line

    segments, in general, do not lie, in any sense, on the given

    cloud. Thus, the curve tracing application is equivalent to

    Definition 2 (Line-segment projection: explicit defi-

    nition).Given a cloud of points CN and two vertices pi

    kpi;

    nil; ^pi1 kpi1

    ;

    ni1l;

    the line-segment qi is definedwith end-points the projected (onto CN) verticespp

    i andpp

    i1

    qiu 12 upp

    i upp

    i1; u [ 0; 1

    Then, the projection ofqionto CNis the curve qp

    iudefined

    as follows: each point qiuis equipped with the projection

    vector niu 12 uni uni1; u [ 0; 1; and is pro-

    jected onto CNaccording to Definition 1.

    Definition 3 (Line-segment projection: approximate

    construction).Given a cloud of points CNand two vertices

    pi kpi; nil; pi1 kpi1; ni1l; the line-segment qi is

    defined with end-points the projected (onto CN) vertices

    pp

    i andpp

    i1

    qiu 12 upp

    i upp

    i1; u [ 0; 1

    Then, the projection ofqionto CNis the curveqp

    i definedby the following procedure:

    (1) Initialization:qpi {pp

    ipp

    i1}

    (2) For each line-segment in qpi which is not labelled as

    terminal, project its midpoint and replace it with the

    two new line-segments.

    (3) Examine the projection distance for all midpoints

    considered in step 2. When this is found to be smaller

    than the working accuracy epsilon, the corresponding

    segments are labelled as terminal, OR

    (4) If the length of a line segment is smaller that a

    minimum allowed value then label it as terminal.

    GOTO step 2.

    Note 2. In the rest of this paper, we consider that the

    projection of a line-segment according to Definition 3 is

    equivalent to projecting a set ^pi {pi;k kpi;k; ni;kllk

    0; ; ki 2 1} of ki distinct nodes pi;k derived through

    Definition 3/Step 2.

    Although each segmentqiis linear, its projection qp

    i onto

    CN; according to Definition 3, is a polyline following the

    local curvature of the cloud surface. To illustrate this effect,we consider the cloud of points shown in Fig. 6. The three

    vertices shown in Fig. 6a define a two-segment polyline

    which clearly is far from being on (in any possible sense)

    the cloud surface. Fig. 6b depicts the projection of this

    polyline onto the cloud, according to Definition 3, which

    follows the local curvature of the given cloud surface. In

    the following discussion, the polylines designed by the user

    will be called design polylines or d-polylines, not to be

    confused with projected polylines or p-polylines. We will

    also use the terms d-segments and p-segments for user-

    defined and projected line-segments, respectively.

    An industrial example for the introduced 3D polyline

    design method is presented inFig. 7: in footwear industry,the designers make several sketches onto the surface of a

    last. These sketches correspond to the basic style lines of the

    shoe design which are eventually utilized in the pattern

    engineering process. InFig. 7a the style lines of a shoe are

    designed using d-polylines which are then projected onto

    the last as inFig. 7b. The projected design inFig. 7b lies

    onto the cloud surface as it is apparent near the surface

    silhouette.

    The wrinkling effect. Taking a closer look at the

    p-polylines ofFigs. 6b and 7b,one is able to trace certain

    Fig. 6. The projection of d-polylines onto a cloud of points. (a) Initial d-polyline. (b) Final p-polyline.

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122 117

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    10/14

    wrinkles in some of them; see, e.g. the girth line in the

    shoe design ofFig. 7b, located in the forepart of the last.

    This wrinkling is a direct result of the 3D nature of the

    polyline projection-problem and of the fact that different

    parts of a p-polyline are affected by different cloud points.

    Thus, one faces the problem of smoothing p-polylines,

    which is a direct extension to 3D of the standard 2D

    polyline smoothing problem [14]. This is exactly the

    subject of the following sub-section.

    3.2. Smoothing projected segments

    The projection of a line segmentqionto a cloud of points

    transformsqiinto a polylineqp

    i :Since this transformation is

    performed by taking into account solely the minimization of

    Eq. (1), random local variations may occur in qpi ; which, in

    turn, cause the wrinkling effect described in Section 3.1.

    One way to construct a smoothed projection of qi onto

    CN is to incorporate into the projection process the

    constraint that the length of the resulted p-polyline qpimust be minimized. In this way, it is possible to reduce the

    wrinkling effect by stretching the produced p-polyline.

    Similar approaches have been adopted by other researchersto solve related modelling problems: Felderman[14]deals

    with 2D polyline fairing and proposes a procedure

    adjusting vertices, within a given tolerance, so that

    the total length of the polyline is minimized. Furthermore,

    the discrete-curvature notion is used by others to fair

    pointsets in two or three-dimensions [12,22]. None of the

    published works addresses the problem of smoothing a

    polyline drawn onto a point cloud. This problem is studied

    and solved below.

    In view of Definition 3 and Note 2, there are two ways to

    enhance the projection method of Definition 3 towards an

    algorithm that also smoothes the projection:

    Smoothing methodology A: Incorporate a smoothing

    method into Definition 3. This approach is not efficient

    (our experiments have confirmed this) as Definition 3

    calculates the projected vertices sequentially, thus one can

    only employ a local smoothing technique optimizing the

    location of a specific projected vertex in relation to those

    already calculated.

    Smoothing methodology B: Simultaneously projecting

    and smoothing a discretization of a line segment. With

    respect to Note 2, we conclude to an alternative definition

    for a smooth projection:

    Definition 4 (Smooth projection). Given a line segment qirepresented by a set ^pi {pi;kkpi;k; ni;kllk 0; ; ki21}

    ofki distinct nodes pi;k; the smooth projection ofq i ontoCN is a p-polyline q

    p

    i {pp

    i;k} minimizing the energyfunction

    Ei 12 gPi gLi; g[ 0; 1; 13

    where

    Pi Xki21k1

    Epp

    i;k 14

    and

    Li Xki22k0

    kppi;k2 pp

    i;k1k2

    15

    expresses the length of the p-segment qpi :

    Eachppi;kis defined by pp

    i;k pi;k tkni;k (compare with

    Eq. (2)), thus, the whole p-polyline qpi is defined by the

    vector t tk k 1; ; ki 2 1 holding the unknown

    parameters tk: Eq. (13) is a convex combination of two

    functionals, and it is minimized when the parameter vector t

    is the solution of the linear system

    12 gI gAt 1 2 gbgc; 16

    Fig. 7. (a) A basic shoe design sketched onto the cloud surface of a last N 6000utilizing d-polylines. (b) The projection of polylines onto the cloud surface

    (p-polylines).

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122118

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    11/14

    i.e.

    t tg 12 gIgA2112 gbgc 17

    which is a second-degree vector equation with respect to g:

    A is a ki 2 2 ki 2 2 tridiagonal and symmetric

    matrix. The three non-zero elements of the kth row ofAare

    Ak;k21 2ni;k21ni;k

    Ak;k 2

    Ak;k1 2ni;kni;k1

    ; fork 2; ; ki2 3; 18

    With

    A1;1 2; A1;2 2ni;1ni;2

    Aki22;ki23 2ni;k22ni;k23

    Aki22;ki22 2

    19

    Thekth element of vector c is given by

    ck pi;k21 2 pi;kni;k pi;k2 pi;k1ni;k; 20

    fork 1; ; ki 2 1

    While the kth element of vector b is

    bk lk2 pi;kni;k

    kni;kk2

    ; fork 1; ; ki2 1; 21

    where

    lk

    c1i;knxi;k c

    2i;kn

    yi;k c

    3i;kn

    zi;k

    c0i;k

    and the scalars c0i;k; c1i;k; c

    2i;k; c

    3i;kare defined by Eq. (4) for

    each pi;k;and I is the ki 2 2 ki 2 2identity matrix.

    A smoother projected polyline, with larger deviation

    from the cloud of points, will be produced by a large g

    than the one corresponding to a small g: For g 0; one

    obtains a highly accurate projection but, most probably,with the wrinkling effect shown in Figs. 1b, 6b and 7b.

    For g 1; the result is a straight line segment

    connecting the two boundary vertices pi;0 and pi;ki21;

    see Fig. 6a.

    Fig. 8 presents the pseudo-code implementation of the

    above smooth projection method. The procedure Smooth-SegProjection computes the related matrices and vectors

    using Eqs. (18) (21). We use LU decomposition and afast forward/backward substitution (: an Oki process),

    to compute the solution (17). This directly produces the

    spatial position of the nodes ppi;k of the p-polyline qp

    i :

    Fig. 9shows the result of applying the aforementioned

    procedure to the polylines of the basic shoe design of

    Fig. 7. Notice the significant improvement in the shoe

    girth polyline which now is quite smooth, i.e. free of

    undesirable wrinkles. The same holds for all polylines in

    this shoe design. For the majority of our experiments we

    have used g 0:5 which corresponds to an acceptable

    compromise between smoothness and accuracy. Onemay wish to fine-tune g to further improve the obtained

    results. In practical applications, selection ofgis based on

    a trial-and-error approach where the user interactively

    selects gvia an appropriate user interface tool.

    3.3. Designing digital splines onto clouds of points

    Although polylines are quite flexible and relatively easy

    to construct, designers also need smooth curves which, in

    current CAD systems, are modelled as splines of low

    degree. With current CAD technology, tracing curves on

    polynomial surfaces is not a straightforward operation as the

    user or the CAD system has to ensure that the designed

    curve will not overshoot the given surface. Below, it is

    Fig. 8. The proposed algorithm for the smooth projection of a segment qionto a cloud of points.

    Fig. 9. The smooth projection of d-polylines onto the cloud surface of a last

    g 0:5:

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122 119

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    12/14

    established that curve design on point clouds is not as

    complicated as its counterpart in standard continuous

    CAD systems.Our approach for designing polynomial-spline

    curves onto cloud surfaces uses an interpolation method

    [27, Section 9.3.4]to construct a smooth spline ofj-degree

    pju interpolating user-defined vertices of a d-polyline.

    Using the same scheme, it is also possible to calculate the

    corresponding projection direction nju: A node-set ^pj of

    distinct nodes is derived from pju which is eventually

    projected onto the cloud surface. The final result is apolyline tracing a smooth trajectory onto the cloud of points.

    The discretization of pju can be achieved using the

    method in Ref.[35], which ensures that the topology of the

    resulting linear approximation is consistent with that of

    the initial curve.

    Projecting^pj onto the cloud of points is a straightforward

    application of either the PointProjection or the Smooth-

    SegProjection algorithm provided that at least the two

    boundary vertices of ^pj are fixed. Two alternative

    definitions for a digital curve are proposed:

    Definition 5 (Digital curve). A digital curve is defined as

    the result of the projection of the node-set ^pj onto CNaccording to Definition 1.

    Definition 6 (Smooth digital curve). A smooth digital

    curve is defined as the result of the smooth projection of the

    node-set ^pj onto CNaccording to Definition 4.

    An example of designing digital curves is shown in

    Fig. 10a. The wrinkling effect is present again especially in

    the girth curve in the forepart of the shoe last. This problem

    is resolved utilizing smooth digital curves with verysatisfactory results as shown inFig. 10b (see alsoFig. 1c).

    Fig. 10. Two approaches to construct digital curves onto a cloud surface. The initial d-polylines have been replaced by pointsets derived from the original cubic

    B-splines. (a) Digital curves designed onto the cloud surface without smoothing j 3:(b) Smooth Digital Curves designed onto the cloud surface (j 3;

    g 0:5).

    Fig. 11. Application of the proposed methods for designing wearing apparel

    in a human body cloud surface.

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122120

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    13/14

  • 8/13/2019 1-s2.0-S0010448504000892-main_2

    14/14

    [20] Llamas I, Kim B, Gargus J, Rossignac J, Shaw C. Twister: a space-

    warp operator for the two-handed editing of 3D shapes. ACM Trans

    Graph 2003;22(3):6638.

    [21] Liu G, Wong Y, Zhang Y, Loh H. Error-based segmentation of clouddata for direct rapid prototyping. Comput-Aided Des 2002;35(7):

    63345.

    [22] Liu GH, Wong YS, Zhang YF, Loh HT. Adaptive fairing of digitized

    point data with discrete curvature. Comput-Aided Des 2002;34(4):

    30920.

    [23] McLaughlin W. Describing the surface: algorithms for geometric

    modelling. Comput Mech Eng 1986;3841.

    [24] Menon J, Marisa R, Zagajac J. More powerful solid modeling through

    ray representations. IEEE Comput Graph Appl 1994;14(3):2235.

    [25] Muller H, Surmann T, Stautner M, Albersmann F, Weinert K. Online

    sculpting and visualization of multi-dexel volumes. Proceedings of

    the Eighth Symposium on Solid Modeling and Applications 2003;

    25861.

    [26] Pottmann H, Randrup T. Rotational and helical surface approximation

    for reverse engineering. Computing 1998;60(4):30722.

    [27] Piegl L, Tiller W. The NURBS book. Berlin: Springer; 1997.

    [28] Qin S, Harrison R, West A, Jordanov I, Wright D. A framework of

    web-based conceptual design. Comput Ind 2003;50(2):15364.

    [29] Rusak Z, Horvath I, Kuczogi G, Akar E. Shape instance generation

    from domain distributed vague models. Proceedings of the DETC 02

    ASME Design Engineering Technical Conferences and Computers

    and Information in Engineering Conference, Montreal; 2002.

    [30] Schweikardt E, Gross M. Digital clay: deriving digital models from

    freehand sketches. Automat Construct 2000;9(1):10715.

    [31] Vergeest J, Horvath I, Spanjaard S. A methodology for reusing

    freeform shape content. Proceedings of the Design Theory

    and Methodology Conference, DETC01/DTM-21708, New York:

    ASME; 2001.

    [32] Varady T, Martin RR, Cox J. Reverse engineering of geometric

    modelsan introduction. Comput-Aided Des 1997;29(4):25568.

    [33] Weiss V, Andor L, Renner G, Varady T. Advanced surface fittingtechniques. Comput Aided Geom Des 2002;19(1):1942.

    [34] Woo H, Kang E, Wang S, Lee K. A new segmentation method

    for point cloud data. Int J Mach Tools Manufact 2002;42(2):

    16778.

    [35] Cho W, Takashi M, Nicholas PM. Topologically reliable approxi-

    mation of composite Bezier curves. Comput Aided Geom Des 1996;

    13(6):497520.

    [36] Wu D, Sarma R. The incremental editing of faceted models in

    an integrated design environment. Comput-Aided Des 2004; in

    press.

    [37] Wu Y, Wong Y, Loh H, Zhang Y. Modelling cloud data using an

    adaptive slicing approach. Comput-Aided Des 2004;36(3):23140.

    [38] Yin Z. Reverse engineering of a NURBS surface from digitized points

    subject to boundary conditions. Comput Graph 2004;28(2):20712.

    [39] Yin Z, Jiang S. Automatic segmentation and approximation ofdigitized points for reverse engineering. Int J Product Res 2003;

    41(13):304558.

    [40] Zwicker M, Pauly M, Knoll O, Gross M. Pointshop 3D: an interactive

    system for point-based surface editing. ACM Trans Graph 2002;

    21(3):3229. Special issue: Proceedings of ACM SIGGRAPH.

    Phillip N. Azariadis holds a mathematics

    degree from the Department of Mathematics

    (19901994) anda PhD from theMechanical

    Engineering and Aeronautics Department

    (1995 1999) of the University of Patras,

    Greece. Currently he is Director of the

    Research & Technology Department of the

    Greek research centre ELKEDETech-

    nology and Design Centre SA and also an

    instructor at the Department of Product and

    Systems Design Engineering of the Univer-

    sity of theAegean. Hisbackground andresearchactivities are focused in the

    areas of Computer-Aided Design and Manufacture, Reverse Engineering,

    Computer Graphics and Robotics. His work has been published in leading

    international scientific journals and conference proceedings. He has

    participated in various research projects funded by EC or national bodies.

    Nickolas S. Sapidis is currently an Associ-

    ate Professor with the Department of

    Product and Systems Design Engineering

    of the University of the Aegean. He holds

    degrees in Naval Architecture & Marine

    Engineering, Applied Mathematics and

    Mechanical Engineering. He received his

    PhD in Mechanical and Aerospace Sciences

    from the University of Rochester in 1993.

    He has taught at the Hellenic Air Force

    Academy, the National Technical Univer-sity of Athens (NTUA), the University of

    Athens and the Polytechnic University of Catalunya (Spain). Also, he has

    been providing education/training services to major Greek corporations like

    Elefsis Shipyards and the Bank of Greece. His industrial experience, on

    CAD/CAE research/development/application, includes General Motors

    R&D Center and GM Design Center (USA) as well as Marine Technology

    Development Co (Greece). For six years, he was a researcher with NTUA

    Ship-Design Laboratory where he led research activities of an Autodesk

    Educational Software Development Team. Sapidis is the author of more

    than 40 papers on curve and surface modeling/fairing/visualization, discrete

    solid models, finite-element meshing, reverse engineering of surfaces, and

    recently on solid modeling of design constraints. His research has been

    implemented in industrial CAD/CAE systems by MIT, GM, Intergraph and

    KCS (now Tribon Solutions). He has edited two books, guest-edited three

    journal special-issues and served on 10 conference program-committees.N. Sapidis is on the Advisory Editorial Board of CAD and of the

    International Journal of Product Development (IJPD).

    P.N. Azariadis, N.S. Sapidis / Computer-Aided Design 37 (2005) 109122122