Vous êtes sur la page 1sur 8

ANTS: Automatic Navigation of Terrain Systems

Tim Batchelor Hnd,


Alumnus of Bolton Institute
F4, 112 Park Rd, Bolton,
Lancs. England
++44(0)1204 406228
loanwolffe.farzone@virgin.net
!"#$%!&$ >? @A$%B6C&$@BA
!"#$%&'&()%&)($(*+$%+"(%&)(,#-#*').%$+'/($%01%+"(%2(3(,0&-(*+%01%' !"(%2(3(,0&-(*+%01%$#-7,'+(2%-(+"02$%01%#*+(,,#/(*+%*'3#/'+#0*%#$
4(*()',#5(2% 6027,')% 8.$+(-% 602(,% 10)% +"(% #-&,(-(*+'+#0*% 01 :(90-#*/% #*9)('$#*/,.% )(,(3'*+% #*% '% -7,+#+72(% 01% )(',% E0),2
'7+0*0-07$% '/(*+% *'3#/'+#0*% +")07/"% +())'#*% $.$+(-$% '*2% +"( '&&,#9'+#0*$S% -'*.% 01% E"#9"% ')(% -#$$#0*% 9)#+#9',S% :7+% +"(% -0$+
2(3(,0&-(*+% 01% 900&()'+#3(% :("'3#0)$% 01% ;<% '/(*+$% #*% '% =>6? (*+()+'#*#*/%'*2%2.*'-#9%')(*'%#*%E"#9"%+"#$%+0&#9%#$%$#/*#1#9'*+%#$
$9(*(@% !"(% -02(,% #$% :'$(2% 0*% '% /(*()',#5(2% 90*9(&+% 01% +"( #*%+"(%2(3(,0&-(*+%01%;<%/'-(%&,'.@%W()(%#+%#$%7$(2%+0%&)03#2(%'
900&()'+#3(% :("'3#0)$% 01% +"(% $09#',% '*+% '*2% :7#,2$% 0*% &)(3#07$ )#9"% $07)9(% 01% 7$()% #*+()'9+#0*% '*2% 90-&(+#+#3(*($$@% C*% +"(% )(',
$799($$17,% -02(,$% :.% )(A#*+(/)'+#*/% 1('+7)($% +"'+% $#-7,'+( E0),2%$79"%$#-7,'+#0*$%$7&&0)+%+"(%2(3(,0&-(*+%01%,0E%'*2%"#/"
#*2#3#27',%'$&(9+$%01%+"(%:("'3#0)$%01%+"(%3')#07$%$&(9#($@ ,(3(,% :("'3#0)$% #*% )0:0+#9$% '*2% "'3(% #-&,#9'+#0*$% #*% +"(
!"(% &'&()% +'B($% '% &)'9+#9',% '&&)0'9"% +0% +"(% 2(3(,0&-(*+% 01 2(3(,0&-(*+% 01% '23'*9(2% 90*+)0,% $.$+(-$@% C*% +"#$% &'&()% E(
#*+(,,#/(*+%:("'3#0)%#*%+"(%;<%$9(*(@%C+%'22)($$($%+"(%*((2$%01%+"( (D'-#*(% +"(% &)0:,(-% 01% 0*(% 0)% -'*.% )0:0+% '/(*+$% *'3#/'+#*/
=>6?% &)0/)'--()% #*+(*2#*/% +0% -'B(% '/(*+$% (D"#:#+% +())'#* +")07/"% '% "#/",.% 3')#':,(% (*3#)0*-(*+S% +"(% &)0:,(-% #$% 90-&,(D
10,,0E#*/% '*2% 90,,#$#0*% 2(+(9+#0*% '$% E(,,% '$% -0)(% "#/"% ,(3(, '*2%)(X7#)($%+"(%'&&,#9'+#0*%01%+(9"*#X7($%1)0-%'%3')#(+.%01%',,#(2
:("'3#0)$% #*% '*% #*+(,,#/(*+% E'.@% C+% &)0&0$($% '% &,'+10)-% 10)% +"( 1#(,2$@
-02(,% +"'+% E#,,% ',,0E% +"(% )($7,+#*/% E0)B% +0% :(% #--(2#'+(,.
!"()(%#$%'%$#/*#1#9'*+%:02.%01%&)(3#07$%E0)B%#*%+"(%1#(,2%01%>0:0+
'99($$#:,(% +0% +"(% -'F0)#+.% 01% #*+()*(+% 7$()$% '*2% $(+$% 10)+"% +"(
60+#0*% I,'**#*/S% Y711*()% (+@% ',@% HPJ% 7$(% '% )'*20-#5(2% &'+"
90*$+)'#*+$%'*2%,#-#+'+#0*$%+"'+%+"#$%9"0#9(%01%&,'+10)-%#-&0$($%0*
&,'**()%'$%&')+%01%+"(#)%$#-7,'+(2%(*3#)0*-(*+%10)%&)03#2#*/%"#/"
+"(%2(3(,0&-(*+%01%+"(%-02(,@
,(3(,% $01+E')(% 90*+)0,% 01% "7-'*0#2% )0:0+$@% C*% HGJ% '% 900)2#*'+(2
'&&)0'9"% 7$#*/% '% &)0:':#,#$+#9% &'+"% &,'**()% #$% 7$(2% +0% 90-&7+(
&'()*+,-)./'01/#234)5(/6).5,-7(+,. 90,,#$#0*%1)((%&'+"$%10)%-7,+#&,(%)0:0+$%#*%'%$+'+#9%(*3#)0*-(*+@%C*
<@;@G% HI)0/)'--#*/% ,'*/7'/($JK% ?'*/7'/(L9,'$$#1#9'+#0*$% M H;J% >'+()#*/% '*2% 4#*#% 7$(2% '% W.:)#2% R)+#1#9#',% I0+(*+#',% U#(,2% +0
=#)+7',% >(',#+.% 602(,#*/% ?'*/7'/(% G@NO% C@;@P% HQ0-&7+() )($0,3(% +"(% +E0% 90-&0*(*+% &)0:,(-$% 01% /(++#*/% +"(% )0:0+% +0% #+$
4)'&"#9$JK%4)'&"#9$%$.$+(-$%M%<#$+)#:7+(2L*(+E0)B%4)'&"#9$ /0',% '*2% '30#2#*/% '*.% 0:$+'9,($% #*% +"(% &)09($$@% C*% HZS[% '*2% \J
40,2(*$+#(*S% ?')/(% '*2% 6(+'D'$% 2(3(,0&% '% <.*'-#9% 8.$+(-$
8)0),'9/$),:. R&&)0'9"% +0% -02(,#*/% ,0E% ,(3(,% :("'3#0)$% 10)% '7+0*0-07$
R,/0)#+"-$S% I()10)-'*9(S% <($#/*S% TD&()#-(*+'+#0*S '/(*+$@% ]#+"% )(/')2% +0% -03(-(*+$% #*% +"(% $#-7,'+(2% (*3#)0*-(*+
8+'*2')2#5'+#0*S%?'*/7'/($S%!"(0).@ #*%H^%'*2%_J%?#*%(+@%',@%2(3(,0&%'*2%2#$97$$%',/0)#+"-$%10)%$#-&,(
'*2%'23'*9(2%90,,#$#0*%2(+(9+#0*%#*%'%$#-7,'+(2%(*3#)0*-(*+S%'*2
#*% H`J% +"(% )(',#5'+#0*% 01% '):#+)').% *'3#/'+#0*% -02($% #$% 2(3(,0&(2
;)<=+,1. +0/(+"()%E#+"%'%4(*()#9%a$()%C*+()1'9(%U)'-(E0)B@
>0:0+$S% R)+#1#9#',% ?#1(S% ;<% R/(*+S% !())'#*% 8.$+(-$S% !())'#*
U0,,0E#*/S%Q0,,#$#0*%<(+(9+#0*S%C*+(,,#/(*+%V'3#/'+#0*S%C*+(,,#/(*+ C*%+"#$%&'&()%E(%+'B(%'%&)'9+#9',%'&&)0'9"%+0%+"(%2(3(,0&-(*+%01
R/(*+%R)9"#+(9+7)($@ #*+(,,#/(*+% :("'3#0)% #*% +"(% ;<% $9(*(@% ](% 2($#/*% $.$+(-
90-&0*(*+$% *(9($$').% 10)% +"(% #-&,(-(*+'+#0*% 01% b!"#$%%&'$"#
()*&')#&+"c% E"()(% +"(% )0:0+% #$% &)($(*+% '$% '*% '/(*+% #*% +"(% $9(*(
'*2%:(/#*%+0%2(3(,0&%"#/"()%,(3(,%:("'3#0)$%01%-7,+#&,(%)0:0+$%#*
+"(% $#-7,'+(2% (*3#)0*-(*+@% ](% "'3(% '*% (D#$+#*/% -02(,% +"'+
(D"#:#+$% #*+(,,#/(*+% *'3#/'+#0*% #*% +"(% &0)+)'.',% 01% +"(% )(-0+(
90*+)0,% 01% '% 9,#(*+% '3'+')% #*% +"(% 0+"()% 7$()c$% )(&)($(*+'+#0*$% 01% '
-7,+#A7$()% (*3#)0*-(*+@% C*% +"#$% $#+7'+#0*% +"(% 9,#(*+% E#+"#*% +"(
90*$+)'#*+$% 01% +"(% *'3#/'+#0*% -02(% &)03#2($% +"(% b#*+(,,#/(*9(c@
W0E(3()%+"(%-(+"02$%+"'+%+"(%*'3#/'+#0*%-02(%90*$#$+$%#*%')(%*0+
#--(2#'+(,.% '3'#,':,(% #*% '% 10)-% +"'+% 9'*% :(% :7#,+% #*+0% +"(
:("'3#0)$% 01% '/(*+$% E#+"#*% +"(% $9(*(@% !"()(10)(% E(% 90*$+)79+
',/0)#+"-$%+"'+%&)03#2(%+"(%*(9($$').%*'3#/'+#0*',%90*$+)'#*+$@%](
#*90)&0)'+(% ',,% 01% +"($(% 90-&0*(*+$% #*+0% '% ,')/(A$9',(% $9(*')#0S
E"#9"%-02(,$%+"(%)(X7#)(-(*+$%10)%"#/"()%,(3(,%:("'3#0)$@
!"#$% &'&()% #$% 0)/'*#5(2% '$% 10,,0E$O% C*% $(9+#0*% G% E(% 2#$97$$% +"(
)('$0*$%10)%+"(%#*#+#',%9"0#9(%01%&,'+10)-%'*2%2(+'#,%+"(%90*$+)'#*+$
+"'+% +"#$% #-&0$($% 0*% +"(% 2(3(,0&-(*+% 01% '*.% ,')/(% $9',(% -02(,@ '*2% $9)#&+(2% 7*2()% +"(% =>6?% TQ6R% $9)#&+#*/% #*+()1'9(@% !"#$
!"(% 2($#/*% 01% +"(% 03()',,% -02(,% #$% 2(3(,0&(2% #*% $(9+#0*% ;S% #+$ $7&&0)+$% +"(% 7$(% 01% F'3'$9)#&+% 0)% 3)-,$9)#&+% #*% +"(% =>6?% $9)#&+
1('+7)($% ')(% )(,'+(2% +0% +"(% (,(-(*+$% 01% +"(% /(*()',% &)0:,(-% '*2 *02(S% 17)+"()% +"(% 90-&0*(*+$% E#,,% :(% 0&+#-#5(2% +0% )7*% #*% +"(
+"(#)% )($0,7+#0*@% C*% +"#$% $(9+#0*% E(% ',$0% '#-% +0% $"0E% +"'+% #* d,'DD7*%Q0*+'9+%[@N%:)0E$()%&,7/A#*@%]"()(%+"(%#-&,(-(*+'+#0*$
90*$+)79+#*/%'%$.$+(-%+"'+%$'+#$1#($%+"(%)(X7#)(-(*+$%01%07)%-02(, +"(-$(,3($% 7$(% 1('+7)($% E"#9"% 2(&')+% 1)0-% +"(% 97))(*+% =>6?
#*2#3#27',% (,(-(*+$% 01% +"(% &)0:,(-% ')(% )($0,3(2% '*2% +"'+ $+'*2')2%+"#$%2(&')+7)(%E#,,%:(%*0+(2%#*%+"(%+(D+@%!"(%90-&0*(*+$
$'+#$1.#*/% +"(% )(X7#)(-(*+$% 10)% +"(% 90-&,(+(2% -02(,% 90-&,(+(,. E#,,% :(% 17)+"()% 0&+#-#5(2% +0% )7*% 7$#*/% '% -#2% )'*/(% "')2E')(
)($0,3($% +"(% /(*()',% &)0:,(-@% C*% $(9+#0*% Z% +"(% 97))(*+ &,'+10)-S% #@(@% '% [NN% 6Wg% IQ% )7**#*/% E#*20E$% `_% '*2% 7$#*/
C-&,(-(*+'+#0*%8+'+(%01%+"(%-02(,%#$%&)($(*+(2%'$%01%+"(% +#-(% 01 "')2E')(% '99(,()'+(2% <#)(9+% ;<% /)'&"#9$% 2)#3()$% HP;J@% !"(
E)#+#*/@% ](% /#3(% 2(+'#,$% 01% E"'+% $.$+(-% 90-&0*(*+$% "'3(% :((* #*+(*+#0*% #$% +"'+% +"(% )($7,+$% 01% +"#$% E0)B% $"',,% :(% #--(2#'+(,.
90*$+)79+(2% '*2% +"(% )($7,+$% 01% #*#+#',% +($+$% 01% +"($(% 90-&0*(*+$@ '99($$#:,(%+0%+"(%3'$+%-'F0)#+.%01%#*+()*(+%7$()$@
](%(D'-#*(%'*.%)($7,+$%10)%+"(%#-&,#9'+#0*%01%'*.%2($#/*%9"'*/($
+"'+%-'.%:(%)(X7#)(2%+0%+"(%90-&0*(*+%0)%+0%+"(%03()',,%-02(,@%C*
+"(%1#*',%$(9+#0*$%E(%&)($(*+%+"0$(%90*9,7$#0*$%E(%"'3(%:((*%':,(
K? 6G#@8A/BH/$FG/8GAG%!E/JB6GE
602(,$% :'$(2% 0*% +"(% $09#',% '*+% "'3(% :((*% 7$(2% $799($$17,,.% 0*
+0%2)'E%1)0-%07)%-02(,%'+%+"(% 97))(*+% $+'/(% 01% 2(3(,0&-(*+% '*2
*7-()07$% 099'$#0*$% +0% 2(3(,0&% 90))($&0*2#*/% )0:0+% :("'3#0)$
2#$97$$%+"(%17+7)(%2(3(,0&-(*+%01%+"#$%&)0F(9+@
$79"% '$% Q00&()'+#3(% !)'*$&0)+% HPZJS% )(+7)*#*/% +0% '% :'$(% ,09'+#0*
:.% 7$#*/% ,#/"+% 2#)(9+#0*% '$% '% *'3#/'+#0*',% '#2% HP[JS% !)'#,
D? @A@$@!E/&FB@&G/BH/IE!$HB%J U0)-'+#0*S%10)'/#*/%&'++()*$%'*2%$(,1A0)/'*#5#*/%$.$+(-$%HP\J@%C*
!"(%#*#+#',%9"0#9(%01%$01+E')(% &,'+10)-% 10)% +"#$% &)0F(9+% #$% =>6? ('9"% 01% +"($(% +"(% 0:$()3(2% :("'3#0)% 01% 3')#07$% '*+% $&(9#($% "'$
HPNJ@% =#)+7',% >(',#+.% 602(,#*/% ?'*/7'/(% #$% '*% #--(2#'+(,.% *(+A :((*% +"(% #*$&#)'+#0*% 10)% 2(3(,0&-(*+% 01% $#-#,')% :("'3#0)$% #*
)('2.%10)-'+%10)%+"(%2($9)#&+#0*%01%;%2#-(*$#0*',%/(0-(+).%'*2%#+$ )0:0+$@%C*%HPZJ%+"(%900&()'+#3(%:("'3#0)%01%E0)B()%'*+$%27)#*/%+"(
'*#-'+#0*@% C+% #$% 7*#3()$',,.% '3'#,':,(% +0% 7$()$% 01% -0$+% #1% *0+% ',, )(+)#(3',% 01% ,')/(% &)(.% #+(-$% E'$% +"(% 107*2'+#0*% 10)% '% )0:0+#9
"')2E')(%&,'+10)-$@%!"7$%'%-02(,%90*$+)79+(2%#*%17,,%90-&,#'*9( $.$+(-% 9'&':,(% 01% 7$#*/% '% $-',,% b$E')-c% 01% '*+% ,#B(% )0:0+$% +0
E#+"% +"(% =>6?% $&(9#1#9'+#0*% #$% *0+% 2(&(*2(*+% 0*% '*.% $&(9#1#9 )(+)#(3(%3')#07$%$#5($%01%:0D%'*2%2(,#3()%+"($(%+0%'%/0',%,09'+#0*@
"')2E')(% 0)% $01+E')(% &,'+10)-@% =>6?% 90*+'#*$% -(+"02$% 10) !"#$% E'$% '9"#(3(2% +")07/"% '% 2(9(*+)',#5(2% -7,+#A'/(*+% $.$+(-
$&(9#1.#*/% +"(% /(0-(+).% 01% +"(% -02(,S% 10)% $9)#&+#*/% +"( E#+"%90*+)0,%/(*()'+(2%3#'%,09',,.%$(*$(2%#*10)-'+#0*@%C*%HP[J%+"(
#*+()'9+#0*$%:(+E((*%90-&0*(*+$%01%+"(%-02(,%'*2%:.%+"(%7$(%01%' ':#,#+.% 01% '*+$% '*2% :(($% +0% )(+7)*% +0% +"(#)% *($+% ,(2% )($(')9"()$% +0
$7#+':,(%&,7/A#*%+0%'%E(:%:)0E$()S%+0%2#$&,'.%+"#$%#*+()'9+#0*%#*%; 2($#/*%'%$.$+(-%+"'+%(*':,(2%'%)0:0+%+0%)(+7)*%+0%#+$%#*#+#',%,09'+#0*
2#-(*$#0*$@ '1+()% e&)($7-':,.f% '9"#(3#*/% #+$% /0',@% !"#$% 7$(2% +"(% 2#)(9+#0*% 01
'-:#(*+% ,#/"+% +0% &)03#2(% +"(% )(0)#(*+'+#0*% +0E')2$% +"(% #*#+#',
!"()(% #$% +"(% #$$7(% 01% E"#9"% =>6?% :)0E$()% $"07,2% :(% 7$(2S
,09'+#0*% '*2% (*3#)0*-(*+',% 97($% $79"% '$% ,09',#5(2% ,'*2-')B$% #*
7*10)+7*'+(,.% 17,,% "')2E')(% '*2% $01+E')(% &,'+10)-% #*2(&(*2(*9(
+"(%1#*',%$+'/($@%C*%HP\J%+"(%':#,#+.%01%'*+$%+0%$(,1A0)/'*#5(%E#+"07+
#$% '*% #2(',% +"'+% "'$% .(+% +0% :(% '9"#(3(2% #*% =>6?@% C+% #$% (D&(9+(2
+"(% *((2% 10)% (D&,#9#+% ,0*/A)'*/(% 90--7*#9'+#0*$% #$% $"0E*% +0% :(
+"'+%7$()$%E#,,%E'*+%+0%#*+()'9+%E#+"%+"(%-02(,%)'+"()%+"'*%$#-&,.
+"(%&)0279+%01%'%,09',%9"(-#9',%90--7*#9'+#0*$%$.$+(-%'*2%'9+#3(
0:$()3#*/%#+S%17)+"()%+"'+%7$()$%-'.%',$0%E'*+%+0%#*+()'9+%E#+"%('9"
2#)(9+(2% )'*20-% E',B#*/% $(')9"% &'++()*$@% !"($(% )($7,+% #*% +"(
0+"()% E"#,$+% (D&()#(*9#*/% +"(% -02(,@% !"(% d,'DD7*% Q0*+'9+% HPPJ
10)-'+#0*%01%'%90,,(9+#3(%+)'#,%$.$+(-@
=>6?% :)0E$()% &,7/A#*% &)03#2($% 1'9#,#+#($% 10)% :0+"% 01% +"($(
'9+#3#+#($S% "'3#*/% ',,% +"(% 1('+7)($% 01% '% $+'*2')2% =>6?% &,7/A#* V0*(%01%+"(%'&&)0'9"($%-(*+#0*(2%':03(% 90-&,(+(,.% -02(,$% +"(
E#+"% +"(% '22#+#0*% 01% '% -7,+#A7$()% 9"'+% 1('+7)(% '*2% 1'9#,#+#($% 10) :("'3#0)% 01% ',,% $&(9#($% 01% '*+$S% :7+% ('9"% '&&)0'9"% $799($$17,,.
$"')(2% '9+#0*$% '*2% (3(*+$@% !"(% 0*,.% 0+"()% d)0E$()% $.$+(-% +"'+ -02(,$% 0*(% 0)% -0)(% '$&(9+$% 01% '*+% :("'3#0)% '*2% '&&,#($% #+% +0
011()$%+"#$%,(3(,%01%#*+()'9+#3#+.%#$%+"(%Q0)+0*'%&,7/A#*%HPGJS%E"#9" )0:0+#9% $.$+(-$% #*% '% -('*#*/17,% E'.@% !"7$% +"(% 2($#/*% 01% 07)
"'$%-7,+#A7$()%1('+7)($%#*%2(3(,0&-(*+% '$% 01% +"(% +#-(% 01% E)#+#*/@ -02(,%#*%+"#$%&'&()% #$% #*+(*2(2% +0% /(*()',#5(% +"(% :("'3#0)% 01% '*+
W0E(3()% +"()(% ')(% 97))(*+,.% 0&(*% $07)9(% '&&,#9'+#0*$% #* $&(9#($% '*2% 1)0-% +"#$% +0% $.*+"($#5(% '% 90*$#$+(*+% 2($#/*% 10)
2(3(,0&-(*+%E"#9"%&)0-#$(%+0%-'B(%-7,+#A7$()%90**(9+#0*$%+0%+"( 900&()'+#3(%#*$(9+%:("'3#0)$%#*%-7,+#A'/(*+%$.$+(-$@
=>6?% $9(*(% 7$#*/% +"(% =>6?% TRC% e+"(% TD+()*',% R7+"0)#*/
C*+()1'9(f@ K?> !0(/3)L'M-+,./-0/8)0),'9
!"(% 10,,0E#*/% #$% '% 2)'-'+#5(2% '9907*+% 01% '% 2'.% #*% +"(% ,#1(% 01% '
!"(% E)#+()% 90*$#2()$% +"'+% +"(% d,'DD7*% Q0*+'9+% &,7/A#*% (-:02#($ /(*()#9%$&(9#($%+"'+%E(%$"',,%9',,%b,-$./+012&#+"0 3+45&2)c@% !"#$
+"(%$+'+(%01%+"(%')+%'$%)(/')2$%1'9#,#+#($%10)%+"(%-7,+#A7$()%'99($$%+0 #$% *0+% #*+(*2(2% +0% &)($(*+% +"(% '9+7',% :("'3#0)$% 01% '*.% $&(9#1#9
;<%$#-7,'+#0*$%0*%+"(%*(+%'+%+"#$%+#-(@%Q0*$+)79+#*/%+"(%-02(,%#* $&(9#($% :7+% #$% #*+(*2(2% +0% &)03#2(% '% $9(*')#0% +"'+% E(% 9'*% 7$(% +0
=>6?%#*$7)($%+"'+%#+%E#,,%:(%':,(%+0%)(-'#*%&,'+10)-%#*2(&(*2(*+ :(/#*%90*$+)79+#*/%07)%/(*()',%-02(,@
#*%+"(%17+7)(@%U7)+"()%-0)(%/#3(*%+"(%90*3()/(*9(%01%=>6?%&,7/A
#*% 2(3(,0&-(*+% +0E')2$% '% 90--0*% -7,+#A7$()% 90**(9+#3#+. 670/)80&"0#9$0%&:$0+:07"#;
$+'*2')2% #+% #$% "0&(2% +"(% -02(,% E#,,% (3(*+7',,.% :(90-(% &,7/A#*
7-0#9$0:&4-#04)8-0+:0/)<"0<)450#9$0-&/$-0+:0#9$0"$-#07"#0=4$=)4$-
#*2(&(*2(*+S%0)%)'+"()%+"'+%+"(%=>6?%$+'*2')2%$&(9#1#9'+#0*%E#,,
#+0 %$)*$0 +"0 9$40 :&4-#0 :+4)'&"'0 4."0 +:0 #9$0 /)8>0 ?9$0 -%&'9#0 @.#
03()%+#-(%:(%(D+(*2(2%+0%(*':,(%'*.%-7,+#A7$()%-02(,%90*$+)79+(2
/$:&"&#$%80 4$)--.4&"'0 -2$"#0 +:0 #9$0 -+%/&$40 +"0 =)#4+%0 %.4$-0 9$40 +.#
E#+"#*%+"(%$+'*2')2%$&(9#1#9'+#0*%+0%:(%2(&,0.(2%0*%'*.%&,'+10)-
&"#+0#9$0-."%&'9#>07"#05+*$-0)<)80:4+50#9$0"$-#0#+<)4/-0#9$0%&'9#A
7$#*/%E"'+(3()%:)0E$()%#$%:($+%$7#+(2%+0%+"(%/)'&"#9$%(*3#)0*-(*+
-9$09)-0"+0=)4#&2.%)40#4)&%0#+0:+%%+<09$4$A0#9$0-2$"#-0+:08$-#$4/)8
01%+"'+%&,'+10)-@
9)*$0%+"'0-&"2$0:)/$/>0!"0-#$)/0-9$05+*$-0-#$)/&%80)<)80:4+50#9$
4#3(*%+"(%':03(%',,%01%+"(%90-&0*(*+$%2($#/*(2%10)%+"(%-02(,%')( "$-#04)"'&"'0#9&-0<)80)"/0#9)#A09$40)"#$"")$0#)-#&"'0#9$02++%0)&4
+0% :(% 90*$+)79+(2% 7$#*/% =>6?% '$% 2($9)#:(2% #*% +"(% $&(9#1#9'+#0* :+40 )"80 -2$"#0 +:0 :++/0 +40 =4$8>0 7-0 -9$0 5+*$-0 -9$0 -$24$#$-0 #9$
:+4)'&"'0 -2$"#0 :4+50 )0 '%)"/0 +"0 9$40 )@/+5$"0 <9&290 -$4*$-0 #+ +"#$%'9+#0*@%]"()(%&0$$#:,(%+"(%+.&(%01%',/0)#+"-%+"'+%#$%+0%:(%7$(2
5)4B0#9$0#4)&%0)-0-9$0=)--$-> +0%$#-7,'+(%+"#$%'9+#0*%#$%',$0%#*2#9'+(2@
C+5$#&5$0 %)#$40 -9$0 -#.5@%$-0 )24+--0 #9$0 2)42)--0 +:0 )0 -5)%%
5)55)%A0 &#0 9)-0 @$$"0 )%5+-#0 2+5=%$#$%80 2+"-.5$/0 @80 <9)#$*$4 $'39)/>?/E+=/E)M)9/")L'M-+,.
)"&5)%0 =4$8$/0 .=+"0 &#0 @.#0 -+5$0 =&$2$-0 +:0 #)##$4$/0 :%$-90 4$5)&">
C9$0 '4)-=-0 #9$0 "$)4$-#0 =&$2$0 &"0 9$40 5)"/&@%$-0 )"/0 %&:#-0 &#0 )@+*$ ")L'M-+, !9*+,-(L: I,),)O2-.-().
9$40 9$)/>0 !#0 <$&'9-0 #<+0 +40 #94$$0 #&5$-0 <9)#0 -9$0 /+$-0 @.# ?P U0)E')2%-03( ?#*(')%#*+()&@ h\S^S_%%0)%`
$::+4#%$--%80-9$0#.4"-0)<)80:4+50#9$0@4&'9#$"&"'0-."0)"/05)B$-0)
@$$%&"$0 :+40 #9$0 "$-#>0 D$9&"/0 9$40 -9$0 #4)&%-0 #9$0 -<$$#0 -2$"#0 +: ?G d'9BE')2%-03( ?#*(')%#*+()&@ \
-.22$--> ?; !7)*%,(1+ 8?T>Ie+0f ^S_%0)%`
7-07"#0)==4+)29$-0#9$0*&2&"&#80+:0#9$0"$-#0-9$024+--$-0)"0+.#'+&"' ?Z !7)*%)#/"+ 8?T>Ie+0f ^S_%0)%`
#4)&%A0 5.290 -#4+"'$40 #9)"0 #9$0 #4)&%0 -9$0 9)-0 %$:#0 +"0 9$40 +<"
+.#'+&"'0E+.4"$8A0&#0&"/&2)#$-0#9)#0-$*$4)%0+:09$40-&-#$4-05.-#09)*$ ?[ U0,,0E%+())'#* !T>>RCV P%0)%G
=)--$/0#9&-0<)8>0F4&$"#&"'0)%+"'0#9$0#4)&%0-9$0=4+2$$/-04)=&/%80&"
#9$0/&4$2#&+"0+:0#9$0"$-#>0!"0-9+4#0 +4/$40 -9$0 @$2+5$-0 )<)4$0 +:0 ) ?\ <(+(9+%90,,#$#0* Qi??C<T P%0)%GS;SZ
2)44&$40 )==4+)29&"'A0 -9$0 =)--$-0 &#0 9)4/%80 "+#&2&"'0 #9$0 :)&"# ?^ <(+(9+%,#/"+%<#)@ <,#/"+ ;%0)%Z
4$24.&#5$"#0 -2$"#0 :4+50 &#A0 9$40 &"-#&"2#0 /4&*&"'0 9$40 #+0 /$%&*$40 9$4
@.4/$"0 #+0 #9$0 "$-#>0 ?9$0 2)44&$40 +"0 #9$0 +#9$40 9)"/0 &-0 )::$2#$/ ?_ <(+(9+%+')/(+L1002 <+')/(+L<&)(. ;%0)%Z
&55$/&)#$%80 @80 #9$0 -.22$--0 -2$"#0 +:0 7"#;-0 @)2B0 #4)&%A0 &#0 29)"'$-
?` <(+(9+%!)'#,%+.&( <+)'#, ;%0)%Z
2+.4-$0#+<)4/-0)0=+#$"#&)%%804&290:++/0-+.42$0<9$4$0&#-0=)4#&2.%)4
-B&%%-0 5)80 @$0 "$$/$/>0 D80 #9$0 #&5$0 7"#0 9)-0 4$)29$/0 #9$0 "$-#0 <&#9 ?PN ?'.%!)'#,%+.&( ?+)'#, P
9$40 @.4/$"0 5)"80 5+4$0 <+4B$4-0 9)*$0 %+2)#$/0 #9$0 -)5$0 :++/
-+.42$0.-&"'07"#-0@)2B0#4)&%> ?PP 4)'$&%0:F(9+ i/)'$& \%'*2%_

7"#0 /$=+-&#-0 9$40 @.4/$"0 <&#90 #9$0 :$$/$4-A0 #9$-$0 "$*$40 %$)*$0 #9$ PP%0)%P;%'*2
?PG >(,('$(%0:F(9+ i)(,('$(
"$-#0@.#0-=$"/0#9$&40%&*$-05)-#&2)#&"'0:++/0&"#+0=.%=0)"/0:$$/&"' hP%0)%G
#9&-0#+0#9$0'4.@-0&"0#9$&402$%%->07"#0&-0-++"0@)2B0+"0#9$0#9&2B$"&"' ?P; ?#1+%0:F(9+ i,#1+ PP
#4)&%0 #+0 9$40 =4&G$>0 7#0 #9$0 2+4=-$0 -$*$4)%0 <+4B$4-0 )"/0 #9$0 2)44&$4
)4$0 )##$5=#&"'0 #+0 5+*$0 #9$0 2)42)--0 <&#9+.#0 -.22$--A0 #9$80 9)*$ !"($(% b,0E% ,(3(,c% :("'3#0)$% ')(% +"(% :'$#9% '9+#0*$% +"'+% 07)
29)"'$/0#9$&40=+-&#&+"-0)4+."/0#9$02+4=-$05)"80#&5$-0#+0"+0)*)&%> $#-7,'+(2%)0:0+%'*+$%E#,,%:(%':,(%+0%&()10)-S%7$(2%#*%90-:#*'+#0*
7-0#9$0".5@$4-0+:0<+4B$4-0)4+."/0#9$0:++/0&"24$)-$-0#9$4$02+5$- +"(.% $"07,2% &)03#2(% +"(% -('*$% +0% '9"#(3(% '% 3')#(+.% 01% -0)(
)0=+&"#0<9$"0$"H5)--0#9$&40)##$"#&+"029)"'$-0:4+50#48&"'0#+0/4)' 90-&,(D% '9+#3#+#($@% ](% E#,,% 1#)$+% ,00B% '+% '9+#0*$% +"'+% #*30,3(
#9$0 2+4=-$0 #+0 /&-5)"#%&"'0 &#>0 ?9$0 2+"2$"#4)#$/0 $::+4#-0 +:0 5)"8 -03(-(*+@
<+4B$4-0 5)")'$0 #+0 -$*$40 )0 %)4'$0 =&$2$A0 <&#90 #9$0 2)44&$4;-0 %+"'
%$'-0-.==+4#&"'0#9$0@.%B0+:0#9$05)--0#9$0'4+.=0-$#-0+::0/4)''&"' ?0E% ,(3(,% -03(-(*+$% "'3(% :((*% /(*()'+(2% #*% '9+7',% )0:0+$% #*% '
#9$05+4-$%0)%+"'0#9$09+5$<)4/0#4)&%> 3')#(+.% 01% E'.$% :7+% 10)% +"(% &7)&0$($% 01% +"#$% $#-7,'+#0*% E(% ')(
90*9()*(2% &)#-')#,.% E#+"% -(+"02$% 10)% $#-7,'+#*/% -03(-(*+$% 01
?9$0 2+4=-$0 9)-0 )##4)2#$/0 +#9$40 &"-$2#0 -2)*$"'$4-A0 )0 <9&#$ +"(% '/(*+% #*% =>6?@% R*.% 0:F(9+% #*% +"(% =>6?% $9(*(% 9'*% :(
2+2B4+)2905+*&"'0#+<)4/-0#9$0=4&G$0 )##4)2#-0 #9$0 )##$"#&+"0 +:0 #9$ )(&0$#+#0*(2%'+%'*.%+#-(%:.%$(*2#*/%'%*(E%&0$#+#0*%3(9+0)% +0% +"(
=)#4+%%&"'0 -+%/&$4-A0 #9$0 2+2B4+)290 &-0 -$&G$/0 &"0 #9$0 =+<$4:.% '&&)0&)#'+(% b$*$"#!"c% 01% #+$% b?4)"-:+450 "+/$cS% ,#B(% E#$(% 10)% +"(
5)"/&@%$-0)"/0-#."'0@80=+&-+"0'%)"/->0?9$0=+&-+"0-2$"#04$24.&#- 0)#(*+'+#0*% 01% +"(% 0:F(9+@% !"#$% &)09($$% &)0279($% '*% #--(2#'+(
<+4B$4-0#+0#9$0:4)80)"/0&"0-9+4#0+4/$40#9$05.290%)4'$402+2B4+)29 9"'*/(% #*% +"(% 0:F(9+c$% &0$#+#0*% 0)% 0)#(*+'+#0*@% R*#-'+(2
&-0-.@/.$/0)"/0<+4B$4-0@$'&"0/&-5)"#%&"'0#9&-0"$<0=4&G$> -03(-(*+% #*% =>6?% #$% -0$+% 90--0*,.% '990-&,#$"(2% :.% '
D80#9$0$"/0+:0#9$0/)807"#09)-05+*$/0+409$%=0#+05+*$09."/4$/-0+: &)09($$%9',,(2%b?#*(')%C*+()&0,'+#0*cS%$((%HPNJ@%T$$(*+#',,.%+"#$%#$%'
#&5$-0 9$40 +<"0 <$&'9#0 &"0 :++/0 &"#+0 #9$0 "$-#A0 -+5$#&5$-0 :+%%+<&"' -(+"02%+"'+%$799($$#3(,.%9'7$($%+"(%0:F(9+%+0%0997&.%,09'+#0*$%e0)
#4)&%-0 :+45$/0 @80 #9$0 %&*&"'0 @+/&$-0 +:0 9$40 -&-#$4-0 -=)""&"'0 -+5$ 0)#(*+'+#0*$f% :(+E((*% +"(% $&(9#1#(2% 3',7($% 03()% '% 2(1#*(2% +#-(
@4$)290 +40 +@-#)2%$>0 C9$0 9)-0 @$$"0 #&4$%$--0 )"/0 /$#$45&"$/A0 $*$" &()#02@%!"#$%-(+"02%#$%)('2#,.%'&&,#(2%+0%?PS@@ZS%"0E(3()%#*%;%'*2
4.#9%$--0&"09$40/)&%80+22.=)#&+"> Z% '*0+"()% -(+"02% #$% ',$0% '3'#,':,(@% Y*0E*% '$% b8&"()#9',% ?#*(')
C*+()&0,'+#0*c% +"#$% -(+"02% #$% ':,(% +0% /(*()'+(% 0)#(*+'+#0*% 3',7($
!"(% ':03(% "'$% :((*% $.*+"($#5(2% '*2% (D+)'&0,'+(2% 1)0-% 3#2(0 1)0-%0*(%0)#(*+'+#0*%+0%'*0+"()@%!"(%$&((2%01%+"(%-03(-(*+%9'*
100+'/(S% 1)0-% +"(% E)#+()c$% 0E*% 0:$()3'+#0*% 01% 90,7-*% )'#2#*/ :(%2()#3(2%1)0-%0)%2(+()-#*(2%'$%'%17*9+#0*%01%+"(%)'+(%01%9"'*/(
:,'9B% ')-.% '*+$% #*% ]($+% R1)#9'% #*% +"(% b^Nc$% '*2% +"(% -'*. 01%&0$#+#0*%0)%0)#(*+'+#0*%03()%+#-(@
(D9(,,(*+%2($9)#&+#0*$%#*%&'&()$%-(*+#0*(2%':03(@%b,-$./+012&#+"
3+45&2)c%#$%'*%(*+#)(,.%#-'/#*').%$&(9#($%+"'+%"'$%:((*%&)($(*+(2 I>J>K ?$44)&"03+%%+<&"'
$0%+"'+%07)%-02(,%9'*%:(%7$(2%+0%(D&()#-(*+%E#+"%3')#07$%'$&(9+$ C*%'*.%'*#-'+(2%-03(-(*+%03()%'%3')#':,(%$7)1'9(%#@(@%+())'#*%+"(
01%+"(%:("'3#0)$%01%'9+7',%$&(9#($%'*2%+"(#)%#*+()'9+#0*@ ':#,#+.% +0% )(-'#*% #*% 90*+'9+% E#+"% +"(% $7)1'9(S% 0)% +0% -'#*+'#*% '
/#3(*% "(#/"+% 03()% +"(% $7)1'9(% 9'*% *0+% :(% +'B(*% 10)% /)'*+(2@
K?D E+=/E)M)9/")L'M-+,./+N/(L)/J+1)9 I)(3#07$%E0)B%#*%+"(%1#(,2%01%>0:0+%60+#0*%I,'**#*/%"'$%,')/(,.
!':,(%P%,#$+$%$#-&,(%:("'3#0)$%0)%'9+#0*$S%E"#9"%E(%E#,,%+()-%b,0E :((*% 90*1#*(2% +0% -0+#0*% #*% '*% #2(',% e1,'+f% $7)1'9(@% >($(')9"()$
,(3(,c%:("'3#0)$%'*2%2(+'#,%'*.%90*2#+#0*%+"'+%#$%'%&)()(X7#$#+(%10) "'3(%'$$7-(2%+"'+%+"(#)%-(+"02$%E#,,%E0)B% 0*% '% 3')#':,(% $7)1'9(
0)% +"'+% +"(.% 9'*% :(% )('2#,.% (D+(*2(2% +0% 20% $0S% :7+% ,#++,( end-if
(D&()#-(*+'+#0*%'&&(')$%+0%"'3(%:((*%9'))#(2%07+@%a$#*/%'*%#2(',
robot position is input value
$7)1'9(%"'$%+"(%'23'*+'/(%+"'+%',,%',/0)#+"-$%*((2%0*,.%+0%90*$#2()
+E0% 2#-(*$#0*$% E"#,(% *'3#/'+#0*% 0*% '% 3')#':,(% $7)1'9(% 2(-'*2$ break out of while loop
+"'+% +"(% +"#)2% 2#-(*$#0*% :(% +'B(*% #*+0% 90*$#2()'+#0*@% !())'#* end-while loop
10,,0E#*/%#$%'%+(9"*#X7(%+"'+%',,0E$%0)#(*+'+#0*%'*2%&0$#+#0*%+0%:(
'*#-'+(2% #*% +E0% 2#-(*$#0*$% E"#,$+% -'#*+'#*#*/% +"(% '*#-'+(2 next input value
0:F(9+%#*%90*+'9+%E#+"%+"(%$7)1'9(%:(#*/%+)'3()$(2%0)%'+%'%$(+%"(#/"+
03()%#+@
!"(% -(+"02% E0)B$% :.% &)0F(9+#*/% '% )'.% 1)0-% +"(% )0:0+% &0$#+#0*
!"(% ':#,#+.% +0% 10,,0E% +())'#*% #$% '% )(X7#)(-(*+% 10)% ',,% =>6? 2#)(9+,.%20E*%+"(%j%'D#$S%E"(*%+"(% )'.% #*+()$(9+$% +"(% $7)1'9(% +"(
:)0E$()$%#*%+"'+%#+%#$%*((2(2%+0%'990-&,#$"%'%:'$#9%bE',Bc%+.&(%01 &0#*+%01%90*+'9+%#$%7$(2%+0%'2F7$+%+"(%)0:0+%&0$#+#0*@%C1%&)0F(9+#*/%'
*'3#/'+#0*@% W0E(3()% #+% #$% *0+% '% )(X7#)(-(*+% 01% +"(% $&(9#1#9'+#0* )'.% 20E*E')2$% 20($% *0+% /#3(% '% 90*+'9+% E#+"% +"(% $7)1'9(% '% )'.% #$
+"'+%+"#$%':#,#+.%:(%'3'#,':,(%+0%'*#-'+#0*$S%$#*9(%#+%#$%(D&(9+(2%+0 $(*+%7&E')2$%#*$+('2@%!"(%-(+"02%',$0%',,0E$%10)%+"(%&)($(*9(%01
'&&,.%0*,.%+0%.-$4 *'3#/'+#0*@%C1%'*%'/(*+%#$%+0%$#-7,'+(%+"#$%+.&( +"(% '/(*+% #*% +"(% $9(*(@% C1% +"(% )0:0+% /(0-(+).% #$% 90*+'9+(2% :(10)(
01%*'3#/'+#0*%E"()(%+"(%$7)1'9(%#$%'%3')#':,(%0*(%+"(*%$0-(%B#*2 +"(%$7)1'9(%#$%2(+(9+(2%+"(%-(+"02%90*+#*7($%+"(%)'.%+)'9(%:(.0*2
01% +())'#*% 10,,0E#*/% -(+"02% E#,,% :(% )(X7#)(2@% W()(% #$% '% +())'#* +"(%)0:0+c$%/(0-(+).@
10,,0E#*/% ',/0)#+"-% +"'+% "'$% :((*% +($+(2% '*2% E0)B$% 0*% '% =>6?
b(,(3'+#0*% /)#2cS% +"(% -0$+% (11#9#(*+% -('*$% 01% $&(9#1.#*/% 3')#':,( I>J>J L+%%&-&+"0M$#$2#&+"
+())'#*%#*%=>6?@ Q0,,#$#0*% 2(+(9+#0*% #$% '*0+"()% +(9"*#X7(% +"'+% #$% )(X7#)(2% #*% 7$()
*'3#/'+#0*S% "0E(3()% '$% E#+"% +())'#*% 10,,0E#*/% #+% #$% *0+% '
7K0?$44)&"03+%%+<&"'07%'+4&#95 )(X7#)(-(*+% 01% +"(% $&(9#1#9'+#0*% +"'+% 90,,#$#0*% 2(+(9+#0*% -(+"02$
:(+E((*% '/(*+$% '*2% 0:F(9+$% E#+"#*% +"(% $9(*(% :(% #-&,(-(*+(2% #*
+"(%:)0E$()@%C*%H^%'*2%_J%?#*%(+@%',@%2($9)#:(%'%90,,#$#0*%2(+(9+#0*
For each input value of projected postion
',/0)#+"-%E"#9"%9'*%'*2%e&)($7-':,.f%"'$%:((*%:7#,+%#*+0%=>6?
here is input.x, input.y + robot height, input.z :)0E$()$S%:7+%7*+#,%$79"%+#-(%'$%:)0E$()%-'*71'9+7)()$%-'B(%+"#$
there is here.x, here.y – 1000, here.z +(9"*#X7(% '3'#,':,(% +0% +"(% =>6?% &)0/)'--()% 10)% 0:F(9+L0:F(9+
90,,#$#0*$% 0)% 0:F(9+L'/(*+% 90,,#$#0*$% E(% -7$+% )(,.% 0*% +"0$(
inverted is false -(+"02$%+"'+%E(%9'*%('$#,.%&)0/)'-%#*+0%=>6?@
While (true) do U)0-%H_J%#+%#$%9,(')%+"'+%+"(%$#-&,($+%90,,#$#0*%2(+(9+#0*%-(+"02%10)
thisNode is compute rayhit between here and there 0:F(9+L0:F(9+%90,,#$#0*$%#*%=>6?%E07,2%,00B%$0-(+"#*/%,#B(% +"(
10,,0E#*/O
if (hit node returned in thisNode)
Path is hitpath returned in thisNode 7J0C&5=%$0+@E$2#N+@E$2#02+%%&-&+"0/$#$2#&+"0)%'+4&#95
If (we hit the terrain)
new robot position is input.x, location.y + For each object/object pair
robot height, input.z , draw the smallest non oriented box
return new positon to surround each object in the pair
else ( we did not hit terrain ) continue ray For each member of the pair
if (inverted) If any vertex of this object’s box is within
reset here to location + a small Y offset The bounds of the other object’s box
else ( not inverted) Then collision is true
set here to location – a small Y offset End-if
end-if Next member
continue while loop Next pair
end-if
else ( hit node not returned) !"#$%-(+"02%#$% "#/",.% #*'997)'+(% :7+% 90*$#2()#*/% +"'+% #+% #$% ('$#,.
#-&,(-(*+(2% '*2% 3().% 1'$+% #+% #$% '99(&+':,(% '$% '% 1#)$+
if (not inverted) '&&)0D#-'+#0*S%/#3(*%+"'+%#+%9'*%$7:$(X7(*+,.%:(%)(1#*(2%7$#*/%+"(
reset here to its initial value -(+"02$%07+,#*(2%#*%H^%'*2%_J@%C*%0)2()%+0%0:+'#*%'*%',/0)#+"-%10)
'/(*+L0:F(9+% 90,,#$#0*% +"'+% E(% 9'*% 7$(S% E(% -02#1.% +"(% ':03(
set there to its Y value + 1000
',/0)#+"-%'*2%'*.%)(1#*(-(*+%01%#+%'$%10,,0E$O
set inverted to true
continue while loop 7I0C&5=%$0)'$"#N+@E$2#02+%%&-&+"0/$#$2#&+"0)%'+4&#95
end-if
For each agent in the system !"(% 90,,#$#0*% 0)% 2(+(9+#0*% )($&0*$(% #$% '&&,#9'+#0*% 2(&(*2(*+% '*2
+"(% -(+"02% 9'*% :(% (D+(*2(2% +0% 2(3(,0&% '% -02(,% b$(*$0)c% E#+"% '
Draw the smallest non oriented box around the agent 2(1#*#+(%:('-%E#2+"%'*2%"(#/"+%"0E(3()%E(%'/'#*%"'3(%'%&)0:,(-
For objects within range of the agent E#+"% 90-&7+'+#0*',% 03()"('2@% U0)% (D'-&,(% #1% E(% E#$"% +0% $9'*
10)E')2%E#+"%'%:('-%E#2+"%01%! '*2%'%:('-%"(#/"+%01%" E(%9'*%20
Draw the smallest non oriented box around the object $0%7$#*/%'%)'$+()%$9'*%-(+"02%1#)#*/%0*(%)'.%&()%#+()'+#0*@
If any vertex of this object’s box is within
the bounds of the agent’s box or
If any vertex of the agent’s box is within "
! "?k\NN
the bounds of this object’s box
then collision is true
!?k_NN
End-if
Next object H-*2,)/>?/P-.-+0/Q.)0.+,R/N-)91/+N/M-)=

Next agent C*% +"(% 1#/7)(% "?% #$% +"(% *7-:()% 01% 3()+#9',% ,#*($% '*2% !?% #$% +"(
*7-:()%01%"0)#50*+',%,#*($@%!"7$%+"(%+0+',%*7-:()%01%#+()'+#0*$%#$
!?%D%"?%k%_NNl\NN%k%Z_NSNNN@%C1%+"#$%"'$%+0%:(%20*(%(3().%+#-(
]#+"#*% +"#$% $.$+(-% #+% #$% &()-#$$#:,(% +0% 90*$#2()% ',,% '/(*+$% 0+"() '*%'/(*+%-03($%#+%E#,,%$#/*#1#9'*+,.%#-&'9+%+"(%$&((2%01%+"(%-02(,@
+"'*% +"(% '/(*+% :(#*/% +($+(2% '$% b0:F(9+$c% 10)% +"(% &7)&0$($% 01 ](% 9'*% )(279(% +"(% *7-:()% 3()+#9',% '*2% "0)#50*+',% ,#*($% +0% PN
90,,#$#0*% +($+#*/@% V0+(% +"'+% +"(% )'*/(% &')'-(+()% #$% '3'#,':,(% +0 /#3#*/%PNN%#+()'+#0*$S%+"#$%-'.%:(%+"(%:(/#**#*/$%01%)0:0+%b3#$#0*c
(,#-#*'+(%+($+$%+"'+%"'3(%*0%&0$$#:#,#+.%01%$799((2#*/@%R%$7//($+(2 10)% 07)% -02(,@% ](% B*0E% +"'+% #*$(9+% 3#$#0*% #$% $+)#9+,.% ,#-#+(2% $0
3',7(%10)%+"(%)'*/(%&')'-(+()%#$%+0%207:,(%+"(%E#2+"%01%+"(%,')/($+ +"#$%-'.%E(,,%&)03(%'2(X7'+(%E#+"#*%+"(%90*1#*($%01%07)%-02(,
0:F(9+%E#+"#*%+"(%$.$+(-@
I>J>I ?4)&%0%)8&"'0)"/0?4)&%0/$#$2#&+"
!"#$% ',/0)#+"-% $"07,2% :(% 7$(2% E"(*(3()% '*% R/(*+% 9"'*/($ >('2()$%-'.%:(%1'-#,#')%E#+"%+"(%b".:)#2%&0+(*+#',%1#(,2c%-(+"02
&0$#+#0*%E#+"#*%+"(%$.$+(-S%'*2%-'.%',$0%90-(%#*+0%&,'.%E"(*(3() 7$(2% #*% >'+()#*/% '*2% 4#*#% H;J% +0% 90*+)0,% '% )0:0+% -03#*/% 0*% '*
'*% 0:F(9+% 9"'*/($% &0$#+#0*@% !"#$% #$% 0*(% )('$0*% 10)% B((&#*/% +"#$ #2(',% $7)1'9(@% !"#$% -(+"02% "'$% &)0:,(-$% E"(*% '&&,#(2% +0% '
&)09($$% '$% $#-&,(% '$% &0$$#:,(% $#*9(% +"(% )(X7#)(2% 03()"('2% 10) 3')#':,(% $7)1'9(% #*% ;% 2#-(*$#0*$% :(9'7$(% #+% )(,#($% 0*% '% ;
&)09($$#*/%+"#$%',/0)#+"-%(D&'*2$%E#+"%('9"%*(E%'/(*+%0)%0:F(9+@ 2#-(*$#0*',% /)#2% 01% &0+(*+#',$% +0% $+#-7,'+(% -03(-(*+$% #*% G
!"()(%#$%'%17)+"()%-(+"02%01%90,,#$#0*%2(+(9+#0*%+"'+%-'.%&)03(%+0 2#-(*$#0*$@% !"7$% :.% (D+(*$#0*% #+% E07,2% )(X7#)(% '% Z% 2#-(*$#0*',
:(%'2'&+':,(%#*%+"(%2(3(,0&-(*+%01%+"(%0+"()%2(+(9+#*/%:("'3#0)$ /)#2% 01% &0+(*+#',$% #*% 0)2()% +0% $+#-7,'+(% -03(-(*+$% #*% ;
#*%07)%-02(,@%C*$+('2%01% 7$#*/% :0D($% +0% $7))07*2% +"(% 0:F(9+$% +"( 2#-(*$#0*$@% !"(#)% -02(,% 907,2% :(% (D+(*2(2% +0% 2(',% E#+"% +"(
'/(*+% 9'*% $(*2% 07+% )'.$% '$% #*% +"(% !())'#*% U0,,0E#*/% ',/0)#+"-@ 3')#':,(%$7)1'9(%E#+"07+%(D+(*$#0*%+0%Z%2#-(*$#0*$%:7+%+"#$%E07,2
!"#$% +#-(% +"(% )'.$% ')(% $(*+% 07+% ,'+()',,.% +0% 2(+(9+% 0+"()% '/(*+$S )(X7#)(% +"'+% &')+$% 01% +"(% +())'#*% +"'+% -'.% &)($(*+% '% ,09',
0:F(9+$% 0)% 0:$+)79+#0*$@% !"#$% E#,,% &)03(% &')+#97,'),.% 7$(17,% #* 0:$+)79+#0*%:(%+)('+(2%'$%2#$90*+#*7#+#($@%!"#$%E07,2%:(%1#*(%10)%'
2(+(9+#*/%E"(*%'%1002%#+(-%#$%#*%'%&0$#+#0*%+0%:(%/)'$&(2@%a$(2%10) )0:0+% E#+"% '% 1,'+% 100+&)#*+% #1% E(% '99(&+% +"'+% #+% #$% ,#-#+(2% #*% +"(
10)E')2%1'9#*/%90,,#$#0*%2(+(9+#0*S%$79"%'$%#*%#2(*+#1.#*/%'%+')/(+ 2(/)((%01%$,0&(%#*%+())'#*%+"'+%#+%9'*%2(',%E#+"S%"0E(3()%+"#$%#$%*0+
0)% 0:$+)79+#0*% +"(% )'.% +)'9(% 90,,#$#0*% 2(+(9+#0*% ',/0)#+"-% E07,2 '%$7#+':,(%-(+"02%10)%-02(,#*/%*'3#/'+#0*%#*%07)%'*+%'/(*+@
,00B%$0-(+"#*/%,#B(%+"(%10,,0E#*/O ](% 9'*% 7$(% &')+% 01% +"(% -(+"02% 2($9)#:(2% #*% H;J% +0% -02(,% +"(
0,1'9+0).% $(*$(% #*% 07)% '*+$S% E(% 20% +"#$% :.% 7$#*/% '% b90*+#*707$
&0+(*+#',%1#(,2c% +0% -02(,% +"(% $+)(*/+"$% 01% ('9"% &"()0-0*(% '9)0$$
7O0M$#$2#0#)4'$#0+40+@-#4.2#&+"0)%'+4&#95 07)%3')#':,(%$7)1'9(@%]"(*%+"(%+)'#,%#$%,'#2%:.%07)%'*+%#+%/(*()'+($
'%b"#,,c%#*%+"(%90*+#*707$%&0+(*+#',%1#(,2%'+%+"(%'*+$%,09'+#0*@%!"#$
"#,,% "'$% '% "(#/"+% '*2% (D+(*+% +"'+% -02(,$% +"(% #*+(*$#+.% 01% +"(
For each change in position or orientation, or continuously &"()0-0*(%'*2%#$%()02(2%03()%'%+#-(%&()#02%90))($&0*2#*/%+0%+"(
Compute ray trace forward to range +#-(%)(X7#)(2%10)%+"#$%&"()0-0*(%+0%2#$$#&'+(@%R%*(E%1#(,2%/)#2%#$
)(X7#)(2%10)%('9"%&"()0-0*(%#*%+"(%$.$+(-@%!"#$%&)03#2($%10)%+)'#,
If (we hit something) 10)-'+#0*% '*2% 2(+()#0)'+#0*% '$% 2($9)#:(2% #*% HP\J@% R% 9)72(
If (hit node type is ‘target’, ’object’ or ‘agent’) 2#)(9+#0*',%-(+"02%01%+)'#,%2(+(9+#0*%9'*%:(%90*$+)79+(2%:.%&0,,#*/
return target name +"(%1#(,2%$+)(*/+"%01%('9"%&"()0-0*(%'+%+E0%&0#*+$%90))($&0*2#*/
+0% +"(% &0$#+#0*% 01% +"(% )0:0+$% '*+c$% b'*+(**'(c% E#+"% )($&(9+% +0% +"(
End-if '/(*+%&0$#+#0*@
Next
I>J>O F@E$2#05)"&=.%)#&+"0@80#9$07'$"#
i:F(9+% -'*#&7,'+#0*% #*% =>6?% #$% /(*()',,.% '990-&,#$"(2% :.% +"(
7$(% 01% '% 3')#(+.% 01% $(*$0)% *02($S% +"($(% &)03#2(% '*% #*+()1'9(
:(+E((*%+"(%7$()%-03(-(*+$%01%+"(%-07$(%97)$0)%'*2%+"(%0:F(9+%+0
E"#9"% +"(% $(*$0)% "'$% :((*% -'&&(2@% ]"#,(% +"#$% #$% ,($$% +"'* 3().% $"0)+% )'*/(% b$(*$0)$c% &,'9(2% 0*% +"(% '*+$% -'*2#:,($S% '*2% 0*
90-&,(+(,.% $'+#$1'9+0).% #+% 20($% &)03#2(% '% -('*$% 10)% +"(% 7$()% +0 ('9"%01%#+$%1((+@%C1%E(%+)'9(%'%)'.%:(+E((*%+"(%+#&$%01%+"(%-'*2#:,($
#*+()'9+% E#+"% 0:F(9+$% #*% +"(% $9(*(@% i*9(% '/'#*% +"($(% -(+"02$% ')( E(%9'*%2(+(9+%E"(*%'*%0:F(9+%#$%#*%&0$#+#0*%+0%:(%/)'$&(2S%E"(*%#+
*0+% '3'#,':,(% +0% +"(% '/(*+@% C*% +"(% ,0*/% +()-% E(% "'3(% '* #$% "(,2S% '*2% 9'*% +"7$% :(% )(,('$(2% 0)% ,#1+(2@% !"(% )'.% +)'9(% -(+"02
0&&0)+7*#+.% #*% 2(3(,0&#*/% '/(*+% 0:F(9+% -'*#&7,'+#0*% +0% ',$0 /#3($%7$%'%"'*2,(%0*%+"(%0:F(9+%+"'+%#+%"#+$%$0%E(%9'*%-02#1.%+"#$
)($0,3(% +"(% &)0:,(-$% E#+"% 7$()% 0:F(9+% -'*#&7,'+#0*S% :7+% 10)% *0E 0:F(9+c$%&0$#+#0*%+0%90))($&0*2%E#+"%+"(%'9+#0*$%01%+"(%'*+@
E(% $#-&,.% *((2% +0% 10)-7,'+(% -(+"02$% +0% '9"#(3(% +"(% ,0E% ,(3(,
0:F(9+%:("'3#0)$@ I>J>P M$#$2#&"'0Q&'9#0M&4$2#&+"
C*% =>6?% +"#$% 9'*% :(% 20*(% #*% 0*(% 01% +E0% E'.$@% C1% +"(% ,#/"+#*/
R*+$%7$(%+"(#)%-'*2#:,($%e-07+"%&')+$f%+0%,#1+S%9')).%'*2%2#$-'*+,( $07)9(% #$% 2#)(9+#0*',% E(% 9'*% )('2% +"(% 2#)(9+#0*% 1)0-% +"(% ,#/"+#*/
&)(.%0)%1002%#+(-$S%+"()(10)(%#*%+"#$%9'$(%E"'+%E(%*((2%+0%-02(,%#$ $07)9(@%C1%+"(%,#/"+%#$%*0+%2#)(9+#0*',%#@(@%#+%#$%1)0-%'%&0#*+%$07)9(
+"(%-'*#&7,'+#0*%01%'*%0:F(9+%:.%'*0+"()%0:F(9+%#*%+"(%$'-(%$9(*(@ E(% 9'*% 90-&7+(% #+$% 2#)(9+#0*% :.% 90-&')#*/% 07)% &0$#+#0*% +0% +"(
!"(%$(90*2%0:F(9+%#*%+"#$%9'$(%:(#*/%+"(%'*+%#+$(,1@%!"#$%+"(*%#$%'* &0$#+#0*% 01% +"(% $07)9(% '*2% 7$#*/% 3(9+0)% -'+"% +0% 2(+()-#*(% 07)
'&&)0&)#'+(%&0#*+%+0%2#$97$$%+"(%&".$#9',%2($#/*%01%07)%'*+%)0:0+@ :(')#*/%E#+"%)($&(9+%+0%+"(%$07)9(S%'*2%3#9(%3()$'@%C1%*(9($$').%E(
9'*%$#-7,'+(%+"(%099,7$#0*%01%+"(%,#/"+%$07)9(%1)0-%0:F(9+$%#*%+"(
$9(*(%:.%'22#*/%'%3#$#:#,#+.%$(*$0)%+0%+"(%,#/"+@

K?K F@8FG%/EGPGE/"GF!P@B%#
!':,(%G%2(+'#,$%"#/"%,(3(,%'9+#0*$%+"'+%9'*%:(%90*$+)79+(2%7$#*/%+"(
,0E% ,(3(,% '9+#0*$% 2(+'#,(2% #*% +':,(% P@% !"(% $(X7(*9($% '$$#/*(2% +0
('9"% "#/"% ,(3(,% '9+#0*% ')(% '23#$0).% '+% +"#$% $+'/(% '*2% $7:F(9+% +0
9"'*/(@% !"(.% 90*+'#*% +"(% :'$#9% '9+#0*$% +"'+% +"(% "#/"()% ,(3(,
'9+#0*$%90*$#$+%#*%'*2%',$0%'9+#0*$%+"'+%-'.%:(%+'B#*/%&,'9(%'+%+"(
$'-(%+#-(%'$%+"(%/#3(*%'9+#0*@%U0)%(D'-&,(%E"#,(%'%+)'#,%#$%:(#*/
10,,0E(2% #+% -'.% ',$0% :(% *(9($$').% +0% '30#2% $+'+#9% 0)% -03#*/
0:F(9+$@% U)0-% 0:$()3'+#0*$% #+% #$% 2#11#97,+% +0% 2(+()-#*(% +"'+% '*+$
'9+#3(,.% '30#2% (#+"()% $+'+#9% 0)% -03#*/% 0:F(9+$S% +"(.% ')(% ':,(% +0
9,#-:%03()%-0$+%0:$+'9,($%'*2%(3(*%03()%+"(%,#3#*/%:02#($%01%+"(#)
$#$+()$S% "0E(3()% % +"($(% '9+#0*$% ')(% #*9,72(2% "()(% 10)% +"(% $'B(% 01
90-&,(+(*($$@% !"(% :'$#9% 90,,#$#0*% 2(+(9+#0*% -(+"02$% *((2% +0% :(
7$(2%#*%07)%$#-7,'+#0*%#1%0*,.%+0%#*$7)(%+"'+%07)%)0:0+%'*+$%20%*0+
0997&.% +"(% $'-(% $&'9(% '$% ('9"% 0+"()% #*% +"(% $9(*(@% W#/"()% ,(3(,
0:F(9+% '30#2'*9(% :("'3#0)$% -'.% 90-(% #*+0% &,'.% E"(*% ,')/(
*7-:()$%01%'*+$%')(%+)'3(,,#*/%:0+"%E'.$%0*%+"(%$'-(%+)'#,@
$'39)/D?F-*L/9)M)9/!5(-+0.
H-*2,)/D?/!/.-:79)/!0( F-*L/E)M)9/!5(-+0. #)O2)05)
C*%+"(%1#/7)(%$#D%+E0%F0#*+(2%,(/$%')(%'++'9"(2%+0%+"(%9(*+)',%+"0)'DS WP R30#2%$+'+#9%0:F(9+ ?_Se?;%0)%?ZfS%?P
+"(%':20-(*%#$%'++'9"(2%+0%+"#$%#*%+"(%)(')@%!"(%"('2%$7&&0)+$%+E0
0&&0$(2%-'*2#:,($S% +E0% #*2(&(*2(*+,.% -0:#,(% '*+(**'(% '*2% +E0 WG R30#2%-03#*/%0:F(9+ ?_Se%%n%fS%?P%0)%?G
$#-&,(%90-&07*2%(.($@%!"(%'*+%#$%:#A$.--(+)#9',%#*%#+$%,0*/%'D#$@
W; 8((B%$+'+#9%+')/(+ ?_Se%n%fSWGS%?PP
=')#'+#0*$% 0*% +"#$% 2($#/*% #*9,72(% 3()$#0*$% E#+"% ,0*/()% ,(/$
e9'))#()$fS%E#+"%,')/()%-'*2#:,($%e$0,2#()$f%'*2%E#+"%E#*/$%e-',($f WZ 8((B%-03#*/%+')/(+ ?_Se%n%fS?PS?\S?PP
&,7$%+"(%m7((*%E#+"%'*%(D+(*2(2%':20-(*%10)%(//%,'.#*/@
W[ 8((B%/0',%&0$#+#0* ?^Se%n%fS?PS?\SeWP%0)%WGf
!"(% &".$#9',% -02(,% 01% +"(% '*+% E#,,% :(% 90*$+)79+(2% '$% '% =>6?
b7*)#)4c%+"#$%#$%'%+.&(%01%=>6?%&)0+0+.&(%*02(%+"'+%"'$%1('+7)($ W\ U0,,0E%+)'#, ?`Se%n%fS?PS?\Se%nf
+"'+% (*':,(% +"(% -02(,% +0% :(% '*#-'+(2% '$% +"(% )(&)($(*+'+#0*% 01% ' W^ >(&0$#+#0* ?PGS?GSenfS?PS?\Senf?PPS?P;
7$()% #*% -7,+#A7$()% (*3#)0*-(*+$@% R*% '3'+')% 9'*% '&&(')% +0% E',B
E"(*%-03#*/%'*2%7$#*/%+"(%/($+7)(%#*+()1'9(%9'*%&)0279(%$&(9#1#9
'9+#0*$% '$% )(X7#)(2S% $79"% '$% 9,0$#*/% #+$% -'*2#:,($% '*2% )'#$#*/% #+$
C1%',,%01%+"(%':03(%'9+#0*$%')(%+0%:(%90-:#*(2%+0/(+"()%#*%'%/(*()',
"('2@%!"($(% 9'*% :(% +#-(2% +0% )7*% $#-7,+'*(07$,.% E#+"% '*#-'+#0*$
-02(,%01%'*+%:("'3#0)%$0-(%10)-%01%:("'3#0)%'):#+)'+#0*%-'.%:(
90))($&0*2#*/%+0%+"(%-03(-(*+$%01%+"(%0:F(9+%:(#*/%-'*#&7,'+(2@
)(X7#)(2@%U0)%(D'-&,(%E"(*%+)'*$&0)+#*/%'%1002%#+(-%+"#$%:("'3#0)
!"(% R3'+')% &)0+0+.&(% #*$+'*9(% #$% #*% +7)*% E)'&&(2% #*% '% b)0:0+c -7$+%+'B(%&)#0)#+.%03()%+"(%)(9)7#+-(*+%$#/*',$%01%'%*(E%1#*2%'*2%#1
&)0+0+.&(%E"#9"%90*+'#*$%+"(%'/(*+%902(%10)%,0E%,(3(,%:("'3#0)$S '++(-&+$%+0%+)'*$&0)+%'*%#+(-%1'#,%$799($$#3(,.%E#+"%,')/()%*7-:()$
'*2% &)03#2($% +"(% /($+7)(S% &0$#+#0*% '*2% 0)#(*+'+#0*% #*&7+% #*+0% +"( 01%'*+$%:("'3#0)%-7$+%$E#+9"%+0%'%2#$-'*+,#*/%0&()'+#0*%HPZJ@
'3'+')%&)0+0+.&(%#*$+'*9(@%C+%E07,2%:(%#2(',%"()(%+0%"'3(%'99($$%+0
!"(%03()',,%-0+#3'+#0*%01%+"(%'*+%90,0*.%-7$+%:(%+0%)(&)0279(S%:7+
&)(9#$(% &".$#9',% '/(*+L0:F(9+% 90,,#$#0*% 2(+(9+#0*% &)03#2(2% #*% +"(
#*%'*+$%'$%#*%:(($%+"#$%)(&)0279+#0*%#$%20*(%(*+#)(,.%:.%+"(%X7((*@
:)0E$()@% I()"'&$% E(% 9'*% -'B(% 20% E#+"% +"(% 2(+(9+#0*% -(+"02$
C+%#$%+"()(10)(%)('$0*':,(%+0%&0$+7,'+(%$0-(%&()3'2#*/%&"()0-0*(
',)('2.% 2($9)#:(2% E#+"% +"(% '22#+#0*% 01% $0-(% $+)'+(/#9',,.% &,'9(2
+"'+% -0+#3'+($% +"(% 3')#07$% 9'$+$% 01% '*+% +0% &()10)-% +"(% +'$B$% 10)
E"#9"% +"(.% ')(% 2($#/*(2@% !"#$% E07,2% +(*2% +0% :(% $7&&0)+(2% :. &')+#97,')%+"($(%+(9"*#X7($%$"07,2%:(%01%2#)(9+%7$(%+0%+"(%(-()/#*/
$E')-#*/%:("'3#0)%E"()(%+"(%(*+#)(%90,0*.%10,,0E$%+"(%X7((*%+0%' =>6?%4'-($%#*+()($+%/)07&%HGNJ@
*(E% *($+% $#+(@% ]#+"% )(/')2% +0% +"(% 9"'*/(% #*% :("'3#0)% 1)0-
Q0*+)#:7+#0*$% ')(% #*3#+(2% 10)% +"(% :("'3#0)',% -02(,% 01% bI$(720
7*$799($$17,% 2)'//#*/% '++(-&+$% '+% &)(.% +0% 2#$-(-:()-(*+S% +"#$
T9#+0*% U0)-#9'c% #+$% (*3#)0*-(*+% '*2% (90$.$+(-% +0% +"(% E)#+()$% (A
907,2%:(%27(%+0%'%&('B%#*%'%b1)7$+)'+#0*c%&"()0-0*(%0)%&()"'&$%#+
-'#,% '22)($$% ':03(@% R*% W!6?% 3()$#0*% 01% +"#$% &'&()% E#,,% :(
#$%+"(%)($7,+%01%+"(%b&0#$0*c%&"()0-0*(%(-#++(2%E"(*%'%,#3(%&)(.
-'#*+'#*(2% 27)#*/% +"(% 2(3(,0&-(*+% &)09($$S% +0/(+"()% E#+"
)($#$+$%'++'9B@%]#+"%+"(%)($7,+%+"'+%+"(%'*+$%')(%2)#3(*%#*+0%'%1)(*5.
)(,(3'*+%=>6?%(D'-&,($%'+%+"(%10,,0E#*/%E(:%'22)($$K
01%(110)+%'/'#*$+%+"(%)($#$+#*/%#+(-@
"++&KLL-(-:()$@*(+$9'&(0*,#*(@90@7BL+F:+9L$#+(L"0-(L!7+0)#',$L
C+%"'$%:((*%$"0E*%+"'+%+)'#,%10)-'+#0*%9'*%0997)%E#+"07+%-(-0).
0+"()% +"'*% #*10)-'+#0*% )(&)($(*+(2% #*% +"(% (*3#)0*-(*+', !"#$%E0)B%#$%*0+%97))(*+,.%17*2(2%:.%'*.%/)'*+%0)%0)/'*#5'+#0*@
&"()0-0*(% )($#27(% '*2% E#+"07+% 3#$7',% 9,7($% HP\J@% C+% "'$% 17)+"()
:((*% $"0E*% +"'+% '7+0*0-07$% '/(*+$% 9'*% 900&()'+(% +0% -03(% '*
#+(-%+0%'%/0',%&0#*+%HPZJ@%W0E(3()%+"(%1'9+%+"'+%,#/"+%2#)(9+#0*%E'$
%GHG%GA&G#
7$(2%+0%,09'+(%+"(%/0',%&0#*+%HP[J%#$%*0%2#)(9+%&)001%+"'+%+"#$%#$%+"( HPJ Y711*()S%o@%o)@SY'/'-#S%8@S%C*':'S%6@%'*2%C*07(S%W@
9'$(% #*% ',,% '*+% $&(9#($S% /#3(*% +"(% '&&')(*+,.% $#-&,(% 3#$7', <.*'-#9',,.A$+':,(%60+#0*%I,'**#*/%10)%W7-'*0#2%>0:0+$@
'&&')'+7$%'*+$%#*%/(*()',%&0$$($@ <(&+@%01%6(9"'*0A#*10)-'+#9$S%!"(%a*#3()$#+.%01%!0B.0@
"++&KLLEEE@F$B@+@7A+0B.0@'9@F&LpB711*()L"7-'*0#2
!"(% U#*',% -02(,% E#,,% :(% #-&,(-(*+(2% #*% '% -027,')% 10)-'+
90*$#$+(*+%E#+"%+"(%)(90--(*2'+#0*$%01%HP^J@%!"#$%#$%#*+(*2(2%+0 HGJ 83($+B'S%I@%'*2%i3()-')$S%6@W@%Q00)2#*'+(2%I'+"%I,'**#*/
',,0E% 7$()$% 01% +"(% -02(,% +0% 2(+()-#*(% :.% (D&()#-(*+'+#0*% +"( 10)%67,+#&,(%>0:0+$@%<(&+@%01%Q0-&7+()%89#(*9(S%a+)(9+
)(,'+#3(% #-&0)+'*9(% 01% +"($(% "#/"% ,(3(,% :("'3#0)$% #*% /(*()'+#*/ a*#3()$#+.S%V(+"(),'*2$@%"++&KLL9#+($(()@*F@*(9@90-L
$799($$17,%10)'/#*/%+(9"*#X7($%10)%3')#07$%$&(9#($@ H;J >'+()#*/S%8@%'*2%4#*#S%6@%>0:0+%V'3#/'+#0*%#*%'%Y*0E*
T*3#)0*-(*+%E#+"%a*B*0E*%603#*/%i:$+'9,($@%<(&+@%01
S? &C%%GA$/#$!$G/BH/$FG/JB6GE Q0-&7+()%89#(*9(S%a*#3()$#+.%01%6#**($0+'@%R7+0*0-07$
!"(%90-&,(+(%/(*()',#5(2%-02(,%#$%97))(*+,.%7*#-&,(-(*+(2@%!"( >0:0+$%PeGf%P``[S%PZ`AP\[%"++&KLLEEEA
+())'#*% 10,,0E#*/% +(9"*#X7(% -(*+#0*(2% #*% $(9+#0*% ;% "'$% :((* 7$()$@9$@7-*@(27Lp/#*#L*'3#/'+#0*@"+-,
90*$+)79+(2%'*2%+($+(2%HP_J@%80-(%-02#1#9'+#0*$%*((2%+0%:(%-'2(
HZJ 40,2(*$+(#*S%8@S%?')/(S%T@%'*2%6(+'D'$S%<@%<.*'-#9
10)% #*9,7$#0*% #*+0% +"(% '*+% 90,0*.% -02(,S% $&(9#1#9',,.% +"(% +())'#*
R7+0*0-07$%R/(*+$K%4'-(%R&&,#9'+#0*$@%Q(*+()%10)%W7-'*
10,,0E#*/% ',/0)#+"-% '$$7-($% +"'+% +"(% )0:0+% #$% "7-'*0#2% '*2
602(,#*/%'*2%8#-7,'+#0*S%Q0-&7+()%89#(*9(%<(&')+-(*+S
$+'*2$%E#+"%#+$%j%'D#$%&')',,(,%+0%+"(%/,0:',%j%'D#$%01%+"(%$9(*(@%R*
a*#3()$#+.%01%I(**$.,3'*#'@
'*+%'3'+')%0*%+"(%0+"()%"'*2%E#,,%"'3(%#+$%,0*/%'D#$%'$%+"(%g%'D#$%01
"++&KLLEEE@9#$@7&(**@(27Lp$#0-(L&7:,@"+-,
#+$%,09',%900)2#*'+(%$.$+(-S%#+$%j%'D#$%-7$+%:(%B(&+%b*0)-',c%+0%+"(
$7)1'9(%03()%E"#9"%#+%#$%+)'3(,,#*/@%!"7$%+"(%',/0)#+"-%*((2$%+0%:( H[J 40,2(*$+(#*S%8@S%?')/(S%T@%'*2%6(+'D'$S%<@%V0*,#*(')
-02#1#(2%+0%+'B(%+"(%*0)-',%+0%+"(%$7)1'9(%/#3(*%:.%+"(%)'.%+)'9( <.*'-#9%8.$+(-$%10)%R7+0*0-07$%R/(*+$%V'3#/'+#0*@
-(+"02%'*2%'&&,.%+"#$%+0%'*+%)0:0+%0)#(*+'+#0*%10)%(3().%9"'*/(%#* Q0-&,(D%8.$+(-$%'*2%d)'#*%89#(*9($S%U,0)#2'%R+,'*+#9
&0$#+#0*@ a*#3()$#+.%e?')/(%P```f@
"++&KLLEEE@9#$@7&(**@(27Lp$#0-(L&7:,@"+-,
R$%)(/')2$%)0:0+%*'3#/'+#0*%'*2%#+$%$#-7,'+#0*%#*%=>6?%'%b27-:c
-(+"02% 01% *'3#/'+#0*% "'$% :((*% #-&,(-(*+(2% E#+"% "7-'*0#2 H\J 40,2(*$+(#*S%8@S%?')/(S%T@%'*2%6(+'D'$S%<@%V0*,#*(')
'3'+')$%'$%)0:0+$@%!"#$%2)#3($%+"(%)0:0+%0*%'%&)(2(+()-#*(2%907)$( 2.*'-#9',%$.$+(-%'&&)0'9"%+0%:("'3#0)%-02(,#*/@%=R8!
:7+%',,0E$%10)%#*+()'9+#0*%E#+"%+"(%7$()%HP`J@%T$$(*+#',,.%E"(*%+"( ,':@S%Q(*+()%10)%W7-'*%602(,#*/%'*2%8#-7,'+#0*S%Q0-&7+()
9,#(*+% 90-($% E#+"#*% )'*/(% 01% +"(% )0:0+% #+% '++'9B$S% #+$% &'+)0,% #$ '*2%C*10)-'+#0*%89#(*9(%<(&')+-(*+S%a*#3()$#+.%01
#*+())7&+(2%10)%+"(%27)'+#0*%01%+"(%(*907*+()@%=')#07$%&')'-(+()$ I(**$.,3'*#'@%I7:,#$"(2%#*%b!"(%=#$7',%Q0-&7+()%eP```f
90*+)0,% +"(% )'*/(% '+% E"#9"% +"(% )0:0+% 9'*% 2(+(9+% +"(% 9,#(*+S% #1% +"( P[K;Z`A;\Z%q%8&)#*/()A=(),'/%P```c@
)0:0+% )($&0*2$% +0% -03(-(*+% 0)% $#-&,.% +0% +"(% &)($(*9(% 01% +"( "++&KLLEEE@9#$@7&(**@(27Lp$#0-(L&7:,@"+-,
9,#(*+%'*2%#1%+"(%'++'9B%#$%+0%:(%)(&('+(2%E"#,(%+"(%9,#(*+%#$%E#+"#* H^J W72$0*S%!@Q@S%?#*S%6@Q@S%Q0"(*S%o@S%40++$9"',BS%8@%'*2
)'*/(@%!"#$%E#,,%:(%#*90)&0)'+(2%#*+0%+"(%b$0,2#()c%'*+%#*%+"(%1#*', 6'*09"'S%<@%=AQi??C<TK%R99(,()'+(2%Q0,,#$#0*%<(+(9+#0*
-02(,@ 10)%=>6?@%<(&')+-(*+%01%Q0-&7+()%89#(*9(S%a*#3()$#+.%01
Q')0,#*'%@%"++&KLLEEE@9$@7*9@(27Lp/(0-L90,,#2(@"+-,
T? &BA&EC#@BA#
I)(3#07$% E0)B% "'$% 90*9(*+)'+(2% 0*% -02(,#*/% $&(9#1#9% '$&(9+$% 01 H_J ?#*S%6@Q@S%Q0"(*S%o@S%40++$9"',BS%8@%'*2%6'*09"'S%<@
'*+L)0:0+%*'3#/'+#0*%10)%)('$0*$%+"'+%')(%7*2()$+'*2':,(@%R%-02(, Q0,,#$#0*%<(+(9+#0*K%R,/0)#+"-$%'*2%R&&,#9'+#0*$@
#*90)&0)'+#*/% +"($(% '$&(9+$% :'9B% #*+0% '% /(*()',#5'+#0*% 01% '*+ <(&')+-(*+%01%Q0-&7+()%89#(*9(S%a*#3()$#+.%01%Q')0,#*'@
:("'3#0)% E#,,% :(% 2#11#97,+% +0% #-&,(-(*+% :7+% *0+% #-&0$$#:,(@ "++&KLLEEE@9$@7*9@(27Lp/(0-L90,,#2(@"+-,
W0E(3()%+"(%90*$+)'#*+$%01%:7#,2#*/%+"#$%-02(,%7*2()%+"(%=>6? H`J =0,BS%!@S%'*2%4)'"*S%W@%d,'DD7*%C*+()'9+#3(%T#$(*"(#-()$+)
$&(9#1#9'+#0*%-'.%&)03(%03(),.%)($+)#9+#3(S%#*%+"(%,0*/%+()-%+"07/" \PA\;%_N\_^%67*#9"S%4()-'*.%E#+"%R,+"011S%U%'*2%?'*/S%6@
+"(% :(*(1#+$% 01% "'3#*/% '% 7*#3()$',,.% '99($$#:,(% -02(,% E#,,% &)03( C*$#+7+(%10)%W7-'*A6'9"#*(%Q0--7*#9'+#0*S%!(9"*#9',
7$(17,%+0%:0+"%+"(%>0:0+%60+#0*%I,'**#*/%90--7*#+.%'*2%+0%+"( a*#3()$#+.%01%67*#9"@%R%4(*()#9%a$()%C*+()1'9(%U)'-(E0)B@
R)+#1#9#',% ?#1(% 90--7*#+.@% C*% '22#+#0*% +"(% +(9"*#X7($% +"'+% ')( ed,'DD7*%C*+()'9+#3(%GNNNf%"++&KLLEEE@:,'DD7*@90-L
2(3(,0&(2% #*% =>6?% +0% /(*()'+(% R7+0*0-07$% R/(*+% d("'3#0)$
E#,,%&)03(%3().%7$(17,%+0%+"(%67,+#A7$()%=>6?%2(3(,0&()$%'*2%#*
HPNJ !"(%=>6?%c`^%$&(9#1#9'+#0*%S%=>6?%0)/S%+(9"*#9',%#*10S HP\J 89"E(#+5()S%U@S%?'0S%Y@%'*2%U()(.200*%U'-#,.@%R9+#3(
$&(9#1#9'+#0*$S%=>6?%b`^O%"++&KLLEEE@3)-,@0)/L >'*20-%]',B()$%8#-7,'+(%!)7*B%!)'#,%U0)-'+#0*%:.%R*+$@
+(9"*#9',#*10L$&(9#1#9'+#0*$L3)-,`^L d#08.$+(-$%ZP%eP``^f%P[;AP\\@%"++&KLL9#+($(()@*F@*(9@90-L
HPPJ !"(%d,'DD7*%Q0*+'9+%I,7/#*S%d,'DD7*%C*+()'9+#3( HP^J d).$0*S%o0'**'@%Q)0$$AI')'2#/-%R*',.$#$%01%R7+0*0-07$
"++&KLLEEE@:,'DD7*@90-L9L$r9'+k^s$7:k[s7),kL&)0279+$L9 R/(*+%R)9"#+(9+7)(@%<#3#$#0*%01%C*10)-'+#9$S%!"(%a*#3()$#+.
0*+'9+L#*2(DP@"+-, 01%T2#*:7)/"@%"++&KLL9#+($(()@*F@*(9@90-L
HPGJ !"(%bQ0)+0*'%&,7/#*cS%I')',,(,/)'&"#9$S HP_J d'+9"(,0)S%!@o@%S!())'#*%10,,0E#*/%*0+($@
"++&KLLEEE@&')',,(,/)'&"#9$@90-L&)0279+$L "++&KLL-(-:()$@*(+$9'&(0*,#*(@90@7BL+F:+9L$#+(L"0-(L
!7+0)#',$L+())'#*@"+-
HP;J 6#9)0$01+%<#)(9+t%e2)#3($%<;<%"')2E')(%'99(,()'+#0*f
"++&KLLEEE@-#9)0$01+@90-L2#)(9+DL2(1'7,+@'$& HP`J d'+9"(,0)S%!@o@%67,+#A7$()%)0:0+%(*(-#($%K
"++&KLL1)(($&'9(@3#)/#*@*(+L,0'*E0,11(@1')50*(L
HPZJ Y7:(S%>@Q@S%'*2%d0*':('7S%T@%Q00&()'+#3(%+)'*$&0)+%:.%'*+$
I)0F(9+$LQ0-:'+GL
'*2%)0:0+$@%T2-0*+0*%>($(')9"%Q(*+)(S%8.*97)2(%Q'*'2'
?+2S%'*2%8'*+'%U(%C*$+#+7+(S%8'*+'%U(%a8R@%eP``_f@ HGNJ d'+9"(,0)S%!@o@%W0-(&'/(%01%+"(%%b=>6?%4'-($c%E(:)#*/
"++&KLL9#+($(()@*F@*(9@90-L "++&KLL1)(($&'9(@3#)/#*@*(+L,0'*E0,11(@1')50*(L
HP[J V("-50ES%a%'*2%6940*#/,(S%d@%>0:0+%V'3#/'+#0*%:.%?#/"+@
>0:0+#9$%?':0)'+0).S%?':0)'+0).%10)%Q0/*#+#3(
V(7)0$9#(*9(S%I$.9"0,0/.%<(&')+-(*+S%T2#*:7)/"
a*#3()$#+.@%I)($(*+(2%'+%+"(%T7)0&('*%Q0*1()(*9(%0*
R)+#1#9#',%?#1(S%TQR?%P``;@%"++&KLL9#+($(()@*F@*(9@90-L

Centres d'intérêt liés