+ All Categories
Home > Documents > Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Date post: 01-Jan-2017
Category:
Upload: lamthu
View: 265 times
Download: 2 times
Share this document with a friend
320
Laplace-Beltrami: The Swiss Army Knife of Geometry Processing (SGP 2014 Tutorial—July 7 2014) Justin Solomon / Stanford University Keenan Crane / Columbia University Etienne Vouga / Harvard University
Transcript
Page 1: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace-Beltrami:The Swiss Army Knife of Geometry Processing

(SGP 2014 Tutorial—July 7 2014)

Justin Solomon / Stanford UniversityKeenan Crane / Columbia UniversityEtienne Vouga / Harvard University

Page 2: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

INTRODUCTION

Page 3: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Laplace-Beltrami operator (“Laplacian”) provides a basis fora diverse variety of geometry processing tasks.

• Remarkably common pipeline:1 simple pre-processing (build f )2 solve a PDE involving the Laplacian (e.g., ∆u = f )3 simple post-processing (do something with u)

• Expressing tasks in terms of Laplacian/smooth PDEsmakes life easier at code/implementation level.

• Lots of existing theory to help understand/interpretalgorithms, provide analysis/guarantees.

• Also makes it easy to work with a broad range ofgeometric data structures (meshes, point clouds, etc.)

Page 4: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Laplace-Beltrami operator (“Laplacian”) provides a basis fora diverse variety of geometry processing tasks.

• Remarkably common pipeline:

1 simple pre-processing (build f )2 solve a PDE involving the Laplacian (e.g., ∆u = f )3 simple post-processing (do something with u)

• Expressing tasks in terms of Laplacian/smooth PDEsmakes life easier at code/implementation level.

• Lots of existing theory to help understand/interpretalgorithms, provide analysis/guarantees.

• Also makes it easy to work with a broad range ofgeometric data structures (meshes, point clouds, etc.)

Page 5: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Laplace-Beltrami operator (“Laplacian”) provides a basis fora diverse variety of geometry processing tasks.

• Remarkably common pipeline:1 simple pre-processing (build f )

2 solve a PDE involving the Laplacian (e.g., ∆u = f )3 simple post-processing (do something with u)

• Expressing tasks in terms of Laplacian/smooth PDEsmakes life easier at code/implementation level.

• Lots of existing theory to help understand/interpretalgorithms, provide analysis/guarantees.

• Also makes it easy to work with a broad range ofgeometric data structures (meshes, point clouds, etc.)

Page 6: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Laplace-Beltrami operator (“Laplacian”) provides a basis fora diverse variety of geometry processing tasks.

• Remarkably common pipeline:1 simple pre-processing (build f )2 solve a PDE involving the Laplacian (e.g., ∆u = f )

3 simple post-processing (do something with u)

• Expressing tasks in terms of Laplacian/smooth PDEsmakes life easier at code/implementation level.

• Lots of existing theory to help understand/interpretalgorithms, provide analysis/guarantees.

• Also makes it easy to work with a broad range ofgeometric data structures (meshes, point clouds, etc.)

Page 7: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Laplace-Beltrami operator (“Laplacian”) provides a basis fora diverse variety of geometry processing tasks.

• Remarkably common pipeline:1 simple pre-processing (build f )2 solve a PDE involving the Laplacian (e.g., ∆u = f )3 simple post-processing (do something with u)

• Expressing tasks in terms of Laplacian/smooth PDEsmakes life easier at code/implementation level.

• Lots of existing theory to help understand/interpretalgorithms, provide analysis/guarantees.

• Also makes it easy to work with a broad range ofgeometric data structures (meshes, point clouds, etc.)

Page 8: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Laplace-Beltrami operator (“Laplacian”) provides a basis fora diverse variety of geometry processing tasks.

• Remarkably common pipeline:1 simple pre-processing (build f )2 solve a PDE involving the Laplacian (e.g., ∆u = f )3 simple post-processing (do something with u)

• Expressing tasks in terms of Laplacian/smooth PDEsmakes life easier at code/implementation level.

• Lots of existing theory to help understand/interpretalgorithms, provide analysis/guarantees.

• Also makes it easy to work with a broad range ofgeometric data structures (meshes, point clouds, etc.)

Page 9: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Laplace-Beltrami operator (“Laplacian”) provides a basis fora diverse variety of geometry processing tasks.

• Remarkably common pipeline:1 simple pre-processing (build f )2 solve a PDE involving the Laplacian (e.g., ∆u = f )3 simple post-processing (do something with u)

• Expressing tasks in terms of Laplacian/smooth PDEsmakes life easier at code/implementation level.

• Lots of existing theory to help understand/interpretalgorithms, provide analysis/guarantees.

• Also makes it easy to work with a broad range ofgeometric data structures (meshes, point clouds, etc.)

Page 10: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Laplace-Beltrami operator (“Laplacian”) provides a basis fora diverse variety of geometry processing tasks.

• Remarkably common pipeline:1 simple pre-processing (build f )2 solve a PDE involving the Laplacian (e.g., ∆u = f )3 simple post-processing (do something with u)

• Expressing tasks in terms of Laplacian/smooth PDEsmakes life easier at code/implementation level.

• Lots of existing theory to help understand/interpretalgorithms, provide analysis/guarantees.

• Also makes it easy to work with a broad range ofgeometric data structures (meshes, point clouds, etc.)

Page 11: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Goals of this tutorial:

• Understand the Laplacian in the smooth setting. (Etienne)

• Build the Laplacian in the discrete setting. (Keenan)

• Use Laplacian to implement a variety of methods. (Justin)

Page 12: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Goals of this tutorial:• Understand the Laplacian in the smooth setting. (Etienne)

• Build the Laplacian in the discrete setting. (Keenan)

• Use Laplacian to implement a variety of methods. (Justin)

Page 13: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Goals of this tutorial:• Understand the Laplacian in the smooth setting. (Etienne)

• Build the Laplacian in the discrete setting. (Keenan)

• Use Laplacian to implement a variety of methods. (Justin)

Page 14: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Introduction

• Goals of this tutorial:• Understand the Laplacian in the smooth setting. (Etienne)

• Build the Laplacian in the discrete setting. (Keenan)

• Use Laplacian to implement a variety of methods. (Justin)

Page 15: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

SMOOTH THEORY

Page 16: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

The Interpolation Problem

Ω

∂Ω

f = −1

f = 1

• given:• region Ω ⊂ R2 with boundary ∂Ω• function f on ∂Ω

fill in f “as smoothly as possible”

• (what does this even mean?)• smooth:

• constant functions• linear functions

• not smooth:• f not C1

• large variations over short distances• (‖∇f‖ large)

Page 17: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

The Interpolation Problem

Ω

∂Ω

f = −1

f = 1

• given:• region Ω ⊂ R2 with boundary ∂Ω• function f on ∂Ω

fill in f “as smoothly as possible”

• (what does this even mean?)

• smooth:• constant functions• linear functions

• not smooth:• f not C1

• large variations over short distances• (‖∇f‖ large)

Page 18: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

The Interpolation Problem

Ω

∂Ω

f = −1

f = 1

• given:• region Ω ⊂ R2 with boundary ∂Ω• function f on ∂Ω

fill in f “as smoothly as possible”

• (what does this even mean?)• smooth:

• constant functions• linear functions

• not smooth:• f not C1

• large variations over short distances• (‖∇f‖ large)

Page 19: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

The Interpolation Problem

Ω

∂Ω

f = −1

f = 1

• given:• region Ω ⊂ R2 with boundary ∂Ω• function f on ∂Ω

fill in f “as smoothly as possible”

• (what does this even mean?)• smooth:

• constant functions• linear functions

• not smooth:• f not C1

• large variations over short distances• (‖∇f‖ large)

Page 20: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

The Interpolation Problem

Ω

∂Ω

f = −1

f = 1

• given:• region Ω ⊂ R2 with boundary ∂Ω• function f on ∂Ω

fill in f “as smoothly as possible”

• (what does this even mean?)• smooth:

• constant functions• linear functions

• not smooth:• f not C1

• large variations over short distances• (‖∇f‖ large)

Page 21: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dirichlet Energy

non-smooth f (x)

〈∇f ,∇f 〉

• E(f ) =∫

Ω〈∇f ,∇f 〉 dA• properties:

• nonnegative• zero for constant functions• measures smoothness

• solution to interpolation problem isminimizer of E

• how do we find minimum?

Page 22: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dirichlet Energy

non-smooth f (x)

〈∇f ,∇f 〉

• E(f ) =∫

Ω〈∇f ,∇f 〉 dA• properties:

• nonnegative• zero for constant functions• measures smoothness

• solution to interpolation problem isminimizer of E

• how do we find minimum?

Page 23: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dirichlet Energy

non-smooth f (x)

〈∇f ,∇f 〉

• E(f ) =∫

Ω〈∇f ,∇f 〉 dA• properties:

• nonnegative• zero for constant functions• measures smoothness

• solution to interpolation problem isminimizer of E

• how do we find minimum?

Page 24: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dirichlet Energy

non-smooth f (x)

〈∇f ,∇f 〉

• E(f ) =∫

Ω〈∇f ,∇f 〉 dA• it can be shown that:

• E(f ) = C−∫

Ω f ∆f dA

• −2∆f is the gradient of Dirichlet energy• f minimizes E if ∆f = 0

• PDE form (Laplace’s Equation):

∆f (x) = 0 x ∈ Ω

f (x) = f0(x) x ∈ ∂Ω

• physical interpretation: temperature atsteady state

Page 25: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dirichlet Energy

non-smooth f (x)

∆f

• E(f ) =∫

Ω〈∇f ,∇f 〉 dA• it can be shown that:

• E(f ) = C−∫

Ω f ∆f dA• −2∆f is the gradient of Dirichlet energy

• f minimizes E if ∆f = 0

• PDE form (Laplace’s Equation):

∆f (x) = 0 x ∈ Ω

f (x) = f0(x) x ∈ ∂Ω

• physical interpretation: temperature atsteady state

Page 26: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dirichlet Energy

non-smooth f (x)

∆f

• E(f ) =∫

Ω〈∇f ,∇f 〉 dA• it can be shown that:

• E(f ) = C−∫

Ω f ∆f dA• −2∆f is the gradient of Dirichlet energy• f minimizes E if ∆f = 0

• PDE form (Laplace’s Equation):

∆f (x) = 0 x ∈ Ω

f (x) = f0(x) x ∈ ∂Ω

• physical interpretation: temperature atsteady state

Page 27: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dirichlet Energy

non-smooth f (x)

solution ∆f = 0

• E(f ) =∫

Ω〈∇f ,∇f 〉 dA• it can be shown that:

• E(f ) = C−∫

Ω f ∆f dA• −2∆f is the gradient of Dirichlet energy• f minimizes E if ∆f = 0

• PDE form (Laplace’s Equation):

∆f (x) = 0 x ∈ Ω

f (x) = f0(x) x ∈ ∂Ω

• physical interpretation: temperature atsteady state

Page 28: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dirichlet Energy

non-smooth f (x)

solution ∆f = 0

• E(f ) =∫

Ω〈∇f ,∇f 〉 dA• it can be shown that:

• E(f ) = C−∫

Ω f ∆f dA• −2∆f is the gradient of Dirichlet energy• f minimizes E if ∆f = 0

• PDE form (Laplace’s Equation):

∆f (x) = 0 x ∈ Ω

f (x) = f0(x) x ∈ ∂Ω

• physical interpretation: temperature atsteady state

Page 29: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

On a Surfacef = −1

f = 1

boundary conditions nonsmooth f (x)

• can still define Dirichlet energy E(f ) =∫

M〈∇f ,∇f 〉• ∇E(f ) = −∆f , now ∆ is the Laplace-Beltrami operator of M

• also works in higher dimensions, on discrete graphs/pointclouds, . . .

Page 30: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

On a Surfacef = −1

f = 1

boundary conditions nonsmooth f (x) 〈∇f ,∇f 〉

• can still define Dirichlet energy E(f ) =∫

M〈∇f ,∇f 〉

• ∇E(f ) = −∆f , now ∆ is the Laplace-Beltrami operator of M

• also works in higher dimensions, on discrete graphs/pointclouds, . . .

Page 31: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

On a Surfacef = −1

f = 1

boundary conditions nonsmooth f (x) ∆f = 0

• can still define Dirichlet energy E(f ) =∫

M〈∇f ,∇f 〉• ∇E(f ) = −∆f , now ∆ is the Laplace-Beltrami operator of M

• also works in higher dimensions, on discrete graphs/pointclouds, . . .

Page 32: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

On a Surfacef = −1

f = 1

boundary conditions nonsmooth f (x) ∆f = 0

• can still define Dirichlet energy E(f ) =∫

M〈∇f ,∇f 〉• ∇E(f ) = −∆f , now ∆ is the Laplace-Beltrami operator of M

• also works in higher dimensions, on discrete graphs/pointclouds, . . .

Page 33: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Existence and Uniqueness

• Laplace’s equation

∆f (x) = 0 x ∈ M

f (x) = f0(x) x ∈ ∂M

has a unique solution for all reasonable1 surfaces M

1e.g. compact, smooth, with piecewise smooth boundary

Page 34: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Existence and Uniqueness

• Laplace’s equation

∆f (x) = 0 x ∈ M

f (x) = f0(x) x ∈ ∂M

has a unique solution for all reasonable1 surfaces M

• physical interpretation: apply heating/cooling f0 to theboundary of a metal plate. Interior temperature will reachsome steady state

• gradient descent is exactly the heat or diffusion equation

dfdt(x) = ∆f (x).

1e.g. compact, smooth, with piecewise smooth boundary

Page 35: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Existence and Uniqueness

• Laplace’s equation

∆f (x) = 0 x ∈ M

f (x) = f0(x) x ∈ ∂M

has a unique solution for all reasonable1 surfaces M

• physical interpretation: apply heating/cooling f0 to theboundary of a metal plate. Interior temperature will reachsome steady state

• gradient descent is exactly the heat or diffusion equation

dfdt(x) = ∆f (x).

1e.g. compact, smooth, with piecewise smooth boundary

Page 36: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Heat Equation Illustrated

time

Page 37: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Boundary Conditions

Ω

∂ΩD

∂ΩN

g0 = 0

f0 = −1

f0 = 1

• can specify ∇f · n on boundary insteadof f :

∆f (x) = 0 x ∈ Ω

f (x) = f0(x) x ∈ ∂ΩD (Dirichlet bdry)

∇f · n = g0(x) x ∈ ∂ΩN (Neumann bdry)

• usually: g0 = 0 (natural bdry conds)

• physical interpretation: free boundarythrough which heat cannot flow

Page 38: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Boundary Conditions

Ω

∂ΩD

∂ΩN

g0 = 0

f0 = −1

f0 = 1

• can specify ∇f · n on boundary insteadof f :

∆f (x) = 0 x ∈ Ω

f (x) = f0(x) x ∈ ∂ΩD (Dirichlet bdry)

∇f · n = g0(x) x ∈ ∂ΩN (Neumann bdry)

• usually: g0 = 0 (natural bdry conds)

• physical interpretation: free boundarythrough which heat cannot flow

Page 39: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Boundary Conditions

Ω

∂ΩD

∂ΩN

g0 = 0

f0 = −1

f0 = 1

• can specify ∇f · n on boundary insteadof f :

∆f (x) = 0 x ∈ Ω

f (x) = f0(x) x ∈ ∂ΩD (Dirichlet bdry)

∇f · n = g0(x) x ∈ ∂ΩN (Neumann bdry)

• usually: g0 = 0 (natural bdry conds)

• physical interpretation: free boundarythrough which heat cannot flow

Page 40: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Interpolation with ∆ in Practice

in geometry processing:

• positions

• displacements

• vector fields

• parameterizations

• . . . you name it

Joshi et al

Eck et al

Sorkine and Cohen-Or

Page 41: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Heat Equation with Sourcef = −1

∂f∂t = 1

• what if you add heat sources inside Ω?

dfdt(x) = g(x) + ∆f (x)

• PDE form: Poisson’s equation

∆f (x) = g(x) x ∈ Ω

f (x) = f0(x) x ∈ ∂Ω

• common variational problem:

minf

∫M〈∇f − v,∇f − v〉 dA

• becomes Poisson problem, g = ∇ · v

Page 42: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Heat Equation with Sourcef = −1

∂f∂t = 1

• what if you add heat sources inside Ω?

dfdt(x) = g(x) + ∆f (x)

• PDE form: Poisson’s equation

∆f (x) = g(x) x ∈ Ω

