<<

Differential Geometry: Willmore Flow

[Discrete Willmore Flow. Bobenko and Schröder, 2005]

Quaternions are extensions of complex numbers, with 3 imaginary values instead of 1: a + ib + jc + kd Quaternions

Quaternions are extensions of complex numbers, with 3 imaginary values instead of 1: a + ib + jc + kd Like the complex numbers, we can add quaternions together by summing the individual components:

(a1 + ib1 + jc 1 + kd 1 )

+ (a 2 + ib2 + jc 2 + kd 2 )

= (a1 +a2 )+ i (b1 + b2 )+ j (c 1 +c 2 )+ k (d1 +d 2 ) Quaternions

Quaternions are extensions of complex numbers, with 3 imaginary values instead of 1: a + ib + jc + kd Like the imaginary component of complex numbers, squaring the components gives: i 2 = j 2 = k 2 = −1 Quaternions

Quaternions are extensions of complex numbers, with 3 imaginary values instead of 1: a + ib + jc + kd Like the imaginary component of complex numbers, squaring the components gives: i 2 = j 2 = k 2 = −1 However, the multiplication rules are more complex: ij = k ik = − j jk = i ji = −k ki = j kj = −i Quaternions

Quaternions are extensions of complex numbers, with 3 imaginary values instead of 1: a + ib + jc + kd Like the imaginary component of complex numbers, squaring the components gives: 2 2 2 Notei that= j multiplication= k = −1 of However,quaternions the multiplicationis not commutative. rules are more complex: ij = k ik = − j jk = i ji = −k ki = j kj = −i Quaternions

As with complex numbers, we define the conjugate of a q=a+ib+jc+kd as: q = a −ib − jc −kd Quaternions

As with complex numbers, we define the conjugate of a quaternion q=a+ib+jc+kd as: q = a −ib − jc −kd We define the norm of a quaternion q=a+ib+jc+kd as: q = a 2 + b 2 +c 2 +d 2 = qq Quaternions

As with complex numbers, we define the conjugate of a quaternion q=a+ib+jc+kd as: q = a −ib − jc −kd We define the norm of a quaternion q=a+ib+jc+kd as: q = a 2 + b 2 +c 2 +d 2 = qq And, we define the reciprocal by dividing the conjugate by the square norm: 1 q = q q 2 Quaternions

One way to express a quaternion is as a pair consisting of the real value and the 3D vector consisting of the imaginary components: q = (α,w ) with α = a, w = (b,c ,d ) Quaternions

One way to express a quaternion is as a pair consisting of the real value and the 3D vector consisting of the imaginary components: q = (α,w ) with α = a, w = (b,c ,d ) The advantage of this representation is that it is easier to express quaternion multiplication:

q1q 2 = (α1,w 1 )(α 2 ,w 2 )

= (α1α 2 − w 1,w 2 ,α1w 2 +α 2w 1 +w 1 ×w 2 ) Möbius Transformations

If we think of the as the set of complex numbers, any Möbius transformation can be expressed as a fractional linear transformation: az + b f (z) = cz + d with ad-bc≠0. Cross Ratio

A more useful description of a conformal map is in terms of the map: z − z z − z S(z) = 3 2 4 z − z4 z2 − z3 for points z2, z3, z4 in the . Cross Ratio

A more useful description of a conformal map is in terms of the map: z − z z − z S(z) = 3 2 4 z − z4 z2 − z3 for points z2, z3, z4 in the complex plane. The map is a Möbius transformation and has the property that:

S(z2 ) =1 S(z3 ) = 0 S(z4 ) = ∞ Cross Ratio

Claim: Every Möbius transformation can be written in this form. Cross Ratio

Claim: Every Möbius transformation can be written in this form. Proof: Given a Möbius transformation T, we can define the cross-ratio: z −T −1(0) T −1(1) −T −1(∞) S(z) = z −T −1(∞) T −1(1) −T −1(0) which takes the same points to (0,1,∞) as T. Cross Ratio

Claim: Every Möbius transformation can be written in this form. Proof: z −T −1(0) T −1(1) −T −1(∞) S(z) = z −T −1(∞) T −1(1) −T −1(0) But then ST-1 is a transformation that takes (0,1,∞) back to (0,1,∞). Cross Ratio

Claim: Every Möbius transformation can be written in this form. Proof: But if we consider the expression for the Möbius transformation: az + b f (z) = cz + d we see that the only way to have (0,1,∞) map back to itself is to have f(z) be the identity. Cross Ratio

