Assignment 2 – Will Walters

For this assignment, my first was to filter video feedback through a convolutional matrix which could be altered by the user, allowing for variable effects, such as edge detection, blurring, and embossing, to be fed back on themselves. However, using common kernels for this system with the jit.convolve object yielded transformations too subtle to be fed back without being lost in noise. (The system I built for doing this is still in this patch, off to the right.)

My second attempt was to abandon user-defined transforms and instead utilize Max’s built-in implementation of the Sobel edge detection kernel to create the transform. However, applying the convolution to the feedback itself led to the edge detection being run on itself, causing values in the video to explode. This was solved by applying the edge detection on the input itself, and then adding the camera footage before the final output. (It looks maybe cooler without the original image added, depending on the light, so I included both outputs in the final patch.)

<pre><code>
----------begin_max5_patcher----------
2071.3oc2bs2abhCD+uSktuCVnJcOZZD9I3S5N06yQUUEKqSBsrvd.aRZqtu
6G1CaVxlEhMwfRpp5RLgEl4mm2yP9wu7lyBVUdmpN.8mnOhN6rezdlyLmSel
y1ehyB1jbWZdRs4BC9RVyEauMqXc4sAm2cAk6ZxUMMeaqBtWAAm29ezm1+6K
1sIqn8JL2A79ytMoI85rhq9bkJsA9hDF4hvyQBlTefRh0GHj1Sd3lks1PGkq
9x6wXbPumAPFlGBwb1+6Wdi9X6gysl+JT21dqu+11ntyPaAUnzjMivwCvsgi
vsBASyebtgMYg.y1mWqa9Vt4IDDbR1Ob.1G6c1WusqtaaE5ClOyJ9X3mdW6m
3OMLlz9c97ljlpr6FSdfLBBwhADRZNfm.DEJWLIDMDUWtRk+bQjwzPXRP0PF
Y.Fr6.Baw.jZUwZzpxlqCblM4TXiGaTMDTWYS4Pa6gSlK0auop77U4koe896
9kkEMWljpdft9i12yypaL63m+Hai5aPc12MWIVa8aTcD8UWjrAX7+oJK4fv1
IPQLUZzXnBtQ+ADZh3CXNMN99aVZYt4ASOMJx1e5pxagqy6BO+6FUSUIhf9P
RZS1MJDdX0pUIEWMEyK3vHiXFQX.FLl6pbFW5cKvoka1nJZdLh7MTZYY0Z2U
lZECD.iArIGLiFZOaxndWcZP17tmKahk3K3ShMoxkiMuIIem5YvjB7D2Kobu
yjs2mUppwCGbLczwYXFtmvK24P.nCI61yxPUqI0FU0mUEIqfa0KavnSD2cvf
D+SHX.pBS.LDKLXLfqtsIoeEEp+m64WPGCf5RmhPM90DBmAHh28tsQUWmbk5
TAK1nitB8VB5sTTq0QzawtCGi5smDB4SBN8wXmipjfWz7sRKKtoL+F0blgEN
jXPCJ2HiD4dFV9OehYsDCXhzvorHHXOoQEAGGMPPwQKZ9ivlIBitLuLogRPT
DcNSmDiiDPoV.Xf3bDvjWWa+BlwyofQgDin5UDsNvoSIR7Zt.SbLvdPdetW8
jXxKf5K8GgWHl0ZLEAkeKpKXBhynj+KB4fYMrVkm7MTS1FE52tTGaR8u6dND
xPiNOSLwLHhjupxfHl0iccOJwnnWFQI9NDsWUsdDBk0JtLAo+3tnffRevbtd
hQzEyDQ1kn2lgQ+8e0Foby0pByJUdsB09XI5U92cQDT.MbDEhRvY7QrbNPdO
hF5e4iPS3gPTRT2Ye9hIdz5+rbWOaldwCZTKypSzF7P3L2ubJGMnLT1369mO
pPvnZAsa7D9dSnDIDyjC3.Y47PZRhjfpTISnDhwhtvfMrHT0bW7LJv92y3PM
W4Hwcq4QZDzAIHYXnSqNUx6nEiGmgPh63dLYhgDyE9WkdFi8oicIb4zB9gyd
YD7iQVWU054+ICBpWa1FwbG2BPCar8Csf1IPaHycrIiKq10zTVLsNfYg7ANB
x5gs+SqYU7B5ga0Xd3LHvzcwIvfkenhoTmUTXxE1E2spesRgtsJqokQZyWto
zcWA5APQ2or17A0GHlRi3TeAi8tuf4RRuaTRvPsvcWRmIVLI8um2F9xUSKYF
xnkCBDqwl8Y288w7eXbC1Nf1691cMckC02cBPHgjdgAuR5be.XgupBBnKGtt
nZmPGT+Ipog6syGxlHVrv8LbPEjrh0pYPy.x2kPfVp5bGCojELe+GLZY9of4
PENvfPh6UCitbCjY8CxMx9AqqKZVSXeL26.pbwR96P6vpUMsdqBQLT50IUHA
q8GiCmy1hw6lKrtYsIJ1YbhuXk8aIFTNpIa433INkbxkaLBRyKqU90l39VDG
ByRoyELId439xspBOy7gxCa8T2q.p2484c3.5FXFRWQhLN.zE8+jMGltniFv
UUIql0QA.3cL7RI3dwtssKnv8KHOq3Qu5IFpR+KNBipK2UktmS22xUTOJasp
tMM3jlr1LGObUlWOj9WVY0513JGeGxZZv7pE7zDgdBBzWkOdh522CKXaCgg8
xizRf9Xn3dfF6EflYEPi8FPaGWKGhoC8.InCfvRd1S6zD61oYy3Nskz.aFwc
pUpX5Jgnw88W0lr0aKyJZp2GjcnofZvHkzekW1prBkzuLGymzo06S3YRTgXk
JJwalD3xk84QDV8772CTOl7V9.I9gCis9A5GKbDqjZI9yMhUhLGIGejkDln2
qxBle3EawO17e9DHMDOmTnd3qdZRTOkIiXNNlyOzHuXx8K7CEZkdCKbTTLtq
raPAYhBOrxKzndHj5iOmlFOlSNhFkht1CA0Bf2MbDmZUG2DF4S5+4hwQR4rh
wVEvFMdb4.XfcwXPTs2J+PiVIqJHiiiTxg5fD0FaSDGV4GRjXsB+HjXGUE2G
F8lFufXi1DULNIxgQpBluPAz5UouLaJd9F1I334zvN2JRj+DNeh6nQSb18W4
GZzp7N4Q1PijXZOZzrxOznU5KGyICPiTSzF8W4GZzpX04DqnQRXebj3K4Qlz
579FlF6Tiwwgve0JflIcxUX48Wo+n+m1nzSP+TBjoJC9qt.TPvGtJVb7J+P+
BOf+LIsed2cXr2x6lYWBDi6apipHwF.jGSuekenwPOPi6CNZlnQpU4cHDVEp
DGBmCBtyrxOzncxiRqrGvX8bxaV4GZzGxicZxy0dM1JenQ9qF4VEE9nHx9Xc
hk8i7IVdwbUMM6JkkzFhlf6LOe+BKp+VWGYR1t8FUUc2iEH2fMIeoz7khNGV
mU.qgW77fJ0MY6+JveUXBRpRuNqQk1rqB5VzchtoHNXSYKITrKaOUXng1O9e
.8f5j6B
-----------end_max5_patcher-----------
</code></pre>
view raw gistfile1.txt hosted with ❤ by GitHub