f (x) = f0(x) x ∈ ∂Ω

• common variational problem:

minf

∫M〈∇f − v,∇f − v〉 dA

• becomes Poisson problem, g = ∇ · v

Page 43: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Heat Equation with Sourcef = −1

∂f∂t = 1

• what if you add heat sources inside Ω?

dfdt(x) = g(x) + ∆f (x)

• PDE form: Poisson’s equation

∆f (x) = g(x) x ∈ Ω

f (x) = f0(x) x ∈ ∂Ω

• common variational problem:

minf

∫M〈∇f − v,∇f − v〉 dA

• becomes Poisson problem, g = ∇ · v

Page 44: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Heat Equation with Sourcef = −1

∂f∂t = 1

• what if you add heat sources inside Ω?

dfdt(x) = g(x) + ∆f (x)

• PDE form: Poisson’s equation

∆f (x) = g(x) x ∈ Ω

f (x) = f0(x) x ∈ ∂Ω

• common variational problem:

minf

∫M〈∇f − v,∇f − v〉 dA

• becomes Poisson problem, g = ∇ · v

Page 45: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Heat Equation with Sourcef = −1

∂f∂t = 1

• what if you add heat sources inside Ω?

dfdt(x) = g(x) + ∆f (x)

• PDE form: Poisson’s equation

∆f (x) = g(x) x ∈ Ω

f (x) = f0(x) x ∈ ∂Ω

• common variational problem:

minf

∫M〈∇f − v,∇f − v〉 dA

• becomes Poisson problem, g = ∇ · v

Page 46: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Algebraic Properties I

• linearity: ∆ (f (x) + αg(x)) = ∆f (x) + α∆g(x)

• constants in kernel: ∆α = 0

for functions that vanish on ∂M:

• self-adjoint:∫

Mf ∆g dA = −

∫M〈∇f ,∇g〉 dA =

∫M

g∆f dA

• negative:∫

Mf ∆f dA ≤ 0

(intuition: ∆ ≈ an ∞-dimensional negative-semidefinite matrix)

Page 47: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Algebraic Properties I

• linearity: ∆ (f (x) + αg(x)) = ∆f (x) + α∆g(x)

• constants in kernel: ∆α = 0

for functions that vanish on ∂M:

• self-adjoint:∫

Mf ∆g dA = −

∫M〈∇f ,∇g〉 dA =

∫M

g∆f dA

• negative:∫

Mf ∆f dA ≤ 0

(intuition: ∆ ≈ an ∞-dimensional negative-semidefinite matrix)

Page 48: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Algebraic Properties I

• linearity: ∆ (f (x) + αg(x)) = ∆f (x) + α∆g(x)

• constants in kernel: ∆α = 0

for functions that vanish on ∂M:

• self-adjoint:∫

Mf ∆g dA = −

∫M〈∇f ,∇g〉 dA =

∫M

g∆f dA

• negative:∫

Mf ∆f dA ≤ 0

(intuition: ∆ ≈ an ∞-dimensional negative-semidefinite matrix)

Page 49: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Algebraic Properties I

• linearity: ∆ (f (x) + αg(x)) = ∆f (x) + α∆g(x)

• constants in kernel: ∆α = 0

for functions that vanish on ∂M:

• self-adjoint:∫

Mf ∆g dA = −

∫M〈∇f ,∇g〉 dA =

∫M

g∆f dA

• negative:∫

Mf ∆f dA ≤ 0

(intuition: ∆ ≈ an ∞-dimensional negative-semidefinite matrix)

Page 50: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Solving Poisson’s Equation with Green’s Functions

• the Green’s function G on R2 solves ∆f = g for g = δ

• linearity: if g = ∑ αiδ(x− xi), f = ∑ αiG(x− xi)

• for any g, f = G ∗ g

δ(x) G(x)

Page 51: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Solving Poisson’s Equation with Green’s Functions

• the Green’s function G on R2 solves ∆f = g for g = δ

• linearity: if g = ∑ αiδ(x− xi), f = ∑ αiG(x− xi)

• for any g, f = G ∗ g

δ(x) G(x)

Page 52: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Solving Poisson’s Equation with Green’s Functions

• the Green’s function G on R2 solves ∆f = g for g = δ

• linearity: if g = ∑ αiδ(x− xi), f = ∑ αiG(x− xi)

• for any g, f = G ∗ g

δ(x) G(x)

Page 53: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Algebraic Properties IIa function f : M→ R with ∆f = 0 is called harmonic. Properties:

• f is smooth and analytic

• f (x) is the average of f over any disk around x:

f (x) =1

πr2

∫B(x,r)

f (y) dA

some harmonic f (x, y)

Page 54: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Algebraic Properties IIa function f : M→ R with ∆f = 0 is called harmonic. Properties:

• f is smooth and analytic• f (x) is the average of f over any disk around x:

f (x) =1

πr2

∫B(x,r)

f (y) dA

Page 55: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Algebraic Properties IIa function f : M→ R with ∆f = 0 is called harmonic. Properties:

• f is smooth and analytic• f (x) is the average of f over any disk around x:

f (x) =1

πr2

∫B(x,r)

f (y) dA

• maximum principle: f has no local maxima or minima in M

Page 56: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Algebraic Properties IIa function f : M→ R with ∆f = 0 is called harmonic. Properties:

• f is smooth and analytic• f (x) is the average of f over any disk around x:

f (x) =1

πr2

∫B(x,r)

f (y) dA

• maximum principle: f has no local maxima or minima in M

• (can have saddle points)

Page 57: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Geometric Properties I

for a curve γ(u) = (x[u], y[u]) : R→ R2

• ∆γ = (∆x, ∆y) is gradient of arc length

• ∆γ is the curvature normal κn

• minimal curves are harmonic

(straight lines)

Page 58: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Geometric Properties I

for a curve γ(u) = (x[u], y[u]) : R→ R2

• ∆γ = (∆x, ∆y) is gradient of arc length

• ∆γ is the curvature normal κn

• minimal curves are harmonic

(straight lines)

Page 59: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Geometric Properties I

for a curve γ(u) = (x[u], y[u]) : R→ R2

• ∆γ = (∆x, ∆y) is gradient of arc length

• ∆γ is the curvature normal κn

• minimal curves are harmonic

(straight lines)

Page 60: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Geometric Properties I

for a curve γ(u) = (x[u], y[u]) : R→ R2

• ∆γ = (∆x, ∆y) is gradient of arc length

• ∆γ is the curvature normal κn

• minimal curves are harmonic (straight lines)

Page 61: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Geometric Properties II

for a surface r(u, v) = (x[u, v], y[u, v], z[u, v]) : R → R3

• ∆r = (∆x, ∆y, ∆z) is gradient of surface area

• ∆r is the mean curvature normal 2Hn

• minimal surfaces are harmonic!

Page 62: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Geometric Properties II

for a surface r(u, v) = (x[u, v], y[u, v], z[u, v]) : R → R3

• ∆r = (∆x, ∆y, ∆z) is gradient of surface area

• ∆r is the mean curvature normal 2Hn

• minimal surfaces are harmonic!

Page 63: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Geometric Properties II

for a surface r(u, v) = (x[u, v], y[u, v], z[u, v]) : R → R3

• ∆r = (∆x, ∆y, ∆z) is gradient of surface area

• ∆r is the mean curvature normal 2Hn

• minimal surfaces are harmonic!

Page 64: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Geometric Properties III

• ∆ is intrinsic

• for Ω ⊂ R2, rigid motions of Ω don’t change ∆

• for a surface Ω, isometric deformations of Ω don’t change ∆

Page 65: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Geometric Properties III

• ∆ is intrinsic

• for Ω ⊂ R2, rigid motions of Ω don’t change ∆

• for a surface Ω, isometric deformations of Ω don’t change ∆

Page 66: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Essential Geometric Properties III

• ∆ is intrinsic

• for Ω ⊂ R2, rigid motions of Ω don’t change ∆

• for a surface Ω, isometric deformations of Ω don’t change ∆

Page 67: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplacian Spectrum

• φ is a (Dirichlet) eigenfunction of ∆ on M w/ eigenvalue λ:

∆φ(x) = λφ(x), x ∈ M

0 = φ(x), x ∈ ∂M

1 =∫

M〈φ, φ〉 dA.

• recall intuition: ∆ as ∞-dim negative-semidefinite matrix

• expect orthogonal eigenfunctions with negative eigenvalue

• spectrum is discrete: countably many eigenfunctions,

0 ≥ λ1 ≥ λ2 ≥ λ3 . . .

Page 68: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplacian Spectrum

• φ is a (Dirichlet) eigenfunction of ∆ on M w/ eigenvalue λ:

∆φ(x) = λφ(x), x ∈ M

0 = φ(x), x ∈ ∂M

1 =∫

M〈φ, φ〉 dA.

• recall intuition: ∆ as ∞-dim negative-semidefinite matrix

• expect orthogonal eigenfunctions with negative eigenvalue

• spectrum is discrete: countably many eigenfunctions,

0 ≥ λ1 ≥ λ2 ≥ λ3 . . .

Page 69: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplacian Spectrum

• φ is a (Dirichlet) eigenfunction of ∆ on M w/ eigenvalue λ:

∆φ(x) = λφ(x), x ∈ M

0 = φ(x), x ∈ ∂M

1 =∫

M〈φ, φ〉 dA.

• recall intuition: ∆ as ∞-dim negative-semidefinite matrix

• expect orthogonal eigenfunctions with negative eigenvalue

• spectrum is discrete: countably many eigenfunctions,

0 ≥ λ1 ≥ λ2 ≥ λ3 . . .

Page 70: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplacian Spectrum

• φ is a (Dirichlet) eigenfunction of ∆ on M w/ eigenvalue λ:

∆φ(x) = λφ(x), x ∈ M

0 = φ(x), x ∈ ∂M

1 =∫

M〈φ, φ〉 dA.

• recall intuition: ∆ as ∞-dim negative-semidefinite matrix

• expect orthogonal eigenfunctions with negative eigenvalue

• spectrum is discrete: countably many eigenfunctions,

0 ≥ λ1 ≥ λ2 ≥ λ3 . . .

Page 71: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplacian Spectrum of Bunny

φ2

φ6

φ3

φ18

Page 72: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplacian Spectrum: Why do We Care?

• expand function f in eigenbasis:

f (x) = ∑i

αiφi(x)

• Dirichlet energy of f :

E(f ) =∫

M〈∇f ,∇f 〉 dA = −

∫M

f ∆f dA = ∑i

α2i λi

Page 73: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplacian Spectrum: Why do We Care?

• expand function f in eigenbasis:

f (x) = ∑i

αiφi(x)

• Dirichlet energy of f :

E(f ) =∫

M〈∇f ,∇f 〉 dA = −

∫M

f ∆f dA = ∑i

α2i λi

• large λi terms dominate

f (x) =N

∑i=1

αiφi(x)︸ ︷︷ ︸low-frequency base

+∞

∑i=N+1

αiφi(x)︸ ︷︷ ︸high-frequency detail

Page 74: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplacian Spectrum: Why do We Care?

10 modes 25 modes 50 modes

• large λi terms dominate

f (x) =N

∑i=1

αiφi(x)︸ ︷︷ ︸low-frequency base

+∞

∑i=N+1

αiφi(x)︸ ︷︷ ︸high-frequency detail

Page 75: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplacian Spectrum: Special Cases

perhaps you’ve heard of

• Fourier basis: M = Rn

• spherical harmonics: M = sphere

Laplacian spectrum generalizes these to any surface

Page 76: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplacian Spectrum: Special Cases

perhaps you’ve heard of

• Fourier basis: M = Rn

• spherical harmonics: M = sphere

Laplacian spectrum generalizes these to any surface

Page 77: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplacian Spectrum: Special Cases

perhaps you’ve heard of

• Fourier basis: M = Rn

• spherical harmonics: M = sphere

Laplacian spectrum generalizes these to any surface

Page 78: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

DISCRETIZATION

Page 79: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Geometry

Page 80: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Triangle Meshes

• approximate surface by triangles

• “glued together” along edges

• many possible data structures

• half edge, quad edge, corner table, . . .

• for simplicity: vertex-face adjacency list

• (will be enough for our applications!)

Page 81: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Triangle Meshes

• approximate surface by triangles

• “glued together” along edges

• many possible data structures

• half edge, quad edge, corner table, . . .

• for simplicity: vertex-face adjacency list

• (will be enough for our applications!)

Page 82: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Triangle Meshes

• approximate surface by triangles

• “glued together” along edges

• many possible data structures

• half edge, quad edge, corner table, . . .

• for simplicity: vertex-face adjacency list

• (will be enough for our applications!)

Page 83: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Triangle Meshes

• approximate surface by triangles

• “glued together” along edges

• many possible data structures

• half edge, quad edge, corner table, . . .

• for simplicity: vertex-face adjacency list

• (will be enough for our applications!)

Page 84: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Triangle Meshes

• approximate surface by triangles

• “glued together” along edges

• many possible data structures

• half edge, quad edge, corner table, . . .

• for simplicity: vertex-face adjacency list

• (will be enough for our applications!)

Page 85: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Triangle Meshes

• approximate surface by triangles

• “glued together” along edges

• many possible data structures

• half edge, quad edge, corner table, . . .

• for simplicity: vertex-face adjacency list

• (will be enough for our applications!)

Page 86: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Vertex-Face Adjacency List—Example

# xyz-coordinates of verticesv 0 0 0v 1 0 0v .5 .866 0v .5 -.866 0

# vertex-face adjacency infof 1 2 3f 1 4 2

Page 87: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Manifold

Page 88: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Nonmanifold

Page 89: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Manifold Triangle Mesh

• manifold ⇐⇒ “locally disk-like”

• Which triangle meshes are manifold?

• Two triangles per edge (no “fins”)

• Every vertex looks like a “fan”

• Why? Simplicity.

• (Sometimes not necessary. . . )

Page 90: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Manifold Triangle Mesh

• manifold ⇐⇒ “locally disk-like”

• Which triangle meshes are manifold?

• Two triangles per edge (no “fins”)

• Every vertex looks like a “fan”

• Why? Simplicity.

• (Sometimes not necessary. . . )

Page 91: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Manifold Triangle Mesh

• manifold ⇐⇒ “locally disk-like”

• Which triangle meshes are manifold?

• Two triangles per edge (no “fins”)

• Every vertex looks like a “fan”

• Why? Simplicity.

• (Sometimes not necessary. . . )

Page 92: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Manifold Triangle Mesh

• manifold ⇐⇒ “locally disk-like”

• Which triangle meshes are manifold?

• Two triangles per edge (no “fins”)

• Every vertex looks like a “fan”

• Why? Simplicity.

• (Sometimes not necessary. . . )

Page 93: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Manifold Triangle Mesh

• manifold ⇐⇒ “locally disk-like”

• Which triangle meshes are manifold?

• Two triangles per edge (no “fins”)

• Every vertex looks like a “fan”

• Why? Simplicity.

• (Sometimes not necessary. . . )

Page 94: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Manifold Triangle Mesh

• manifold ⇐⇒ “locally disk-like”

• Which triangle meshes are manifold?

• Two triangles per edge (no “fins”)

• Every vertex looks like a “fan”

• Why? Simplicity.

• (Sometimes not necessary. . . )

Page 95: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Manifold Triangle Mesh

• manifold ⇐⇒ “locally disk-like”

• Which triangle meshes are manifold?

• Two triangles per edge (no “fins”)

• Every vertex looks like a “fan”

• Why? Simplicity.

• (Sometimes not necessary. . . )

Page 96: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

The Cotangent Laplacian

(Assuming a manifold triangle mesh. . . )

(∆u)i ≈ 12Ai ∑j∈N (i)

(cot αij + cot βij)(ui − uj)

The set N (i) contains the immediate neighbors of vertex iThe quantity Ai is vertex area—for now: 1/3rd of triangle areas

Page 97: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

The Cotangent Laplacian

(Assuming a manifold triangle mesh. . . )

(∆u)i ≈ 12Ai ∑j∈N (i)

(cot αij + cot βij)(ui − uj)

The set N (i) contains the immediate neighbors of vertex i

The quantity Ai is vertex area—for now: 1/3rd of triangle areas

Page 98: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

The Cotangent Laplacian

(Assuming a manifold triangle mesh. . . )

(∆u)i ≈ 12Ai ∑j∈N (i)

(cot αij + cot βij)(ui − uj)

The set N (i) contains the immediate neighbors of vertex iThe quantity Ai is vertex area—for now: 1/3rd of triangle areas

Page 99: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it

