!"#$%%&'$"#()**%+(,*-(.-$/#&0$(1-/23&4+!"##$%&'()*)*(+,-./0"1203345012(6,,3/(7,.(+.082490(#.8:;4</(=!"##$%&'()*)*(+,-./0>?

!"#$%%&'$"#()**%+(,*-(.-$/#&0$(1-/23&4+! !"#$"%&'()*"+,#-'-.
! /01,'(+2)3#-,%&+'-%,! 4+%+54&'6"-)7"(0-'89",)+-:);+(0'-")<"+&-'-.
! 3&#=:,#9&('-.

>-%"22'."-%)7##2,)?#&)3&"+%'6")!&+@0'(,)AB>!!*C/D)EFEF)3#9&,"GE!"#$%&'()*+,!"#$%$&'()*+,-.'/00"1'-,+(23"4+00"3(5(67+().'8+30',%("4(6"&%"((9"3*-::%;(<+0+-317(=1'+.,'0,(5(/$,">+0&(<+0+-317?6"3".,"@

!"#$%&#$"'! !"#$%&"'%()*+,-%&,.*"$,*/%+,01*"-"%0"#0,*'(*23#0%&

!"#$%&#$"'! !"#$#%&$#%'&()&*)+,%*-').&$#/%01)%2+''+,13)%)-%2#*+4(%'1(,)+-(&3%-05#,)*

!"#$%&'(&)*+)"#',-+.$/+"'012#$3#<"4(,3"!

:(41+7,)2-0$;(=142)"-1,<1*,+8()*9),+9:.),9;),-(.$!""#$%&&'()*+),-(.$/012&3(,(4-050*")6)750)4

Design and Simulation is Typically
Separated
Designhttps://en.wikipedia.org/wiki/Autodesk#/media/Fi
le:AutoCAD_2006_drawing.png
Intelligent Tools for Creative Graphics (SIGGRAPH 2020 Course)

Physics simulation

https://en.wikipedia.org/wiki/Computeraided_engineering#/media/File:Plasticity.jpg
7

!"#$%&'()&*+,-&'*(.*+-,(/-0&'120+3&(4+".510+$-"#$%&'#()*+,-./!(-.*0-*12.
!3.45161*7!849):42*);45161*7!<+6=19>#?07.12.#-@)4*1+9!A?*1B1C-#?07.1246#?;+?-;*1-.
!

!"##$%&"'()*+,(-+./"0'#+/+!,$-)%!."&/&.#%!,!0)%!."&%.&1$!2*&%(*&!"'%3$,*"%&
2*'!1"&4!%(&5.33*5%&%."*'
9$"5%!.")-&!"'%3$,*"%
6"%*3")-&5)7!%8!"#$%&'()#*,.$%(&#!*5*

9!"1*3&(.-*

!"#$%&'#()$*+$,(-"*!"#$%.&'$

!"##$%&'()*#(!"#$%&$&%'()*'+!',*$&-$&%'$#'!$(($./0!"#$%%"&'()*%%+,(-"'$#%(',&.),.&*//0('+.%-('1*2"

34(2&$%,$%#5'+.&)"6(4!&*#"&789:1$%#$;"&'"<

!"#$%&'#()$*+$&,"$--*.$#$'#(/"!"#$%&'($)*'$&)"+,-)$."')+$,/'0'"++1+

2!'3+$&)$&%

4*"'5#"+')*$-6"&'/"%

4*$#'3,+)'$#')11'
8"+"'("'%1'9
7+,%$/"

!"#$%&"'()*+",,-!./%&"'0#)1'0#2,&,!"#$%&"'($)"*&%*+$,-,"*./,$0-*1"23'.%-*;-,"*.$'2,!
l6.2"11$7$
6.2"118<"*&%*+$,-,"*.

MM!
4-20" f <"*&%*+$,-,"*.
92-11:1"0.%-*! !
M = f !l4%5"&$)-/*&'2#

!"#$%&#$"'()*&+,$"')-.+$/'!"#$%"$&'()*+$,$+'#$*,-.'+%/0-,#)+*$,$1,%%'-+2)%%)+*$"+$,$.,++'34)+

50

60

Live Demo!!
!"#$%&'%"(&')*'+,+)-+.-&'"/-)/&0'

1223044/".#5#6)7#8&2+/)9%"84!"#$%&'()"
12$'3"+45%,")#'&$345,'%#/'/$3"6#'"3'*+),-*,*+)&+%('"#',2$'3,%,"7'%#%583"3-!

/"00$&$#,"%,")# !"#$%&'
3$#3","9",8 %((&)*"+%,")#

!

!!

.
!

!"#$%&'&(")'*+,*%(-+./)'#(01+2!,.3
76$8.

&,%5)*.1,;8.$8.