Claim: Every Möbius transformation can be written in this form. Proof: But if we consider the expression for the Möbius transformation: az + b f (z) = cz + d we see that the only way to have (0,1,∞) map back to itself is to have f(z) be the identity. Thus ST-1 is the identity so S=T. Cross Ratio

Definition: Given four (distinct) points in the complex plane z1, z2, z3, z4∈C, the cross-ratio is value:

z1 − z3 z2 − z4 (z1, z2 , z3 , z4 ) = z1 − z4 z2 − z3 Cross Ratio

Definition: Given four (distinct) points in the complex plane z1, z2, z3, z4∈C, the cross-ratio is value:

z1 − z3 z2 − z4 (z1, z2 , z3 , z4 ) = z1 − z4 z2 − z3

That is, the cross-ratio is the image of z1 under the Möbius transformation sending (z2,z3,z4) to (0,1,∞). Cross Ratio

Claim 1:

The cross ratio of four points z1, z2, z3, z4∈C is under Möbius transformations:

(z1, z2 , z3 , z4 ) = (Tz1,Tz2 ,Tz3 ,Tz4 ) Cross Ratio

Claim 1:

The cross ratio of four points z1, z2, z3, z4∈C is invariant under Möbius transformations:

(z1, z2 , z3 , z4 ) = (Tz1,Tz2 ,Tz3 ,Tz4 ) Proof: If S is the Möbius transformation sending z to -1 (z,z2,z3,z4) then ST takes (Tz2,Tz3,Tz4) to (0,1,∞). Cross Ratio

Claim 1:

The cross ratio of four points z1, z2, z3, z4∈C is invariant under Möbius transformations:

(z1, z2 , z3 , z4 ) = (Tz1,Tz2 ,Tz3 ,Tz4 ) Proof: If S is the Möbius transformation sending z to -1 (z,z2,z3,z4) then ST takes (Tz2,Tz3,Tz4) to (0,1,∞). But that means that: −1 ST (Tz1) = (Tz1,Tz2 ,Tz3 ,Tz4 ) Cross Ratio

Claim 1:

The cross ratio of four points z1, z2, z3, z4∈C is invariant under Möbius transformations:

(z1, z2 , z3 , z4 ) = (Tz1,Tz2 ,Tz3 ,Tz4 ) Proof: If S is the Möbius transformation sending z to -1 (z,z2,z3,z4) then ST takes (Tz2,Tz3,Tz4) to (0,1,∞). But that means that: −1 ST (Tz1) = (Tz1,Tz2 ,Tz3 ,Tz4 )

(z1, z2 , z3 , z4 ) = (Tz1,Tz2 ,Tz3 ,Tz4 ) Cross Ratio

Claim 2:

Given the four points z1, z2, z3, z4∈C, the of the cross ratio is π-β, where β is the angle between the circum-circles.

z4

z1

z2 β z3 Cross Ratio

Claim 2:

Given the four points z1, z2, z3, z4∈C, the angle of the cross ratio is π-β, where β is the angle between the circum-circles. Proof: z The angle of the product of two 4 complex numbers is the sum of their : z1 arg(c ⋅c ) = arg(c ) + arg(c ) 1 2 1 2 z2

iθ1 iθ2 i(θ1 +θ2 ) β r1e r2e = r1r2e z3 Cross Ratio

Claim 2:

Given the four points z1, z2, z3, z4∈C, the angle of the cross ratio is π-β, where β is the angle between the circum-circles. Proof: z Thus, the angle of the cross-ratio: 4 z1 − z3 z2 − z4 (z1, z2 , z3 , z4 ) = z1 − z4 z2 − z3 is the sum: z1  z − z   z − z  =  1 3  +  2 4  z arg(z1, z2 , z3 , z4 ) arg  arg  2  z1 − z4   z2 − z3  β z3 Cross Ratio

Claim 2:

Given the four points z1, z2, z3, z4∈C, the angle of the cross ratio is π-β, where β is the angle between the circum-circles. Proof: z − z z − z 1 3 2 4 z4 (z1, z2 , z3 , z4 ) = z1 − z4 z2 − z3 But the angle of (z1-z3)/(z1-z4) is z the difference between the 1 z angles of (z3-z1) and (z4-z1). 2 β z3 Cross Ratio

Claim 2:

Given the four points z1, z2, z3, z4∈C, the angle of the cross ratio is π-β, where β is the angle between the circum-circles. Proof: z − z z − z 1 3 2 4 z4 (z1, z2 , z3 , z4 ) = z1 − z4 z2 − z3 Similarly, we know that the

