Final project
Presentation:
Video:
Max to maya patch:
<pre><code>
———-begin_max5_patcher———-
11881.3oc6880jiiibmO2NB+cfWc9IucWC9O.2Y2Mlc8XG1WbquKhw2CWr8F
cvRhcUZFUhxTrpta637m8ijInDkJRJPJBR.MZhcqpgJIJjIRjHyDY9K+O+a+
ad2cOj703c2E7aC9KAu6c+m4ux6JeshW4cUuv6t64nutXcztx23cKRd943MY
28d8eLK9qYk+ge2GJ9ufeJdyxUadL3O+O9+Ln38FsY4tfrjf+bz2h1+gVsr7
ij7vO+ArZ+qt4kmWsYcbV4WDt5U+bxlrcq9OhKeQx8nZu6jWxpd66e4sQYKd
JeB7oz3EY.ow3Eer.EKr3WDpr7Wn6QA+05eIahdt7K4t+X5pn02U9W9+8292
T767e89wiCsHZcAG5+azSIIA6hiRW7TPZ7tWVmsKnQVjz5rHImA7Fd4uvrYk
Ect+K3eYS9Sne7Pt04gBBsfqgwkxWT4bIl8mRWs7w3fcaeJNmiDbfs8GZjwf
rNigTJTITk+ByQyDe4eM9KZlx43IgVmkfKUEwEj4kk7iweNJeKigrE6qoF15
vv34ks7SYQoYA+uKlemimHmHQErHbR3Iah+RNY8VVxx30QeK+6swsKsHXP5G
S.20Q3zRcqTPEKW7Vl.7fx911X3Sb2CQad7t4fIwQMykPVmKIgyb3fENB57x
kd3krrjMMpH4b6ZLmjwHToNToZO0ZJMO5K+OGmklTLiZjlCs9xeXXoNBIGNu
k6rK+7Qa4WwUvpuxwW8oVe0WAK6RAxEV8Oy4HMxiv1mGoJO4PRK+k1ePehGI
suVDLhB6ofyZmalTVxiOtNtQdAcLOEA17fLWOxpbKGu.0HsSWhvQT8nlrBmJ
x543c6hdL9sB0MpVTzKKGw2yC4Xkb.mLJIfEQLvJx644lRq5jOXIw4dxejSC
+QQJ83Rvlc9Sa5DSC1U3TViLIVyLIz3oST.Gmxvv4FXC1GMw7meSibFh0OsP
vgHY.ZX.IGizvL+atvH9zr6R.mpvgMYNo1GbyLH5zvfj.mgIB8K0y0M12tRP
jRIHlTL65me44GhSalYbPH5oB91hj0IovrAcuRh3J06a7egqSHFDFsS4iYoq
1sHZc4eDceXyrWRmJwfvJA151z8C0nRr2aWuCZkSy6UfX6VpqK1hBN0SP0p3
cc1hbZXK4B5JfunbI9RKFF7e622Duhgm.+HQkVSJjJGvzf1XO+tlYOnIHbMX
2m6.QhnkXZQ41OhlxRUOJ39nm6.Z2FWZaPZbw2wWRRetQConLqeKQgPn+UrR
woPyt64iddwoZZuh3y+HqVG+Zb5tUIapOce2cG9d4R9AkfR3hYDEWY09u3b1
5iqSV7KwKqSCuKW15y86wjrMdygOQ467nebxac0lsow6h2jEkom+G8cWbume
pE99wugOGsHt8Odyrz2c2ioqVlroXhb7ms30q9JyURpuS7il8kukMQaa5imk
jr9gnzWWsa0CfEOGVUxEei1r54nr3rUvjhfN7IW871zRMH0eb4xs4Olm1sHM
Y85ieZve50l9SKiec0h3urZY1SfMWn5ygCYTTcgoi1dc7enysYceMjuYmF9n
+Ri5k5ZGWG5mZamGGzfy.cTMb0jlnmpScUu6f9J8+78Cl4dhCNmlN.4yw3+4
U6xRR+VqrXzjyhYRL3.c4tE3l9Nx8my4Bjavd2kydWjE7gzfhSJ99Ol9wMsw
jIgSubrBAL4RI3Pg6xjOuBBbqJHHpoW5UnUPP7dEDGjf2lr9a+zKoEmMh6VR
VN4LbJjFQZIYL3OuWquvbtsXx41xPsxYoyysOuhCV6JN3yEmkAFI55JN5h49
7W+4fMwY2msX684ljuL3GhVtL257c4ZpuGcO9dLgG7CaSRyBj4tvz1Z.tCk2
3gsFvNyZf.txGAX5AQQLbQnHZO6++tnjNoMl7ze.IERtO8AjMjvA9yAjPf.J
suqUgX1jyfC4pZpnULeVCMuUMzX9LvXCqcuvdsocKS.u+Zk6NCVV.APVaGGv
p8UwVZ6hsxYfwR8HCKNNQRaOspOiMA8zoMPkIV0VlSc9jKcL4AkzTqRPsyAt
jSkC0kyDHdvq9Y+ERppyhh4aahG0B+45UaZMDhkyyh2PKLscIujtnZpTIdDb
xbdY7trUa1GV3+xg8gm9NeZ0xkmDA1xklUK2lrZSldV1m0aKR.Ew9zAIfhPY
Y3JfxII.JxyI.hzyI.koyehatGtHpLd8Bf4Jgby4egOWd8B.12kfvlN+aRTy
E1BarNHJxy2BSbzigMVDpIKNbgs.leLrv2Eg3t4lXtwDfuuBfcyU.rwq.Mcj
8ER.U+gBZQm4S6hdMd4mx+9xc68SQYYoqd3kLv6yixDpylvPMmnPs91ebcxC
Qq04c09.nb2Hl+QsFYlJdxzkmfSQsupf7Dj5K4IXiLJh0SSPEDrOEqLbNg3a
oI3szD7VZBdKMAuklf2RSvaoI3szD7VZBdKMAuklf2RSvaoI3szD7VZBdKMA
uklf2RSvaoI3szD7VZB1VRxAoInPbKMA84zDbVuWpa2L3uttaVG81w897Sv6
yPDuOGc79rjx2SSM+OOAY2RU1a4p7upSVb4s5k3WwUrxsjTyVIo1t1gPZh86
NXDlFn+.jjlNOswmcAoQKW8xtFS+Lr8aybLDvDf.MaalPqPEJcbZ5YcgRnR.
cPIPmIILzoAIzR3yMWQFlf4RNAGRB3nhzBqwMKszeBDiW9bx0WfFHtf4gyGf
q2dargnFs9z.m.MbwCXIq8aiMst4fHs9lipvlJYdvliTc+k70ZoBai4Rg0Z+
.bFoVLVEgtW6GXavywOWKa.OhAYezOk.MRQhD58QroJslCQPJDAGsC4zBkw6
aZMaxi4VZMeKsl28VMQmtYiO5o9B5bIDJjQy5roSha9JvbfrjKKWOJGU7eG8
NJ7LbQxKfrAoE15PRFixyzuf7EGAYwLjchZzBG4hWq8LbqiPivfImh6bbVRu
JLc5SSEBXkgNOjC827H7yoIOu6aO+Px51YurQWQ4YSvaDoV+AWRMMEAmAd6Q
9F7FdWW4p8.4cjykkAJXqNjTZbSyyhFcZvIDQeYy1nE+RP6o6CgN4BnTf6Rn
jCIRkgLYG6v9PN4sGzeD2EO4GnyTfoQjvZGnWvp8q7TKMeBFG7u0NmEMD41S
5FOCPCQk1UPuJS1mDv1s3vfiJCn9BrjA9ZnvCp6KJa9ru+RLmhO8lSAd2RkT
uOc0aTc5Q9MQakuOnzX+7pCNqsrbvqzvZsWohtapmUaW3fKg2SmGdOlBkHpt
0fBtpw7PCcYp44rLcbwY0Q6.u1Z2RacwcndlENShp.mli0M.Ru0mLNddDUIU
clTeRTs6RE.yvVoVAvfI.Gt06YsTA57XmShZ2QANQNO6T4DXKJW1RKv0K7d5
2zNeUMCPRhFtjPszBJ8F+86PbclNXQ.NJwUJWWbcnJBXnYRQ.SGdJ40JmkRl
GNK3qDQHtN0vNCX5BVmzezvqWMrjYRCKAA1ScEqGXlzvpugJJx8UDzsSQm.y
aOUvzWjrNIsJIZTRT9Izuuw+E9TB9B7oJKcUYJVB4KR3EDY.3vOJzWroRuvc
qNk++65PyhXFTXCQdgn7aQ+tLgvp2BiTmhhjqkHWkFus.Ih10dFtPszMdcVW
LfhHPBEfuj3vwtpCF7hh7qa.va3kvYYmEogD.KETFHtOjkelnzBH5zw4hz50
eZYTVTMVZcdZw6PGxebcp+c2U8g9K6+XG+AyeK+R72N8t9Jd4WiV+hdlS4Px
wgpEroiW3a+wha+wVc+EC3oRZ+oxCG7bk19SEKDnA+bYs+bYBx.en7NXrB0P
mphtVt3C8oJ6fAHkC8opZ+oNjGW3393vn977p+BGpuOSpwu2nJHN+z+REk3i
djSMp5HrCp5.08iP5DQJuyz3ZYtABKhW8ZbQss0porB4LjsghpjquwJrYjMN
vd.yi4HySw8c6jPZ.1bRvUaaGTeu46vMGXI3tYiTD2CnYf4pn6QX+1MicPRP
Y9pfqtW.2OR.605TcTnFpHDMltHfF5h.SwKBgkTCp7v8Pb7HtNVMB99Q1coi
ZNHQQby8OTy0hURrt39GT+HAWbUPNAafrLIXtVLGE0Cw8PMF0+WEFNITTvGE
4fLFUquxe7HptDFzfjBx9ZhMWIfiB3fXyQbPL0UMqOreqBXOFvr7dawbT2aE
FeVXnvyI.WE8bITy2FKcTRnGmGP8bwnxJ.22WDvNpAUlGqMhi1szMOTatZ.O
6ANhxYWGjfKtUnGMV.ruuUfx8aP8F6nAbpOKAgdNl.6n6iMWUj2uGPdCSi8F
LM9Hrh33belZcTWjCUJRQpwMEXZ7IoQb8toWzxl3ApV.nUx3gLmTn.OvbD.m
K72z7wlLn4LK4wGWG2HePLZ.UKCfsFLCEZLR0BUyxnK5+u+bbVZRPM475jLy
5K86YE.Vy.WelYf16jt6nrcoxYMikyJh04SXcG+kA0+r.OeaQ1sd0xlw7XEZ
z1hnKHobORfNhFTQAEkpQ2D73ux+yqx9zyQ4Gs90fWHzh7uje.2qpS8R6qnT
ipfUJJwh2VZESlXPqLLgHfwBN.UPGwij1+vDDbaPBL.O9x4amR6ndtjMZ6Tz
3DClEJlNXOukSSpkHm050zso1TRFEiq5VsYn93kvYGC7MfoUj8qAK1jqtoQ9
E157q8Wdp1hLJ2I4Wks0bSjvPV27cF.by4pj0bN47zSRzP2FpYFgfZc8tBMh
qqQO9v40PttYSxVXSzP6eDttil.UZ1byl5nubfGOa4PZkIfNX8FEDYVNhZav
tjW1rjzn691uGKPgRIPnaBEnopGKPnfEiZ2GfjigoP8sIKXzy4VWV3WGcYgY
.x5If5SscblhY8NFd0q5.SkkrIub8YbPibHzcDn9Kj0+ckwIocdKc56F.5JJ
WB.7G1Pd6mWmDMGnWyww14sLPhUpTQBVK.RN3AaY9ad9s0Sp30e++UtFTdqb
GQ3jKdQo51FCHdYJ5Era0iaxEeld4qiCu9a4fJqHew3vAEz9UJr0B49TIgs6
yayOf3+pcFz3ClKmsoQ.Qnm.gl2XD3VKhYLdjbZYbqeL+2+WKdD6YKkHBAN+
+QPghBiI0XDw2aiEp3+ikQK5XsvTvPue.EOEvKCJvoY7peN0nWZoEssR6SuU
JDHRtDh7.nMYSPExZ0hsw4PfzQSnLo4IlnvQK3Ao4oYrvQqcSo4kLjzQKoeg
40rQgxVWbUnujfKtJH52dAWjDLu9kDNZE.JXdOILmmJbK43rVxwAALG2b9wM
AALW.P.NehCXNTj+7KLb4m+obKX42BVtsBVNzsGfbmxWCVN0wBVt1ySMDsdK
X4VvEefqdKX4sz.bzBfxaAKumAKGqAHB5sfk2gBNvLEBgbKX48OX4.lGS.L6
9VvxsdvxgJnPeMX2BV99SR0Z2vjesDrbWMRydez9uBBL00P3AuBBR6UPnx8+
Kr3J3ZitFt7N1sfk6yAKui7leDqARnZ+js5I1Tl07Kiy+lhiNzlYNxD2PqeO
.ULCtps5D1N2C.SWAYP3VF9MAXzy41cA7qi6B37Q8F2ZPuISeGNFoy.PMDW6
1g7tS+z2kqEaQVvGRC9RR5ye+GS+3lgz1rrU.JUvM0.sPVndd8udG6ye8mC1
Dmce1hs2WVnl+Pzxk45o1UuhM+gR.UPpXpVCahZz61KmsikAcUdMbjPTF2L3
5U2JaZk3Wl7ikmb2dzolA8IxZwgGJkG2TL+L8sIjcB.OlBbDrSz3llg6slUU
vn3dcw0MbfiIWd8rG6xPjiFsCi8Q0Mi8ZOfDb2j.BMFu+bSDWz7PMI7c9e3s
fz3QAoASFO32gqqDdoCDjlGxcq9w3lw1.r0CQSUADCdwHvSUHZP59KL.bMHn
cNq5a.ZL3obK7L+5H7LUVM1nCU+oh8X4B9AEqJ69sA+Tg6U6GG74jTXaXwK8
v2Bx88s3eEET1SaCxRBxdJNnrGTGmFTHZ+sBdU9aHeacvts46AhCVsq3yEu7
3ryq3nq8MuZRa8Q8Q2q4ykCFJs+JXvqNH0WJRHC2JrDPb0ZMgz3SuevR.2En
POl03jExASkzzfcYQos5kHmYnahiGuUnT0BklwoRpyEiAN2JwXP.WCAkrGpc
MJDL1JFCcFAqViDNePYnL9ddHGqjW.yChLKEtQJ5awfSuHLs+l1XqroOv2RM
qTROvQMNmScpvsRZUXEMOBqJ.dPoTpqKr1Mek29I234gyJ0.dntQC5xpAd44
GZuPE3GKy9TAOeQx5jzJ2bTRDWodei+K7ozqgVb1D6OKc0tEQfOEn6CGdVXK
gapTGHcprGov96cR6qpfMrVUYql95fR26MAiWc8KE97LWR6LW4jybwDfqFF5
823dGJtYh4QwMKTCsNDe19sy3yECO49bQgx2iJB8aetX1ov8nPvEoGxqC20m
KRq1wxlI6X0lYwz.dmmtoUeViCkLFDvw.Abk69bPnNGuc5OFuJCWndQ.95Qh
yc+myEbB9qCI0srrXLGPieB0OyctnsaKxXt14rgid38MDhQE.rDxkt6o58U.
t0L+jOC33JG3tfsADreJ9tMMtT98ML6VY0hIWdlo8sppgZQudDnaWuAYN7gs
TggDR1ypFwy0lEajY3nNnCqnSVbu1pBrDMtoe+H3mAj02LHWV7U+LFobvmN8
4fekZCPH2axA+AcSaSeo7fQf5XcyhywuosNyCme2Gf+CxqlUaVjFW7liWVj0
Mp1AdHR3jmgLXr16Z.G50oHyaY6yNOcetMUjiRP9LkkDjyYixhKMy3oj0w6Z
m0plbVKARjA3ldHDgixXqDVK+uBFq1D4bo05ILV6bVwzKzhBAO9.++HH17wa
ujv9PHyPhcAE4an3ZOlZD7jybUfia53QbUDTsrGWu2INrPchabFk1mXBZtDy
k.VSoCZAkb0EysYHnaJ.lCj.9c48Ac6DA7AHdimdzHUoqrCAyqEuOMlb0VKZ
WhmL4R7gfQwhp5QfbcIxOHc53o+zUAT66xPdsn14eB8mIY+w3Y3zRvbZlj38
1sPNIyqqyYQyTb6Bg.avkgWwI0CFol7r5IDN3igb9r5wDT0ocrjGM8WQRntJ
Lz2vpiik7cmzTXjvJYMUHVm2OdPVSo5PsHelTKBIOJG470px4DuX1Q7Rpq7D
oGHd0t8LnYpTnx20qykVgmWdIcr0clx3wPHYPXBpeWeIXD9Zq.SxkIv0xruq
fJLYjtvXBaxuvXsGqJ80TbMbgwi0hAY5WLBAiXusXb5hg.MCoRA3rlFH4tJf
yvmVsdUVbvhWReMFGrMY829oWRKtPURIXddHo3p+mt+y+EE6udzanH7bm7Vv
BE7dJd8xaBO9ep3JvO409Gy++AeXwSA3fOrbUALnjrYW.O+Q9kU6xBP4+ins
woE+4xY4+VNiMfD7gcOmjjUrB8G27353.J5snO5QQETz1t5oOzUJcKmR2caX
PCkSI8znB1dssL8gaUpQE5vqipnj0JuULC7VcmCUccvaaGRnmsj6kfYdeAp1
j191ckY5khqN1Fh+EDMLOzCa8A2lf71yvc8VIOCg2VcCRhOIonEU3h2uVgjX
MGHT3yHRL23tNCevPRrH2VQdwcZ.HnHTHdmNpjKpfN68oiPf27g6eJVEhW4F
Cxwb7PYIRAtjXH5zkRrejcwuYjwHPMev3ua9WBpfb3PBKo.Db53QDnVJzrgx
Q1cM0XbGt.AJFV6gRJKIFF.6qbnE8TNxtjF23kzA27tDJP.kqqeK99Q1kzLW
4D+RUNA2ySEgBGzaSRy3FVFev.4sdcRCc9UhmHkCojAOzMampjAJihiGQgqI
QAFHexH3HFo3vH6tdaLtgyFb+oq5DRNnaUWtZbaqakENAhxRXWJDKYsnb4H6
tpg60p1vHM8g+vslVQnEibjSDG9lz8mHxpsy63QS89vxb5wvNP.Zvse2P8wH
Ph8Epj6G4HMmfFYClQaTY4oJDgDnMw9QNBswTiCowBUSCowT8x3zAQZZhgQU
U49S0H6tcCatHIYvmNnPzBxQnzNUH1OxcHN7kRbPxVpnh8ibEcIXz3rgSnS2
wiFwfRtPyEJG4LKpnvKbQkCERRHVrejqnD8hOe.RGFcYNe7HtBJk.Z46rbjc
UvZ7Y9jAS1ZhQhH56Ec+H61OkT1ueDQjk9UvzolbHd+HGgzvxKjzzAqghI6G
4Jjl3RIsP80XP1OxUZPVikcZvMNd7HcnpzLA6GpJlnW6CGj6TUVsI0UeAGJd
Hr6bnwEtfhkPUOnT6GY2EMyOoe3QNUU6zPAn6rbjUoLy6SiX7vIM3DOETklb
49QNh3nvhlkxg6wPyCJGYWQUj80uPY0Omeu9Eq69q42MyvczfCgBWe3flPwV
WAi4wObvN+RA2cogPDz.BsbjcMgw7C73CUfjocP.5afLlX+HGoIwRFtJF3jf
paITSn12vSi8DhpFtmPfuO.xKUejccbW0Km7Fj.o1JZsSdD1T4jmwWwKdvN4
QYrZtKPARy9tKf6WCYdfmqAQPCtWLJnFQX86ECK6kFxgspo8XU2krzqgV2Zj
onOfq2qIfr+o9H6RZDyaQ0Dzvy+mRgPIzfLqOxxDG1bGCFb1hTEiZ3N8TB09
QVNxsg8akaXWxt.7ygRpQbRJw5DG07UtgGVZ8ZEjSiZRsbjkEKQ8yeU7krmC
BxfTuNZ8fLThbR8YO2fHtPdXsy3BknI5LNj464vC1EG88iH.nOqhTw1eOmwZ
KICNzW53lnHpZQQobjqjjVvZ7kkkVPc2DBmkWNxxTm4AXGMXe3JHmhvH.HhU
HNb+HKSbla8EhO78b.4.n9UnfuejkINy80AM3PWpIGNroauT5DrqqGgbFM7r
ORBY5odoKrV37pFAPqWHD9xxQti5FzHkTng.Jjd7nJJO7.evtTtozc3klEE5
NbT8QVkxLOQ5nWXnjzXGP8QNxULLVYIglxr98BYtWDBzktnoabQvgjjI3Lei
MViL7hE.t+NJjnYHx9QVlzLm1F9gF5S3I5iDE6GZ2XaNAG2WQMbnfx1eLA19
xjz9rvMvC8j5zB.TRh.irY12w19XGJ8RsCkqK1RZMrEa+HnBnqXDcdld0enf
I.+q61E8Z7xOkOOiWj8onrrzUO7RFThk0YB4z1midYc1mZqFiKK12BnC4HZp
0RR9tGWm7Pz5R9db59hDdespdz22aer0+qmTgwG8U2X0GWwSz+VKQ.TZsRtU
S5cUtwMBnCMWkwsTesMV70554gHao5h6txhGBYcLZKTCL.B1sMe8IlzDEyOC
E2xZeK8cil4D5tododYwa63F20t.vcZYq2HI+4UqieMNcmdW59Jc9tCeufRj
pZ7FpU2viJ+86dHW.dwuDu7Mxk85ojrMdyIefi9wIu0Ua1lFuKdS1dcLMukn
wcbW9NpGSWsLYSwD43OawqW8UVrnAHV9Qy9x2xlnsM8wyRRV+PTZAzA8..Fc
GVSxkai1r54nr3rUvjhfN7IW871zUPwie3Ei2Dk+XdZ2hzj0qO9oA+oWa5Os
L90UKh+xpkYOAvgGp9bn0ZNeLZFN+Kax+yEcYHn0MUBIeKC9bZxyAeK5ojjf
cwQoKdJHeoOeEZ299lyen+PntbxaaNTc5K.VVAlEC9v3TMjn+bxqwZccuOHZ
cVwYRYEqI+6uDktL+P8MYC.IerDOUpQvLgFzzoNZWd5Hl5qQ4yf7ceAKWsKK
Zyh313m7omehzIUpplPpCxO+GfFO1a3noQKW8xtAfhW1pIjA8FKpfL67ytfQ
pREsAbTwQJADdWngdGHvivNHvCG.UEM9efwg9LNyyZiuplA.jB5L5Dtz666D
enCHPalZ6DBnpeoTkO21INSadSplqdKlFwo76lbb6Bsx4QnUmUDD3J18VPau
K0AhYhypu7Bky2EZxRd7w0sZSJVYEbjSB00Lo0H8zL6A59vSLr0KFjeNmWDh
XFOhhzMtCu.Z4eb2WVkSIsxK6Pbhd4hSvc9x0N0buLr3+N+VtIFaFkXqrmRn
C0.V5DXyX2apNoMabEzJHDPUFwv3VBYqKtcsKaA+6acsaFfGastPIwC5V8c2
W25NlEbxj2W23fKKD3Nf4tbecqaUJnqttKiDh9ACBIxUsNkouCmlycgn0oDd
tRkyAK7rvom4FBUSfN8zbcfguaC1X1wIHbnF3JwdfAaL4Um10P8senAAV+P6
5.ivDalhCBgP0VtguVCwDal5nmDLH+VjTodbHma0j.1z6lAVEp6ieg9teFQa
Vl7bm2r2zydIDceUEt3dPt0YYucaS.kaEaBHDHJNjPkaXTPWMDu3rzjNEwDy
fHFbdCQpwmHeuYO05cwQky.yUpKKegObYbceyFTkk1.qE.Oj3By4UazoQMzv
VYNgyk4hHcRTx76dcLCOOWZT94GPOqB9kmbqQcoF7OzJKlLGmt.hmJ00dHin
y.ykoitO026SiFX88LH7hzgjCI8dquUVx56pzMLLz+s9VMCagwPs1Qfn8bEa
8sBOCLWnGiQXR+25aQns1.CBfG155rVeSDsxblozAjffdLqtN77Wqu4pYx5a
rF9KA6tuBr99286a0BQzbb7B4MYU4Uo42zY4raMWk48leGrKKJs05ViHl7br
Aq357AFpMVreVTK+lVYoyPmmOjnyaIeH8M5zRfVUCPTyig.4eXnqufTd8s11
g2QjYJBm3P.x1IbgWyZa+nKzbIyFBtGAvCh+Z7JEe8koM5NsDUe65duYwmyB
C9zaggnJzz7qRKLDSe.SwhPcE3fuZsvnD4MmE00BFXaAl50mCRPcvaoyDuUJ
z3jA95zFiSsqaBkZEfSGBkeajQIt5ckYkgHT2OLfKev+sx.hRDsceXlgBwBh
uNCt8PWOHQcpc44BP54CoAnfbeVPAsykoyEWVf030LXXm2o+9.G9uCGf99Ol
9wVuPWxzadmteWv.jkvkYxFbOksK8N8gomAlMy0WBx0fNBPCQ65Hvgy.WFJa
Endi8dcDEZHNiNBwzqHlCmy445HNWQGimgKDQq7UiyoNbzJ5T5cax5u8SknR
WvGV7TPxlfOjT9ynuVHNGf0h1eXWTfJ+mOEn5TDGymbQbXgfCdiSTROUOxOF
mO+h+mWsKKI8asxdmgRJBCJnwXna8onWm1YfmdC3jfvpDJpHe9BqAlqni3cL
GxsLOxJtyjtnL6T.2XMlYDxchzEsSEj6xUPtHq37nujj9rFKU+ScavEeF.5k
RVoD3kZT+yCONpvvf+OaVkA1Ef6AOe5OhRBAyTBE2EFfi.+6Dpm+5OGrIN69
rEaueW7lkA+Pzxko4KRAEgQ4d78XBO3G1ljlkexwIP5PsEfvQG0fYmE5PgFK
CXIFAxASSLF9809+NI521dTIlKiE3bl2GThz3hu9JsIsZy.cFvpUHx6PVCAQ
A5Ws5QDnoWQBDuXgzuTjTxWZUL1vPSzyjcExCSptJ64U+r+ZCpvs9xl3yTaV
qzNEQgNnWBpyWDTv4L7VYPyvsJ.tKoAtMeFtpMJ1VhihsUq5Bm9pkBbIiGBn
5Tn0i5RsV9SQCoos1lSu62ZJya3lCt2MRTrxNimFypKvrspgNRyaTM3Ns8dp
QWZSEcaypgNRKNbvcIuBOF36ExkBz9QVkxLWjjLNRjUzI0gnL1ERZLHPvB.J
jNYjt7YIPy4TZ6NMJw39SMYvxpUDCnWt9H6RZFqho3JbGFowQJnc2qK5O49Q
thv5HcxPEgZ+8gl2JlG7pVAboyKx+TPfTg2Oxt8OaiaM3pAupI3PCKlAJU.B
sbjiHPJwii1SN3v6wizWbglITNxtqnglR1E.m9vZ2uUhmPiuSPgxonXjUIMg
nW6CGDoUb8cEjFzJPDUUy2QifNWkHjuejcWQUFS1CtUvKEk1zfgNviTQ2OxU
HMwHQZrohzLVyZSLgdoYECPleEgRU1lzLVyZQCVIfLnUMPDTengjillCMjhd
QZCSECHBR.Xsnn0LUMxtt2p5Eogt.smZTeq9HGYulPMRVwnucriGoWQ0js0W
QEluhJtvUTJBUizJGYURiSM1aBxv8ArbeHSq8Dw2OxQHMA8hIMHgPzVoRscP
l3F64Ne3jFHBpaRvUDJx1qZLk4A9bvdJY4vaZrVRN1Io.t4DfatDvL12Lp2S
.gdNAHjtIAXrdHVnmS.TluS.D2j.L9TZlatGfZ74.LGUDxXS.YB2bEvbBf6l
D.2XBf5jDfxXBf5lD.y3ajlpbSQHiMkf4nmCf6EAfcuU.ouKBY9lXG8jXiCW
J0QOGvbi4bzShY8xiLGbSLoWdj4dD.y3rCP3ldjILVMJyMiJAW0KBv8DgDFa
JgxQsF0X+ATbO2bZkaFaTE1y0BQL1TBhiR.byug.puuD3l1SSLVOJwMskfXt
GMtoZHJpWq.9brEoC1VBbHUm+b.7lDB4Q2ICIbnhEC0k7D21YQAQYegOrRIf
7qC.unJNAQY8h6nGpmGN4I3koasNEAwRDY+PW4xcg6mdXBtUziDpdEICpawi
GRfdWOVDh2OzxDu4tf4lghSPl.gSKuFP60Z.1qseyMchgX9R.5BKbFATMtBb
39Q1kzH8plfFVdYBY.lPmpaH19Q1cuuwQvav98HkkmJIgFUkPg1OxtTF25Tl
.y.ZgdDkY8ZKw30LwfUUTUan5sZbnehb7HIFdQMWnXjc0xGZeML5JVap0vHn
8pz7FjFFchXJP.HGBlBWNxtRqlGh8AabgnbYhCV.hAcmkibjZ7RQFoJjMb+.
6tSi2q0rgYNObfGWp6CNp8irKoYbXlvCV4IQSZUXHPomHmLpRVkOMxpXy2Ex
tvRvWB.JU0w9bgybbHlboGGJw0KBeo0qmRyKPV4v0v.JUzMnUs9Ft0M7Da+C
y0mDL0Glim.Ogz.bwTSZbyyapAaAFCBhEzda4PApUNxtgdsWEt7vnLMsnKbY
c0L0YgKW8GJHR3ec2tnWiW9o7YR7hrOEkkkt5gWx.L1oNQlO6+bzKqy9TavH
TId974HfIb7q13a+w0IODstjuFmtGGf1ikQG8881Ga8+5IfHzQe0MBvPU7D8
u0q3.kVCdmzjdWnF1QMs48uXifEVKXrTiXeKWVYCSyfDV2.D1PHqiABrZ.Uk
FJDwMQwzyPwsr1eBm.0Im.fxdvHGHTrGyIZW.3Nsr0ajj+7p0wuFmtSuObOZ
Wc2guWJBLtBQfuWMvVJpiwU28PtH7heId4ajL64yIYa7lCejxU6i9wIu0Ua1
lFuKdS1dMIMusnwccW9tpGSWsLYSwD43OawqW8UVrvA8p8il8kukMQaa5imk
jr9gnzWWsa0CPCq5v5RtrazlUOGkEmsBlTDzgO4pm2ltBPIvCuX7ln7GyS6V
jlrd8wOM3O8ZS+okwutZQ7WVsL6InkYgpOGZE3wFQfGs.KicHTGkifauC5fA
JlOiu9mfh9yJh4xzrxPuGd88WDck.XnAi4WH5pgcELLxAa4OzJX3devJ7X8I
sJKqvy.iUaZD1GfFUCP27V4sSe25P2Ec8Dda2nZrLzlnZLVfb+d0w91NGGZ6
bcqib5MMf.lFPg9KLFE5wcoiyBwwEmRYZ+6hOC8APnO2pa36gNb6kZFv4crp
7vbcdQYYXd2VP.s4.LnalqUS.RH6JY5uaR.lK.4p0Zgumtg8XE.44D.O7Bu2
ebXUGmqZfabciR2rJX3SPFB4HohqqR.TOm.vyIAb659r208QFuq6Sn6KiTW3
59dNII6olHXr8usOw9lsQYCaXptsOAjfQkqBJBfv4LYeuqOCdJ2touecbSec
EfycAOG8sngzMhG38ffNie7JBbG6P1FzV7Mm63B2MaKbx4ZRvRZpNAE7RtlZ
54Z5pAEZmKtJW6b8ic4jGHREo71IYvcP3+sicbqsUPwz2YUk5v6FdkvaaUtc
5a43Rl9dIQdemAtvNxfOjrM3wzjW1t62i+3G+9sY0FTX0Rw7BFA1QmyMJGsI
I84p+RvGxozf+W+o+GwesLsH9v1zfODuK3i28O7a+teLYwKEACeWPzlkA+TN
WI+Qr66hdXUZvhmR1lF8c+X7teIKY6280Od2auujBWSWj7BXjDoE4.1Ln+BZ
9ZTnyQhzMhF+6Rsd8SaiS+b9p4ebQgM4CYQ6vRemW20LzhogSko.N6y3TO8l
G2EuNmlJtdwhroqSl7LzqzglrAgBWdlvmy.FZqdwfmdSjH5KLOT3+ooAFKrS
dZ.8YBLC47ce5y3lLlO49tfUx58EuYz2kym2EkFeD7gmy+AJ3CKeMfD7gEEo
bwu7PwK7K6fe8Tb4uxJ+4yOT7t18xqEuuswkexcqKFrbab4qsK.ceQZajTLZ
wS4+rYErFYDBFO8lgPHX3DNbMuo7PyP5wIb3YHqw06THfiUt7YbyPZyP.ieg
L+1WSaFl8ab5tQ04E52Y8iahrgXyKZdouS.Bem.bSzgh62osmv5k8rcyXIig
nZ2T523Suvt51WyO.FycTRPZNIv7cknMRsNAIP8eAodrJPukhUNWJV0VtHkd
TDfN519aA3AP8KUj5NmrJCSqBqyMBCxIq65LMkFc1y.K71lK51KJktXFvG0g
Kqghr0zBrcTYpU9N+Ft5tWVrHmG94WVu9aAYoQa187prr3kAKixZTV7PjZsW
ZwAQbjHgBtAGxMJw3FLyYazl3C4U2CIoKiSWjrNIUOcfjUSvz4sFt97n9EXI
6UFR1EGfB8hbLEvTbcgGEV+K9gGqMEQ2yUEyNx6gY6QSwzjW1rTmIemvif2z
wgJQyyN8boJN2YBMhQl02vYPuEKtAjFGRRghLFsZTWYApwS5PkIyZQem0LVI
BaygJnsH8NqFMJyZhQy5SosyOs4TJzX3CA.Bfrez3LsklLsOo8OXB2FvZTBD
TQdHd+nwYZGZjjMp2ba8DUVJjHA35pbznLsOoBBLrOmav7VvJ2RxD.19Pk6G
MkyaxkMsI5qB4nQBMf+KJQTLAcZ2uJnCc+J.aVZBrbz3rRvLSBp2yagTCNhP
liSQ6GMJy6S5Rgl0XpMXZGpJkKTPlLDB.+a4nQYZqLR83oDmAGghvkJZT.lb
EBIv6Ii.SspnPLZrVJLZyLs2alUBIv7gYOXVfhMVSakYRPzgNsw5osbb41gH
izyza6BjZLtFtE4PEd+nobZKG5zlBbaPMS4nwQ8nQFgg5uEuZX2FP2RJjctG
ORFB0KDogQ.7Hqo8xQSn1IY3EqcRbj1I8IDP56ffzn7zgjJ3JG.JYxnoE.aj
bYuIYUHuF9Nqj55m5nQ.DQo.YgxQSnhsSI7dqXiU+PE8HIflHJHTHmLBR8xJ
FCcrrkTZzwOpgHzBKLLMX0fT6GNNqSF4ygR1+ItdlVgDYvluxgiyD2LNNu+B
X0aQHZws5sHjKTWtY7a5Pm1jv5amIikG0Ril1x9G0kJcorJXbEzJcxPMN1Us
YXzzRwMxeoSZCvlrZH03XNnWBvAwxQiiPjz3oc+DhzVtnKwVwgQixzlgrzwb
vD0VGkwv1R1GSqMuGeoagYR2396dJtlXREYLdxIm1z5LqAuaR3.Dj51oCJYF
O6zMcdqF57V6VDb8DimaQbowxI39IfSj0TCVNbb0CZXbi3CMtQ5HOhG4HO9l
HYYTmOzDGQ0Q3ppysA0YjZrrB3DvtwvdNoQB3PyDRGcTPbubzHwuQFyu627F
hIMGoOfWsezTpP4zVzp4ZTp7nGcj+8vHFjb4BNd+nQhn31RJB1mVEBC.R0Oc
jntDFarhDLwnEJRuUDQ.RhvgjYWeI+GMR22UHb4o8ckKzAKiB6jp2A2dblbF
sgVJmmImQpIkDWmygm7ImYaingW11HL6vnIbZyF3rlJzWVnX+nwQQrYmli6e
bkga0TgqPlfpQSWzv4CMX3ZID3dd3imDhQr5dOokr5AOQR2OZbttDyrRs+W7
fr7zWkNYipMZb30FogC2ekHx5gpp9nozDB1f08wqJYvpQiyz1n8ijdeRLmWN
QwbHEgfLuobzTlhPpglhPfrsNuIHilrM0HYaZu0jnSJHcBYIYgsmPVEuP9u9
+CKiertA
———–end_max5_patcher———–
</code></pre>
Extracting datastreams from Yahoo (processing code)
import controlP5.*;
ControlP5 controlP5;
import oscP5.*;
import netP5.*;
OscP5 oscP5;
NetAddress myRemoteLocation;
String textValue = “”;
Textfield myTextfield;
int ballSizeTarget;
int ballNumbers;
int numBalls = 12;
float spring = 0.05;
float gravity = 0.03;
float friction = -0.9;
Ball[] balls = new Ball[numBalls];
boolean display;
PFont font =createFont(“Arial-Bold”,12);
void setup(){
size(600,400);
frameRate(25);
controlP5 = new ControlP5(this);
myTextfield = controlP5.addTextfield(“”,10,height-30,width-20,20);
myTextfield.setFocus(true);
// int n = numberSearchYahoo(“processing”);
// println(n);
noStroke();
smooth();
textFont(font);
//talking to max/msp
oscP5 = new OscP5(this,7401);
myRemoteLocation = new NetAddress(“10.0.1.125″,7401);
}
void draw() {
background(0);
if (display) {
for (int i = 0; i < balls.length; i++) {
balls[i].collide();
balls[i].move();
balls[i].display();
}
}
fill(200);
text(ballSizeTarget+” items found!”, 10, height-40);
}
void initiateVisualization(int _num) {
display =true;
numBalls = _num;
if (numBalls<=1) {
numBalls =1;
balls = new Ball[numBalls];
balls[0] = new Ball(random(width), random(-height,0), 10, 0, balls);
} else {
balls = new Ball[numBalls];
for (int i = 0; i < numBalls; i++) {
balls[i] = new Ball(random(width), random(-height,0), random(20, 40), i, balls);
}
}
}
void send (int _sendNum) {
OscMessage talkMessage = new OscMessage(“T “+_sendNum);
oscP5.send(talkMessage, myRemoteLocation);
println(“Sent: “+_sendNum);
}
void controlEvent(ControlEvent theEvent) {
println(“controlEvent: accessing a string from controller ‘”+theEvent.controller().name()+”‘: “+theEvent.controller().stringValue());
background(0);
text(“In searching…”, 20, height-50);
ballSizeTarget = numberSearchYahoo(theEvent.controller().stringValue());
println (ballSizeTarget+” items found!”);
send(ballSizeTarget);
ballNumbers = min((int)map(ballSizeTarget,0,1000000000,0,300),300);
if (ballSizeTarget!=0)initiateVisualization(ballNumbers);
}
int numberSearchYahoo(String _query) {
String QUERY = “http://search.yahoo.com/search?p=”+_query;
String[] results = null;
int newNumber=0;
try
{
URL url= new URL(QUERY);
URLConnection connection = url.openConnection();
// Google rejects pure API requests, so we change the header of the request
// to make it believe it is requested by a real browser… ![]()
connection.setRequestProperty(“User-Agent”,
“I am a real browser like Mozilla or MSIE” );
results = loadStrings(connection.getInputStream());
}
catch (Exception e) // MalformedURL, IO
{
e.printStackTrace();
}
if (results != null)
{
//println(results[0]);
//println(results[1]);
String originalText = (String)results[1];
//println(originalText);
int start = originalText.indexOf(“resultCount”);
int end = originalText.indexOf(“</strong> results for</span><br>”);
String nnn = originalText.substring(start+13,end);
//println(start+” “+end);
//println(nnn);
//int fff=Integer.parseInt(nnn);
String newString =”";
for (int i=0; i<nnn.length();i++) {
char temChar =nnn.charAt(i);
if (temChar!= ‘,’) newString += temChar;
}
newNumber = int(newString);
//println(newNumber);
//println(results[2]);
}
return newNumber;
}
About this entry
You’re currently reading “Final project,” an entry on Abirchopra's Blog
- Published:
- April 27, 2010 / 5:37 am
- Category:
- final
- Tags:




No comments yet
Jump to comment form | comment rss [?] | trackback uri [?]