• piecewise linear finite elements (FEM)• finite volumes• discrete exterior calculus (DEC)• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]• minimal surfaces [Pinkall and Polthier, 1993]• electrical networks [Duffin, 1959]• Poisson equation [MacNeal, 1949]• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 100: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it• piecewise linear finite elements (FEM)

• finite volumes• discrete exterior calculus (DEC)• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]• minimal surfaces [Pinkall and Polthier, 1993]• electrical networks [Duffin, 1959]• Poisson equation [MacNeal, 1949]• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 101: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it• piecewise linear finite elements (FEM)• finite volumes

• discrete exterior calculus (DEC)• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]• minimal surfaces [Pinkall and Polthier, 1993]• electrical networks [Duffin, 1959]• Poisson equation [MacNeal, 1949]• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 102: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it• piecewise linear finite elements (FEM)• finite volumes• discrete exterior calculus (DEC)

• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]• minimal surfaces [Pinkall and Polthier, 1993]• electrical networks [Duffin, 1959]• Poisson equation [MacNeal, 1949]• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 103: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it• piecewise linear finite elements (FEM)• finite volumes• discrete exterior calculus (DEC)• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]• minimal surfaces [Pinkall and Polthier, 1993]• electrical networks [Duffin, 1959]• Poisson equation [MacNeal, 1949]• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 104: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it• piecewise linear finite elements (FEM)• finite volumes• discrete exterior calculus (DEC)• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]

• minimal surfaces [Pinkall and Polthier, 1993]• electrical networks [Duffin, 1959]• Poisson equation [MacNeal, 1949]• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 105: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it• piecewise linear finite elements (FEM)• finite volumes• discrete exterior calculus (DEC)• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]• minimal surfaces [Pinkall and Polthier, 1993]

• electrical networks [Duffin, 1959]• Poisson equation [MacNeal, 1949]• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 106: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it• piecewise linear finite elements (FEM)• finite volumes• discrete exterior calculus (DEC)• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]• minimal surfaces [Pinkall and Polthier, 1993]• electrical networks [Duffin, 1959]

• Poisson equation [MacNeal, 1949]• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 107: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it• piecewise linear finite elements (FEM)• finite volumes• discrete exterior calculus (DEC)• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]• minimal surfaces [Pinkall and Polthier, 1993]• electrical networks [Duffin, 1959]• Poisson equation [MacNeal, 1949]

• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 108: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it• piecewise linear finite elements (FEM)• finite volumes• discrete exterior calculus (DEC)• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]• minimal surfaces [Pinkall and Polthier, 1993]• electrical networks [Duffin, 1959]• Poisson equation [MacNeal, 1949]• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 109: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it• piecewise linear finite elements (FEM)• finite volumes• discrete exterior calculus (DEC)• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]• minimal surfaces [Pinkall and Polthier, 1993]• electrical networks [Duffin, 1959]• Poisson equation [MacNeal, 1949]• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 110: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Origin of the Cotan Formula?

• Many different ways to derive it• piecewise linear finite elements (FEM)• finite volumes• discrete exterior calculus (DEC)• . . .

• Re-derived in many different contexts:• mean curvature flow [Desbrun et al., 1999]• minimal surfaces [Pinkall and Polthier, 1993]• electrical networks [Duffin, 1959]• Poisson equation [MacNeal, 1949]• (Courant? Frankel? Manhattan Project?)

• All these different viewpoints yield exact same cotan formula

• For three different derivations, see [Crane et al., 2013a]

Page 111: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

MacNeal, 1949

Page 112: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Cotan-Laplacian via Finite Volumes

• Integrate over each dual cell Ci

•∫

Ci∆u =

∫Ci

f (“weak”)

• Right-hand side approximated as Ai fi• Left-hand side becomes

∫Ci∇ · ∇u =

∫∂Ci

n · ∇u (Stokes’)

• Get piecewise integral over boundary ∑ej∈∂Ci

∫ej

nj · ∇u

• After some trigonometry: 12 ∑j∈N (i)(cot αij + cot βij)(ui− uj)

• (Can divide by Ai to approximate pointwise value)

Page 113: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Cotan-Laplacian via Finite Volumes

• Integrate over each dual cell Ci

•∫

Ci∆u =

∫Ci

f (“weak”)

• Right-hand side approximated as Ai fi• Left-hand side becomes

∫Ci∇ · ∇u =

∫∂Ci

n · ∇u (Stokes’)

• Get piecewise integral over boundary ∑ej∈∂Ci

∫ej

nj · ∇u

• After some trigonometry: 12 ∑j∈N (i)(cot αij + cot βij)(ui− uj)

• (Can divide by Ai to approximate pointwise value)

Page 114: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Cotan-Laplacian via Finite Volumes

• Integrate over each dual cell Ci

•∫

Ci∆u =

∫Ci

f (“weak”)

• Right-hand side approximated as Ai fi

• Left-hand side becomes∫

Ci∇ · ∇u =

∫∂Ci

n · ∇u (Stokes’)

• Get piecewise integral over boundary ∑ej∈∂Ci

∫ej

nj · ∇u

• After some trigonometry: 12 ∑j∈N (i)(cot αij + cot βij)(ui− uj)

• (Can divide by Ai to approximate pointwise value)

Page 115: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Cotan-Laplacian via Finite Volumes

• Integrate over each dual cell Ci

•∫

Ci∆u =

∫Ci

f (“weak”)

• Right-hand side approximated as Ai fi• Left-hand side becomes

∫Ci∇ · ∇u =

∫∂Ci

n · ∇u (Stokes’)

• Get piecewise integral over boundary ∑ej∈∂Ci

∫ej

nj · ∇u

• After some trigonometry: 12 ∑j∈N (i)(cot αij + cot βij)(ui− uj)

• (Can divide by Ai to approximate pointwise value)

Page 116: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Cotan-Laplacian via Finite Volumes

• Integrate over each dual cell Ci

•∫

Ci∆u =

∫Ci

f (“weak”)

• Right-hand side approximated as Ai fi• Left-hand side becomes

∫Ci∇ · ∇u =

∫∂Ci

n · ∇u (Stokes’)

• Get piecewise integral over boundary ∑ej∈∂Ci

∫ej

nj · ∇u

• After some trigonometry: 12 ∑j∈N (i)(cot αij + cot βij)(ui− uj)

• (Can divide by Ai to approximate pointwise value)

Page 117: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Cotan-Laplacian via Finite Volumes

• Integrate over each dual cell Ci

•∫

Ci∆u =

∫Ci

f (“weak”)

• Right-hand side approximated as Ai fi• Left-hand side becomes

∫Ci∇ · ∇u =

∫∂Ci

n · ∇u (Stokes’)

• Get piecewise integral over boundary ∑ej∈∂Ci

∫ej

nj · ∇u

• After some trigonometry: 12 ∑j∈N (i)(cot αij + cot βij)(ui− uj)

• (Can divide by Ai to approximate pointwise value)

Page 118: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Cotan-Laplacian via Finite Volumes

• Integrate over each dual cell Ci

•∫

Ci∆u =

∫Ci

f (“weak”)

• Right-hand side approximated as Ai fi• Left-hand side becomes

∫Ci∇ · ∇u =

∫∂Ci

n · ∇u (Stokes’)

• Get piecewise integral over boundary ∑ej∈∂Ci

∫ej

nj · ∇u

• After some trigonometry: 12 ∑j∈N (i)(cot αij + cot βij)(ui− uj)

• (Can divide by Ai to approximate pointwise value)

Page 119: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Triangle Quality—Rule of Thumb

good triangles bad triangles

(For further discussion see Shewchuk, “What Is a Good Linear Finite Element?”)

Page 120: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Triangle Quality—Delaunay Property

Delaunay Not Delaunay

Page 121: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Local Mesh Improvement

• Some simple ways to improve quality of Laplacian

• E.g., if α + β > π, “flip” the edge; after enough flips, meshwill be Delaunay [Bobenko and Springborn, 2005]

• Other ways to improve mesh (edge collapse, edge split, . . . )

• Particular interest recently in interface tracking

• For more, see [Dunyach et al., 2013, Wojtan et al., 2011].

Page 122: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Local Mesh Improvement

• Some simple ways to improve quality of Laplacian

• E.g., if α + β > π, “flip” the edge; after enough flips, meshwill be Delaunay [Bobenko and Springborn, 2005]

• Other ways to improve mesh (edge collapse, edge split, . . . )

• Particular interest recently in interface tracking

• For more, see [Dunyach et al., 2013, Wojtan et al., 2011].

Page 123: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Local Mesh Improvement

• Some simple ways to improve quality of Laplacian

• E.g., if α + β > π, “flip” the edge; after enough flips, meshwill be Delaunay [Bobenko and Springborn, 2005]

• Other ways to improve mesh (edge collapse, edge split, . . . )

• Particular interest recently in interface tracking

• For more, see [Dunyach et al., 2013, Wojtan et al., 2011].

Page 124: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Local Mesh Improvement

• Some simple ways to improve quality of Laplacian

• E.g., if α + β > π, “flip” the edge; after enough flips, meshwill be Delaunay [Bobenko and Springborn, 2005]

• Other ways to improve mesh (edge collapse, edge split, . . . )

• Particular interest recently in interface tracking

• For more, see [Dunyach et al., 2013, Wojtan et al., 2011].

Page 125: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Local Mesh Improvement

• Some simple ways to improve quality of Laplacian

• E.g., if α + β > π, “flip” the edge; after enough flips, meshwill be Delaunay [Bobenko and Springborn, 2005]

• Other ways to improve mesh (edge collapse, edge split, . . . )

• Particular interest recently in interface tracking

• For more, see [Dunyach et al., 2013, Wojtan et al., 2011].

Page 126: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Meshes and Matrices

9

1011

12

1

2

34

6

78

5

(Laplace matrix, ignoring weights!)

• So far, Laplacian expressed as a sum:

• 12 ∑j∈N (i)(cot αij + cot βij)(uj − ui)

• For computation, encode using matrices

• First, give each vertex an index1, . . . , |V|

• Weak Laplacian is matrix C ∈ R|V|×|V|

• Row i represents sum for ith vertex• Cij =

12 cot αij + cot βij for j ∈ N (i)

• Cii = −∑j∈N (i) Cij

• All other entries are zero

• Use sparse matrices!

• (MATLAB: sparse, SuiteSparse:cholmod_sparse, Eigen: SparseMatrix)

Page 127: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Meshes and Matrices

9

1011

12

1

2

34

6

78

5

(Laplace matrix, ignoring weights!)

• So far, Laplacian expressed as a sum:

• 12 ∑j∈N (i)(cot αij + cot βij)(uj − ui)

• For computation, encode using matrices

• First, give each vertex an index1, . . . , |V|

• Weak Laplacian is matrix C ∈ R|V|×|V|

• Row i represents sum for ith vertex• Cij =

12 cot αij + cot βij for j ∈ N (i)

• Cii = −∑j∈N (i) Cij

• All other entries are zero

• Use sparse matrices!

• (MATLAB: sparse, SuiteSparse:cholmod_sparse, Eigen: SparseMatrix)

Page 128: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Meshes and Matrices

9

1011

12

1

2

34

6

78

5

(Laplace matrix, ignoring weights!)

• So far, Laplacian expressed as a sum:

• 12 ∑j∈N (i)(cot αij + cot βij)(uj − ui)

• For computation, encode using matrices

• First, give each vertex an index1, . . . , |V|

• Weak Laplacian is matrix C ∈ R|V|×|V|

• Row i represents sum for ith vertex• Cij =

12 cot αij + cot βij for j ∈ N (i)

• Cii = −∑j∈N (i) Cij

• All other entries are zero

• Use sparse matrices!

• (MATLAB: sparse, SuiteSparse:cholmod_sparse, Eigen: SparseMatrix)

Page 129: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Meshes and Matrices

9

1011

12

1

2

34

6

78

5

(Laplace matrix, ignoring weights!)

• So far, Laplacian expressed as a sum:

• 12 ∑j∈N (i)(cot αij + cot βij)(uj − ui)

• For computation, encode using matrices

• First, give each vertex an index1, . . . , |V|

• Weak Laplacian is matrix C ∈ R|V|×|V|

• Row i represents sum for ith vertex• Cij =

12 cot αij + cot βij for j ∈ N (i)

• Cii = −∑j∈N (i) Cij

• All other entries are zero

• Use sparse matrices!

• (MATLAB: sparse, SuiteSparse:cholmod_sparse, Eigen: SparseMatrix)

Page 130: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Meshes and Matrices

9

1011

12

1

2

34

6

78

5

(Laplace matrix, ignoring weights!)

• So far, Laplacian expressed as a sum:

• 12 ∑j∈N (i)(cot αij + cot βij)(uj − ui)

• For computation, encode using matrices

• First, give each vertex an index1, . . . , |V|

• Weak Laplacian is matrix C ∈ R|V|×|V|

• Row i represents sum for ith vertex• Cij =

12 cot αij + cot βij for j ∈ N (i)

• Cii = −∑j∈N (i) Cij

• All other entries are zero

• Use sparse matrices!

• (MATLAB: sparse, SuiteSparse:cholmod_sparse, Eigen: SparseMatrix)

Page 131: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Meshes and Matrices

9

1011

12

1

2

34

6

78

5

(Laplace matrix, ignoring weights!)

• So far, Laplacian expressed as a sum:

• 12 ∑j∈N (i)(cot αij + cot βij)(uj − ui)

• For computation, encode using matrices

• First, give each vertex an index1, . . . , |V|

• Weak Laplacian is matrix C ∈ R|V|×|V|

• Row i represents sum for ith vertex

• Cij =12 cot αij + cot βij for j ∈ N (i)

• Cii = −∑j∈N (i) Cij

• All other entries are zero

• Use sparse matrices!

• (MATLAB: sparse, SuiteSparse:cholmod_sparse, Eigen: SparseMatrix)

Page 132: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Meshes and Matrices

9

1011

12

1

2

34

6

78

5

(Laplace matrix, ignoring weights!)

• So far, Laplacian expressed as a sum:

• 12 ∑j∈N (i)(cot αij + cot βij)(uj − ui)

• For computation, encode using matrices

• First, give each vertex an index1, . . . , |V|

• Weak Laplacian is matrix C ∈ R|V|×|V|

• Row i represents sum for ith vertex• Cij =

12 cot αij + cot βij for j ∈ N (i)

• Cii = −∑j∈N (i) Cij

• All other entries are zero

• Use sparse matrices!

• (MATLAB: sparse, SuiteSparse:cholmod_sparse, Eigen: SparseMatrix)

Page 133: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Meshes and Matrices

9

1011

12

1

2

34

6

78

5

(Laplace matrix, ignoring weights!)

• So far, Laplacian expressed as a sum:

• 12 ∑j∈N (i)(cot αij + cot βij)(uj − ui)

• For computation, encode using matrices

• First, give each vertex an index1, . . . , |V|

• Weak Laplacian is matrix C ∈ R|V|×|V|

• Row i represents sum for ith vertex• Cij =

12 cot αij + cot βij for j ∈ N (i)

• Cii = −∑j∈N (i) Cij

• All other entries are zero

• Use sparse matrices!

• (MATLAB: sparse, SuiteSparse:cholmod_sparse, Eigen: SparseMatrix)

Page 134: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Meshes and Matrices

9

1011

12

1

2

34

6

78

5

(Laplace matrix, ignoring weights!)

• So far, Laplacian expressed as a sum:

• 12 ∑j∈N (i)(cot αij + cot βij)(uj − ui)

• For computation, encode using matrices

• First, give each vertex an index1, . . . , |V|

• Weak Laplacian is matrix C ∈ R|V|×|V|

• Row i represents sum for ith vertex• Cij =

12 cot αij + cot βij for j ∈ N (i)

• Cii = −∑j∈N (i) Cij

• All other entries are zero

• Use sparse matrices!

• (MATLAB: sparse, SuiteSparse:cholmod_sparse, Eigen: SparseMatrix)

Page 135: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Meshes and Matrices

9

1011

12

1

2

34

6

78

5

(Laplace matrix, ignoring weights!)

• So far, Laplacian expressed as a sum:

• 12 ∑j∈N (i)(cot αij + cot βij)(uj − ui)

• For computation, encode using matrices

• First, give each vertex an index1, . . . , |V|

• Weak Laplacian is matrix C ∈ R|V|×|V|

• Row i represents sum for ith vertex• Cij =

12 cot αij + cot βij for j ∈ N (i)

• Cii = −∑j∈N (i) Cij

• All other entries are zero

• Use sparse matrices!

• (MATLAB: sparse, SuiteSparse:cholmod_sparse, Eigen: SparseMatrix)