z1 angle of (z2-z4)/(z2-z3) is…

z2 β z3 Cross Ratio

Claim 2:

Given the four points z1, z2, z3, z4∈C, the angle of the cross ratio is π-β, where β is the angle between the circum-circles. Proof: z − z z − z 1 3 2 4 z4 (z1, z2 , z3 , z4 ) = z1 − z4 z2 − z3 So, the angle of the cross-ratio z is the sum of the angles that 1

are opposite the edge, which is z2 β exactly π-β. z3 Cross Ratio

Claim 2:

Given the four points z1, z2, z3, z4∈C, the angle of the cross ratio is π-β, where β is the angle between the circum-circles. Note: For a c∈C, the cosine of the angle of c is just the real part of c c=a+ib divided by its length, so we have: |c| b a Re(z , z , z , z ) Re(z , z , z , z ) cos(π − β ) = 1 2 3 4 cos β = − 1 2 3 4 (z1, z2 , z3 , z4 ) (z1, z2 , z3 , z4 ) “Extended” Cross Ratio

We can extend the notion of cross-ratio to 3D by using the imaginary parts of quaternions. “Extended” Cross Ratio

We can extend the notion of cross-ratio to 3D by using the imaginary parts of quaternions. Specifically, given a point p=(x,y,z)∈R3, we can associate it with the quaternion:

q p = ix + jy + kz “Extended” Cross Ratio

3 Then, given four points p1, p2, p3, p4∈R associated with four imaginary quaternions q1,q2,q3,q4∈Q, we can define the quaternionic cross-ratio: 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 )

p4

p3 p1 p2 “Extended” Cross Ratio 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 ) While it is not true that the quaternionic cross- product is Möbius-invariant, the real part and the norm of the cross-product are.

p4

p3 p1 p2 “Extended” Cross Ratio 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 ) While it is not true that the quaternionic cross- product is Möbius-invariant, the real part and the norm of the cross-product are. Thus, the ratio of the real part to the norm is also Möbius-invariant.

p4 Re(q1,q2 ,q3 ,q4 )

(q1,q2 ,q3 ,q4 ) p3 p1 p2 “Extended” Cross Ratio 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 ) Since we can fit a to the four points, we can find a Möbius transformation that takes a point on the sphere (not one of the four) to ∞.

p4

p3 p1 p2 “Extended” Cross Ratio 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 ) Since we can fit a sphere to the four points, we can find a Möbius transformation that takes a point on the sphere (not one of the four) to ∞. This would map the sphere to a plane, so that the two triangles in 3D would become planar triangles. p4 p4

p 1 p p3 p2 1 p2 p3 “Extended” Cross Ratio 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 ) In the planar case, the real-part of the quaternionic cross-product equals the real part of the complex cross-product, and the norm of the quaternionic cross-product equals the norm of the complex cross-product.

p4 p4

p 1 p p3 p2 1 p2 p3 “Extended” Cross Ratio 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 ) On the other hand, since the map was conformal it had to preserve the angles between the circum-circles.

p4 p4

p 1 p p3 p2 1 p2 p3 “Extended” Cross Ratio 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 ) On the other hand, since the map was conformal it had to preserve the angles between the circum-circles. Thus, we can express the intersection angle between the circum-circles as:

Re(q ,q ,q ,q ) p4 cos β = − 1 2 3 4 (q1,q2 ,q3 ,q4 ) β p3 p1 p2 “Extended” Cross Ratio 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 ) If we set A, B, C, D to be the difference vectors and a=A/|A|, b=B/|B|, c=C/|C|, d=D/|D| to be the normalized difference vectors, we get: Re(q ,q ,q ,q ) Re(AD−1CB−1 ) β = − 1 2 3 4 = − cos −1 −1 (q1,q2 ,q3 ,q4 ) AD CB

−1 −1 p = − Re(ad cb ) 4 D C = − Re(adcb ) A p p3 B = − Re(adcb) 1 p2 “Extended” Cross Ratio 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 ) If we set A, B, C, D to be the difference vectors and a=A/|A|, b=B/|B|, c=C/|C|, d=D/|D| to be the normalized difference vectors, we get: Re(q ,q ,q ,q ) Re(AD−1CB−1 ) β = − 1 2 3 4 = − cos −1 −1 (q1,q2 ,q3 ,q4 ) AD CB

