towards a unified dynamics solver for computer graphicsreleased in maya 8.5 (ncloth) : 2007...

135
Nucleus Jos Stam Senior Research Scientist Autodesk, Inc. Toronto, Canada Towards a Unified Dynamics Solver for Computer Graphics

Upload: others

Post on 06-Mar-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Nucleus

Jos StamSenior Research Scientist

Autodesk, Inc.

Toronto, Canada

Towards a Unified Dynamics Solver forComputer Graphics

Page 2: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Motivation

Ruysdael (1628-1682)

Page 3: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Too many Solvers

rigid bodies cloth fluids

Solvers have to interact

Page 4: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Unified Solver

Two-way interaction

Page 5: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Unified Solver

King Dome, Seattle, March 26, 2000

Page 6: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

History

Simple idea : 2000Fooling around (palm demo) : 2001First prototypes : 2003-2005First real implementation : 2005First public demo : 2006Released in MAYA 8.5 (nCloth) : 2007nParticles : 2008

Page 7: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Nucleus

Nucleus API MAYA

Page 8: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Nucleus

Nucleus

MAYA

~ 100 files ~ 40,000 files

Page 9: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Approach

General Shape Model

Stable Dynamics

Page 10: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Shape Model

1 Theorem (Brouwer 1910)

Every continuous mapping can be approximated

by a piece-wise linear simplicial map.

“Simplicial Approximation Theorem”

Fundamental theorem of CG modeling

Page 11: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Shape Model

1 Theorem

Let K and L be complexes; let K be ¯nite.

Given a continuous map h:jKj ! jLjthere is an N such that h has a simplicial

approximation f : sdNK ! L.

“Simplicial Approximation Theorem”

Page 12: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Simplicial?

0-simplex 1-simplex 2-simplex 3-simplex

k-simplex

Page 13: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Simplicial Complex

Page 14: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Simplicial Complex

Page 15: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Simplicial Complex

Dover: $2.75

Page 16: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Shape Model

10

3

2

5

67

4

8

9

2 edges:-(8,9) +(7,8)

7 triangles:+(0,1,4), +(1,2,5)-(0,3,4), -(1,4,5)+(3,4,7), +(4,5,6),+(4,6,7)

Definition purely topological

(i,j,k) = -(i,k,j)

Page 17: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Simplicial Complex

Single class for all primitives:

class simplex {

int k;

int sign;

int vertex[k+1];

int child[k+1];

int n_parents;

int parent[n_parents];

};

Code not specific for a primitive: simple

Page 18: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Dynamics

x(t) = (x1(t); ¢ ¢ ¢ ; xN(t)) 2R3N

Page 19: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Dynamics

Page 20: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Newton’s Law

Äx = ¡rf(x) + fe

x(0) = x0

_x(0) = v0

E = 12_x2 + f(x)¡ fe ¢ x

Page 21: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Isaac Newton

Isaac Newton's Principia 1687

Page 22: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Simple Example

x

Page 23: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Spring

Äx=¡x

x(0) = x0

_x(0) = v0

E = 12_x2 + 1

2x2

Page 24: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Spring

Äx=¡x

z(0) = z0

z = x+ i _x 2C

_z =¡i z

Page 25: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Spring

z(0) = z0

_z =¡i z

z(t) = e¡it z(0)

Page 26: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

A Thought…

R6n ¡!C3n

Page 27: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Spring

_x

x

jz(t)j2 = jz(0)j2

Page 28: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Spring

_x

x

_z =¡i z

Page 29: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Explicit Solver

_x

x

Page 30: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Explicit Solver

_x

x

Page 31: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Implicit Solver

_x

x

Page 32: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Explicit Solver

1h

¡zn ¡ zn¡1

¢= ¡i zn¡1

zn = zn¡1 ¡ ih zn¡1

zn =¡1 + h2

¢e¡ih zn¡1

zn =¡1 + h2

¢ne¡inh z0

Page 33: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Implicit Solver

1h

¡zn ¡ zn¡1

¢= ¡i zn

(1 + ih) zn = zn¡1

zn = 11+h2

e¡ih zn¡1

zn = 1(1+h2)n

e¡inh z0

Page 34: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Symplectic Solver

_x

x

Page 35: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Symplectic Solver

_x

x

Page 36: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Symplectic Solver

_x

x

Page 37: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Symplectic Solver

_x

x

Page 38: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Symplectic?

“Official Definition”:

“Plaiting or joining together; -- said of a bone next above thequadrate in the mandibular suspensorium of many fishes,which unites together the other bones of the suspensorium”.

Fish bones?

Page 39: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Symplectic?

In math: Hermann Weyl (1930’s) : com-plex sym-plectic

Com : Latin rootSym : Greek root

Page 40: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Symplectic?

_x

x

_x

x

A

Page 41: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Symplectic?

µ_x1

x1

¶=

µ1 ¡hh 1¡ h2

¶µ_x0

x0

A

Page 42: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000
Page 43: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Demo

Spring Demo

Page 44: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Simple Idea

Page 45: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Simple Idea

Page 46: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Nucleus

Strategy:

- Use constraints- Implicit on velocity- Explicit on position

Page 47: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Nucleus

C (x+ v+ ±v) = 0

±vSolve for:

v = v+ ±vx= x+v

Page 48: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Deformations

1 2 3

Page 49: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Deformations1-simplex 2-simplex 3-simplex

1 3 6

1/2

1/3

3

1/2

12

6

Page 50: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

How To Solve?

C (x+ v+ ±v) = 0

Non-linear…

One constraint at a timeLinearizeBFGS

Page 51: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