Page 136: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Meshes and Matrices

9

1011

12

1

2

34

6

78

5

(Laplace matrix, ignoring weights!)

• So far, Laplacian expressed as a sum:

• 12 ∑j∈N (i)(cot αij + cot βij)(uj − ui)

• For computation, encode using matrices

• First, give each vertex an index1, . . . , |V|

• Weak Laplacian is matrix C ∈ R|V|×|V|

• Row i represents sum for ith vertex• Cij =

12 cot αij + cot βij for j ∈ N (i)

• Cii = −∑j∈N (i) Cij

• All other entries are zero

• Use sparse matrices!

• (MATLAB: sparse, SuiteSparse:cholmod_sparse, Eigen: SparseMatrix)

Page 137: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Mass Matrix

• Matrix C encodes only part of Laplacian—recall that

(∆u)i = 12Ai ∑j∈N (i)

(cot αij + cot βij)(uj − ui)

• Still need to incorporate vertex areas Ai

• For convenience, build diagonal mass matrix M ∈ R|V|×|V|:

M =

A1. . .A|V|

• Entries are just Mii = Ai (all other entries are zero)

• Laplace operator is then L := M−1C

• Applying L to a column vector u ∈ R|V| “implements” thecotan formula shown above

Page 138: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Mass Matrix

• Matrix C encodes only part of Laplacian—recall that

(∆u)i = 12Ai ∑j∈N (i)

(cot αij + cot βij)(uj − ui)

• Still need to incorporate vertex areas Ai

• For convenience, build diagonal mass matrix M ∈ R|V|×|V|:

M =

A1. . .A|V|

• Entries are just Mii = Ai (all other entries are zero)

• Laplace operator is then L := M−1C

• Applying L to a column vector u ∈ R|V| “implements” thecotan formula shown above

Page 139: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Mass Matrix

• Matrix C encodes only part of Laplacian—recall that

(∆u)i = 12Ai ∑j∈N (i)

(cot αij + cot βij)(uj − ui)

• Still need to incorporate vertex areas Ai

• For convenience, build diagonal mass matrix M ∈ R|V|×|V|:

M =

A1. . .A|V|

• Entries are just Mii = Ai (all other entries are zero)

• Laplace operator is then L := M−1C

• Applying L to a column vector u ∈ R|V| “implements” thecotan formula shown above

Page 140: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Mass Matrix

• Matrix C encodes only part of Laplacian—recall that

(∆u)i = 12Ai ∑j∈N (i)

(cot αij + cot βij)(uj − ui)

• Still need to incorporate vertex areas Ai

• For convenience, build diagonal mass matrix M ∈ R|V|×|V|:

M =

A1. . .A|V|

• Entries are just Mii = Ai (all other entries are zero)

• Laplace operator is then L := M−1C

• Applying L to a column vector u ∈ R|V| “implements” thecotan formula shown above

Page 141: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Mass Matrix

• Matrix C encodes only part of Laplacian—recall that

(∆u)i = 12Ai ∑j∈N (i)

(cot αij + cot βij)(uj − ui)

• Still need to incorporate vertex areas Ai

• For convenience, build diagonal mass matrix M ∈ R|V|×|V|:

M =

A1. . .A|V|

• Entries are just Mii = Ai (all other entries are zero)

• Laplace operator is then L := M−1C

• Applying L to a column vector u ∈ R|V| “implements” thecotan formula shown above

Page 142: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Mass Matrix

• Matrix C encodes only part of Laplacian—recall that

(∆u)i = 12Ai ∑j∈N (i)

(cot αij + cot βij)(uj − ui)

• Still need to incorporate vertex areas Ai

• For convenience, build diagonal mass matrix M ∈ R|V|×|V|:

M =

A1. . .A|V|

• Entries are just Mii = Ai (all other entries are zero)

• Laplace operator is then L := M−1C

• Applying L to a column vector u ∈ R|V| “implements” thecotan formula shown above

Page 143: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Poisson / Laplace Equation

• Poisson equation ∆u = f becomes linear algebra problem:

Lu = f

• Vector f ∈ R|V| is given data; u ∈ R|V| is unknown.

• Discrete approximation u approaches smooth solution u asmesh is refined (for smooth data, “good” meshes. . . ).

• Laplace is just Poisson with “zero” on right hand side!

Page 144: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Poisson / Laplace Equation

• Poisson equation ∆u = f becomes linear algebra problem:

Lu = f

• Vector f ∈ R|V| is given data; u ∈ R|V| is unknown.

• Discrete approximation u approaches smooth solution u asmesh is refined (for smooth data, “good” meshes. . . ).

• Laplace is just Poisson with “zero” on right hand side!

Page 145: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Poisson / Laplace Equation

• Poisson equation ∆u = f becomes linear algebra problem:

Lu = f

• Vector f ∈ R|V| is given data; u ∈ R|V| is unknown.

• Discrete approximation u approaches smooth solution u asmesh is refined (for smooth data, “good” meshes. . . ).

• Laplace is just Poisson with “zero” on right hand side!

Page 146: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Poisson / Laplace Equation

• Poisson equation ∆u = f becomes linear algebra problem:

Lu = f

• Vector f ∈ R|V| is given data; u ∈ R|V| is unknown.

• Discrete approximation u approaches smooth solution u asmesh is refined (for smooth data, “good” meshes. . . ).

• Laplace is just Poisson with “zero” on right hand side!

Page 147: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Heat Equation

• Heat equation dudt = ∆u must also be discretized in time

• Replace time derivative with finite difference:

dudt⇒ uk+1 − uk

h, h > 0︸ ︷︷ ︸

“time step”

• How (or really, “when”) do we approximate ∆u?

• Explicit: (uk+1 − uk)/h = Luk (cheaper to compute)

• Implicit: (uk+1 − uk)/h = Luk+1 (more stable)

• Implicit update becomes linear system (I− hL)uk+1 = uk

Page 148: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Heat Equation

• Heat equation dudt = ∆u must also be discretized in time

• Replace time derivative with finite difference:

dudt⇒ uk+1 − uk

h, h > 0︸ ︷︷ ︸

“time step”

• How (or really, “when”) do we approximate ∆u?

• Explicit: (uk+1 − uk)/h = Luk (cheaper to compute)

• Implicit: (uk+1 − uk)/h = Luk+1 (more stable)

• Implicit update becomes linear system (I− hL)uk+1 = uk

Page 149: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Heat Equation

• Heat equation dudt = ∆u must also be discretized in time

• Replace time derivative with finite difference:

dudt⇒ uk+1 − uk

h, h > 0︸ ︷︷ ︸

“time step”

• How (or really, “when”) do we approximate ∆u?

• Explicit: (uk+1 − uk)/h = Luk (cheaper to compute)

• Implicit: (uk+1 − uk)/h = Luk+1 (more stable)

• Implicit update becomes linear system (I− hL)uk+1 = uk

Page 150: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Heat Equation

• Heat equation dudt = ∆u must also be discretized in time

• Replace time derivative with finite difference:

dudt⇒ uk+1 − uk

h, h > 0︸ ︷︷ ︸

“time step”

• How (or really, “when”) do we approximate ∆u?

• Explicit: (uk+1 − uk)/h = Luk (cheaper to compute)

• Implicit: (uk+1 − uk)/h = Luk+1 (more stable)

• Implicit update becomes linear system (I− hL)uk+1 = uk

Page 151: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Heat Equation

• Heat equation dudt = ∆u must also be discretized in time

• Replace time derivative with finite difference:

dudt⇒ uk+1 − uk

h, h > 0︸ ︷︷ ︸

“time step”

• How (or really, “when”) do we approximate ∆u?

• Explicit: (uk+1 − uk)/h = Luk (cheaper to compute)

• Implicit: (uk+1 − uk)/h = Luk+1 (more stable)

• Implicit update becomes linear system (I− hL)uk+1 = uk

Page 152: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Heat Equation

• Heat equation dudt = ∆u must also be discretized in time

• Replace time derivative with finite difference:

dudt⇒ uk+1 − uk

h, h > 0︸ ︷︷ ︸

“time step”

• How (or really, “when”) do we approximate ∆u?

• Explicit: (uk+1 − uk)/h = Luk (cheaper to compute)

• Implicit: (uk+1 − uk)/h = Luk+1 (more stable)

• Implicit update becomes linear system (I− hL)uk+1 = uk

Page 153: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Eigenvalue Problem

• Smallest eigenvalue problem ∆u = λu becomes

Lu = λu

for smallest nonzero eigenvalue λ.

• Can be solved using (inverse) power method:• Pick random u0• Until convergence:

• Solve Luk+1 = uk• Remove mean value from uk+1• uk+1 ← uk+1/|uk+1|

• By prefactoring L, overall cost is nearly identical to solvinga single Poisson equation!

Page 154: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Eigenvalue Problem

• Smallest eigenvalue problem ∆u = λu becomes

Lu = λu

for smallest nonzero eigenvalue λ.• Can be solved using (inverse) power method:

• Pick random u0• Until convergence:

• Solve Luk+1 = uk• Remove mean value from uk+1• uk+1 ← uk+1/|uk+1|

• By prefactoring L, overall cost is nearly identical to solvinga single Poisson equation!

Page 155: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Eigenvalue Problem

• Smallest eigenvalue problem ∆u = λu becomes

Lu = λu

for smallest nonzero eigenvalue λ.• Can be solved using (inverse) power method:

• Pick random u0• Until convergence:

• Solve Luk+1 = uk• Remove mean value from uk+1• uk+1 ← uk+1/|uk+1|

• By prefactoring L, overall cost is nearly identical to solvinga single Poisson equation!

Page 156: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Properties of cotan-Laplace

• Always, always, always positive-semidefinite fTCf ≥ 0(even if cotan weights are negative!)

• Why? fTCf is identical to summing ||∇f ||2!• No boundary⇒ constant vector in the kernel / cokernel• Why does it matter? E.g., for Poisson equation:

• solution is unique only up to constant shift• if RHS has nonzero mean, cannot be solved!

• Exhibits maximum principle on Delaunay mesh• Delaunay: triangle circumcircles are empty• Maximum principle: solution to Laplace equation has no

interior extrema (local max or min)• NOTE: non-Delaunay meshes can also exhibit max

principle! (And often do.) Delaunay sufficient but notnecessary. Currently no nice, simple necessary condition onmesh geometry.

• For more, see [Wardetzky et al., 2007]

Page 157: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Properties of cotan-Laplace

• Always, always, always positive-semidefinite fTCf ≥ 0(even if cotan weights are negative!)

• Why? fTCf is identical to summing ||∇f ||2!

• No boundary⇒ constant vector in the kernel / cokernel• Why does it matter? E.g., for Poisson equation:

• solution is unique only up to constant shift• if RHS has nonzero mean, cannot be solved!

• Exhibits maximum principle on Delaunay mesh• Delaunay: triangle circumcircles are empty• Maximum principle: solution to Laplace equation has no

interior extrema (local max or min)• NOTE: non-Delaunay meshes can also exhibit max

principle! (And often do.) Delaunay sufficient but notnecessary. Currently no nice, simple necessary condition onmesh geometry.

• For more, see [Wardetzky et al., 2007]

Page 158: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Properties of cotan-Laplace

• Always, always, always positive-semidefinite fTCf ≥ 0(even if cotan weights are negative!)

• Why? fTCf is identical to summing ||∇f ||2!• No boundary⇒ constant vector in the kernel / cokernel

• Why does it matter? E.g., for Poisson equation:• solution is unique only up to constant shift• if RHS has nonzero mean, cannot be solved!

• Exhibits maximum principle on Delaunay mesh• Delaunay: triangle circumcircles are empty• Maximum principle: solution to Laplace equation has no

interior extrema (local max or min)• NOTE: non-Delaunay meshes can also exhibit max

principle! (And often do.) Delaunay sufficient but notnecessary. Currently no nice, simple necessary condition onmesh geometry.

• For more, see [Wardetzky et al., 2007]

Page 159: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Properties of cotan-Laplace

• Always, always, always positive-semidefinite fTCf ≥ 0(even if cotan weights are negative!)

• Why? fTCf is identical to summing ||∇f ||2!• No boundary⇒ constant vector in the kernel / cokernel• Why does it matter? E.g., for Poisson equation:

• solution is unique only up to constant shift• if RHS has nonzero mean, cannot be solved!

• Exhibits maximum principle on Delaunay mesh• Delaunay: triangle circumcircles are empty• Maximum principle: solution to Laplace equation has no

interior extrema (local max or min)• NOTE: non-Delaunay meshes can also exhibit max

principle! (And often do.) Delaunay sufficient but notnecessary. Currently no nice, simple necessary condition onmesh geometry.

• For more, see [Wardetzky et al., 2007]

Page 160: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Properties of cotan-Laplace

• Always, always, always positive-semidefinite fTCf ≥ 0(even if cotan weights are negative!)

• Why? fTCf is identical to summing ||∇f ||2!• No boundary⇒ constant vector in the kernel / cokernel• Why does it matter? E.g., for Poisson equation:

• solution is unique only up to constant shift

• if RHS has nonzero mean, cannot be solved!• Exhibits maximum principle on Delaunay mesh

• Delaunay: triangle circumcircles are empty• Maximum principle: solution to Laplace equation has no

interior extrema (local max or min)• NOTE: non-Delaunay meshes can also exhibit max

principle! (And often do.) Delaunay sufficient but notnecessary. Currently no nice, simple necessary condition onmesh geometry.

• For more, see [Wardetzky et al., 2007]

Page 161: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Properties of cotan-Laplace

• Always, always, always positive-semidefinite fTCf ≥ 0(even if cotan weights are negative!)

• Why? fTCf is identical to summing ||∇f ||2!• No boundary⇒ constant vector in the kernel / cokernel• Why does it matter? E.g., for Poisson equation:

• solution is unique only up to constant shift• if RHS has nonzero mean, cannot be solved!

• Exhibits maximum principle on Delaunay mesh• Delaunay: triangle circumcircles are empty• Maximum principle: solution to Laplace equation has no

interior extrema (local max or min)• NOTE: non-Delaunay meshes can also exhibit max

principle! (And often do.) Delaunay sufficient but notnecessary. Currently no nice, simple necessary condition onmesh geometry.

• For more, see [Wardetzky et al., 2007]

Page 162: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Properties of cotan-Laplace

• Always, always, always positive-semidefinite fTCf ≥ 0(even if cotan weights are negative!)

• Why? fTCf is identical to summing ||∇f ||2!• No boundary⇒ constant vector in the kernel / cokernel• Why does it matter? E.g., for Poisson equation:

• solution is unique only up to constant shift• if RHS has nonzero mean, cannot be solved!

• Exhibits maximum principle on Delaunay mesh

• Delaunay: triangle circumcircles are empty• Maximum principle: solution to Laplace equation has no

interior extrema (local max or min)• NOTE: non-Delaunay meshes can also exhibit max

principle! (And often do.) Delaunay sufficient but notnecessary. Currently no nice, simple necessary condition onmesh geometry.

• For more, see [Wardetzky et al., 2007]

Page 163: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Properties of cotan-Laplace

• Always, always, always positive-semidefinite fTCf ≥ 0(even if cotan weights are negative!)

• Why? fTCf is identical to summing ||∇f ||2!• No boundary⇒ constant vector in the kernel / cokernel• Why does it matter? E.g., for Poisson equation:

• solution is unique only up to constant shift• if RHS has nonzero mean, cannot be solved!

• Exhibits maximum principle on Delaunay mesh• Delaunay: triangle circumcircles are empty

• Maximum principle: solution to Laplace equation has nointerior extrema (local max or min)

• NOTE: non-Delaunay meshes can also exhibit maxprinciple! (And often do.) Delaunay sufficient but notnecessary. Currently no nice, simple necessary condition onmesh geometry.

• For more, see [Wardetzky et al., 2007]

Page 164: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Properties of cotan-Laplace

• Always, always, always positive-semidefinite fTCf ≥ 0(even if cotan weights are negative!)

• Why? fTCf is identical to summing ||∇f ||2!• No boundary⇒ constant vector in the kernel / cokernel• Why does it matter? E.g., for Poisson equation:

• solution is unique only up to constant shift• if RHS has nonzero mean, cannot be solved!

• Exhibits maximum principle on Delaunay mesh• Delaunay: triangle circumcircles are empty• Maximum principle: solution to Laplace equation has no

interior extrema (local max or min)

• NOTE: non-Delaunay meshes can also exhibit maxprinciple! (And often do.) Delaunay sufficient but notnecessary. Currently no nice, simple necessary condition onmesh geometry.

