Interactive Simulation for
Multimodal Virtual Environments
!"$#%&'()*($
+,.-/10230457689:$;"<$0=
>@?AB$CDEFG%HI?A?$J$?
© Dinesh K. Pai
Objectives
❚
KMLNO3PRQ.SUTWVXSZYO[S\].^ML _a`bcd_feghb i.j.kUl"m[n@o pq$rko[si rp
n q tuwvyx
❚
z|{}~.X.{ $ U$U %U$.U71@ .¡¢£¤¡ .¥@¦X§¨©£ ª.¡«$¦¬ ®a ¢¡.¦¬§@¯
❚
°± M§®²® ± ¯.¥ « ± ³3"¦± .ª¯´@ ± £y¨[¡.¦ª± ¨
µ¶.·¸º¹.»¶.·¼½¾µ¬¿À.¹Á½¼ÂÀ.¹Ã ÄÅƾÇÈ%ÉÊ˾ÌÎÍÎÏËÈXÐXÑ
❚
ÒyÓ.ÔÕÖ1×ØXÙÓ.Ô ÚfÛ.ÜÝ.ÞÚfÛ.ܬßàMÛá â[ã@äå.æç.è¬éãåê7ãâ ëfìí¬î.ïðñòó.íóô õö$÷øõ÷¬õù.ú ûú.ù.úû© Dinesh K. Pai
Outline
❚
üý$þÿ þý❚
❚
!"#"$&%'$()$(*+,-".0/1+*$2.3'*54+.64❚
78:95;<=>;@?A8B9CD?0EF2BG<;E89❚
HJIKLMNPOQRLS)T0RN2UVOQWRLSIntroduction
© Dinesh K. Pai
Human Interfaces and Perception
© Dinesh K. Pai
Human Perception
❚
XZY[]\_^`abdcY:^ebfhgi`:jYk`ja-a^`kmlb\nkPYfaboJpqrstu>v-u3rqeqvwxyvsmz{|dtxw}
xts{y~rq)xs xp5y{u utv|
❚
@ PD35:D1:2->5mJA 3e:
❙
d3e>3¡ ¢d0d>£¤¥3¦> 0§0££6¨3] 3§>£3©❙
ª¥«d¬~®¯3°]±6®²>³❚
´¶µ·¸¹ºP»¼½· ¾]¿ÀÁmÂÃÀÀÁmÄ5ÅÆ¿ÇÈ5¿ÊÉÅÆ@ÄÆ˾AËÈÌ3Ë© Dinesh K. Pai
Example: The McGurk effect
❚
!"# $$ %&('© Dinesh K. Pai
Some (Virtual) Realities
❚
)+**,+-/.0 12435687:98;19 < =?>8@<57A1B42C=D17AE5B;GF H4IJK JLMONLKQPSRTIIJLMVUWRTPSXCY8H4Z?H(R [LKHCZ\^]_A`]aSb\caS] dGefefe
❚
gihj klmnhokjpOhrqts^kp kuTvxwTyCzW{8|}o© Dinesh K. Pai
Some (Virtual) Realities
❚
~++/ gmnokyw u u8jh Ak|4}#u{Ww s^ :hokw j(w mjuw /Ww8w8oGo^{l}DSf
❚
D :^W}#f^8V CWG© Dinesh K. Pai
Some (Virtual) Realities
❚
+ +¡/¢ 4£S ^: ¤¥¦t§¨© ªS« ¬S© ®}¯°f°f°
❚
±8² ³f´+² µ¶·¸´^¹rº·#»¼/»½#³¾¿^À Á´¾¿S·8½Â¸Ã²8´Ä½#²´Ä·T¿ÅÆ Ç:ÈÉÊË
© Dinesh K. Pai
Some (Virtual) Realities
❚
Ì+ÍÍÎ+Ï/ÐÂÑiÒ8ÓÔÒTÕÖ Ó×ØGÙ×ÚÛÕÜCÛOÝGÞÓ^Ò Üßà8Þ(ÓÔÜáâÖ Þ(Ò ×ÕãÞ}Ö ßàäÓÔÜ åWÒTØSÜCÛ8Þ}Öæfæfæ❚
çèé êëìríWîðïñ^òóWô îrêõëô^ö÷© Dinesh K. Pai
Example 1: Real Wok
© Dinesh K. Pai
Example 1: Virtual Wok
[Doel, Kry and Pai 01] © Dinesh K. Pai [James + Pai 99]
Example 2: Deformation
Input / Output
© Dinesh K. Pai
Visual Displays
❚
❚
❚
!#"%$'&()*$'(+(%,❚
-/.0213 4%5 6 7❚
89 : ;❚
< =>?@9%AB CEDStanford Responsive Workbench
UIC/FakeSpace Cave
© Dinesh K. Pai
Auditory Displays
❚
FGHIKJL MN G+O❚
PJ GH%Q#G%RSO❚
P+MTN IOVUNWXL G+OZYO[L H%R'I\]H%R^G❚
D%G_ G%R2` G%R'H WaYMNcb2YdWGR'O❚
ef g haig%jikg hailm nXoqprEstvu2wxyz{S|© Dinesh K. Pai
Haptic Interfaces
VTI CyberForce
PHANToM Harvard Tactile Display
Logitech IFeel
© Dinesh K. Pai
Utah Locomotion Interface
http://www.cs.utah.edu/~jmh/Locomotion.html © Dinesh K. Pai
Other input devices
❚
❚
❚
❚
!"#$&%(')*+%❚
,- .*)/01%203 %4"6587- #%❚
9 *:050 "1;)%<)"=3❚
>).5"67?"=30%Polhemus VTI CyberGlove
MicroScribe
© Dinesh K. Pai
“Real soon now” displays
❚
,@?065:AB-/CDFEGE:HI J(KBHLH6MNPORQSUT❚
VWBX6YYZ:X=[\U[N ]8^\6^V_<X`ba T❚
[c[c[Geometric Techniques
dfePgihPjklhPm(noqprhFs8nth@uvhFw@m4xPmyzjw
{|P}~fPPr P P8(z~
© Dinesh K. Pai
1. Geometry representation
❚
b= i❚
PPU18 ¡B:¢£¥¤¦§ £<¤❚
¨U©ªq«¬®¯°±❚
«³²°´µ¶¯±2¬=°²b´µ¬=· ¸¹º»¼¸½¾6¿¾ À+Á❚
Â6ÃÄÅ6ÆÇÆÈ<ÆÉ=Ê&È(ÃËÌÍÎÏÈ© Dinesh K. Pai
Subdivision surfaces
❚
ÐÒÑRÓÔiÕ:Ö¼×ØÖÙÚÛÜÝ<ÞBÖÖ Õß&Ý(ÚØàÓ Û<ÜÝRàáØÖÞâÓ×Ö6ãÔßÜÙ=ØÓãÞBÖÙÜ6ã
❙
äbåæ(çèGåéäbåêëècìíìîì(ï<ê❙
ðñò4ñbð4ó<ôõñ4öc÷bøð❚
ùlúûüýþcûÿûiü=ú tüþ+ý4ü! "$#%'&)(+*,"$#"-.%0/1,"$24356#735*-"
$8*79% :;<=?>@.ACB?DEF GIHJ?KML)H NO?PCQ4RSOMTUTV?PMW
© Dinesh K. Pai
Example: model of real object
© Dinesh K. Pai
Subdivision surfaces
❚
❙
"!# $&% '())*,+&-/.01(2".34❙
56789:;<86 =&> ?@AB&C❚
DEFHGJIHKLNM❙
OP/PQ❙
RST"UWVXXYZH[\]^❙
_a`/bcdecfbhgijkjfldemn❙
oqprts/uvwyxz{ry|}zp~/prtpWrt|kv&wx/r Nvu1/y/
© Dinesh K. Pai
Refinement rules for Loop surface
[From: Zorin & Schroder. SIGGRAPH course]
© Dinesh K. Pai
Parametrization
❚
Jq& H¡£¢¤ ¥¦¤¥§¨❚
©«ª¬®h¯±°²q³µ´¶·¸°¬²°¹qº»¬°®¼²º»¸¾½&¿¼¬°¬H³£¶¸°ºÀ¬¸º²q» º½Á¶N¬N½t®
❙
ÂÃÄà ÅNÆÇÈWÉÊÊËÌÍÎÏeÐWÑÓÒ ÔÕÖ×Ø/ÕÖ1ÙyÚÍÕÛÜ/ÙÝÞ/Þß{àâá ãäåæçèé êë&ì ítî/ïðñò&í
❚
ó ôõöH÷ øøHùûú/üýNþÿúüýþý!" #%$&')(+**,-/.012435+160798:3
;<;=>=;?@A;BCD@E?F%@G%H=?@EIJFH=CK
© Dinesh K. Pai
Resources
❚
L+MNONQPRTS+UWVX%Y+Z\[^]_X%`_[aY+bc%ded[adX%`_[aY+Zf\gV][hiikj9lmkmkn+n+npoqArtsuwvxyDz {|}t~| D ^ tDE^tDDD
❚
% ¡:¢£¤:¥a¦§ ¨A©ª«+¬^©¯®±°²³´³µ¶¸·¹%º/»¹¼)½+¾µ³º/¿Qº°½+ÀÁÂa¶9Ã
ÄÆÅ%ÇÈÉÊ ËÌÍÎÏÐÌÑ+Ñ
Dynamics and Contact
© Dinesh K. Pai
Overview
❚
❚
! "# $%"&' ()&+*❚
, -.)"/❚
0214356879#:34;<1:3>=:3?95.3@+ACBD56EFG 0-HI :3EJK 6G❚
L:DD7FMJE:DJ:N=5GOJ P<QHJER:@ B @ BD56EFG5.D@)L:DJ5FJS7T:HQJE:D
© Dinesh K. Pai
High school dynamics
r f
v
❚
UVWSXZY[\]-^_^a`bW❚
ced"fgheiZjlknmo pSqsrtuvqw<xtysy?zlq?zluM{|tvl}~M| >-~
m f v
v r
= 1
=
© Dinesh K. Pai
Simulation: Numerical Integration
❚
-MM el8l > ¡C8"¢|£❙
¤¥¦ ¥§.¨O©ª«-¬lªs ®¯l°¤ª ±%²³|´µ¶¸·¶lµ¹º³'»¼²½³|´l¾¼¿À❚
Á4ÂÂÃÄÂÅ❙
ÆÇsÈlÉlÇÊËÈÊÌÌMÍlÇsÊÌÎ❙
ÏeÐZÑlÒ#ÏÔÓÕÑ#ÏÑlÖÑ×Ð|ÓØÙ❙
ÚeÛZÜlÝlÞßÞÛZà) ( 1 ) x(k) h x k
x(k + = +
© Dinesh K. Pai
Numerical Integration (continued)
❚
áCâã äåæ äçè+ã äèãéêëå.ê❙
ìíîïð4ñîlòóôîñ|õìöð>÷îøù øúûlíùlîüûMñ?ñZýþÔîõlÿMîsù!"#%$'&()
❙
*)$+&% *,-./012&(,354 65&()37"❚
8:9;<=><?@BA5C,DFE<G<CH❙
IJ%KLIMIN:ION0P)QR"SN0TRUWV.PXQYXZ[,J%KLIMIN \Y]OQP ^ _]NN0S Z`acb d%efg,hig.jk d(jglmnio
❚
p:qrFstuvwyx5t,w+szx)u{w|x}wF~wtu+© Dinesh K. Pai
Rigid body dynamics
❚
F0 |55 ,6❙
F"):.'7)%)¡c¢(£¤¤ ¥ ¦§¨.¤©ª ¦¨«7¬¦¤/¨0£§#®
# §)¤¨¯£¦§¨.¤
❚
°+±²³´²Fµ¶¸·Y¹³,ºc»W¼:½6¾²6¿À´¹Á❙
Â}ÃÄÅÆ%ÅÇÈÉ0ÊËcÌÅÍ/É0ÈÇÎ#Ê%Î#ÏÇ)ÍÉÐÈÅÇÉÑÍ❙
Ò6ÓÔÕÕ#Ö×#ÔÓØÚÙ)×ÛÔÜÖ×5ÕÝ Þßà"áâäãFåáæàç)è0éâ(êëå2ì(æíáà.î2îæ)ë0ïë,êæî
© Dinesh K. Pai
Rigid motion and transformation
Θ
= 0 1
E p
i
❚
ðÚñ+òóñôõ+öõñc÷ø7ùûú.üFöøý.ñcú,òj
❚
þcÿYÿ ÿφ
φ
Frame i p
Frame j
© Dinesh K. Pai
Cross product matrix
❚
=
0
&
&
-
&
- 0
&
&
&
- 0
& @
[
x y
x z
y z
r x
&
r
& @
[ ≡
© Dinesh K. Pai
❚
"!$#&%(')$*+,-./❙
021345768"0)519;:)3<>=?97@A@8>6B5C983D34❙ ω
EFGHIEJ"KLIM;N)OP>Q❚
RS T UVCWYXUZU[]\_^`U^a❚
bcdefdghjikl7mon(p)qrkmslt"uvSpatial velocity
=
t r
f f f
= v
&
φ
≡
−
0 0
v ] [ &
R 1
R
© Dinesh K. Pai
Transforming spatial velocities
[ ]
Θ Θ
= Θ p Ad 0
i j
❚
wyxz${|}~ jAj φ
i φ
φ
i Frame i p
Frame j
φ
j j
i j
i φ = Ad φ
© Dinesh K. Pai
Notation...
❚
"r"")[ ] [ ] = [ ] [ ] v & 0
&
φ
❚
¡¢¡£¤¥( ¡o¦_ §¥¡¨I dm r
r M = ∫ − [ [ r ] ] 2 − [ ]
© Dinesh K. Pai
The notation finally pays off!
❚
©yªA«¬A¯®°;±C²"³µ´®¶®·]¸²"·ª¹yº»½¼¾¿À ÁÂAÃÄÅ ÆÇÈÉÊÌËÍÎÏ ÐÑÒ"ÓÔÕjÖ×ØÙÚÛjÜ
❚
ÝÞß&àáâãåäræç§èoéyãä½çÞêëìríáäïîÞâµàáâ(çæðíã❚
ñòóòôòõö7òy÷ øùAúûüyý)þÿ[ ] φ φ
φ M
M
f = − T
v m f =
© Dinesh K. Pai
Wok Example
© Dinesh K. Pai
Contact interactions
❚
❙
!" #!$%'&()*+,&-,.&(/10.+*32-0")546&6 78.9;:<>=.:8:9<'?97@8
❙
ACBD.E;FGEH>G"BD.EID5JBJKL"MNO5P'QRP'OSTUVW.OW.OSQ1X.VU3YVZ[ZQP>\]TS_^CVP'OXUVQZ
© Dinesh K. Pai
Rigid body impact
❚
`badcbeCfghcCij]fkmlan;opiqghearscbtCulabn;opvwcdkxj yz|{C}~> .Cb .❚
_C[b>ddsdbmwb >¡C¢£¤¦¥§¨©¡ª
❚
«¬b¦®¯°±²³´pµR±°¶·±¸±¹²¬d¹ºp¹º»¯±¼½¾¿ÀÁÂÃÄÅÆw¾
© Dinesh K. Pai
Rigid body impact
❚
ÇÈRÉËÊÌÍÎÏÐpÈÑÒÐCÌÍÓ❙
ÔdÕÖØ×;ÙÚÛ Ü.ÝÞßßÝà á âãä3åæç5è é5êë>ìí.êmîï1êë'ëwìî_ìêí.ðïë ñ'ò1óõôöô÷.ôöøù úûüCýþýÿü 'ü
❚
! "# $❙
%'&(*),+.-0/*+.-2143 (5&6❙
70859:;.9*< =>@?5ABA'CD*E❚
FGIH JKMLONPJ0QRS0TUK2JJVWRYX[ZV \*GB]N0VR ^_a``bcd2efg2h[ijlklmnooo) ( )
( t + = ev t − v
0 ) x f( x, x
m
pp+
p=
k x x c ) x
f(x,
q=
q+ k x x c x ) x
f(x,
r= m
r+
© Dinesh K. Pai
Continuous Contact models
❚
s5tu vwx y0z0{!|}~{O~0.l 4 . l
≥
¡≥
¢ U£¤ ¥ ¦,§0¨!©ª«¨O«¬.l¢®l¯° ±❚
²³µ´·¶´l¸¹ºB¸³µ»¼½¾¾¿¹,³µ».ºlÀ¹º[ÁµÂ¸¾Ã» ³0»ÄI» ½ÅÀ ºB¸Æ ½ ÇÈÉ[ÊËÊÌlÈÍË ÇÏÎYÈÐÐÑ.È0Ò Í Ó ÈÇÕÔÖØ×ÚÙÛµÜÝ.ÞBßÛµàá¿â ãßá'Þ[ä¡åæ2âçÝàßè¡Ý âä¡åà éëê*åà
ì
ââíîílßê.ßâà.ÞIÜïáðÛ0Üñ âé
ì ï òóô!õ*ó ö÷ ôOó øIù úû
❚
ü úµýÕ÷5þ ÿ2ÿó.ø ýó!ÿ[ý*øú óý ûÿ2ÿ.þø❚
! "$#%#&&')(*+-,.#%*/#0-1 2/3456879 :© Dinesh K. Pai
Continuous Contact models
❚
;8<>=-?@ACBEDGF$H<@IKJL?= M8<ONIP<H QFRSAT$UIK?I V.WXXYZ[\Z]$^-Z[8_Z`Wba$cS_d$efhgGW_id-a$]j❙
klnmoqp8r.stvuxwlnoqyKzm|{}v}yL~lpnm|{u-rLzu-t>sy8rynm|tpnm|{u8r❚
) G G$$>hiG--❚
iL- G¡$¢ K£L¤¥¦¤P¡O§- ¨n ¢©ª)«¬®$®$¯°.±²³i±´8¬µ¶$·
❚
¸¹>º8»¼½»/¾-¿-¹ÀÁ8»Â¹ºEÃG¹$Ä$¾>ÀÅ❙
Æ|ÇvÈLÉÆÊqË-ÌnÆÉLÊiÆ>ÉxÍ ÎÏÐÑÐ8ÒvÓ8ÔÕÖÐ×ÙØÚ-ÕÑnÛÜÝÞ8ßà áâãvâ8äæåç|ãèéå ê|ëìîíìLï-ðììxñòLó$óCðvìLìLíxò-ô© Dinesh K. Pai
Multibody Chain
© Dinesh K. Pai
Multibody Dynamics
❚
k
k k k k
T k
k
k f M b
f = − 1 Ad − 1 + φ +
❚
! "#$%&(')%"k
k k k k
k k
k = + + + H q + a
1 φ 1
φ Ad
❚
*,+(-/.1023+4(5)+678k
k T k
k = H f
τ
© Dinesh K. Pai
Extended DAE: Mx = b
−
−
=
9 999
9
9 9
0 0
2
2 2 1
1 1
T T
T
H
H I M I H
H I M I
M
Ad
Ad
1 2
1 2
[Lubich et al 1992], [Ascher,Pai,Cloutier 1997]
© Dinesh K. Pai
Sparse Gaussian Elimination
−
−
=
9 999
9
9 9
2 0
2 2 1
1 1
T T
H
H I M I D H I M I
M
Ad
Ad
1 2
1 2
© Dinesh K. Pai
−
=
9 999
9
9 9
0 ˆ
2
2 2 1
1 1
H T
H I M I D H I M I
M
1 Ad
2
Sparse Gaussian Elimination
© Dinesh K. Pai
−
=
9 999
9
9 9
2 2 2 1
1 1
ˆ
D H I M I D H I M I
M
1 Ad
2
2 2 2 M ˆ H H T
Articulated Body Inertia
ABM [Featherstone 87] = Sparse Gaussian Elimination
© Dinesh K. Pai
Contact Evolution
❚
: ; <1=>@?A=BDCFEG=?FHJIKEGLNMOCP❚
QRNSUT1VWT1XXY3Z[V\]GVT^_S`\DabTNS c_dOeJfJghgije1d`gklnmpogc_dOel1qjrsGtuFv,wNx/yNx`zt{n|[t}~ys
NO DNF_O
❚
[jG jNOjN1J A¡1¢`£¤¦¥[§¨§¨¢`©1§,ªJ§1¡J«
¬11®/¯°
❚
±²³´ µ¶_·¸j¹º¼» ½J¾¿1ÀG¿1Á¾Â_¿Ã1ÄJÅDÄÆAÇ1È`Å/ÉÊÄJË1ÌÎÍÏJÐNÌÉÑJÉÍÉÒË
ÍÏJÅÓ[Ä1ÊGÇÍNÔ
© Dinesh K. Pai
Contact Simulation
© Dinesh K. Pai
Contact Simulation…
© Dinesh K. Pai
Resources
❙
"!$#&%')(+*-,#./*(0#&, 1234$5687993:;74+<=?>A@ = <95BC❘
D+EE)FGH)H)IJIJILKMON PQSRT UV8WYXZ[ \+]_^]+``a❙
b0cddefg h_ij k lmSnop qYrstuvwAstxy$sz{O|tO}~ &y8tx~&|/?& & 8+$
❙
$/ /¡&¢ £¤¥&¦¥§¨© ª«¬®¯_°²±³´¥&µ§¶¬·°$¸¹º»¼0½¾ ¿À
❙
ÁYÂÃÄ ÅÇÆ+ÈÉÊË ÂÌÍ ÎËÏ ÐÑ$Ò&ËÓ0ÂË)Í?ÔÏ ÌÂÕ®ÃÈ_Æ Ö×ØÙ&ÚÛÜÝÞ·ß²à)Ù&Ú á0â×ÜÛãÙ ä å æJÝçÛèßéçèäêæëÙ&èÜ/çì8ÜîíïOðñòó ô8õ&ðö÷ø&ù-úø&ûøüOýþ$ÿùü/ø üýø&ù
❘
! "#%$ &!' ()%*!+ *, -./)0+#1.#23-4546*!7!8Sound Simulation
9:<;;=<>:<?@=BAC:<?@DE
FHGIGIJ KL<MONIP<M QSRIT<U
VW<X/W<Y Z[\B[][^I^_
© Dinesh K. Pai
Why Sound?
❚
`ba c@debfg h❚
ijHkklm n❚
oqprsqrt u❚
vwSxzyS{|} ~❚
H b❚
<!B ❚
HqH ❚
B ❚
Sq I ¡Essential for: Useful for:
© Dinesh K. Pai
Synthesis Method
Force Vibration
Emission
Propagation Listener Speakers
Sample
© Dinesh K. Pai
Force Vibration
Emission
❚
❚
❚
! "$#&%'(*)+,%-. /Generalized Sound Cones
© Dinesh K. Pai
Force Vibration
Emission
❚
0132!4❚
5!67$8&9:;*<=>9?@6 A B❚
CEDFGIHKJMLNJOPQMRSTQSQFDO❚
UWVVXIYZV[E\^]_I`ab*\dce`fb\❙
gKhijkZl❙
mno❙
pqrst) , ( ) , ( )
( 2
2
t x F t t x
A =
∂
− ∂ µ
© Dinesh K. Pai
Vibration Model
❚
uEvv^wx&yzw{|y} v~y*y !w{❚
{wf{ !~yy
0 ) , 1 (
2 2
2 =
∂
− ∂ t
t
c u x
A
( )
∑ ∞
=
Ψ +
=
1
) ( ) cos(
) sin(
) , (
n
n n n n
n ct b ct
a
t x
x
u ω ω
( A + ω n 2 ) Ψ n ( x ) = 0
© Dinesh K. Pai
Vibration Modes of Square Membrane
© Dinesh K. Pai
Spectrum of membrane struck at (0.5,0.4)
© Dinesh K. Pai
Spectrum of membrane struck at
(0.1,0.4)
© Dinesh K. Pai
Spectrum of membrane struck at (0.1,0.1)
© Dinesh K. Pai
Interactive Sound Synthesis Model
❚
! #" !$ %b (f i )
&')(+*,-/.,013254,6,04,07849:;6<&0=>1@?00,<17$,<47$?A:97$,*$&9B<6,*1@,67&?0
❚
CD<EGFHEGIJFLKME@NEPOE@NJQARSRLTUNQNF$DVW$NVF$MXYE[ZL\^]_S`abcPbde8fagdh
❚
i8jklmn#opGkjlLqo<pmprtsojuosvwnxpGlmnyxs!l$zjl{nxuo<p}|+msYpl~jlmwlmnos+~jp}x~l
( ) ∑
=
= M − i
i i
t x f
b a x f x t
e t
x
p i
1
)) (
( ( ) sin( 2 ( ) )
, π
© Dinesh K. Pai
Sound texture map
❚
<x~jupkjlLqo<p@mpPyzsznol$ospf i (x j )
a i (x j )
zju
b i (x j )
zso5l$owlL~sonzyyouxjl$x p~ummpmxj p~s|Yz3o3xjlLsxwos!lm@o<p❚
Ljl$os+yxzloA~p@mj zs!k@ojlLs$m@x<xsumjzlopFalse color image of audio brightness
© Dinesh K. Pai
Force Vibration
Emission
❚
so/~oj3k pyo3lLs+~n❚
zn;y<mjpyo3lLs$~n❚
<❚
;$❚
$$ ¡❚
¢£P¤¥¥¦§¨©GªL«¬GG®¯°®±²«´³«¯µL¶ ·@¸´¹º»°¼L½H¾
© Dinesh K. Pai
DSP View
❚
¿ÀÁÂÃÄÃÅ3ÀÆ$ÇÈÉ$ÀÊYÁ❚
ËÆYÆ$ÇÅÇÀÃÉ8Å3ÂÃÌÂÈÍÉÇÂÃ5ÂÆ8ÇÃÎÍÉÏÆYÂÊ!Å@À<Á❚
ÐÇÈÉ$ÀÊÅ3ÂÀÆYÆ$ÇÅÇÀÃÉ+Á}Å@ÂÑ;ÎÍÉ$ÄÒÈÀ❚
ÓÑÎÈÀÑ#ÀÃÉ8Ä<ÁPÔÏÕÖ#ÄÈ×ÂÊ$ÇÉLØÑ❚
Ô8ÇÊÀÅ3ÉSÕ<ÂÍÃÙ;ÙÀÑ#© Dinesh K. Pai
❙
ÚÛÜ3ÛÝ°ÞßÛàáâ3ãäåçæèåé°ê´ëì
íYî°ïð
ñòóô3õöç÷øGù²úèûü°ø´ýþ
❘
ÿ❘
❘
❘
!"❘
#%$'& ()*+(- Microsimulation - Wavetable
Force Vibration
Emission
© Dinesh K. Pai
Micro-simulation of contact force
❚
❙
"!# $%$%&'(!) $❙
*+,.-/0132456/+07#7#8:9;<=2>/?5@4<=;-+-A:B?C70❘
DEFEGIHJ KL.M N6Oπ
PQτ
R ST)UVXW>YIWτ has correct form
❙
ZI[ \](^_ \@`(a.bc)de_a#defXgchbih[kjlid=gmi[knblca#[f❘
o#p=q"r.o3sp=qut6vw3xyzwt{3|)}zxy#w.ytvq#p=|)y#w3y#~quvq#o#q3y#~xq#p© Dinesh K. Pai
Micro-simulation of contact force
❚
❙
6@. "k=k@#" ' @(6 ' 6¡£¢¤¡3¥¦§@6#¨
❙
©¡.ª@§@.¡¬« ®® ¥ ®¥¡¬§¤@#' ®¡:¡. ®®¡. ®
¢¡. ¯°±²³´³ ±²³ ±µ·¶¸¹.´³³² º
❙
».¼ ´µ=½¾@³k¿¼ ¾@À³%¹ »#¼ ¿³%¹µ=¾e½ » µ=½¾@³½¹3°±ÀÁ¶²
¼
¿¾@³¹¶±
¼ ± »
³ÂðµÄ
ŤÆ@ÇÈÉÇ ÊËÌÇÍXÎÆ@ÏÎÏÆÐ=ÌÏÊÑ Ò)Ð'Ï(Í3ÒÌÓÌÊÔkÍ3ÎÇÇÓ
© Dinesh K. Pai
Synthesis API
Õ=Ö×eØÙ¤Ú¤Û'ÜÛ
ÝÞ¤ßàÞ¤á âã@äå
æç'è¤é'êë@ìîí=ïð=ñòíé ó@ôõö÷øù@úû6üýþøÿö
!
"$#&%#
')(*+-,.(/*0
© Dinesh K. Pai
❚
13254&687:9<;<9=9>2<?A@BDCFEHG❙
I$J<KALMKJON<KPMQRQTSMKU❙
VOW<XMY[Z]\5Y[W.^`_RX.a$bc❙
dFe&fg[hRi]j[k<flRmnfo-prq$fsRjMtiuo-fl<vRh[guh]vuo&q❙
wxuy{z]|}.~yuz-M uy>}[y{~u< uy><|5}[y{z]x[~:zO)❚
3F<>&<A< : ¡❚
¢¤£&¥¤¥JASS
Java Audio Synthesis System
© Dinesh K. Pai
Unit Generators
Adder UG
Low-pass UG Excitation
UG
Render UG
Karplus-Strong UG
Patch
Excitation UG
Render UG
F v
p Contact Force
Model UG
Resonance Model UG
Source
Player UG JASS
Graphic Display
Simulator
v, F, roughness p, damping, loadModel(file)
Dynamics Simulator, Collision Detector
start()
positions
User
display
user input
© Dinesh K. Pai
JASS Architecture
Engine Package
UG Package Render Package Patch Package
"!!#$%&#'(
)+*,%%&-' .//0123415&67
© Dinesh K. Pai
Demos
%RWWOH
%RZHG 6WULQJ (QJLQH
6FUDSH
%HOO
© Dinesh K. Pai
Wok Example
© Dinesh K. Pai
Integrating Audio Haptic Displays
User Interaction
❚
8:9&;<=><,?@=ABCAB;DBABD EGF<H H=I<
F
>J? KL&M NO&PQR
❚
STUGVXWY&Z[,TW[\Y&]WV^@_:],`aV bcde fghijkml gnoClp&qno❚
rtsuvwx yz&{xm|Xs}~Cz&}~ &,
❚
,❙
, ¡¢£,¤J¥¦§,¨¤¡¢,©ª«¬¥,£, ®¯°±² ³´µ¶
❙
·¸,¹º»¼½¸,¾,¿ ÀÁ,ÂÃÄÅ Æ,ÇÈÄÅÇÉÊ ËÌÍÎÏJÍ,ÐÑÒ Ó,ÔÕÖ×ØÙÚÛ❙
ÜÝÞßàá@âäãåæàçßèàééê,è© Dinesh K. Pai
The AHI Audio-Haptic Interface
DiFilippo and Pai UIST 00
© Dinesh K. Pai
Results
Force
© Dinesh K. Pai
A User Study
❚
!"#$&%!')(*!%,+-."/+0')!1/0#2"34)#2'51*67-"+.8!6+9
❚
:<;=*>@?BACEDFCGHH,?IJKLMC;GN/OPGNNQ2OKCSRTG;I2KU VWBXBY2Z[\^]2_`VXB\\2Z[\ aXb,cSZd*e fhg^ije❚
k,lnmhoqprs/tuwvwx<y,z{{s|rT}~zty,zTy*~rEt@s❚
<*@rByEsr)){2~rp^ny,zBvyr rBr❚
)B@Fq@B2n 2¡¢ ¤£¥)¦B§*¦B¦¢§*¦2¨2©«ª2¥)¦¬2¡¦¬¢¦¦B¦B¨
© Dinesh K. Pai
© Dinesh K. Pai
Resources
❚
®¯° ±B²³´µw¶´²·A Digital Signal Processing Primer with applications to Digital Audio and Computer Music. Addison-Wesley, 1996.
❚ Ken Greenebaum (Ed.) Audio Anecdotes, Kluwer 2001 (to appear)
❚
¸B¹)ºBºT»¼5½½½<¾À¿ Áº¹@Ã/ÄÅ2ÆÇwÈÉÊ*Ë❙
ÌÌÌÎÍÏÐ ÑÒhÓÔ ÕÖØ×|ÙÚ ÛÜÝhÞ/ß,àáâäã*ååæâMã*åå çèéêFë❙
ìíhîîïSðíhñóòô,õ2ö,íh÷îøùñóô,îô*ú*ïSôùòñóô*úûMô«ünôhýFïSòñ)÷þû)ïDeformation Simulation
ÿ
© Dinesh K. Pai [James + Pai 99]
Contact Deformation
© Dinesh K. Pai
Deformation simulation
❚
"!#%$'&)(*(&+❚
,.-/0%132 4"56%7'8:9"7'8:68);< =>?"@3AB❚
CEDGF%F3H%IJLKM"HNPO)QR HJ❚
SUT3VTWXY:T3ZWP[]\TY_^:X`badce"fU^:XY)ghji❚
kml3no)pq r_st:u3vGwxPt)yz s{r|}|~u%|© Dinesh K. Pai
Elasticity
❚
❙
"!$#%'& (')* "#(+(❙
,-.$/102354768479;:=<+> .:?"27-9❙
@AAB5C1DE FGIHKJ"L7FG;MNLOPO'M*J"LO5OQMSRTO'M*J"G7UV❙
WYXIZ\[S]^`_+a bc7dIef;g❚
hijklmn=opqrj7slSt+pso7u=pvwvNklNk=x7t+pso7ky{zst+pn|x}❚
~ |Sr |=+ =Y|SN| ¡£¢+YP¤
© Dinesh K. Pai
Linear Elastostatic Models
❚
¥¦§ ¨©ª❚
«¬®¯°±*¬'²³°´*µ'¶S°Y°Y·❚
¸1¹º»Y¼½¹¾w¿ÀÁüºr»ÄÅÆÇ=¹¾ ÈÉÊËÌ7ÊÈÍÎ ÏYÐ\ÑÒÈÎÉÈÏÑÊÓ+ÊÏ|Ë❚
Ô|ÕÖ1×5ØÙNÚÛÝÜÕÞ7ßÝà;á{âã|ä7Õâå æYçèéêIëçìíïîéíwì=ðñæë+òì|óôõ|ö÷ïöøQùúûü=ý þÿNõùùù
ν = 0.5 2 0 1
3 1
1
2 2
2 + =
∂
∂
∂ + −
∂
∑ = ∂ i
k k i
k k
i b
x x
u x
G u
ν
© Dinesh K. Pai
Numerical Discretization
❚
!#"%$&')(*,+-.❙
/0120345'067684298421,:;4=<❙
>?@2?ABCEDBFGB@AIHJB,AK,LEMNO>=C2HQP❙
R=S!T2U,V2WXY[ZE\]^G]U_I`Q]_a,SEVbOR Z2`Qc❚
d efhgjilkmn)o-pOm!q-r stuvwyx z{t|,}!z{t~ J## )!-!-#y-! !'&'!
❚
j¡ ¢£¤¥! ¦¢!§¨-©8¤ §ª«¬!©y!®ª¯¨!®ª '¢ °Q ¨#«¤®) ²±!¨-¢!§£´³ªµ! §¶¥ ¦¢!§¨-©¤¬, ¢!§ª®{ª ¢ «
© Dinesh K. Pai
Example: Boundary Elements
∫
∫ Γ
Γ
Γ
= Γ
+ p * u d u * p d u
c
H u = G p
Constant Elements
Point Load at j
i
g ij Weaken,
Integrate
2 0 1
3 1
1
2 2
2 + =
∂
∂
∂ + −
∂
∑ ∂
= i
k k i
k k
i b
x x
u x
G u
ν N u + b = 0
Discretize
© Dinesh K. Pai
Green’s Functions
for Discrete BVP (via BEM)
H u = G p
SPECIFY BC
Red BV specified Yellow BV unknown
REARRANGE
A v = - A v _ _
=
=
=
=
INVERT LHS
v = - A -1 A v = _ _ Ξ v _
Green’s Functions © Dinesh K. Pai
❚
·I¸2¹!º-»»¼½¿¾!ÀÁ¸EÂ!¾ ÃĽ)ľ ŶÆ#ÇJȸjº-Éy¾ËÊ!ÌÊ!;'ÉyÌ❚
Î)ÏÑÐÒ)Ó'ÔÕÖÓÏØ× ÙÚ×!Ó×#ÛÜÝ'ÞyÓ ß#àIÐ á âÚã ä å æØçèé&êç)ëìê í!î-ïð!î!çêFast Solution to BVP with Green’s Functions
v = Ξ v _
© Dinesh K. Pai
❚
❙
"!#$&%' (*) +-,/.102$34)Ξ
❙ Ξ
567*8916:;<;9: =>9Boundary Condition Type Changes
❚
?A@BDCFEHGIJKLNMO P QNR/SNTSU/P S© Dinesh K. Pai
Fast Elastostatic Deformation
❚
VWX/Y/Z[/\]_^a`bZcD^dZfeghX/ibX hgjk_[lhnm o= H u = G p
= +
T s 0
s A A E
A = +
pv A - v A s = s
© Dinesh K. Pai
Notation
❚
qsrtvuxwyt tz{|}/~"Arw A />"D$ N_Dd>N/"A ¡
¢F£s¤ £¥¦
❚
§©¨/ª«/¬f®«s¯xª¦±°
®²
❚
§©¨/ª«/¬n³¤ £´µ
¯_«
¥
)E A A ( A 0 0 − = s
¶T 0 0 0
s A ( A A )EE
A = + −
T s 0
s A A E
A = +
¶= +
© Dinesh K. Pai
Sherman-Morrison-Woodbury
❚
·A³DªF¸H¹²º´£ ®
¦¤ £
¨/
°
«
¤
f»/
¦¼
DN« ½D¾À¿/Á
[ T - 0 1 s ] T - 0 1
s 1 - 0 1 - 0 1 -
s A - A A I E A A E A
A = δ + δ − 1
T s 0
s A A E
A = +
Â❚
ÃAÄ= +
ÅƱÇÈDÆŠɱÊËÊ$ÉÌÍÎÊÏ$ɱÐ1ÑÊÍÓÒ4ÌÔ&ÕÖ±ÑÊ××Ø
© Dinesh K. Pai
Capacitance Matrix Algorithm
[James + Pai 99,01]
❚ Solution to any BVP in terms of Ξ for a Reference BVP
Using Sherman-Morrison-Woodbury formula:
v (0) = [ Ξ (I-EE T ) - EE T ] v v = v (0) + (I+ Ξ )EC -1 E T v (0) C = -E T Ξ E = s-by-s capacitance matrix
❚ Direct solver w/ fixed solution cost
❚ Construct, cache and reuse C -1
❘ O(s 3 ) when constraints switch (or better)
❘ O(sn) subsequent solves for s nonzero BC _
© Dinesh K. Pai
❚
ÙÚÛÜnÝ© Dinesh K. Pai
Haptic Interaction [James & Pai 01]
❚
! "#%$&'#(*)+),-(/.0 1243 5
❙
6798:%;<=>8@?A:=CBD8EFGIHJ:FKLGI7I8FM:BHJGNB:HJB'OGPNB❙
QR9STUDRVXWYZ[9\%]^%_a`bcd egf%hiMjhkmlon9p9qr stuvuw9x9yz {I{9|}*~> 9 I9❚
ID C*¡¢¤£J¥ ¦£>§¨©ª «¬4¬®'¯¨¥ °%±4²´³'µ'¶· ¸
© Dinesh K. Pai
Capacitance Matrices give Exact Local Models
❚ Consider contacting a free boundary.
Forces at only contacted vertices can be computed in O(s 2 ) time as
E T v = E T v (0) + E T (I+ Ξ )EC -1 E T v (0)
❚
¹Iº»¼º½¾ ¿¼¾´ÀÂÁ¾JÃÄ¿ÅIÁ½Æ'ÇÈÊÉÈ»A¾ ÈËÌaÅÍoÎÏ ÐÑÒÓÔÑÕ ÑÖÐØ× ÙÚ Û Ü
E T v = -C -1
Ý Þ= Ξ
ÞÞ-1
ß Þ❚
àIáΞ
ââãäØåJæççèèçéå>ãêçéëìíîãï*ðéçëè4êç*ñDå çò© Dinesh K. Pai
Point Contact abstraction
❚
ó*ôõ*ö÷øùúû´üøúû õüûL÷ýøþ'ÿüô ùú ùú%ùû ô ûJýõüû>ùøú õ*úþûôýô
øýô/öõ*ýô*ý
þùI÷%öõüô ôúûXøú
ùúô*ý ô
❚
! "#$&%')(*(+,-')(./ 0#!21-%23(1(&4
5687:9<;=> ?A@:B C#DE
© Dinesh K. Pai
Capacitance Matrix in Haptics
© Dinesh K. Pai
Resources
❘
FGHAI&J*KML:KN OPQRSPTVU W8XZY*[:\]^A_`a b#cAde*fg<h:ikjc lmknko:pq rsMtu*vMw:xAyzk{}|{~:wk:r2: #zV *z:wAu*{y# ::&:&::
##
❘
8:< ¡A¢:£ ¤:¥¦-¦§:¨}©:ª¬«k«®&¯*°A±²:³°´²µ¶A·k³¶A¸!¯¹¶:º²´8±S³<»<¯k¼k¶:º´
½ ¾#¾#¾¿ÀÁÂÃÄÅÆÇÈÉÊ ËÌÍÎSÏ8ÐÏ8ÑÒÓÎÔÐÕÖÐ×Ø&ØVÙÚ8Û8Ü
❘
Ý8Þ:ß<àáâ ãAÞ:ä å8æ¬ç-è:éêSéëì<í-îëïAðSñëkèAð-òê ókôïõðòkõ8ðïAðéö÷:øùûúýüþüù ÿ*ø÷ *ü÷ü*øú÷-ü
֟ ! ""# $&%'(()*+ ,.-/0124343.56708 9;:-<=0>? @A
B&C
AED41A>F</G80>IHFGJ/8:1GK 9.:-<0>? LA?A:/> C
M N;N;N OPFQRTSUVWXYZ[]\^
© Dinesh K. Pai
Summary
❚
_a`7bIcd` efghie`jh kmlngop `7q❙
rts.uwvwxyz7y{w|u }~w}y}s y{w;v.y❙
4 .; ❚
n7nm m. I ¡;&¢j¢❚
£¤¥&¦§j¨¦ª©¤«m¥ ¬©.®¯¡«m°§ ¦®¤¥❚
±²7³T´µ¶¸· ¹º´»¼.º¶¡½m¾· ¹º´»7KDQ
¿