! !"#$%! &"'()*(+$#,#-%.%,(-/012+3%01*).'4+ V1
5%6().'4+3)(*1().'⇢µ<%8,#0+6%.21,><#3)%,=!.1>%(+?@8#.)16!91,*%!&,%((8,%+/)%05!:%01*).'+/)%05

!"#"$%&%#'("&')*+',+&-%+.%/+&)+01!"#$%

340#)/'()*+,%-(µ⇢V1'456+,6#0(01)%)(6/.),%-(0153.3
B ..
CB .
CBC
B 236.1 C
C#0(01)%)(+20%+-" B
B .
C@ ..
A67.2

&$%#$%
7-(,)8/9):-,+%58/'()66$()/.),%-(/013.34
B .. C
B . C
BC
B 23.4 C
BCB . C
@ .. A
5.23#

100("+%+( 20)%)

!"#$%&'#()$*+(%,-&"$*.$/(0"!"#$%&"'%()

!"#$%&'()'"*&%&+,-*./,!'"01*'2,
3"4"! !""#$%&'()*#+,(-+.#*%&+/0(+-(,+))+"#*&(+0($'%*1&+.'! 2'(#-'(%"&#%*(,%&%(&/(-+.#*%&'()*+34&(&$%5'"&/$6
9%.:*+03(%+$:*%0'

7$%"8+03()*+34&

!"#$%&'()*+,-.)/)0.%+-&12)3.%"1&+'45&$

!"#$%&'()*+,-.)/)0.%+-&12)3.%"1&+'45&$()*+%,"%-

$%#&'

!"#

$%#&'
!"#

$%#&'
!"#

%+-"./"#'&,"%-!0*!'#%/1-!+"&*$%#&'

!"#$%&'()*+$$,)-."/

!"#"$%&%#'("&')*+,#)-.%$! !"#$%&'%%(&)*&+%&,%$,%-%')%(&+.&/01%(&(02%'-0*'#3&4%5)*,6)%'-*,

78&92#:%

0153.3BC..
BC.
BC
B 236.1 C
BCB
C..
@A.
67.2;8&-"#$%

01

53.3
B ..
CB .
CB
C
B 236.1 C
BC
B .
C.
@ .
A67.2

!"#$%&&#'()*+$,-.*$/-&#-.-01(12'0! !"#$%&'()%*+,)%-./(,#/,%,.0.1.23! 4'5.6&+/2%#%,'&01#,'%&'()%+/,.%+/0",%()#0'$'5.6&#,+./

!"#"$%&%#'("&')*+,-"$./%

!"#"$%&%#'("&')*+,-"$./%

!"#"$%&%#'("&')*+,-"$./%

!"#"$%&%#'("&')*+,-"$./%

!"#"$%&%#'("&')*+,-"$./%

!"#"$%&%#'("&')*+,-"$./%

!"#"$%&%#'("&')*+,-"$./%

!"#"$%&%#'("&')*+,-"$./%

!"#"$%&%#'("&')*+,-"$./%

!"#"$%&%#'("&')*+),+-'%./0!""#$%&'$()*'(*+,-! !"#$%&'%()*+#",$-(+.%&/*+'*+(*%('#"+&'%0#*"+'#*

'!(!&./01)*,+2,34056)3'!(!#'!(!$)**+*,-.,,,,,,,

%!
$!

#!

"!

'$(!
'#(&'#(!
'"(&'"(!

!(!&

!(!%

!(!$

!(!#

!(!"

!(!!

'!(!"&!

./01)*,+2,34056)3

!

'!(!%

!""#$%"&= 0.01
&!
.+*0

%!

$!

#!

"!

!

)**+*,-.,,,,,,.+

!"#$%&'()"&*%+,-&.+%&/0$01023!"#$%&'(!"#$%&'("#".-$&+1'/-$#20(!"#$%&'#$()$*+%",+-./'#+0"!"#$&'1#+0"-$12'"+1'/$"%+"$$&+"%

!"#$%&'()*+(,#)-"(./0!"#$%&'(")"*+,-&./"0&12+3,45-&6$)04&6,2#$7-&8,5"0&9),0*:;0-&<,7%/=,5)"-&>,0&!%0(-&?$,@$,&>;-&A$$* B%*5$)7$$-&C%*&15"3-&83,7/&?+,55,0(-&A$0*+, !"#"/"3"-&D;#,&A%/"3"-&E"00/&A";F;3"0-&=,5"0, C;0-&.;G,"5 H"G,G-&C,$ ="%-&&!%G,"*&=")5,0-&I5+,0"J"0%5%:%;7%;-&1+;0*;#$ 1",5%

!"#$%%&'$"#()**%+(,*-(.-$/#&0$(1-/23&4+!"##$%&'()*)*(+,-./0"1203345012(6,,3/(7,.(+.082490(#.8:;4</(=!"##$%&'()*)*(+,-./0>?@