• For more, see [Wardetzky et al., 2007]

Page 165: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Properties of cotan-Laplace

• Always, always, always positive-semidefinite fTCf ≥ 0(even if cotan weights are negative!)

• Why? fTCf is identical to summing ||∇f ||2!• No boundary⇒ constant vector in the kernel / cokernel• Why does it matter? E.g., for Poisson equation:

• solution is unique only up to constant shift• if RHS has nonzero mean, cannot be solved!

• Exhibits maximum principle on Delaunay mesh• Delaunay: triangle circumcircles are empty• Maximum principle: solution to Laplace equation has no

interior extrema (local max or min)• NOTE: non-Delaunay meshes can also exhibit max

principle! (And often do.) Delaunay sufficient but notnecessary. Currently no nice, simple necessary condition onmesh geometry.

• For more, see [Wardetzky et al., 2007]

Page 166: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Properties of cotan-Laplace

• Always, always, always positive-semidefinite fTCf ≥ 0(even if cotan weights are negative!)

• Why? fTCf is identical to summing ||∇f ||2!• No boundary⇒ constant vector in the kernel / cokernel• Why does it matter? E.g., for Poisson equation:

• solution is unique only up to constant shift• if RHS has nonzero mean, cannot be solved!

• Exhibits maximum principle on Delaunay mesh• Delaunay: triangle circumcircles are empty• Maximum principle: solution to Laplace equation has no

interior extrema (local max or min)• NOTE: non-Delaunay meshes can also exhibit max

principle! (And often do.) Delaunay sufficient but notnecessary. Currently no nice, simple necessary condition onmesh geometry.

• For more, see [Wardetzky et al., 2007]

Page 167: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry

• “Best” case for sparse linear systems:

symmetric positive-(semi)definite (AT= A, xTAx ≥ 0 ∀x)

• Many good solvers (Cholesky, conjugate gradient, . . . )

• Discrete Poisson equation looks like M−1Cu = f

• C is symmetric, but M−1C is not!

• Can easily be made symmetric:

Cu = Mf

• In other words: just multiply by vertex areas!

• Seemingly superficial change. . .

• . . . but makes computation simpler / more efficient

Page 168: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry

• “Best” case for sparse linear systems:

symmetric positive-(semi)definite (AT= A, xTAx ≥ 0 ∀x)

• Many good solvers (Cholesky, conjugate gradient, . . . )

• Discrete Poisson equation looks like M−1Cu = f

• C is symmetric, but M−1C is not!

• Can easily be made symmetric:

Cu = Mf

• In other words: just multiply by vertex areas!

• Seemingly superficial change. . .

• . . . but makes computation simpler / more efficient

Page 169: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry

• “Best” case for sparse linear systems:

symmetric positive-(semi)definite (AT= A, xTAx ≥ 0 ∀x)

• Many good solvers (Cholesky, conjugate gradient, . . . )

• Discrete Poisson equation looks like M−1Cu = f

• C is symmetric, but M−1C is not!

• Can easily be made symmetric:

Cu = Mf

• In other words: just multiply by vertex areas!

• Seemingly superficial change. . .

• . . . but makes computation simpler / more efficient

Page 170: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry

• “Best” case for sparse linear systems:

symmetric positive-(semi)definite (AT= A, xTAx ≥ 0 ∀x)

• Many good solvers (Cholesky, conjugate gradient, . . . )

• Discrete Poisson equation looks like M−1Cu = f

• C is symmetric, but M−1C is not!

• Can easily be made symmetric:

Cu = Mf

• In other words: just multiply by vertex areas!

• Seemingly superficial change. . .

• . . . but makes computation simpler / more efficient

Page 171: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry

• “Best” case for sparse linear systems:

symmetric positive-(semi)definite (AT= A, xTAx ≥ 0 ∀x)

• Many good solvers (Cholesky, conjugate gradient, . . . )

• Discrete Poisson equation looks like M−1Cu = f

• C is symmetric, but M−1C is not!

• Can easily be made symmetric:

Cu = Mf

• In other words: just multiply by vertex areas!

• Seemingly superficial change. . .

• . . . but makes computation simpler / more efficient

Page 172: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry

• “Best” case for sparse linear systems:

symmetric positive-(semi)definite (AT= A, xTAx ≥ 0 ∀x)

• Many good solvers (Cholesky, conjugate gradient, . . . )

• Discrete Poisson equation looks like M−1Cu = f

• C is symmetric, but M−1C is not!

• Can easily be made symmetric:

Cu = Mf

• In other words: just multiply by vertex areas!

• Seemingly superficial change. . .

• . . . but makes computation simpler / more efficient

Page 173: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry

• “Best” case for sparse linear systems:

symmetric positive-(semi)definite (AT= A, xTAx ≥ 0 ∀x)

• Many good solvers (Cholesky, conjugate gradient, . . . )

• Discrete Poisson equation looks like M−1Cu = f

• C is symmetric, but M−1C is not!

• Can easily be made symmetric:

Cu = Mf

• In other words: just multiply by vertex areas!

• Seemingly superficial change. . .

• . . . but makes computation simpler / more efficient

Page 174: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry

• “Best” case for sparse linear systems:

symmetric positive-(semi)definite (AT= A, xTAx ≥ 0 ∀x)

• Many good solvers (Cholesky, conjugate gradient, . . . )

• Discrete Poisson equation looks like M−1Cu = f

• C is symmetric, but M−1C is not!

• Can easily be made symmetric:

Cu = Mf

• In other words: just multiply by vertex areas!

• Seemingly superficial change. . .

• . . . but makes computation simpler / more efficient

Page 175: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry, continued

• Can also make heat equation symmetric

• Instead of (I− hL)uk+1 = uk, use

(M− hC)uk+1 = Muk

• What about smallest eigenvalue problem Lu = λu?• Two options:

1 Solve generalized eigenvalue problem Cu = λMu2 Solve M−1/2CM−1/2u = λu, recover u = M−1/2u

• Note: M−1/2 just means “put 1/√Ai on the diagonal!”

Page 176: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry, continued

• Can also make heat equation symmetric

• Instead of (I− hL)uk+1 = uk, use

(M− hC)uk+1 = Muk

• What about smallest eigenvalue problem Lu = λu?• Two options:

1 Solve generalized eigenvalue problem Cu = λMu2 Solve M−1/2CM−1/2u = λu, recover u = M−1/2u

• Note: M−1/2 just means “put 1/√Ai on the diagonal!”

Page 177: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry, continued

• Can also make heat equation symmetric

• Instead of (I− hL)uk+1 = uk, use

(M− hC)uk+1 = Muk

• What about smallest eigenvalue problem Lu = λu?

• Two options:1 Solve generalized eigenvalue problem Cu = λMu2 Solve M−1/2CM−1/2u = λu, recover u = M−1/2u

• Note: M−1/2 just means “put 1/√Ai on the diagonal!”

Page 178: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry, continued

• Can also make heat equation symmetric

• Instead of (I− hL)uk+1 = uk, use

(M− hC)uk+1 = Muk

• What about smallest eigenvalue problem Lu = λu?• Two options:

1 Solve generalized eigenvalue problem Cu = λMu2 Solve M−1/2CM−1/2u = λu, recover u = M−1/2u

• Note: M−1/2 just means “put 1/√Ai on the diagonal!”

Page 179: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry, continued

• Can also make heat equation symmetric

• Instead of (I− hL)uk+1 = uk, use

(M− hC)uk+1 = Muk

• What about smallest eigenvalue problem Lu = λu?• Two options:

1 Solve generalized eigenvalue problem Cu = λMu

2 Solve M−1/2CM−1/2u = λu, recover u = M−1/2u

• Note: M−1/2 just means “put 1/√Ai on the diagonal!”

Page 180: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry, continued

• Can also make heat equation symmetric

• Instead of (I− hL)uk+1 = uk, use

(M− hC)uk+1 = Muk

• What about smallest eigenvalue problem Lu = λu?• Two options:

1 Solve generalized eigenvalue problem Cu = λMu2 Solve M−1/2CM−1/2u = λu, recover u = M−1/2u

• Note: M−1/2 just means “put 1/√Ai on the diagonal!”

Page 181: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry, continued

• Can also make heat equation symmetric

• Instead of (I− hL)uk+1 = uk, use

(M− hC)uk+1 = Muk

• What about smallest eigenvalue problem Lu = λu?• Two options:

1 Solve generalized eigenvalue problem Cu = λMu2 Solve M−1/2CM−1/2u = λu, recover u = M−1/2u

• Note: M−1/2 just means “put 1/√Ai on the diagonal!”

Page 182: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Symmetry, continued

• Can also make heat equation symmetric

• Instead of (I− hL)uk+1 = uk, use

(M− hC)uk+1 = Muk

• What about smallest eigenvalue problem Lu = λu?• Two options:

1 Solve generalized eigenvalue problem Cu = λMu2 Solve M−1/2CM−1/2u = λu, recover u = M−1/2u

• Note: M−1/2 just means “put 1/√Ai on the diagonal!”

Page 183: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Direct vs. Iterative Solvers

• Direct (e.g., LLT, LU, QR, . . . )

• pros: great for multiple right-hand sides; (can be) lesssensitive to numerical instability; solve many types ofproblems, under/overdetermined systems.

• cons: prohibitively expensive for large problems; factorsare quite dense for 3D (volumetric) problems

• Iterative (e.g., conjugate gradient, multigrid, . . . )• pros: can handle very large problems; can be implemented

via callback (instead of matrix); asymptotic running timesapproaching linear time (in theory. . . )

• cons: poor performance without good preconditioners; lessbenefit for multiple right-hand sides; best-in-class methodsmay handle only symmetric positive-(semi)definite systems

• No perfect solution! Each problem is different.

Page 184: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Direct vs. Iterative Solvers

• Direct (e.g., LLT, LU, QR, . . . )• pros: great for multiple right-hand sides; (can be) less

sensitive to numerical instability; solve many types ofproblems, under/overdetermined systems.

• cons: prohibitively expensive for large problems; factorsare quite dense for 3D (volumetric) problems

• Iterative (e.g., conjugate gradient, multigrid, . . . )• pros: can handle very large problems; can be implemented

via callback (instead of matrix); asymptotic running timesapproaching linear time (in theory. . . )

• cons: poor performance without good preconditioners; lessbenefit for multiple right-hand sides; best-in-class methodsmay handle only symmetric positive-(semi)definite systems

• No perfect solution! Each problem is different.

Page 185: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Direct vs. Iterative Solvers

• Direct (e.g., LLT, LU, QR, . . . )• pros: great for multiple right-hand sides; (can be) less

sensitive to numerical instability; solve many types ofproblems, under/overdetermined systems.

• cons: prohibitively expensive for large problems; factorsare quite dense for 3D (volumetric) problems

• Iterative (e.g., conjugate gradient, multigrid, . . . )• pros: can handle very large problems; can be implemented

via callback (instead of matrix); asymptotic running timesapproaching linear time (in theory. . . )

• cons: poor performance without good preconditioners; lessbenefit for multiple right-hand sides; best-in-class methodsmay handle only symmetric positive-(semi)definite systems

• No perfect solution! Each problem is different.

Page 186: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Direct vs. Iterative Solvers

• Direct (e.g., LLT, LU, QR, . . . )• pros: great for multiple right-hand sides; (can be) less

sensitive to numerical instability; solve many types ofproblems, under/overdetermined systems.

• cons: prohibitively expensive for large problems; factorsare quite dense for 3D (volumetric) problems

• Iterative (e.g., conjugate gradient, multigrid, . . . )

• pros: can handle very large problems; can be implementedvia callback (instead of matrix); asymptotic running timesapproaching linear time (in theory. . . )

• cons: poor performance without good preconditioners; lessbenefit for multiple right-hand sides; best-in-class methodsmay handle only symmetric positive-(semi)definite systems

• No perfect solution! Each problem is different.

Page 187: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Direct vs. Iterative Solvers

• Direct (e.g., LLT, LU, QR, . . . )• pros: great for multiple right-hand sides; (can be) less

sensitive to numerical instability; solve many types ofproblems, under/overdetermined systems.

• cons: prohibitively expensive for large problems; factorsare quite dense for 3D (volumetric) problems

• Iterative (e.g., conjugate gradient, multigrid, . . . )• pros: can handle very large problems; can be implemented

via callback (instead of matrix); asymptotic running timesapproaching linear time (in theory. . . )

• cons: poor performance without good preconditioners; lessbenefit for multiple right-hand sides; best-in-class methodsmay handle only symmetric positive-(semi)definite systems

• No perfect solution! Each problem is different.

Page 188: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Direct vs. Iterative Solvers

• Direct (e.g., LLT, LU, QR, . . . )• pros: great for multiple right-hand sides; (can be) less

sensitive to numerical instability; solve many types ofproblems, under/overdetermined systems.

• cons: prohibitively expensive for large problems; factorsare quite dense for 3D (volumetric) problems

• Iterative (e.g., conjugate gradient, multigrid, . . . )• pros: can handle very large problems; can be implemented

via callback (instead of matrix); asymptotic running timesapproaching linear time (in theory. . . )

• cons: poor performance without good preconditioners; lessbenefit for multiple right-hand sides; best-in-class methodsmay handle only symmetric positive-(semi)definite systems

• No perfect solution! Each problem is different.

Page 189: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Numerical Issues—Direct vs. Iterative Solvers

• Direct (e.g., LLT, LU, QR, . . . )• pros: great for multiple right-hand sides; (can be) less

sensitive to numerical instability; solve many types ofproblems, under/overdetermined systems.

• cons: prohibitively expensive for large problems; factorsare quite dense for 3D (volumetric) problems

• Iterative (e.g., conjugate gradient, multigrid, . . . )• pros: can handle very large problems; can be implemented

via callback (instead of matrix); asymptotic running timesapproaching linear time (in theory. . . )

• cons: poor performance without good preconditioners; lessbenefit for multiple right-hand sides; best-in-class methodsmay handle only symmetric positive-(semi)definite systems

• No perfect solution! Each problem is different.

Page 190: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Solving Equations in Linear Time

• Is solving Poisson, Laplace, etc., truly linear time in 2D?

• Jury is still out, but keep inching forward:• [Vaidya, 1991]—use spanning tree as preconditioner• [Alon et al., 1995]—use low-stretch spanning trees• [Spielman and Teng, 2004]—first “nearly linear time” solver• [Krishnan et al., 2013]—practical solver for graphics• Lots of recent activity in both preconditioners and direct

solvers (e.g., [Koutis et al., 2011],[Gillman and Martinsson, 2013])

• Best theoretical results may lack practical implementations!

• Older codes benefit from extensive low-level optimization

• Long term: probably indistinguishable from O(n)

Page 191: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Solving Equations in Linear Time

• Is solving Poisson, Laplace, etc., truly linear time in 2D?• Jury is still out, but keep inching forward:

• [Vaidya, 1991]—use spanning tree as preconditioner• [Alon et al., 1995]—use low-stretch spanning trees• [Spielman and Teng, 2004]—first “nearly linear time” solver• [Krishnan et al., 2013]—practical solver for graphics• Lots of recent activity in both preconditioners and direct

solvers (e.g., [Koutis et al., 2011],[Gillman and Martinsson, 2013])

• Best theoretical results may lack practical implementations!

• Older codes benefit from extensive low-level optimization

• Long term: probably indistinguishable from O(n)

Page 192: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Solving Equations in Linear Time

• Is solving Poisson, Laplace, etc., truly linear time in 2D?• Jury is still out, but keep inching forward:

• [Vaidya, 1991]—use spanning tree as preconditioner• [Alon et al., 1995]—use low-stretch spanning trees• [Spielman and Teng, 2004]—first “nearly linear time” solver• [Krishnan et al., 2013]—practical solver for graphics• Lots of recent activity in both preconditioners and direct

solvers (e.g., [Koutis et al., 2011],[Gillman and Martinsson, 2013])

• Best theoretical results may lack practical implementations!

• Older codes benefit from extensive low-level optimization

• Long term: probably indistinguishable from O(n)

Page 193: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Solving Equations in Linear Time

• Is solving Poisson, Laplace, etc., truly linear time in 2D?• Jury is still out, but keep inching forward:

• [Vaidya, 1991]—use spanning tree as preconditioner• [Alon et al., 1995]—use low-stretch spanning trees• [Spielman and Teng, 2004]—first “nearly linear time” solver• [Krishnan et al., 2013]—practical solver for graphics• Lots of recent activity in both preconditioners and direct

solvers (e.g., [Koutis et al., 2011],[Gillman and Martinsson, 2013])