−1 −1 p = − Re(ad cb ) 4 D C = − Re(adcb ) A p p3 B = − Re(adcb) 1 p2 “Extended” Cross Ratio 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 ) If we set A, B, C, D to be the difference vectors and a=A/|A|, b=B/|B|, c=C/|C|, d=D/|D| to be the normalized difference vectors, we get: Re(q ,q ,q ,q ) Re(AD−1CB−1 ) β = − 1 2 3 4 = − cos −1 −1 (q1,q2 ,q3 ,q4 ) AD CB

−1 −1 p = − Re(ad cb ) 4 D C = − Re(adcb ) A p p3 B = − Re(adcb) 1 p2 “Extended” Cross Ratio 1 1 (q1,q2 ,q3 ,q4 ) = (q1 − q3 ) (q2 − q4 ) (q1 − q4 ) (q2 − q3 ) If we set A, B, C, D to be the difference vectors and a=A/|A|, b=B/|B|, c=C/|C|, d=D/|D| to be the normalized difference vectors, we get: Re(q ,q ,q ,q ) Re(AD−1CB−1 ) β = − 1 2 3 4 = − cos −1 −1 (q1,q2 ,q3 ,q4 ) AD CB

−1 −1 p = − Re(ad cb ) 4 D C = − Re(adcb ) A p p3 B = − Re(adcb) 1 p2 “Extended” Cross Ratio

Putting it all together, we get: cos β = − a,b c,d − b,c d,a + a,c b,d

A B a = b = | A | | B | C D c = d = | C | | D |

p4

D C A p3 B p1 p2 Willmore Energy

Putting it all together, we get: cos β = − a,b c,d − b,c d,a + a,c b,d Thus, we get a closed-form expression for the component of the Willmore energy at vertex v that comes from edge e:

−1 Re(Q)  E(v,e) = cos −  e  | Q |  where Q is the cross-ratio.

vi Willmore Energy

cos β = − a,b c,d − b,c d,a + a,c b,d In order to flow the surface to minimize the Willmore energy, we need to compute the gradient of the energy.

A B a = b = | A | | B | C D c = d = | C | | D | p4

D C A p3 B p1 p2 Willmore Energy

cos β = − a,b c,d − b,c d,a + a,c b,d In order to flow the surface to minimize the Willmore energy, we need to compute the gradient of the energy.

Taking the gradient with respect to p1, we get: A B ∂ cos β ∂ a,b c,d ∂ b,c d,a ∂ a,c b,d a = b = = − − + | A | | B | ∂p ∂p ∂p ∂p C D 1 1 1 1 c = d = | C | | D | p4

D C A p3 B p1 p2 Willmore Energy

∂ cos β ∂ a,b c,d ∂ b,c d,a ∂ a,c b,d = − − + ∂p1 ∂p1 ∂p1 ∂p1 With a bit of manipulation we get: ∂ cos β  cos β b,c   a,c c,d  =  −  +  −   2 A  B ∂p1  | A | | A || D |   | B || D | | A || B |   a,b b,d   cos β b,c  −  −  −  −   C  2 D  | C || D | | A || C |   | D | | A || D |  A B a = b = | A | | B | C D c = d = | C | | D | p4

D C A p3 B p1 p2 Willmore Energy

∂ cos β ∂ a,b c,d ∂ b,c d,a ∂ a,c b,d = − − + ∂p1 ∂p1 ∂p1 ∂p1 With a bit of manipulation we get: ∂ cos β  cos β b,c   a,c c,d  =  −  +  −   2 A  B ∂p1  | A | | A || D |   | B || D | | A || B |   a,b b,d   cos β b,c  −  −  −  −   C  2 D  | C || D | | A || C |   | D | | A || D |  Thus, we get: ∂β 1  cos β b,c   a,c c,d  = −  − A +  − B ∂ β  2    p1 sin  | A | | A || D |   | B || D | | A || B |   a,b b,d   cos β b,c   −  −  −  −   C  2 D  | C || D | | A || C |   | D | | A || D |   Willmore Energy

cos β (a,b,c,d) = − a,b c,d − b,c d,a + a,c b,d To compute the other gradients, we can either work through the math again, or we can observe that β doesn’t change if we shift the indices: cos β (a,b,c,d) = cos β (b,c,d,a)

Thus, to compute the gradient w.r.t. p3, we can just permute and use the equation from p1. p 4 p4

D C D C A p A p 3 B p3 B 1 p1 p 2 p2 Willmore Energy