One Constraint

fk(t) = Ck (x+ v+ t dk) = 0

fk(t) ¼ fk(0) + t f0

k(0) = 0

t = ¡fk(0)=f0

k(0)

Page 52: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

What about ?

Search Direction

dk

Page 53: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Search Direction

Bridson, Marino and Fedkiw SCA 2003

Page 54: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Linearize

rC (x+ v) ±v = ¡C (x+ v)

Au= b

LSQR, CGLS

3n£m

AATv = b u = ATv

Page 55: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

BFGS

C (x+ v+ ±v)

rC (x+ v+ ±v)±v

Page 56: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

One ConstraintUpdate velocity

Sequential vs Parallel

Gauss-Seidel Jacobi

Better convergence Slower convergence

Bias No bias

Hard to parallelize Easy to parallelize

Multigrid ?

Page 57: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

level 1 level 2level 0

level 4 level 5level 3

Page 58: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

parallel / no multigrid

sequential / no multigrid

parallel / with multigrid

sequential / multigrid

Page 59: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Stretch/Compression

Page 60: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Shear

Page 61: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Bending

Page 62: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Collisions

penalty vs space-time

Page 63: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time

time

space (1D)

Page 64: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time

time

space (1D)

dt

Page 65: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time

time

space (1D)a0 b0

a1b1 V1 > 0

V0 < 0

Vt = at ¡ bt

Page 66: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time

time

space (1D)a0 b0

a1b1

t = V0=(V0 ¡ V1)

Page 67: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time

elastic

Page 68: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time

inelastic

Page 69: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time

friction

Page 70: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time (2D)

time

Page 71: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time (2D)

time

Page 72: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time (2D)

Necessary but not sufficient

time

Page 73: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time (3D)

Page 74: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Space-Time (3D)

Page 75: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Summary

Find such that

If stop

Check if primitives overlap at

If yes handle collision

V0 ¢ V1 > 0

Vt = 0t

t

Page 76: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Higher Dimensions?

Page 77: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Thickness

Page 78: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Thickness

Quadratic (2)

Quartic (4)

Sextic (6)

Sextic (6)

Page 79: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Roots of a Polynomial

t = 12a

¡b§

pb2 ¡ 4ac

¢b2 >> 4ac

Page 80: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Roots of a Polynomial

t1 =2cq

q =¡b¡ sgn(b)pb2¡ 4ac

t2 =q2a

Page 81: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Roots of a Polynomial

No stable formulas for degrees 3 and 4.

No formulas for degree > 4 (Abel + Galois)

Page 82: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Roots of a Polynomial

Page 83: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Roots of a Polynomial

Page 84: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Roots of a Polynomial

Page 85: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Use hierarchical data structures for speed

AABB tree (simple), actually kDOP

Page 86: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Use hierarchical data structures for speed

Many Primitives

Page 87: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Use hierarchical data structures for speed

Many Primitives

Page 88: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Use hierarchical data structures for speed

Many Primitives

Page 89: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 90: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 91: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 92: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Etc. Expensive in General

Many Primitives

Page 93: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Our approach:Iterate over entire time stepUntil all collisions resolved.

Avoids lockups and Zeno’s paradox

Many Primitives

Page 94: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 95: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 96: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 97: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 98: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 99: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 100: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 101: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 102: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Many Primitives

Page 103: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Demos

1D demo (t key for space-time)

3D demo

Page 104: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Torture Tests

Page 105: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Torture Tests

Page 106: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Torture Tests

Page 107: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Torture Tests

Page 108: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Torture Tests

Page 109: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Full render 1

Full render 2

Torture Tests

Page 110: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Pressure Model

PV (x+v+ ±v) = cM

PMV

: pressure: mass: volume

Page 111: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

No pressure

Pressure Model

Page 112: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Volume conservation

Pressure Model

Page 113: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Under pressure

Pressure Model

Page 114: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Under a lot of pressure

Pressure Model

Page 115: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Air tightness + Pump rate

Pressure Model

Page 116: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Bend

Fully rendered

Page 117: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Bend

Fully rendered

Page 119: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Fracture

Animation

Page 120: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Battle of the constraints

General Solver

Collision

Self-Collision

Bend

Stretch

Shear

Page 121: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

General Solver

Collisions/stretch Stretch/collisions

Page 122: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Bend (9)

Shear (7)

Stretch (26)

Self-Collisions (7)

Collisions (6)

General Solver v1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Page 123: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

General Solver

not interleaved interleaved

Page 124: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Bend (9)

Shear (7)

Stretch (26)

Self-Collisions (7)

Collisions (6)

General Solver v2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Page 125: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Bend

Shear

Stretch

Self-Collisions

Custom

Collisions

General Solver1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Page 126: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Demos

Curve demo

Cloth demo

Page 127: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

nParticles

New in MAYA 2009

Extends exisiting particles

Page 128: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

nParticles

Page 129: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

nParticles

Page 130: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

nParticles

½ (x+ v+ ±v)¡ ½0 = 0

½ (x) =PN

i=1miW (x¡ xi)

Stable SPH

Page 131: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Solids

Page 133: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Duncan on the AREA

http://area.autodesk.com/index.php/blogs_duncan/tag_list/welcome/

Brain

Page 134: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

Future Work

Other nThings

Improve Collisions

Improve Constraint Solver

Page 135: Towards a Unified Dynamics Solver for Computer GraphicsReleased in MAYA 8.5 (nCloth) : 2007 nParticles : 2008 . Nucleus Nucleus API MAYA. Nucleus Nucleus MAYA ~ 100 files ~ 40,000

The End

Thank You