• Best theoretical results may lack practical implementations!

• Older codes benefit from extensive low-level optimization

• Long term: probably indistinguishable from O(n)

Page 194: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Solving Equations in Linear Time

• Is solving Poisson, Laplace, etc., truly linear time in 2D?• Jury is still out, but keep inching forward:

• [Vaidya, 1991]—use spanning tree as preconditioner• [Alon et al., 1995]—use low-stretch spanning trees• [Spielman and Teng, 2004]—first “nearly linear time” solver• [Krishnan et al., 2013]—practical solver for graphics• Lots of recent activity in both preconditioners and direct

solvers (e.g., [Koutis et al., 2011],[Gillman and Martinsson, 2013])

• Best theoretical results may lack practical implementations!

• Older codes benefit from extensive low-level optimization

• Long term: probably indistinguishable from O(n)

Page 195: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Boundary Conditions

• PDE (Laplace, Poisson, heat equation, etc.) determinesbehavior “inside” domain Ω

• Also need to say how solution behaves on boundary ∂Ω

• Often trickiest part (both mathematically & numerically)

• Very easy to get wrong!

Page 196: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Boundary Conditions

• PDE (Laplace, Poisson, heat equation, etc.) determinesbehavior “inside” domain Ω

• Also need to say how solution behaves on boundary ∂Ω

• Often trickiest part (both mathematically & numerically)

• Very easy to get wrong!

Page 197: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Boundary Conditions

• PDE (Laplace, Poisson, heat equation, etc.) determinesbehavior “inside” domain Ω

• Also need to say how solution behaves on boundary ∂Ω

• Often trickiest part (both mathematically & numerically)

• Very easy to get wrong!

Page 198: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Boundary Conditions

• PDE (Laplace, Poisson, heat equation, etc.) determinesbehavior “inside” domain Ω

• Also need to say how solution behaves on boundary ∂Ω

• Often trickiest part (both mathematically & numerically)

• Very easy to get wrong!

Page 199: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dirichlet Boundary Conditions

• “Dirichlet” ⇐⇒ prescribe values

• E.g., φ(0) = a, φ(1) = b

• (Many possible functions “in between!”)

Page 200: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dirichlet Boundary Conditions

• “Dirichlet” ⇐⇒ prescribe values

• E.g., φ(0) = a, φ(1) = b

• (Many possible functions “in between!”)

Page 201: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dirichlet Boundary Conditions

• “Dirichlet” ⇐⇒ prescribe values

• E.g., φ(0) = a, φ(1) = b

• (Many possible functions “in between!”)

Page 202: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Neumann Boundary Conditions

• “Neumann” ⇐⇒ prescribe derivatives

• E.g., φ′(0) = u, φ′(1) = v

• (Again, many possible solutions.)

Page 203: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Neumann Boundary Conditions

• “Neumann” ⇐⇒ prescribe derivatives

• E.g., φ′(0) = u, φ′(1) = v

• (Again, many possible solutions.)

Page 204: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Neumann Boundary Conditions

• “Neumann” ⇐⇒ prescribe derivatives

• E.g., φ′(0) = u, φ′(1) = v

• (Again, many possible solutions.)

Page 205: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Both Neumann & Dirichlet

• Or: prescribe some values, some derivatives

• E.g., φ′(0) = u, φ(1) = b

• (What about φ′(1) = v, φ(1) = b?)

Page 206: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Both Neumann & Dirichlet

• Or: prescribe some values, some derivatives

• E.g., φ′(0) = u, φ(1) = b

• (What about φ′(1) = v, φ(1) = b?)

Page 207: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Both Neumann & Dirichlet

• Or: prescribe some values, some derivatives

• E.g., φ′(0) = u, φ(1) = b

• (What about φ′(1) = v, φ(1) = b?)

Page 208: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Dirichlet Boundary Conditions (1D)

• 1D Laplace: ∂2φ/∂x2 = 0

• Solutions: φ(x) = cx + d (linear functions)

• Can we always satisfy Dirichlet boundary conditions?

• Yes: a line can interpolate any two points

Page 209: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Dirichlet Boundary Conditions (1D)

• 1D Laplace: ∂2φ/∂x2 = 0

• Solutions: φ(x) = cx + d (linear functions)

• Can we always satisfy Dirichlet boundary conditions?

• Yes: a line can interpolate any two points

Page 210: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Dirichlet Boundary Conditions (1D)

• 1D Laplace: ∂2φ/∂x2 = 0

• Solutions: φ(x) = cx + d (linear functions)

• Can we always satisfy Dirichlet boundary conditions?

• Yes: a line can interpolate any two points

Page 211: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Dirichlet Boundary Conditions (1D)

• 1D Laplace: ∂2φ/∂x2 = 0

• Solutions: φ(x) = cx + d (linear functions)

• Can we always satisfy Dirichlet boundary conditions?

• Yes: a line can interpolate any two points

Page 212: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Neumann Boundary Conditions (1D)

• What about Neumann boundary conditions?

• Solution must still be a line: φ(x) = cx + d

• Can we prescribe the derivative at both ends?

• No! A line can have only one slope!

• In general: solutions to PDE may not exist for given BCs

Page 213: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Neumann Boundary Conditions (1D)

• What about Neumann boundary conditions?

• Solution must still be a line: φ(x) = cx + d

• Can we prescribe the derivative at both ends?

• No! A line can have only one slope!

• In general: solutions to PDE may not exist for given BCs

Page 214: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Neumann Boundary Conditions (1D)

• What about Neumann boundary conditions?

• Solution must still be a line: φ(x) = cx + d

• Can we prescribe the derivative at both ends?

• No! A line can have only one slope!

• In general: solutions to PDE may not exist for given BCs

Page 215: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Neumann Boundary Conditions (1D)

• What about Neumann boundary conditions?

• Solution must still be a line: φ(x) = cx + d

• Can we prescribe the derivative at both ends?

• No! A line can have only one slope!

• In general: solutions to PDE may not exist for given BCs

Page 216: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Neumann Boundary Conditions (1D)

• What about Neumann boundary conditions?

• Solution must still be a line: φ(x) = cx + d

• Can we prescribe the derivative at both ends?

• No! A line can have only one slope!

• In general: solutions to PDE may not exist for given BCs

Page 217: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Dirichlet Boundary Conditions (2D)

• 2D Laplace: ∆φ = 0

• Can we always satisfy Dirichlet boundary conditions?

• Yes: Laplace is steady-state solution to heat flow ddt φ = ∆φ

• Dirichlet data is just “heat” along boundary

Page 218: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Dirichlet Boundary Conditions (2D)

• 2D Laplace: ∆φ = 0

• Can we always satisfy Dirichlet boundary conditions?

• Yes: Laplace is steady-state solution to heat flow ddt φ = ∆φ

• Dirichlet data is just “heat” along boundary

Page 219: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Dirichlet Boundary Conditions (2D)

• 2D Laplace: ∆φ = 0

• Can we always satisfy Dirichlet boundary conditions?

• Yes: Laplace is steady-state solution to heat flow ddt φ = ∆φ

• Dirichlet data is just “heat” along boundary

Page 220: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Neumann Boundary Conditions (2D)

• What about Neumann boundaryconditions?

• Still want to solve ∆φ = 0

• Want to prescribe normal derivativen · ∇φ

• Wasn’t always possible in 1D. . .

• In 2D, we have divergence theorem:∫Ω

0 !=∫

Ω∆φ =

∫Ω∇ ·∇φ =

∫∂Ω

n · ∇φ

• Conclusion: can only solve ∆φ = 0 ifNeumann BCs have zero mean!

Page 221: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Neumann Boundary Conditions (2D)

• What about Neumann boundaryconditions?

• Still want to solve ∆φ = 0

• Want to prescribe normal derivativen · ∇φ

• Wasn’t always possible in 1D. . .

• In 2D, we have divergence theorem:∫Ω

0 !=∫

Ω∆φ =

∫Ω∇ ·∇φ =

∫∂Ω

n · ∇φ

• Conclusion: can only solve ∆φ = 0 ifNeumann BCs have zero mean!

Page 222: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Neumann Boundary Conditions (2D)

• What about Neumann boundaryconditions?

• Still want to solve ∆φ = 0

• Want to prescribe normal derivativen · ∇φ

• Wasn’t always possible in 1D. . .

• In 2D, we have divergence theorem:∫Ω

0 !=∫

Ω∆φ =

∫Ω∇ ·∇φ =

∫∂Ω

n · ∇φ

• Conclusion: can only solve ∆φ = 0 ifNeumann BCs have zero mean!

Page 223: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Neumann Boundary Conditions (2D)

• What about Neumann boundaryconditions?

• Still want to solve ∆φ = 0

• Want to prescribe normal derivativen · ∇φ

• Wasn’t always possible in 1D. . .

• In 2D, we have divergence theorem:∫Ω

0 !=∫

Ω∆φ =

∫Ω∇ ·∇φ =

∫∂Ω

n · ∇φ

• Conclusion: can only solve ∆φ = 0 ifNeumann BCs have zero mean!

Page 224: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace w/ Neumann Boundary Conditions (2D)

• What about Neumann boundaryconditions?

• Still want to solve ∆φ = 0

• Want to prescribe normal derivativen · ∇φ

• Wasn’t always possible in 1D. . .

• In 2D, we have divergence theorem:∫Ω

0 !=∫

Ω∆φ =

∫Ω∇ ·∇φ =

∫∂Ω

n · ∇φ

• Conclusion: can only solve ∆φ = 0 ifNeumann BCs have zero mean!

Page 225: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Dirichlet

• Suppose we want to solve ∆u = f s.t. u|∂Ω = g (Poissonequation w/ Dirichlet boundary conditions)

• Discretized Poisson equation as Cu = Mf

• Let I, B denote interior, boundary vertices, respectively. Get[CII CIB

CBI CBB

] [uI

uB

]=

[MII 00 MBB

] [fIfB

]• Since uB is known (boundary values), solve just

CIIuI = MIIfI − CIBuB for uI (right-hand side is known).

• Can skip matrix multiply and compute entries of RHSdirectly: Aifi −∑j∈N∂(i)(cot αij + cot βij)uj

• Here N∂(i) denotes neighbors of i on the boundary

Page 226: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Dirichlet

• Suppose we want to solve ∆u = f s.t. u|∂Ω = g (Poissonequation w/ Dirichlet boundary conditions)

• Discretized Poisson equation as Cu = Mf

• Let I, B denote interior, boundary vertices, respectively. Get[CII CIB

CBI CBB

] [uI

uB

]=

[MII 00 MBB

] [fIfB

]• Since uB is known (boundary values), solve just

CIIuI = MIIfI − CIBuB for uI (right-hand side is known).

• Can skip matrix multiply and compute entries of RHSdirectly: Aifi −∑j∈N∂(i)(cot αij + cot βij)uj

• Here N∂(i) denotes neighbors of i on the boundary

Page 227: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Dirichlet

• Suppose we want to solve ∆u = f s.t. u|∂Ω = g (Poissonequation w/ Dirichlet boundary conditions)

• Discretized Poisson equation as Cu = Mf

• Let I, B denote interior, boundary vertices, respectively. Get[CII CIB

CBI CBB

] [uI

uB

]=

[MII 00 MBB

] [fIfB

]

• Since uB is known (boundary values), solve justCIIuI = MIIfI − CIBuB for uI (right-hand side is known).

• Can skip matrix multiply and compute entries of RHSdirectly: Aifi −∑j∈N∂(i)(cot αij + cot βij)uj

• Here N∂(i) denotes neighbors of i on the boundary

Page 228: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Dirichlet

• Suppose we want to solve ∆u = f s.t. u|∂Ω = g (Poissonequation w/ Dirichlet boundary conditions)

• Discretized Poisson equation as Cu = Mf

• Let I, B denote interior, boundary vertices, respectively. Get[CII CIB

CBI CBB

] [uI

uB

]=

[MII 00 MBB

] [fIfB

]• Since uB is known (boundary values), solve just

CIIuI = MIIfI − CIBuB for uI (right-hand side is known).

• Can skip matrix multiply and compute entries of RHSdirectly: Aifi −∑j∈N∂(i)(cot αij + cot βij)uj

• Here N∂(i) denotes neighbors of i on the boundary

Page 229: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Dirichlet

• Suppose we want to solve ∆u = f s.t. u|∂Ω = g (Poissonequation w/ Dirichlet boundary conditions)

• Discretized Poisson equation as Cu = Mf

• Let I, B denote interior, boundary vertices, respectively. Get[CII CIB

CBI CBB

] [uI

uB

]=

[MII 00 MBB

] [fIfB

]• Since uB is known (boundary values), solve just

CIIuI = MIIfI − CIBuB for uI (right-hand side is known).

• Can skip matrix multiply and compute entries of RHSdirectly: Aifi −∑j∈N∂(i)(cot αij + cot βij)uj

• Here N∂(i) denotes neighbors of i on the boundary

Page 230: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Neumann

• Integrate both sides of ∆u = f over cell Ci (“finite volume”)∫Ci

f !=∫

Ci

∆u =∫

Ci

∇ · ∇u =∫

∂Ci

n · ∇u

• Gives usual cotangent formula for interior vertices; forboundary vertex i, yields

Aii!= 1

2 (ga + gb) +12 ∑

j∈Nint

(cot αij + cot βij)(uj − ui)

• Here ga, gb are prescribed normal derivatives; just subtractfrom RHS and solve Cu = Mf as usual

Page 231: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Neumann

• Other possible boundary conditions (e.g., Robin)

• Dirichlet, Neumann most common—implementation ofother BCs will be similar

• When in doubt, return to smooth equations and integrate!

• . . . and make sure your equation has a solution!

• Solver will NOT always tell you if there’s a problem!

• Easy test? Compute the residual r := Ax− b. If the relativeresidual ||r||∞/||b||∞ is far from zero (e.g., greater than10−14 in double precision), you did not actually solve yourproblem!

Page 232: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Neumann

• Other possible boundary conditions (e.g., Robin)

• Dirichlet, Neumann most common—implementation ofother BCs will be similar

• When in doubt, return to smooth equations and integrate!

• . . . and make sure your equation has a solution!

• Solver will NOT always tell you if there’s a problem!

• Easy test? Compute the residual r := Ax− b. If the relativeresidual ||r||∞/||b||∞ is far from zero (e.g., greater than10−14 in double precision), you did not actually solve yourproblem!

Page 233: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Neumann

• Other possible boundary conditions (e.g., Robin)

• Dirichlet, Neumann most common—implementation ofother BCs will be similar

• When in doubt, return to smooth equations and integrate!

• . . . and make sure your equation has a solution!

• Solver will NOT always tell you if there’s a problem!

• Easy test? Compute the residual r := Ax− b. If the relativeresidual ||r||∞/||b||∞ is far from zero (e.g., greater than10−14 in double precision), you did not actually solve yourproblem!

Page 234: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Neumann

• Other possible boundary conditions (e.g., Robin)

• Dirichlet, Neumann most common—implementation ofother BCs will be similar

• When in doubt, return to smooth equations and integrate!

• . . . and make sure your equation has a solution!

• Solver will NOT always tell you if there’s a problem!

• Easy test? Compute the residual r := Ax− b. If the relativeresidual ||r||∞/||b||∞ is far from zero (e.g., greater than10−14 in double precision), you did not actually solve yourproblem!

Page 235: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Neumann

• Other possible boundary conditions (e.g., Robin)

• Dirichlet, Neumann most common—implementation ofother BCs will be similar

• When in doubt, return to smooth equations and integrate!

• . . . and make sure your equation has a solution!

• Solver will NOT always tell you if there’s a problem!

• Easy test? Compute the residual r := Ax− b. If the relativeresidual ||r||∞/||b||∞ is far from zero (e.g., greater than10−14 in double precision), you did not actually solve yourproblem!

Page 236: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Neumann

• Other possible boundary conditions (e.g., Robin)

• Dirichlet, Neumann most common—implementation ofother BCs will be similar

• When in doubt, return to smooth equations and integrate!

• . . . and make sure your equation has a solution!

• Solver will NOT always tell you if there’s a problem!

• Easy test? Compute the residual r := Ax− b. If the relativeresidual ||r||∞/||b||∞ is far from zero (e.g., greater than10−14 in double precision), you did not actually solve yourproblem!

Page 237: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Discrete Boundary Conditions - Neumann

• Other possible boundary conditions (e.g., Robin)

• Dirichlet, Neumann most common—implementation ofother BCs will be similar

• When in doubt, return to smooth equations and integrate!

