Variational geometric modeling with black box

Variational geometric modeling
with black box constraints
and DAGs
Paper by: Gilles Gouaty, Lincong Fang, Dominique Michelucci, Marc
Daniel, Jean-Philippe Pernot, Romain Raffin, Sandrine Lanquetin, Marc
Neveuc
A presentation by: Boris van Sosin
1
Introduction and motivation
Modeling with CAD systems is a multi-level process
Product
Component
Structure & surface details
Geometric primitives
Used by product designers
Used by CAD systems
2
Introduction and motivation
Parametric modeling:
โ€ข Vector of parameters: ๐‘ˆ = ๐‘ข0 , ๐‘ข1 , โ€ฆ , ๐‘ข๐‘›โˆ’1
โ€ข Shape: ๐น ๐‘ˆ
โ€ข Designer modifies ๐น ๐‘ˆ by changing ๐‘ˆ.
3
Introduction and motivation
Variational modeling:
โ€ข Designer specifies shape function and constraints:
๐น ๐‘ˆ
๐‘0 ๐‘ˆ = 0
๐‘1 ๐‘ˆ = 0
โ‹ฎ
๐‘๐‘šโˆ’1 ๐‘ˆ = 0
โ€ข Solver finds ๐‘ˆ which satisfies constraints.
4
Introduction and motivation
Variational modeling:
โ€ข Often the design needs to minimize some criterion.
โ€ข E.g. cost, mass, physical stress, surface energyโ€ฆ
โ€ข Often, ๐‘› โ‰ซ ๐‘š.
โ€ข๐น ๐‘ˆ
argmin๐‘ˆ ๐บ ๐‘ˆ
s.t.:
๐‘0 ๐‘ˆ = 0
๐‘1 ๐‘ˆ = 0
โ‹ฎ
๐‘๐‘šโˆ’1 ๐‘ˆ = 0
5
Introduction and motivation
Main tool:
โ€ข DAG representation
โ€ข Leaves are variables or constants
โ€ข Simple operators:
+
*
^
โ€ข +,-,*,/, power, root, etc.
โ€ข More Complex operators:
Var x
Var y
Const 2
โ€ข Bézier/B-spline control points, subdivision surface parameters, etc.
6
Related work
โ€ข Variational modeling introduced in: โ€œVariational geometry in
computer-aided designโ€, V. C. Lin, D. C. Gossard, R. A. Light, SIGGRAPH '81
Proceedings of the 8th annual conference on Computer graphics and interactive techniques, 1981
โ€ข Feature based modeling introduced in: โ€œExpert form feature
modelling shellโ€, J.J. Shah. M. T. Rogers, Computer-Aided Design, 1988
โ€ข โ€œModifying the shape of NURBS surfaces with geometric constraintsโ€,
S.M. Hu, Y.F. Li, T. Ju, X. Zhu, Computer-Aided Design, 2001
7
Numerical Optimization
Numerically solving constraint problems / optimization problems
โ€ข Recall: single variable, scalar function ๐‘“ ๐‘ฅ case.
โ€ข Observation: optimization problems are local extremum finding
problems.
โ€ข Can be solved as zero problems of ๐‘“ โ€ฒ ๐‘ฅ .
โ€ข Newtonโ€™s Method on ๐‘“ โ€ฒ ๐‘ฅ :
1
โ€ฒ
๐‘ฅ๐‘›+1 = ๐‘ฅ๐‘› โˆ’ ๐‘“ ๐‘ฅ๐‘› โ‹… โ€ฒโ€ฒ
๐‘“
๐‘ฅ
8
Numerical Optimization
Numerically solving constraint problems / optimization problems
โ€ข Multivariate case: ๐‘“ ๐’™ is a scalar function of a vector variable ๐’™.
โ€ข Derivative โ‡’ gradient vector
Inverse second derivative โ‡’ inverse Hessian matrix
โ€ข Newtonโ€™s Method:
For finding extrema of ๐‘“ ๐’™ , find ๐’™ such that ๐›ป๐‘“ ๐’™ = 0.
๐’™๐‘›+1 = ๐’™๐‘› โˆ’ ๐›พ ๐‘ฏ๐‘“ ๐’™๐‘› โˆ’1 ๐›ป๐‘“ ๐’™๐‘›
โ€ข where: ๐‘ฏ๐‘“ ๐’™๐‘›
โˆ’1
is the inverse Hessian, and ๐›พ is a step-size constant.
9
Numerical Optimization
โ€ข Quasi-Newton methods are used when ๐‘ฏ๐‘“ ๐’™๐‘› is difficult to
compute.
โ€ข Hessian is approximated by matrix ๐‘ฉ๐‘› .
โ€ข Update step is ๐’™๐‘›+1 = ๐’™๐‘› โˆ’ ๐›พ๐‘ฉโˆ’1
๐‘› ๐›ป๐‘“ ๐’™๐‘›
โˆ’1
โˆ’1
โ€ข ๐‘ฉโˆ’1
๐‘› has an update step: ๐‘ฉ๐‘›+1 = ๐‘ข๐‘๐‘‘๐‘Ž๐‘ก๐‘’ ๐‘ฉ๐‘›
โ€ข Examples:
โ€ข DFP (Davidonโ€“Fletcherโ€“Powell)
โ€ข BFGS (Broydenโ€“Fletcherโ€“Goldfarbโ€“Shanno)
10
Numerical Optimization
โ€ข Pattern-search methods are used when even gradient is unavailable.
โ€ข A discretized gradient descent approach.
โ€ข Evaluate function at a finite set of points
in a pre-determined pattern.
โ€ข If the minimum/maximum is not at the center,
set new center to minimum/maximum.
โ€ข Otherwise, shrink pattern by half.
โ€ข โ€œOptimization by Direct Search: New Perspectives on Some
Classical and Modern Methodsโ€, T.G. Kolda, R.M. Lewis, V. Torczon,
SIAM Review, 2003
Image source: https://en.wikipedia.org/wiki/File:Direct_search_BROYDEN.gif
11
The DAG Representation
โ€ข Advantages:
โ€ข More general than simple Bézier/B-spline representation.
โ€ข Functions such as abs, sgn, min, max, etc. are easy to represent.
โ€ข Efficient to re-evaluate if only some parameters are changed.
+
โ€ข Derivatives are computed by chain rule.
โ€ข Where they exist.
*
โ€ข Composition is trivial to compute.
^
โ€ข Disadvantages:
โ€ข Interval analysis.
Var x
Var y
Const 2
โ€ข Limitations:
โ€ข Closest point on curve/surface to a given point.
โ€ข The โ€œifโ€ (or ternary) operator.
12
From DAGs to Procedures
Solution: allow any procedure to be a โ€œblack-boxโ€ node in a DAG.
โ€ข Properties:
โ€ข
โ€ข
โ€ข
โ€ข
More high level operators.
Can still know on which variables a node depends.
Composition is still trivial to compute.
Efficient evaluation by compiling procedures.
โ€ข Disadvantages:
โ€ข No symbolic evaluation, only floating-point.
โ€ข No closed-form formula representation.
โ€ข No derivative computation.
โ€ข Can be approximated by finite differences.
โ€ข Definitely no interval analysis.
13
Solving With Black-Box Constraints
Problem formulation:
โ€ข Most generally:
โ€ข argmin๐‘‹ ๐บ(๐‘‹)
s.t.
๐น ๐‘‹ =0
is a vector of variables,
where ๐‘‹ = ๐‘‹0 , โ€ฆ , ๐‘‹๐‘›โˆ’1
๐บ ๐‘‹ is a scalar function,
๐น ๐‘‹ = ๐น0 ๐‘‹ , โ€ฆ , ๐น๐‘šโˆ’1 ๐‘‹
is a vector function of constraints.
14
Solving With Black-Box Constraints
Problem formulation:
โ€ข Shortcuts:
argmin๐‘‹ ๐บ(๐‘‹)
s.t.
๐น ๐‘‹ =0
โ€ข If there is no ๐น ๐‘‹ : unconstrained optimization โ‡’ use BFGS.
โ€ข If only approximate solution is needed:
minimize ๐ป ๐‘‹ = ๐บ ๐‘‹ + ๐‘ค ๐‘– ๐น๐‘– ๐‘‹ 2 , for a very large constant ๐‘ค.
โ€ข If no ๐บ ๐‘‹ : minimize ๐ป ๐‘‹ = ๐‘– ๐น๐‘– ๐‘‹ 2 .
15
Solving With Black-Box Constraints
Problem formulation:
โ€ข argmin๐‘‹ ๐บ(๐‘‹)
s.t.
๐น ๐‘‹ =0
โ€ข Solved as Lagrange Multiplier problem: โ„’ ๐‘‹, ๐ฟ = ๐บ ๐‘‹ + ๐‘– ๐ฟ๐‘– ๐น๐‘– ๐‘‹
โ€ข Local minima of ๐บ ๐‘‹ , with constraints ๐น ๐‘‹ are:
๐œ•โ„’ ๐‘‹, ๐ฟ
๐œ•๐บ ๐‘‹
๐œ•๐น๐‘– ๐‘‹
=
+
๐ฟ๐‘–
= 0 โˆ€๐‘˜:0โ‰ค๐‘˜<๐‘›
๐œ•๐‘‹๐‘˜
๐œ•๐‘‹๐‘˜
๐œ•๐‘‹๐‘˜
๐‘–
๐›ปโ„’ =
๐œ•โ„’ ๐‘‹, ๐ฟ
= ๐น๐‘– ๐‘‹ = 0
โˆ€๐‘–:0โ‰ค๐‘–<๐‘š
๐œ•๐ฟ๐‘–
16
Solving With Black-Box Constraints
โ€ข Constrained optimization:
argmin๐‘‹ ๐บ(๐‘‹)
s.t.
๐น ๐‘‹ =0
โ€ข Solved as Lagrange Multiplier problem: โ„’ ๐‘‹, ๐ฟ = ๐บ ๐‘‹ +
โ€ข Solved as unconstrained optimization:
argmin๐‘‹ H ๐‘‹, ๐ฟ
where: H ๐‘‹, ๐ฟ = ๐›ปโ„’ ๐‘‹, ๐ฟ
2
=
๐œ•โ„’ ๐‘‹,๐ฟ
๐‘˜
๐œ•๐‘‹๐‘˜
โ€ข Derivatives approximated with finite differences.
2
+
๐œ•โ„’ ๐‘‹,๐ฟ
๐‘–
๐œ•๐ฟ๐‘–
๐‘– ๐ฟ๐‘– ๐น๐‘–
๐‘‹
2
17
Solving With Black-Box Constraints
Solving:
argmin๐‘‹ H ๐‘‹, ๐ฟ
where: H ๐‘‹, ๐ฟ = ๐›ปโ„’ ๐‘‹, ๐ฟ
2
=
๐œ•โ„’ ๐‘‹,๐ฟ
๐‘˜
๐œ•๐‘‹๐‘˜
2
+
๐œ•โ„’ ๐‘‹,๐ฟ
๐‘–
๐œ•๐ฟ๐‘–
2
โ€ข Finds only local minima
โ€ข Result depends on initial guess.
โ€ข Design process assumptions:
โ€ข Product design is an iterative process.
โ€ข ๐‘‹ from the previous design iteration used as initial guess.
โ€ข If no initial guess is provided, meta-heuristics are used:
simulated annealing, genetic algorithms, swarm optimization, etc.
18
Solving With Black-Box Constraints
Solving:
argmin๐‘‹ H ๐‘‹, ๐ฟ
where: H ๐‘‹, ๐ฟ = ๐›ปโ„’ ๐‘‹, ๐ฟ
2
=
๐œ•โ„’ ๐‘‹,๐ฟ
๐‘˜
๐œ•๐‘‹๐‘˜
2
+
๐œ•โ„’ ๐‘‹,๐ฟ
๐‘–
๐œ•๐ฟ๐‘–
2
โ€ข No initial guess for ๐ฟ๐‘–
โ€ข Solved by homotopy-inspired method.
โ€ข Continuous deformation while preserving topology.
โ€ข โ€œSolving geometric constraints by homotopyโ€, Hervé Lamure, Dominique Michelucci, SMA '95 Proceedings
โ€ข Define a continuum of problems:
๐‘ƒ ๐‘ก : argmin๐‘‹ ๐บ ๐‘‹ = ๐‘ก๐บ ๐‘‹ + 1 โˆ’ ๐‘ก ๐บ 0 ๐‘‹
s.t. ๐น ๐‘ก ๐‘‹ = ๐‘ก๐น ๐‘‹ + 1 โˆ’ ๐‘ก ๐น 0 ๐‘‹ = 0 for ๐‘ก โˆˆ 0,1 .
19
Solving With Black-Box Constraints
Solving by homotopy-like method:
๐‘ƒ ๐‘ก : argmin๐‘‹ ๐บ ๐‘‹ = ๐‘ก๐บ ๐‘‹ + 1 โˆ’ ๐‘ก ๐บ 0 ๐‘‹
s.t. ๐น ๐‘ก ๐‘‹ = ๐‘ก๐น ๐‘‹ + 1 โˆ’ ๐‘ก ๐น 0 ๐‘‹ = 0 for ๐‘ก โˆˆ 0,1 .
โ€ข ๐บ 1 ๐‘‹ = ๐บ ๐‘‹ ,๐น
โ€ข Choose:
1
๐‘‹ = ๐น ๐‘‹ . ๐‘ƒ(1) is the original problem.
๐‘‹ 0 = ๐‘‹ = initial guess.
๐น 0 ๐‘‹ = ๐น ๐‘‹ โˆ’ ๐น ๐‘‹ 0 . Lagrange multipliers ๐ฟ = 0 satisfy these constraints.
0
0 2
๐บ
๐‘‹ = ๐‘‹โˆ’๐‘‹
or ๐บ 0 ๐‘‹ = ๐ถ๐‘œ๐‘›๐‘ ๐‘ก โ‰  0 so that ๐‘‹ (0) minimizes ๐บ 0 .
Lagrange multiplier problem:
๐œ•โ„’ ๐‘‹,๐ฟ
๐‘˜
๐œ•๐‘‹๐‘˜
2
+
๐œ•โ„’ ๐‘‹,๐ฟ
๐‘–
๐œ•๐ฟ๐‘–
2
= ๐›ป๐บ
0
2
+
๐‘–
๐ฟ๐‘– ๐›ป๐น๐‘–
0
2
+
๐‘–
๐น๐‘–
0
2
20
Solving With Black-Box Constraints
Solving by homotopy-like method:
๐‘ƒ ๐‘ก : argmin๐‘‹ ๐บ ๐‘‹ = ๐‘ก๐บ ๐‘‹ + 1 โˆ’ ๐‘ก ๐บ 0 ๐‘‹
s.t. ๐น ๐‘ก ๐‘‹ = ๐‘ก๐น ๐‘‹ + 1 โˆ’ ๐‘ก ๐น 0 ๐‘‹ = 0 for ๐‘ก โˆˆ 0,1 .
โ€ข ๐บ 1 ๐‘‹ = ๐บ ๐‘‹ ,๐น
โ€ข Choose:
๐‘‹
๐น
๐บ
0
0
0
1
๐‘‹ = ๐น ๐‘‹ . ๐‘ƒ(1) is the original problem.
= ๐‘‹ = initial guess.
๐‘‹ = ๐น ๐‘‹ โˆ’ ๐น ๐‘‹ 0 . Lagrange multipliers ๐ฟ = 0 satisfy these constraints.
0 2
๐‘‹ = ๐‘‹โˆ’๐‘‹
or ๐บ 0 ๐‘‹ = ๐ถ๐‘œ๐‘›๐‘ ๐‘ก โ‰  0 so that ๐‘‹ (0) minimizes ๐บ 0
โ€ข Iterative step:
โ€ข Advance ๐‘ก by a small increment.
21
โ€ข Formulate problem ๐‘ƒ ๐‘ก and solve (e.g. with BFGS) with previous ๐‘‹ as initial guess.
Examples of Use
1. Surface passing through point.
โ€ข Initial surface: bi-quadratic
B-spline,
with 7x7 uniformly-spaced
control point,
and open-ended uniform KVs.
โ€ข First design iteration: constrain ๐‘† 0.5,0.5 to pass through point ๐‘.
โ€ข Problem formulation:
๐บ ๐‘‹ = ๐ท๐‘–๐‘ ๐‘๐‘Ÿ๐‘’๐‘ก๐‘’๐ธ๐‘›๐‘’๐‘Ÿ๐‘”๐‘ฆ ๐‘†
๐น0 ๐‘‹ = ๐บ๐‘’๐‘ก๐‘‹ ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, 0.5,0.5 โˆ’ ๐บ๐‘’๐‘ก๐‘‹ ๐‘ = 0
๐น1 ๐‘‹ = ๐บ๐‘’๐‘ก๐‘Œ ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, 0.5,0.5 โˆ’ ๐บ๐‘’๐‘ก๐‘Œ ๐‘ = 0
๐น2 ๐‘‹ = ๐บ๐‘’๐‘ก๐‘ ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, 0.5,0.5 โˆ’ ๐บ๐‘’๐‘ก๐‘ ๐‘ = 0
โ€ข Border control points assumed to be constant โ‡’ 25 โˆ— 3 = 75 variables.
22
Examples of Use
1. Surface passing through point.
โ€ข First design iteration: constrain ๐‘† 0.5,0.5 to pass through point ๐‘.
โ€ข Problem formulation:
๐บ ๐‘‹ = ๐ท๐‘–๐‘ ๐‘๐‘Ÿ๐‘’๐‘ก๐‘’๐ธ๐‘›๐‘’๐‘Ÿ๐‘”๐‘ฆ ๐‘†
๐บ๐‘’๐‘ก๐‘‹ ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, 0.5,0.5 โˆ’ ๐บ๐‘’๐‘ก๐‘‹ ๐‘ = 0
๐บ๐‘’๐‘ก๐‘Œ ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, 0.5,0.5 โˆ’ ๐บ๐‘’๐‘ก๐‘Œ ๐‘ = 0
๐บ๐‘’๐‘ก๐‘ ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, 0.5,0.5 โˆ’ ๐บ๐‘’๐‘ก๐‘ ๐‘ = 0
23
Examples of Use
1. Surface passing through point.
โ€ข First design iteration: constrain ๐‘† 0.5,0.5 to pass through point ๐‘.
โ€ข Problem formulation:
๐บ ๐‘‹ = ๐ท๐‘–๐‘ ๐‘๐‘Ÿ๐‘’๐‘ก๐‘’๐ธ๐‘›๐‘’๐‘Ÿ๐‘”๐‘ฆ ๐‘†
๐บ๐‘’๐‘ก๐‘‹ ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, 0.5,0.5 โˆ’ ๐บ๐‘’๐‘ก๐‘‹ ๐‘ = 0
๐บ๐‘’๐‘ก๐‘Œ ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, 0.5,0.5 โˆ’ ๐บ๐‘’๐‘ก๐‘Œ ๐‘ = 0
๐บ๐‘’๐‘ก๐‘ ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, 0.5,0.5 โˆ’ ๐บ๐‘’๐‘ก๐‘ ๐‘ = 0
โ€ข Result:
24
Examples of Use
1. Surface passing through point.
โ€ข Second design iteration: constrain ๐‘† ๐‘ข, ๐‘ฃ to pass through ๐‘.
โ€ข Problem formulation:
๐บ ๐‘‹ = ๐ท๐‘–๐‘ ๐‘๐‘Ÿ๐‘’๐‘ก๐‘’๐ธ๐‘›๐‘’๐‘Ÿ๐‘”๐‘ฆ ๐‘†
๐น0 ๐‘‹ = ๐บ๐‘’๐‘ก๐‘‹ ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, ๐‘ข, ๐‘ฃ โˆ’ ๐บ๐‘’๐‘ก๐‘‹ ๐‘ = 0
(ditto for ๐‘Œ, ๐‘).
โ€ข Two new variables:
๐‘ข, ๐‘ฃ โ‡’ 25 โˆ— 3 + 2 = 77 variables.
โ€ข Use previous design iteration as
initial guess.
25
Examples of Use
1. Surface passing through point.
โ€ข Second design iteration: constrain ๐‘† ๐‘ข, ๐‘ฃ to pass through ๐‘.
โ€ข Problem formulation:
๐บ ๐‘‹ = ๐ท๐‘–๐‘ ๐‘๐‘Ÿ๐‘’๐‘ก๐‘’๐ธ๐‘›๐‘’๐‘Ÿ๐‘”๐‘ฆ ๐‘†
๐น0 ๐‘‹ = ๐บ๐‘’๐‘ก๐‘‹ ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, ๐‘ข, ๐‘ฃ โˆ’ ๐บ๐‘’๐‘ก๐‘‹ ๐‘ = 0 (ditto for ๐‘Œ, ๐‘)
โ€ข Two new variables: ๐‘ข, ๐‘ฃ โ‡’ 25 โˆ— 3 + 2 = 77 variables.
โ€ข Use previous design iteration as initial guess.
โ€ข Result: discrete energy reduced by ~20%.
26
Examples of Use
2. Contact between two parametric surfaces:
โ€ข Two cylinder-like objects, each composed of six patches
โ€ข Four cylinder body patches + two top/bottom patches
โ€ข All patches are bi-quadratic B-spline surfaces
with 5x5 control points.
โ€ข G1 continuity is forced along cylinder edges and G0 between
cylinder and top/bottom.
27
Examples of Use
2. Contact between two parametric surfaces:
โ€ข Contact area between the two objects is assumed to
be inside a single cylinder patch.
โ€ข Represented as 17 discrete contact-point constraints in
parametric space.
โ€ข Constraint system:
๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†1 , ๐‘ข1 ๐‘– , ๐‘ฃ1 ๐‘– = ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†2 , ๐‘…๐‘œ๐‘ก ๐›ผ, ๐‘ข2 ๐‘– , ๐‘ฃ2 ๐‘–
๐ถ๐‘Ž๐‘™๐‘๐‘๐‘œ๐‘Ÿ๐‘š๐‘Ž๐‘™ ๐‘†1 , ๐‘ข1 ๐‘– , ๐‘ฃ1 ๐‘– = โˆ’๐ถ๐‘Ž๐‘™๐‘๐‘๐‘œ๐‘Ÿ๐‘š๐‘Ž๐‘™ ๐‘†2 , ๐‘…๐‘œ๐‘ก ๐›ผ, ๐‘ข2 ๐‘– , ๐‘ฃ2 ๐‘–
Additional variables: control points, size and location
of contact circleโ€ฆ
Additional constraints: G0 and G1 continuity.
โ€ข Not listed explicitly in the paper.
28
Examples of Use
2. Contact between two parametric surfaces:
โ€ข Result:
โ€ข Discretization of contact
area canโ€™t guarantee
non-intersection of
the surfaces.
29
Examples of Use
3. Contact between parametric surface ๐‘†1 and subdivision surface ๐‘†2 :
โ€ข Subdivision surfaces do not support ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก, ๐ถ๐‘Ž๐‘™๐‘๐‘๐‘œ๐‘Ÿ๐‘š๐‘Ž๐‘™.
โ€ข Instead, contact is forced by:
๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†1 , ๐‘ข, ๐‘ฃ = ๐ถ๐‘™๐‘œ๐‘ ๐‘’๐‘ ๐‘ก๐‘ƒ๐‘ก ๐‘†2 , ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†1 , ๐‘ข, ๐‘ฃ
๐ถ๐‘Ž๐‘™๐‘๐‘๐‘œ๐‘Ÿ๐‘š๐‘Ž๐‘™ ๐‘†1 , ๐‘ข, ๐‘ฃ = โˆ’๐ถ๐‘™๐‘œ๐‘ ๐‘’๐‘ ๐‘ก๐‘๐‘œ๐‘Ÿ๐‘š๐‘Ž๐‘™ ๐‘†2 , ๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†1 , ๐‘ข, ๐‘ฃ
โ€ข ๐ถ๐‘™๐‘œ๐‘ ๐‘’๐‘ ๐‘ก๐‘ƒ๐‘ก is very difficult to implement without
โ€œblack-boxโ€ nodes.
โ€ข Also requires G0 and G1 continuity constraints.
โ€ข ๐ถ๐‘™๐‘œ๐‘ ๐‘’๐‘ ๐‘ก๐‘ƒ๐‘ก, ๐ถ๐‘™๐‘œ๐‘ ๐‘’๐‘ ๐‘ก๐‘๐‘œ๐‘Ÿ๐‘š๐‘Ž๐‘™ could be used in
previous example.
30
Examples of Use
4. Deforming a plane to create a bump/hollow
โ€ข Start from a bi-quadratic B-spline plane ๐‘†0
with 17x17 inner control point.
โ€ข Target surface ๐‘† must pass through a target
curve above the plane, and a target outline
curve.
โ€ข Outline curve is discretized into 30 points, and
target curve into 11 points.
31
Examples of Use
4. Deforming a plane to create a bump/hollow
โ€ข Constraints:
๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, ๐‘ข๐‘– 1 , ๐‘ฃ๐‘– 1 = ๐ถ๐‘™๐‘œ๐‘ ๐‘’๐‘ ๐‘ก๐‘ƒ๐‘ก ๐‘†0, ๐‘ƒ๐‘–๐‘‚๐‘ข๐‘ก๐‘™๐‘–๐‘›๐‘’
๐ถ๐‘Ž๐‘™๐‘๐‘๐‘œ๐‘Ÿ๐‘š๐‘Ž๐‘™ ๐‘†, ๐‘ข๐‘– 1 , ๐‘ฃ๐‘– 1 = ๐ถ๐‘™๐‘œ๐‘ ๐‘’๐‘ ๐‘ก๐‘๐‘œ๐‘Ÿ๐‘š๐‘Ž๐‘™ ๐‘†0, ๐‘ƒ๐‘–๐‘‚๐‘ข๐‘ก๐‘™๐‘–๐‘›๐‘’
for outline points.
๐‘‡๐‘Ž๐‘Ÿ๐‘”๐‘’๐‘ก
๐ถ๐‘Ž๐‘™๐‘๐‘ƒ๐‘ก ๐‘†, ๐‘ข๐‘– 2 , ๐‘ฃ๐‘– 2 = ๐‘ƒ๐‘–
for target points.
โ€ข Variables:
17 โˆ— 17 โˆ— 3 control point variables,
30 + 11 โˆ— 2 = 82 UV coordinate variables (possible error in paper),
โ€ข Total: 213 constraints in 949 variables.
32
Examples of Use
4. Deforming a plane to create a bump/hollow
โ€ข Experimental results:
โ€ข Initially, outline curve constraints are satisfied, but
not target curve constraints.
โ€ข In first iterations, target curve constraints are improved,
while outline constraints are deteriorated.
โ€ข At about 50 iterations, all constraints tend towards zero.
โ€ข Stopped at 300 iterations.
โ€ข Considered by authors to be a good result
for initial draft.
33
Optimizations & Design Considerations
โ€ข DAGs allow partial re-evaluation of expressions.
โ€ข Needs system for tracking and managing changes in variables.
โ€ข Timestamps for all nodes.
โ€ข Vocabulary of operators:
โ€ข
โ€ข
โ€ข
โ€ข
Arithmetic: +,-,*,/,^,abs,min, max,โ€ฆ
Vector to/from scalar componentsโ€ฆ
Parametric curve/surface creation/evaluation.
Other: ClosestPt, ClosestNormal for parametric and subdivision surfaces,
if-then-elseโ€ฆ
โ€ข Tradeoff:
High-level operations can be compiled into low-level computer code.
Fine-grained operators are better optimized with partial evaluation.
34
Optimizations & Design Considerations
โ€ข DAGs allow partial re-evaluation of expressions.
โ€ข Needs system for tracking and managing changes in variables.
โ€ข Timestamps for all nodes.
โ€ข Vocabulary of operators:
โ€ข
โ€ข
โ€ข
โ€ข
Arithmetic: +,-,*,/,^,abs,min, max,โ€ฆ
Vector to/from scalar componentsโ€ฆ
Parametric curve/surface creation/evaluation.
Other: ClosestPt, ClosestNormal for parametric and subdivision surfaces,
if-then-elseโ€ฆ
โ€ข Tradeoff:
High-level operations can be compiled into low-level computer code.
Fine-grained operators are better optimized with partial evaluation.
35
Optimizations & Design Considerations
โ€ข Labels on โ€œblack boxโ€ nodes:
โ€ข Make them not entirely โ€œblack boxโ€.
โ€ข Label properties such as: continuity and differentiability, convexity, linearity,
etc.
โ€ข How can the solver take advantage of such information?
โ€ข Open problem.
โ€ข Failures, infinite loops, timeouts:
โ€ข Can occur in procedures (โ€œblack boxโ€ nodes).
โ€ข Open problem.
โ€ข Is meaningful handling possible?
36
Optimizations & Design Considerations
โ€ข Persistent naming:
โ€ข Designer may want to preserve features.
โ€ข Example: the depression in example 4.
User may want to move/rotate depression, but not lose it.
โ€ข Feature without โ€œpersistenceโ€ may deform, get disconnected or
disappear.
โ€ข Open problem.
โ€ข Interoperability:
โ€ข Results can be exported as mesh / spline / subdivision surface models.
โ€ข No simple operator history representation.
โ€ข Example: Cylinder -> apply deformation -> move to contact with a boxโ€ฆ
โ€ข Open problem.
37
Thank you!
38