∂β 1  cos β b,c   a,c c,d   a,b b,d   cos β b,c   = −  − A +  − B−  − C −  − D β  2       2  ∂p1 sin  | A | | A || D |   | B || D | | A || B |   | C || D | | A || C |   | D | | A || D |   Using the equation for the gradient of the Willmore energy, we can flow the surface in order to minimize the total energy. Willmore Energy

∂β 1  cos β b,c   a,c c,d   a,b b,d   cos β b,c   = −  − A +  − B−  − C −  − D β  2       2  ∂p1 sin  | A | | A || D |   | B || D | | A || B |   | C || D | | A || C |   | D | | A || D |   As with the harmonic energy, we can linearize the system, treating everything but the difference vectors A, B, C, D as constant. Willmore Energy

∂β 1  cos β b,c   a,c c,d   a,b b,d   cos β b,c   = −  − A +  − B−  − C −  − D β  2       2  ∂p1 sin  | A | | A || D |   | B || D | | A || B |   | C || D | | A || C |   | D | | A || D |   As with the harmonic energy, we can linearize the system, treating everything but the difference vectors A, B, C, D as constant. This gives us the Hessian and allows us to use semi-implicit integration to flow with more stability. Willmore Energy

∂β 1  cos β b,c   a,c c,d   a,b b,d   cos β b,c   = −  − A +  − B−  − C −  − D β  2       2  ∂p1 sin  | A | | A || D |   | B || D | | A || B |   | C || D | | A || C |   | D | | A || D |   As with the harmonic energy, we can linearize the system, treating everything but the difference vectors A, B, C, D as constant. This gives us the Hessian and allows us to use semi-implicit integration to flow with more stability. Note that, as with the harmonic energy, this has the nice property that the system we need to solve is nxn, not 3nx3n. Willmore Energy

Since the system is fourth order, the flow is constrained by specifying both the positions and the normals of points on the boundary. Willmore Energy

If we constrain the points and normals on the boundary of a patch inside a surface, we can use Willmore flow to smoothly evolve the patch while ensuring that the normals of the evolved patch match up with the original surface. Willmore Energy

∂β 1  cos β b,c   a,c c,d   a,b b,d   cos β b,c   = −  − A +  − B−  − C −  − D β  2       2  ∂p1 sin  | A | | A || D |   | B || D | | A || B |   | C || D | | A || C |   | D | | A || D |   Some Subtlety: In the case that β=0, the expression for the energy gradient falls apart. Willmore Energy

∂β 1  cos β b,c   a,c c,d   a,b b,d   cos β b,c   = −  − A +  − B−  − C −  − D β  2       2  ∂p1 sin  | A | | A || D |   | B || D | | A || B |   | C || D | | A || C |   | D | | A || D |   Some Subtlety: If we assume that the angle β is zero, then this must imply that the four points all reside on a common circle.

p4

p4

p β 1 p2 p p1 3 p2 p3 Willmore Energy

∂β 1  cos β b,c   a,c c,d   a,b b,d   cos β b,c   = −  − A +  − B−  − C −  − D β  2       2  ∂p1 sin  | A | | A || D |   | B || D | | A || B |   | C || D | | A || C |   | D | | A || D |   Some Subtlety:

Thus, in moving p1 (infinitesimally) we will only effect the angle β if we move p1 in a direction perpendicular to the tangent of the circle at p1. And in that case, we must increase β, and the p4 rate of change will p not depend on the 4 p β 1 p2 p perpendicular p1 3 p p2 direction. 3 Willmore Energy

∂β 1  cos β b,c   a,c c,d   a,b b,d   cos β b,c   = −  − A +  − B−  − C −  − D β  2       2  ∂p1 sin  | A | | A || D |   | B || D | | A || B |   | C || D | | A || C |   | D | | A || D |   Some Subtlety: So, if the contribution to the gradient of the

Willmore energy w.r.t. p1 from all other triangles is G, the final gradient will use the (negative) part of G that is parallel to the tangent and may p use a part in the 4 p perpendicular 4 p β direction if it can 1 p2 p p1 3 p2 offset the detriment. p3 Willmore Energy

∂β 1  cos β b,c   a,c c,d   a,b b,d   cos β b,c   = −  − A +  − B−  − C −  − D β  2       2  ∂p1 sin  | A | | A || D |   | B || D | | A || B |   | C || D | | A || C |   | D | | A || D |   Some Subtlety:

Things get messier still if the point p1 is adjacent to multiple edges with vanishing angles of circum-circle intersection.

p4

p4

p β 1 p2 p p1 3 p2 p3