• . . . and make sure your equation has a solution!

• Solver will NOT always tell you if there’s a problem!

• Easy test? Compute the residual r := Ax− b. If the relativeresidual ||r||∞/||b||∞ is far from zero (e.g., greater than10−14 in double precision), you did not actually solve yourproblem!

Page 238: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Alternative Discretizations

• Have spent a lot of time on triangle meshes. . .

• . . . plenty of other ways to describe a surface!

• E.g., points are increasingly popular (due to 3D scanning)

• Also: more accurate discretization on triangle meshes

Page 239: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Alternative Discretizations

• Have spent a lot of time on triangle meshes. . .

• . . . plenty of other ways to describe a surface!

• E.g., points are increasingly popular (due to 3D scanning)

• Also: more accurate discretization on triangle meshes

Page 240: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Alternative Discretizations

• Have spent a lot of time on triangle meshes. . .

• . . . plenty of other ways to describe a surface!

• E.g., points are increasingly popular (due to 3D scanning)

• Also: more accurate discretization on triangle meshes

Page 241: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Alternative Discretizations

• Have spent a lot of time on triangle meshes. . .

• . . . plenty of other ways to describe a surface!

• E.g., points are increasingly popular (due to 3D scanning)

• Also: more accurate discretization on triangle meshes

Page 242: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Quad, Polygon Meshes

• Quads popular alternative to triangles.Why?

• capture principal curvatures of a surface• nice bases can be built via tensor

products• see [Bommes et al., 2013] for further

discussion

• More generally: meshes with quads andtriangles and . . .

• Nice discretization:[Alexa and Wardetzky, 2011]

• Can then solve all the same problems(Laplace, Poisson, heat, . . . )

Page 243: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Quad, Polygon Meshes

• Quads popular alternative to triangles.Why?

• capture principal curvatures of a surface

• nice bases can be built via tensorproducts

• see [Bommes et al., 2013] for furtherdiscussion

• More generally: meshes with quads andtriangles and . . .

• Nice discretization:[Alexa and Wardetzky, 2011]

• Can then solve all the same problems(Laplace, Poisson, heat, . . . )

Page 244: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Quad, Polygon Meshes

• Quads popular alternative to triangles.Why?

• capture principal curvatures of a surface• nice bases can be built via tensor

products

• see [Bommes et al., 2013] for furtherdiscussion

• More generally: meshes with quads andtriangles and . . .

• Nice discretization:[Alexa and Wardetzky, 2011]

• Can then solve all the same problems(Laplace, Poisson, heat, . . . )

Page 245: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Quad, Polygon Meshes

• Quads popular alternative to triangles.Why?

• capture principal curvatures of a surface• nice bases can be built via tensor

products• see [Bommes et al., 2013] for further

discussion

• More generally: meshes with quads andtriangles and . . .

• Nice discretization:[Alexa and Wardetzky, 2011]

• Can then solve all the same problems(Laplace, Poisson, heat, . . . )

Page 246: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Quad, Polygon Meshes

• Quads popular alternative to triangles.Why?

• capture principal curvatures of a surface• nice bases can be built via tensor

products• see [Bommes et al., 2013] for further

discussion

• More generally: meshes with quads andtriangles and . . .

• Nice discretization:[Alexa and Wardetzky, 2011]

• Can then solve all the same problems(Laplace, Poisson, heat, . . . )

Page 247: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Quad, Polygon Meshes

• Quads popular alternative to triangles.Why?

• capture principal curvatures of a surface• nice bases can be built via tensor

products• see [Bommes et al., 2013] for further

discussion

• More generally: meshes with quads andtriangles and . . .

• Nice discretization:[Alexa and Wardetzky, 2011]

• Can then solve all the same problems(Laplace, Poisson, heat, . . . )

Page 248: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Quad, Polygon Meshes

• Quads popular alternative to triangles.Why?

• capture principal curvatures of a surface• nice bases can be built via tensor

products• see [Bommes et al., 2013] for further

discussion

• More generally: meshes with quads andtriangles and . . .

• Nice discretization:[Alexa and Wardetzky, 2011]

• Can then solve all the same problems(Laplace, Poisson, heat, . . . )

Page 249: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Point Clouds

• Real data often point cloud with noconnectivity (plus noise, holes. . . )

• Can still build Laplace operator!

• Rough idea: use heat flow to discretize ∆

• ddt u = ∆u =⇒ ∆u ≈ (u(T)− u(0))/T

• How do we get u(T)? Convolve u with(Euclidean) heat kernel 1

4πT er2/4T

• Converges with more samples, T goesto zero (under certain conditions!)

• Details: [Belkin et al., 2009, Liu et al., 2012]

• From there, solve all the sameproblems! (Again.)

Page 250: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Point Clouds

• Real data often point cloud with noconnectivity (plus noise, holes. . . )

• Can still build Laplace operator!

• Rough idea: use heat flow to discretize ∆

• ddt u = ∆u =⇒ ∆u ≈ (u(T)− u(0))/T

• How do we get u(T)? Convolve u with(Euclidean) heat kernel 1

4πT er2/4T

• Converges with more samples, T goesto zero (under certain conditions!)

• Details: [Belkin et al., 2009, Liu et al., 2012]

• From there, solve all the sameproblems! (Again.)

Page 251: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Point Clouds

• Real data often point cloud with noconnectivity (plus noise, holes. . . )

• Can still build Laplace operator!

• Rough idea: use heat flow to discretize ∆

• ddt u = ∆u =⇒ ∆u ≈ (u(T)− u(0))/T

• How do we get u(T)? Convolve u with(Euclidean) heat kernel 1

4πT er2/4T

• Converges with more samples, T goesto zero (under certain conditions!)

• Details: [Belkin et al., 2009, Liu et al., 2012]

• From there, solve all the sameproblems! (Again.)

Page 252: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Point Clouds

• Real data often point cloud with noconnectivity (plus noise, holes. . . )

• Can still build Laplace operator!

• Rough idea: use heat flow to discretize ∆

• ddt u = ∆u =⇒ ∆u ≈ (u(T)− u(0))/T

• How do we get u(T)? Convolve u with(Euclidean) heat kernel 1

4πT er2/4T

• Converges with more samples, T goesto zero (under certain conditions!)

• Details: [Belkin et al., 2009, Liu et al., 2012]

• From there, solve all the sameproblems! (Again.)

Page 253: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Point Clouds

• Real data often point cloud with noconnectivity (plus noise, holes. . . )

• Can still build Laplace operator!

• Rough idea: use heat flow to discretize ∆

• ddt u = ∆u =⇒ ∆u ≈ (u(T)− u(0))/T

• How do we get u(T)? Convolve u with(Euclidean) heat kernel 1

4πT er2/4T

• Converges with more samples, T goesto zero (under certain conditions!)

• Details: [Belkin et al., 2009, Liu et al., 2012]

• From there, solve all the sameproblems! (Again.)

Page 254: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Point Clouds

• Real data often point cloud with noconnectivity (plus noise, holes. . . )

• Can still build Laplace operator!

• Rough idea: use heat flow to discretize ∆

• ddt u = ∆u =⇒ ∆u ≈ (u(T)− u(0))/T

• How do we get u(T)? Convolve u with(Euclidean) heat kernel 1

4πT er2/4T

• Converges with more samples, T goesto zero (under certain conditions!)

• Details: [Belkin et al., 2009, Liu et al., 2012]

• From there, solve all the sameproblems! (Again.)

Page 255: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Point Clouds

• Real data often point cloud with noconnectivity (plus noise, holes. . . )

• Can still build Laplace operator!

• Rough idea: use heat flow to discretize ∆

• ddt u = ∆u =⇒ ∆u ≈ (u(T)− u(0))/T

• How do we get u(T)? Convolve u with(Euclidean) heat kernel 1

4πT er2/4T

• Converges with more samples, T goesto zero (under certain conditions!)

• Details: [Belkin et al., 2009, Liu et al., 2012]

• From there, solve all the sameproblems! (Again.)

Page 256: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Point Clouds

• Real data often point cloud with noconnectivity (plus noise, holes. . . )

• Can still build Laplace operator!

• Rough idea: use heat flow to discretize ∆

• ddt u = ∆u =⇒ ∆u ≈ (u(T)− u(0))/T

• How do we get u(T)? Convolve u with(Euclidean) heat kernel 1

4πT er2/4T

• Converges with more samples, T goesto zero (under certain conditions!)

• Details: [Belkin et al., 2009, Liu et al., 2012]

• From there, solve all the sameproblems! (Again.)

Page 257: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dual Mesh

barycentric circumcentric (superimposed)

• Earlier saw Laplacian discretized via dual mesh

• Different duals lead to operators with different accuracy• Space of orthogonal duals explored by [Mullen et al., 2011]• Leads to many applications in geometry processing

[de Goes et al., 2012, de Goes et al., 2013, de Goes et al., 2014]

Page 258: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dual Mesh

barycentric circumcentric (superimposed)

• Earlier saw Laplacian discretized via dual mesh• Different duals lead to operators with different accuracy

• Space of orthogonal duals explored by [Mullen et al., 2011]• Leads to many applications in geometry processing

[de Goes et al., 2012, de Goes et al., 2013, de Goes et al., 2014]

Page 259: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dual Mesh

barycentric circumcentric (superimposed)

• Earlier saw Laplacian discretized via dual mesh• Different duals lead to operators with different accuracy• Space of orthogonal duals explored by [Mullen et al., 2011]

• Leads to many applications in geometry processing[de Goes et al., 2012, de Goes et al., 2013, de Goes et al., 2014]

Page 260: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Dual Mesh

barycentric circumcentric (superimposed)

• Earlier saw Laplacian discretized via dual mesh• Different duals lead to operators with different accuracy• Space of orthogonal duals explored by [Mullen et al., 2011]• Leads to many applications in geometry processing

[de Goes et al., 2012, de Goes et al., 2013, de Goes et al., 2014]

Page 261: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Volumes / Tetrahedral Meshes

• Same problems (Poisson, Laplace, etc.)can also be solved on volumes

• Popular choice: tetrahedral meshes(graded, conform to boundary, . . . )

• Many ways to get Laplace matrix

• One nice way: discrete exterior calculus(DEC) [Hirani, 2003, Desbrun et al., 2005]

• Just incidence matrices (e.g., which tetscontain which triangles?) & primal /dual volumes (area, length, etc.).

• Added bonus: play with definition ofdual to improve accuracy[Mullen et al., 2011].

Page 262: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Volumes / Tetrahedral Meshes

• Same problems (Poisson, Laplace, etc.)can also be solved on volumes

• Popular choice: tetrahedral meshes(graded, conform to boundary, . . . )

• Many ways to get Laplace matrix

• One nice way: discrete exterior calculus(DEC) [Hirani, 2003, Desbrun et al., 2005]

• Just incidence matrices (e.g., which tetscontain which triangles?) & primal /dual volumes (area, length, etc.).

• Added bonus: play with definition ofdual to improve accuracy[Mullen et al., 2011].

Page 263: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Volumes / Tetrahedral Meshes

• Same problems (Poisson, Laplace, etc.)can also be solved on volumes

• Popular choice: tetrahedral meshes(graded, conform to boundary, . . . )

• Many ways to get Laplace matrix

• One nice way: discrete exterior calculus(DEC) [Hirani, 2003, Desbrun et al., 2005]

• Just incidence matrices (e.g., which tetscontain which triangles?) & primal /dual volumes (area, length, etc.).

• Added bonus: play with definition ofdual to improve accuracy[Mullen et al., 2011].

Page 264: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Volumes / Tetrahedral Meshes

• Same problems (Poisson, Laplace, etc.)can also be solved on volumes

• Popular choice: tetrahedral meshes(graded, conform to boundary, . . . )

• Many ways to get Laplace matrix

• One nice way: discrete exterior calculus(DEC) [Hirani, 2003, Desbrun et al., 2005]

• Just incidence matrices (e.g., which tetscontain which triangles?) & primal /dual volumes (area, length, etc.).

• Added bonus: play with definition ofdual to improve accuracy[Mullen et al., 2011].

Page 265: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Volumes / Tetrahedral Meshes

• Same problems (Poisson, Laplace, etc.)can also be solved on volumes

• Popular choice: tetrahedral meshes(graded, conform to boundary, . . . )

• Many ways to get Laplace matrix

• One nice way: discrete exterior calculus(DEC) [Hirani, 2003, Desbrun et al., 2005]

• Just incidence matrices (e.g., which tetscontain which triangles?) & primal /dual volumes (area, length, etc.).

• Added bonus: play with definition ofdual to improve accuracy[Mullen et al., 2011].

Page 266: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Volumes / Tetrahedral Meshes

• Same problems (Poisson, Laplace, etc.)can also be solved on volumes

• Popular choice: tetrahedral meshes(graded, conform to boundary, . . . )

• Many ways to get Laplace matrix

• One nice way: discrete exterior calculus(DEC) [Hirani, 2003, Desbrun et al., 2005]

• Just incidence matrices (e.g., which tetscontain which triangles?) & primal /dual volumes (area, length, etc.).

• Added bonus: play with definition ofdual to improve accuracy[Mullen et al., 2011].

Page 267: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

...and More!

• Covered some standard discretizations

• Many possibilities (level sets, hexmeshes. . . )

• Often enough to have gradient G andinner product W.

• (weak!) Laplacian is then C = GTWG(think Dirichlet energy)

• Key message:build Laplace; do lots of cool stuff.

Page 268: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

...and More!

• Covered some standard discretizations

• Many possibilities (level sets, hexmeshes. . . )

• Often enough to have gradient G andinner product W.

• (weak!) Laplacian is then C = GTWG(think Dirichlet energy)

• Key message:build Laplace; do lots of cool stuff.

Page 269: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

...and More!

• Covered some standard discretizations

• Many possibilities (level sets, hexmeshes. . . )

• Often enough to have gradient G andinner product W.

• (weak!) Laplacian is then C = GTWG(think Dirichlet energy)

• Key message:build Laplace; do lots of cool stuff.

Page 270: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

...and More!

• Covered some standard discretizations

• Many possibilities (level sets, hexmeshes. . . )

• Often enough to have gradient G andinner product W.

• (weak!) Laplacian is then C = GTWG(think Dirichlet energy)

• Key message:build Laplace; do lots of cool stuff.

Page 271: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

...and More!

• Covered some standard discretizations

• Many possibilities (level sets, hexmeshes. . . )

• Often enough to have gradient G andinner product W.

• (weak!) Laplacian is then C = GTWG(think Dirichlet energy)

• Key message:build Laplace; do lots of cool stuff.

Page 272: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

APPLICATIONS

Page 273: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Remarkably Common Pipeline

simple pre-processing

−→∆(−1)

−→ simple post-processing

Page 274: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Common Refrain

“Our method boils down to‘backslash’ in Matlab!”

Page 275: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Reminder: Model Equations

∆f = 0 Laplace equationLinear solve

∆f = g Poisson equationLinear solve

ft = ∆f Heat equationODE time-step

∆φi = λiφi Vibration modesEigenproblem

Page 276: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Reminder: Model Equations

∆f = 0 Laplace equationLinear solve

∆f = g Poisson equationLinear solve

ft = ∆f Heat equationODE time-step

∆φi = λiφi Vibration modesEigenproblem

Look here!

Page 277: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Reminder: Model Equations

∆f = 0 Laplace equationLinear solve

∆f = g Poisson equationLinear solve

ft = ∆f Heat equationODE time-step

∆φi = λiφi Vibration modesEigenproblem

Page 278: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Reminder: Variational Interpretation

minf (x)∫

Σ ‖∇f (x)‖2 dAl <calculus>

∆f (x) = 0

The (inverse) Laplacian wants tomake functions smooth.

“Elliptic regularity”

∆f = 0

Page 279: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Reminder: Variational Interpretation

minf (x)∫

Σ ‖∇f (x)‖2 dAl <calculus>

∆f (x) = 0

The (inverse) Laplacian wants tomake functions smooth.

“Elliptic regularity”

∆f = 0

Page 280: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Application: Mesh Parameterization

Want smooth f : M→ R2.

∆f = 0

Page 281: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Variational Approach

minf :M→R2∫‖∇f‖2

Does this work?

f (x) ≡ const.

∆f = 0

Page 282: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Variational Approach

minf :M→R2∫‖∇f‖2

Does this work?

f (x) ≡ const.

∆f = 0

Page 283: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Harmonic Parameterization

min f :M→R2

f |∂M fixed

∫‖∇f‖2

[Eck et al., 1995]

∆f = 0 in M\∂M, with f |∂M fixed

∆f = 0

Page 284: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Harmonic Parameterization

min f :M→R2

f |∂M fixed

∫‖∇f‖2

[Eck et al., 1995]

∆f = 0 in M\∂M, with f |∂M fixed

∆f = 0

Page 285: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Reminder: Model Equations

∆f = 0 Laplace equationLinear solve

∆f = g Poisson equationLinear solve

ft = ∆f Heat equationODE time-step

∆φi = λiφi Vibration modesEigenproblem

Page 286: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Recall: Green’s Function

∆gp = δp for p ∈ M

∆f = g

Page 287: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Application: Biharmonic Distances

db(p, q) ≡ ‖gp− gq‖2

[Lipman et al., 2010], formula in [Solomon et al., 2014]

∆f = g

Page 288: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Hodge Decomposition

~v(x) = R90∇g +∇f +~h(x)

• Divergence-free part: R90∇g• Curl-free part: ∇f• Harmonic part:~h(x) (=~0 if surface has no holes)

∆f = g

Page 289: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Computing the Curl-Free Part

minf (x)∫

Σ ‖∇f (x)−~v(x)‖2 dAl <calculus>

∆f (x) = ∇ ·~v(x)Get divergence-free part as~v(x)−∇f (x) (when~h ≡~0)

∆f = g

Page 290: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Application: Vector Field Design

∆f = −K −→~v(x) = ∇f (x)

[Crane et al., 2010, de Goes and Crane, 2010]

∆f = g

Page 291: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Application: Earth Mover’s Distance

min~J(x)

∫M‖~J(x)‖

such that~J = R90∇g +∇f +~h(x)∆f = ρ1 − ρ0

[Solomon et al., 2014]

∆f = g

Page 292: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Reminder: Model Equations

∆f = 0 Laplace equationLinear solve

∆f = g Poisson equationLinear solve

ft = ∆f Heat equationODE time-step

∆φi = λiφi Vibration modesEigenproblem

Page 293: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Generalizing Gaussian Blurs

Gradient descent on∫‖∇f (x)‖2 dx:

∂f (x,t)∂t = ∆xf (x, t)

with f (·, 0) ≡ f0(·).

Image by M. Bottazzi

ft = ∆f

Page 294: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Application: Implicit Fairing

Idea: Take f0(x) to be the coordinate function.

Detail: ∆ changes over time.[Desbrun et al., 1999]

ft = ∆f

Page 295: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Application: Implicit Fairing

Idea: Take f0(x) to be the coordinate function.Detail: ∆ changes over time.

[Desbrun et al., 1999]

ft = ∆f

Page 296: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Alternative: Screened Poisson Smoothing

Simplest incarnation of [Chuang and Kazhdan, 2011]:

minf (x) α2‖f − f0‖2 + ‖∇f‖2

l

(α2I− ∆)f = α2f0

∆f = g

Page 297: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Interesting Connection

(Semi-)Implicit Euler:(I− hL)uk+1 = uk

Screened Poisson:(α2I− ∆)f = α2f0

One time step of implicit Euleris screened Poisson.

Accidentally replaced one PDE with another!

ft = ∆f → ∆f = g

Page 298: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Interesting Connection

(Semi-)Implicit Euler:(I− hL)uk+1 = uk

Screened Poisson:(α2I− ∆)f = α2f0

One time step of implicit Euleris screened Poisson.

Accidentally replaced one PDE with another!

ft = ∆f → ∆f = g

Page 299: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Interesting Connection

(Semi-)Implicit Euler:(I− hL)uk+1 = uk

Screened Poisson:(α2I− ∆)f = α2f0

One time step of implicit Euleris screened Poisson.

Accidentally replaced one PDE with another!

ft = ∆f → ∆f = g

Page 300: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Application: The “Heat Method”

Eikonal equation for geodesics:‖∇φ‖2 = 1

=⇒ Need direction of ∇φ.

Idea:Find u such that ∇u is parallel to

geodesic.

ft = ∆f and ∆f = g

Page 301: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Application: The “Heat Method”

Eikonal equation for geodesics:‖∇φ‖2 = 1

=⇒ Need direction of ∇φ.

Idea:Find u such that ∇u is parallel to

geodesic.

ft = ∆f and ∆f = g

Page 302: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Application: The “Heat Method”

1 Integrate u′ = ∇u (heat equation) to time t 1.

2 Define vector field X ≡ − ∇u‖∇u‖2

.

3 Solve least-squares problem ∇φ ≈ X ⇐⇒ ∆φ = ∇ ·X.

Blazingly fast![Crane et al., 2013b]

ft = ∆f and ∆f = g

Page 303: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Reminder: Model Equations

∆f = 0 Laplace equationLinear solve

∆f = g Poisson equationLinear solve

ft = ∆f Heat equationODE time-step

∆φi = λiφi Vibration modesEigenproblem

Page 304: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Laplace-Beltrami Eigenfunctions

Image by B. Vallet and B. Lévy

Use eigenvalues and eigenfunctions tocharacterize shape.

∆φi = λiφi

Page 305: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Intrinsic Laplacian-Based Descriptors

All computable from eigenfunctions!

• HKS(x; t) = ∑i eλitφi(x)2 [Sun et al., 2009]

• GPS(x) =(

φ1(x)√−λ1

, φ2(x)√−λ2

, . . .)

[Rustamov, 2007]

• WKS(x; e) = Ce ∑i φi(x)2 exp(− 1

2σ2 (e− log(−λi)))

[Aubry et al., 2011]

Many others—or learn a function of eigenvalues![Litman and Bronstein, 2014]

∆φi = λiφi

Page 306: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Example: Heat Kernel Signature

Heat diffusion encodes geometry for all times t ≥ 0!

[Sun et al., 2009]

HKS(x; t) ≡ kt(x, x)

“Amount of heat diffused fromx to itself over at time t.”

• Signature of point x is afunction of t ≥ 0

• Intrinsic descriptor

ft = ∆f

Page 307: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

HKS via Laplacian Eigenfunctions

∆φi = λiφi, f0(x) = ∑i

aiφi(x)

∂f (x, t)∂t

= ∆f with f (x, 0) ≡ f0(x)

=⇒ f (x, t) = ∑i

aieλitφi(x)

=⇒ HKS(x; t) ≡ kt(x, x)= ∑

ieλitφi(x)2

∆φi = λiφi

Page 308: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

HKS via Laplacian Eigenfunctions

∆φi = λiφi, f0(x) = ∑i

aiφi(x)

∂f (x, t)∂t

= ∆f with f (x, 0) ≡ f0(x)

=⇒ f (x, t) = ∑i

aieλitφi(x)

=⇒ HKS(x; t) ≡ kt(x, x)= ∑

ieλitφi(x)2

∆φi = λiφi

Page 309: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

HKS via Laplacian Eigenfunctions

∆φi = λiφi, f0(x) = ∑i

aiφi(x)

∂f (x, t)∂t

= ∆f with f (x, 0) ≡ f0(x)

=⇒ f (x, t) = ∑i

aieλitφi(x)

=⇒ HKS(x; t) ≡ kt(x, x)= ∑

ieλitφi(x)2

∆φi = λiφi

Page 310: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Application: Shape Retrieval

Solve problems like shape similarity search.

“Shape DNA” [Reuter et al., 2006]:Identify a shape by its vector of Laplacian eigenvalues

0 1 2 3

0

1

2

3

0 1 2 3

0

1

2

3

∆φi = λiφi

Page 311: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Different Application: Quadrangulation

Connect critical points (well-spaced) of φiin Morse-Smale complex.

[Dong et al., 2006]

∆φi = λiφi

Page 312: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Other Ideas I

• Mesh editing: Displacement of vertices andparameters of a deformation should be smoothfunctions along a surface[Sorkine et al., 2004, Sorkine and Alexa, 2007] (andmany others)

Page 313: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Other Ideas II

• Surface reconstruction: Poisson equation helpsdistinguish inside and outside [Kazhdan et al., 2006]

• Regularization for mapping: To computeφ : M1 → M2, ask that φ ∆1 ≈ ∆2 φ

[Ovsjanikov et al., 2012]

Page 314: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

For Slides

http://ddg.cs.columbia.edu/SGP2014/LaplaceBeltrami.pdf

Page 315: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Alexa, M. and Wardetzky, M. (2011).Discrete laplacians on general polygonal meshes.ACM Trans. Graph., 30(4).

Alon, N., Karp, R., Peleg, D., and West, D. (1995).A graph-theoretic game and its application to the k-server problem.SIAM Journal on Computing, 24:78–100.

Aubry, M., Schlickewei, U., and Cremers, D. (2011).The wave kernel signature: A quantum mechanical approach to shape analysis.In Proc. ICCV Workshops, pages 1626–1633.

Belkin, M., Sun, J., and Wang, Y. (2009).Constructing laplace operator from point clouds in rd.In Proceedings of the Twentieth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA ’09, pages1031–1040, Philadelphia, PA, USA. Society for Industrial and Applied Mathematics.

Bobenko, A. I. and Springborn, B. A. (2005).A discrete Laplace-Beltrami operator for simplicial surfaces.ArXiv Mathematics e-prints.

Bommes, D., Lévy, B., Pietroni, N., Puppo, E., Silva, C., Tarini, M., and Zorin, D. (2013).Quad-mesh generation and processing: A survey.Computer Graphics Forum, 32(6):51–76.

Bronstein, A. M., Bronstein, M. M., Guibas, L. J., and Ovsjanikov, M. (2011).Shape Google: Geometric words and expressions for invariant shape retrieval.ACM Trans. Graph., 30(1):1:1–1:20.

Chuang, M. and Kazhdan, M. (2011).Interactive and anisotropic geometry processing using the screened Poisson equation.ACM Trans. Graph., 30(4):57:1–57:10.

Crane, K., de Goes, F., Desbrun, M., and Schröder, P. (2013a).Digital geometry processing with discrete exterior calculus.

Page 316: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

In ACM SIGGRAPH 2013 Courses, SIGGRAPH ’13, pages 7:1–7:126, New York, NY, USA. ACM.

Crane, K., Desbrun, M., and SchrÃuder, P. (2010).Trivial connections on discrete surfaces.Computer Graphics Forum, 29(5):1525–1533.

Crane, K., Weischedel, C., and Wardetzky, M. (2013b).Geodesics in heat: A new approach to computing distance based on heat flow.ACM Trans. Graph., 32.

de Goes, F., Alliez, P., Owhadi, H., and Desbrun, M. (2013).On the equilibrium of simplicial masonry structures.ACM Trans. Graph., 32(4):93:1–93:10.

de Goes, F., Breeden, K., Ostromoukhov, V., and Desbrun, M. (2012).Blue noise through optimal transport.ACM Trans. Graph., 31.

de Goes, F. and Crane, K. (2010).Trivial connections on discrete surfaces revisited: A simplified algorithm for simply-connected surfaces.

de Goes, F., Liu, B., Budninskiy, M., Tong, Y., and Desbrun, M. (2014).Discrete 2-tensor fields on triangulations.Symposium on Geometry Processing.

Desbrun, M., Kanso, E., and Tong, Y. (2005).Discrete differential forms for computational modeling.In ACM SIGGRAPH 2005 Courses, SIGGRAPH ’05, New York, NY, USA. ACM.

Desbrun, M., Meyer, M., Schröder, P., and Barr, A. H. (1999).Implicit fairing of irregular meshes using diffusion and curvature flow.In Proceedings of the 26th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’99,pages 317–324, New York, NY, USA. ACM Press/Addison-Wesley Publishing Co.

Dong, S., Bremer, P.-T., Garland, M., Pascucci, V., and Hart, J. C. (2006).

Page 317: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Spectral surface quadrangulation.ACM Trans. Graph., 25(3):1057–1066.

Duffin, R. (1959).Distributed and lumped networks.Journal of Mathematics and Mechanics, 8:793–826.

Dunyach, M., Vanderhaeghe, D., Barthe, L., and Botsch, M. (2013).Adaptive Remeshing for Real-Time Mesh Deformation.In Proceedings of Eurographics Short Papers, pages 29–32.

Eck, M., DeRose, T., Duchamp, T., Hoppe, H., Lounsbery, M., and Stuetzle, W. (1995).Multiresolution analysis of arbitrary meshes.In Proc. SIGGRAPH, pages 173–182.

Gillman, A. and Martinsson, P.-G. (2013).A direct solver with O(N) complexity for variable coefficient elliptic PDEs discretized via a high-ordercomposite spectral collocation method.SIAM Journal on Scientific Computation.

Hirani, A. (2003).Discrete exterior calculus.

Kazhdan, M., Bolitho, M., and Hoppe, H. (2006).Poisson surface reconstruction.In Proc. SGP, pages 61–70. Eurographics Association.

Koutis, I., Miller, G., and Peng, R. (2011).A nearly m log n time solver for sdd linear systems.pages 590–598.

Krishnan, D., Fattal, R., and Szeliski, R. (2013).Efficient preconditioning of laplacian matrices for computer graphics.ACM Trans. Graph., 32(4):142:1–142:15.

Lavoué, G. (2011).

Page 318: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

Bag of words and local spectral descriptor for 3d partial shape retrieval.In Proc. 3DOR, pages 41–48. Eurographics Association.

Li, X. and Godil, A. (2009).Exploring the bag-of-words method for 3d shape retrieval.In Proc. ICIP, pages 437–440.

Lipman, Y., Rustamov, R. M., and Funkhouser, T. A. (2010).Biharmonic distance.ACM Trans. Graph., 29(3):27:1–27:11.

Litman, R. and Bronstein, A. M. (2014).Learning spectral descriptors for deformable shape correspondence.PAMI, 36(1):171–180.

Liu, Y., Prabhakaran, B., and Guo, X. (2012).Point-based manifold harmonics.IEEE Trans. Vis. Comput. Graph., 18(10):1693–1703.

MacNeal, R. (1949).The solution of partial differential equations by means of electrical networks.

Mullen, P., Memari, P., de Goes, F., and Desbrun, M. (2011).Hot: Hodge-optimized triangulations.ACM Trans. Graph., 30(4):103:1–103:12.

Ovsjanikov, M., Ben-Chen, M., Solomon, J., Butscher, A., and Guibas, L. (2012).Functional maps: A flexible representation of maps between shapes.ACM Trans. Graph., 31(4):30:1–30:11.

Pinkall, U. and Polthier, K. (1993).Computing discrete minimal surfaces and their conjugates.Experimental Mathematics, 2:15–36.

Reuter, M., Wolter, F.-E., and Peinecke, N. (2006).

Page 319: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

LaplaceâASBeltrami spectra as ‘shape-dna’ of surfaces and solids.Computer-Aided Design, 38(4):342–366.

Rustamov, R. M. (2007).Laplace-Beltrami eigenfunctions for deformation invariant shape representation.In Proc. SGP, pages 225–233. Eurographics Association.

Solomon, J., Rustamov, R., Guibas, L., and Butscher, A. (2014).Earth mover’s distances on discrete surfaces.In Proc. SIGGRAPH, to appear.

Sorkine, O. and Alexa, M. (2007).As-rigid-as-possible surface modeling.In Proc. SGP, pages 109–116. Eurographics Association.

Sorkine, O., Cohen-Or, D., Lipman, Y., Alexa, M., Rössl, C., and Seidel, H.-P. (2004).Laplacian surface editing.In Proc. SGP, pages 175–184. ACM.

Spielman, D. and Teng, S.-H. (2004).Nearly linear time algorithms for graph partitioning, graph sparsification, and solving linear systems.pages 81–90.

Sun, J., Ovsjanikov, M., and Guibas, L. (2009).A concise and provably informative multi-scale signature based on heat diffusion.In Proc. SGP, pages 1383–1392. Eurographics Association.

Vaidya, P. (1991).Solving linear equations with symmetric diagonally dominant matrices by constructing goodpreconditioners.Workshop Talk at the IMA Workshop on Graph Theory and Sparse Matrix Computation.

Wardetzky, M., Mathur, S., Kälberer, F., and Grinspun, E. (2007).Discrete laplace operators: No free lunch.

Page 320: Laplace-Beltrami: The Swiss Army Knife of Geometry Processing ...

In Proceedings of the Fifth Eurographics Symposium on Geometry Processing, SGP ’07, pages 33–37, Aire-la-Ville,Switzerland, Switzerland. Eurographics Association.

Wojtan, C., Müller-Fischer, M., and Brochu, T. (2011).Liquid simulation with mesh-based surface tracking.In ACM SIGGRAPH 2011 Courses, SIGGRAPH ’11, pages 8:1–8:84, New York, NY, USA. ACM.


Recommended