You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

652 lines
45 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Pushing the Score</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<body style="background-color: #e6ffe6;">
</head>
<body>
<div id="header"><h1>
This experiment analyses and measures data from peoples motion and explores how we humans become an extension of technology, adapting ourselves to immaterial environments by seeking information-control, performing sounds.
</h1></div>
<div id="container">
<h2><div class="mobile icon"></div></h2>
<h2><div class="laptop icon"></div></h2>
<h2><div class="tablet icon"></div></h2>
<div id="title">
<h2>PUSHING THE SCORE</h2>
</div>
<div id="buttons"><h2>
<a href="#concept">CONCEPT ⟶</a>
<br>
<a href="#body">BODY ⟶</a>
<br>
<a href="#samples">SAMPLES ⟶</a>
<br></h2>
</div>
<div id="links">
<h2>TGC #3 @DePlayer @XPUB</h2>
</div>
<div id="rotate"><h2>
www.issue.xpub.nl/02/ www.deplayer.nl/
</h2></div>
<!-- Labels -->
<h2><div id="concept"><table>
<td>CONCEPT</td>
</table></div></h2>
<h2><div id="body"><table>
<td>BODY</td>
</table></div></h2>
<h2><div id="samples"><table>
<td>SAMPLES</td>
</table></div></h2>
</div>
<!-- svg file -->
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1280 3193" style="enable-background:new 0 0 1280 3193;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:none;}
.st2{font-family:'Times-Roman';}
.st3{font-size:19px;}
.st4{letter-spacing:54;}
.st5{fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10;}
.st6{fill:none;stroke:#000000;stroke-miterlimit:10;}
.st7{font-family:'TimesNewRomanPSMT';}
.st8{letter-spacing:81;}
.st9{font-family:'Courier';}
.st10{letter-spacing:74;}
.st11{font-size:18px;}
.st12{font-size:13.8376px;}
.st13{font-size:7.8111px;}
.st14{font-size:10.4208px;}
.st15{font-size:14.3056px;}
.st16{letter-spacing:2;}
.st17{fill:none;stroke:#000000;stroke-width:1.0721;stroke-linecap:round;stroke-miterlimit:10;}
.st18{fill:none;stroke:#000000;stroke-width:2.3848;stroke-miterlimit:10;}
.st19{fill:none;stroke:#000000;stroke-width:1.7105;stroke-miterlimit:10;}
.st20{fill:none;stroke:#00FF00;stroke-width:1.5909;stroke-miterlimit:10;}
.st21{fill:#292929;stroke:#FFFFFF;stroke-width:1.202;stroke-miterlimit:10;}
.st22{fill:#292929;stroke:#FFFFFF;stroke-width:0.7508;stroke-miterlimit:10;}
.st23{fill:#979696;}
.st24{font-family:'Interval-Book';}
.st25{font-size:10px;}
.st26{fill:#FFFFFF;stroke:#000000;stroke-width:1.8568;stroke-miterlimit:10;}
.st27{fill:#FFFFFF;stroke:#000000;stroke-width:1.9441;stroke-miterlimit:10;}
.st28{fill:#FFFFFF;stroke:#000000;stroke-width:1.9885;stroke-miterlimit:10;}
.st29{fill:#FFFFFF;stroke:#000000;stroke-width:2.0896;stroke-miterlimit:10;}
.st30{fill:#FFFFFF;stroke:#000000;stroke-width:2.2897;stroke-miterlimit:10;}
.st31{fill:none;stroke:#000000;stroke-width:2.4707;stroke-miterlimit:10;}
</style>
<g id="Layer_1">
<image style="overflow:visible;" width="600" height="304" xlink:href="edited/11.jpg" transform="matrix(0.3943 0 0 0.3943 326.0681 1692.0435)">
</image>
<rect y="2036.5" class="st0" width="640" height="1156.5"/>
<image style="overflow:visible;" width="606" height="378" xlink:href="3.gif" transform="matrix(0.6491 0 0 0.6491 187.8319 2322.4502)">
</image>
<image style="overflow:visible;" width="1280" height="851" xlink:href="noise.gif" transform="matrix(1 0 0 1 0 -425.5)">
</image>
<image style="overflow:visible;" width="711" height="720" xlink:href="floppy-final2.png" transform="matrix(0.7066 0 0 0.7066 695.9426 574.8033)">
</image>
<rect x="50.6" y="575.8" class="st1" width="547.5" height="524.1"/>
<text transform="matrix(1 0 0 1 50.6133 588.7969)"><tspan x="0" y="0" class="st2 st3">Technology is providing us new ways to shape our perception of space, </tspan><tspan x="0" y="23" class="st2 st3">while at the same time it is transforming our bodies into gadgets. This </tspan><tspan x="0" y="46" class="st2 st3">is not only changing our spatial awareness but its also extending our </tspan><tspan x="0" y="69" class="st2 st3">senses beyond given nature. Moreover, control systems that regulate </tspan><tspan x="0" y="92" class="st2 st3">and command specific behaviours can be very practical tools to </tspan><tspan x="0" y="115" class="st2 st3">improve physical functionalities or translate its data. For instance, this </tspan><tspan x="0" y="138" class="st2 st3">experiment employs “Optical Flow” sensor which detects motion from </tspan><tspan x="0" y="161" class="st2 st3">image objects between frames, and “Open Sound Control (OSC)” </tspan><tspan x="0" y="184" class="st2 st3">which enables to exchange and format data from different devices, for </tspan><tspan x="0" y="207" class="st2 st3">instance, from Python to Puredata.</tspan><tspan x="0" y="230" class="st2 st3 st4"> </tspan><tspan x="58.9" y="230" class="st2 st3">Although the unique possibilities to improving human physical </tspan><tspan x="0" y="253" class="st2 st3">or cognitive limitations by plugging a body to an electronic or </tspan><tspan x="0" y="276" class="st2 st3">mechanical device are yet very hypothetical and might extend beyond </tspan><tspan x="0" y="299" class="st2 st3">our imagination, nevertheless technology is continuously transforming </tspan><tspan x="0" y="322" class="st2 st3">the abstract or fictional conception of “cybernetics” to a more realistic </tspan><tspan x="0" y="345" class="st2 st3">evidence. The communication between both automated and living </tspan><tspan x="0" y="368" class="st2 st3">systems is continuously evolving, upgrading and rising up more </tspan><tspan x="0" y="391" class="st2 st3">sophisticated engineered tools that might enable us to increase our </tspan><tspan x="0" y="414" class="st2 st3">knowledge, morphing our perception through deeper experiences.</tspan><tspan x="0" y="437" class="st2 st3 st4"> </tspan><tspan x="58.9" y="437" class="st2 st3">In this experiment, the potential for controlling data through </tspan><tspan x="0" y="460" class="st2 st3">motion on space while becoming independent of physicality, opens up </tspan><tspan x="0" y="483" class="st2 st3">new creative and pragmatic alternatives for facing both technological </tspan><tspan x="0" y="506" class="st2 st3">and communication constraints.</tspan></text>
<line class="st5" x1="41.6" y1="425.4" x2="1238.4" y2="425.4"/>
<line class="st6" x1="667.1" y1="1762" x2="1256.4" y2="1762"/>
<line class="st6" x1="31.4" y1="2036.5" x2="620.7" y2="2036.5"/>
<line class="st6" x1="29.7" y1="1134.6" x2="619" y2="1134.6"/>
<rect x="696.9" y="1333.4" class="st1" width="547.5" height="384.6"/>
<text transform="matrix(1 0 0 1 696.9243 1346.5609)"><tspan x="0" y="0" class="st7 st3">This body analyses human motion on space and detects it using </tspan><tspan x="0" y="23" class="st7 st3">“Opitcal Flow” in “Python”, using a series of predesigned </tspan><tspan x="0" y="46" class="st7 st3">multidirectional interpreters. These interpreters are made up of a </tspan><tspan x="0" y="69" class="st7 st3">series of points (intersections), forming a grid which intersects with </tspan><tspan x="0" y="92" class="st7 st3">movement. This is detected in form of numeric values, which are </tspan><tspan x="0" y="115" class="st7 st3">automatically transmitted and formatted to a graphic array in Puredata. </tspan><tspan x="0" y="138" class="st7 st3 st8"> </tspan><tspan x="86.1" y="138" class="st7 st3">This array arrange these values and generates a polygonal </tspan><tspan x="0" y="161" class="st7 st3">waveform based on these received coordinates (which numbers ranges </tspan><tspan x="0" y="184" class="st7 st3">between &quot;x&quot;, having values from 0 to 10, and &quot;y&quot; from -1 to 1). This </tspan><tspan x="0" y="207" class="st7 st3">activates an “oscillator” object which defines the frequency of the tone, </tspan><tspan x="0" y="230" class="st7 st3">together with “metro” object, which time spans its duration in </tspan><tspan x="0" y="253" class="st7 st3">miliseconds, consequently iterating the audio (re-writting it in the </tspan><tspan x="0" y="276" class="st7 st3">display).</tspan><tspan x="0" y="299" class="st9 st3 st10"> </tspan><tspan x="86.1" y="299" class="st9 st11" style="text-decoration: underline;">The intersections and the graphic array </tspan><tspan x="0" y="322" class="st9 st11" style="text-decoration: underline;">(together with the entire Puredata patch) become </tspan><tspan x="0" y="345" class="st9 st11" style="text-decoration: underline;">an interactive notation system, while people </tspan><tspan x="0" y="368" class="st9 st11" style="text-decoration: underline;">become the instrument/tool that triggers it</tspan><tspan x="464.5" y="368" class="st9 st11">. </tspan></text>
<text transform="matrix(1 0 1.000000e-05 1 723.7227 1107.457)" class="st7 st12">X / Y INTERSECTIONS</text>
<g>
<text transform="matrix(1 0 0 1 1012.4771 1254.7754)"><tspan x="0" y="0" class="st9 st13">5 PUREDATA EXTENDED</tspan><tspan x="0" y="9.4" class="st9 st13">6 OSC MSG RECEIVE</tspan><tspan x="0" y="18.7" class="st9 st13">7 GRAPHIC ARRAY</tspan><tspan x="0" y="28.1" class="st9 st13">8 OSC / METRO</tspan><tspan x="0" y="37.5" class="st9 st13"> </tspan></text>
</g>
<g>
<text transform="matrix(1 0 0 1 908.5388 1233.2344)"><tspan x="0" y="0" class="st9 st14">SYSTEM;</tspan><tspan x="0" y="21.9" class="st9 st13">1 PYTHON</tspan><tspan x="0" y="31.3" class="st9 st13">2 OPTICAL FLOW</tspan><tspan x="0" y="40.6" class="st9 st13">2 INTERSECTIONS</tspan><tspan x="0" y="50" class="st9 st13">3 OSC MSG SEND</tspan></text>
</g>
<rect x="703.3" y="575.8" class="st5" width="490.9" height="717.6"/>
<text transform="matrix(1 0 0 1 1064.6499 1140.2852)"><tspan x="0" y="0" class="st7 st15">Y range</tspan><tspan x="45.7" y="0" class="st7 st15 st16"> </tspan><tspan x="51.5" y="0" class="st7 st15">= -1 to 1</tspan></text>
<text transform="matrix(1 0 0 1 1063.5178 1114.0996)"><tspan x="0" y="0" class="st7 st15">X range</tspan><tspan x="45.7" y="0" class="st7 st15 st16"> </tspan><tspan x="51.5" y="0" class="st7 st15">= 0 to 10</tspan></text>
<text transform="matrix(1 0 0 1 1064.6499 1174.5107)" class="st7 st15">Waveform</text>
<g>
<polyline class="st17" points="912.4,1173.5 918.5,1164.6 924.3,1173.5 "/>
<polyline class="st17" points="924.3,1173.5 930.6,1164.6 936.2,1173.5 "/>
<polyline class="st17" points="936.5,1173.5 942.6,1164.6 948.4,1173.5 "/>
<polyline class="st17" points="948.4,1173.5 954.7,1164.6 960.3,1173.5 "/>
<polyline class="st17" points="960.4,1173.5 966.7,1164.6 972.3,1173.5 "/>
<polyline class="st17" points="972.7,1173.5 978.7,1164.6 984.5,1173.5 "/>
<polyline class="st17" points="984.5,1173.5 990.8,1164.6 996.4,1173.5 "/>
<polyline class="st17" points="996.6,1173.5 1002.8,1164.6 1008.5,1173.5 "/>
<polyline class="st17" points="1008.8,1173.5 1014.9,1164.6 1020.7,1173.5 "/>
<polyline class="st17" points="1020.7,1173.5 1026.9,1164.6 1032.5,1173.5 "/>
</g>
<line class="st18" x1="1177.5" y1="1196.7" x2="911.9" y2="1196.7"/>
<g>
<line class="st19" x1="914.7" y1="1110.7" x2="914.7" y2="1114.1"/>
<line class="st19" x1="916.5" y1="1112.4" x2="912.9" y2="1112.4"/>
</g>
<g>
<line class="st19" x1="926.6" y1="1110.7" x2="926.6" y2="1114.1"/>
<line class="st19" x1="928.4" y1="1112.4" x2="924.8" y2="1112.4"/>
</g>
<g>
<line class="st19" x1="938.5" y1="1110.7" x2="938.5" y2="1114.1"/>
<line class="st19" x1="940.3" y1="1112.4" x2="936.7" y2="1112.4"/>
</g>
<g>
<line class="st19" x1="949.7" y1="1110.7" x2="949.7" y2="1114.1"/>
<line class="st19" x1="951.5" y1="1112.4" x2="947.9" y2="1112.4"/>
</g>
<g>
<line class="st19" x1="960.5" y1="1110.7" x2="960.5" y2="1114.1"/>
<line class="st19" x1="962.3" y1="1112.4" x2="958.7" y2="1112.4"/>
</g>
<g>
<line class="st19" x1="972.2" y1="1110.7" x2="972.2" y2="1114.1"/>
<line class="st19" x1="974" y1="1112.4" x2="970.5" y2="1112.4"/>
</g>
<g>
<line class="st19" x1="983.8" y1="1110.7" x2="983.8" y2="1114.1"/>
<line class="st19" x1="985.6" y1="1112.4" x2="982" y2="1112.4"/>
</g>
<g>
<line class="st19" x1="996.2" y1="1110.7" x2="996.2" y2="1114.1"/>
<line class="st19" x1="998" y1="1112.4" x2="994.4" y2="1112.4"/>
</g>
<g>
<line class="st19" x1="1007" y1="1110.7" x2="1007" y2="1114.1"/>
<line class="st19" x1="1008.8" y1="1112.4" x2="1005.2" y2="1112.4"/>
</g>
<g>
<line class="st19" x1="1018" y1="1110.7" x2="1018" y2="1114.1"/>
<line class="st19" x1="1019.8" y1="1112.4" x2="1016.2" y2="1112.4"/>
</g>
<g>
<line class="st19" x1="1029.9" y1="1110.7" x2="1029.9" y2="1114.1"/>
<line class="st19" x1="1031.7" y1="1112.4" x2="1028.1" y2="1112.4"/>
</g>
<g>
<line class="st19" x1="914.7" y1="1136.9" x2="914.7" y2="1140.3"/>
<line class="st19" x1="916.5" y1="1138.6" x2="912.9" y2="1138.6"/>
</g>
<g>
<line class="st19" x1="926.6" y1="1136.9" x2="926.6" y2="1140.3"/>
<line class="st19" x1="928.4" y1="1138.6" x2="924.8" y2="1138.6"/>
</g>
<g>
<line class="st19" x1="938.5" y1="1136.9" x2="938.5" y2="1140.3"/>
<line class="st19" x1="940.3" y1="1138.6" x2="936.7" y2="1138.6"/>
</g>
<g>
<line class="st19" x1="949.7" y1="1136.9" x2="949.7" y2="1140.3"/>
<line class="st19" x1="951.5" y1="1138.6" x2="947.9" y2="1138.6"/>
</g>
<g>
<line class="st19" x1="960.5" y1="1136.9" x2="960.5" y2="1140.3"/>
<line class="st19" x1="962.3" y1="1138.6" x2="958.7" y2="1138.6"/>
</g>
<g>
<line class="st19" x1="972.2" y1="1136.9" x2="972.2" y2="1140.3"/>
<line class="st19" x1="974" y1="1138.6" x2="970.5" y2="1138.6"/>
</g>
<g>
<line class="st19" x1="983.8" y1="1136.9" x2="983.8" y2="1140.3"/>
<line class="st19" x1="985.6" y1="1138.6" x2="982" y2="1138.6"/>
</g>
<g>
<line class="st19" x1="996.2" y1="1136.9" x2="996.2" y2="1140.3"/>
<line class="st19" x1="998" y1="1138.6" x2="994.4" y2="1138.6"/>
</g>
<g>
<line class="st19" x1="1007" y1="1136.9" x2="1007" y2="1140.3"/>
<line class="st19" x1="1008.8" y1="1138.6" x2="1005.2" y2="1138.6"/>
</g>
<g>
<line class="st19" x1="1018" y1="1136.9" x2="1018" y2="1140.3"/>
<line class="st19" x1="1019.8" y1="1138.6" x2="1016.2" y2="1138.6"/>
</g>
<g>
<line class="st19" x1="1029.9" y1="1136.9" x2="1029.9" y2="1140.3"/>
<line class="st19" x1="1031.7" y1="1138.6" x2="1028.1" y2="1138.6"/>
</g>
<g>
<g>
<g>
<line class="st20" x1="773.5" y1="842.4" x2="773.5" y2="845.5"/>
<line class="st20" x1="775.1" y1="843.9" x2="771.8" y2="843.9"/>
<line class="st20" x1="808.3" y1="842.4" x2="808.2" y2="845.5"/>
<line class="st20" x1="809.9" y1="843.9" x2="806.6" y2="843.9"/>
<line class="st20" x1="843.1" y1="842.4" x2="843" y2="845.5"/>
<line class="st20" x1="844.7" y1="843.9" x2="841.4" y2="843.9"/>
<line class="st20" x1="877.9" y1="842.4" x2="877.8" y2="845.5"/>
<line class="st20" x1="879.5" y1="843.9" x2="876.2" y2="843.9"/>
</g>
<g>
<line class="st20" x1="912.7" y1="842.4" x2="912.6" y2="845.5"/>
<line class="st20" x1="914.3" y1="843.9" x2="911" y2="843.9"/>
<line class="st20" x1="947.5" y1="842.4" x2="947.4" y2="845.5"/>
<line class="st20" x1="949.1" y1="843.9" x2="945.8" y2="843.9"/>
<line class="st20" x1="982.3" y1="842.4" x2="982.2" y2="845.5"/>
<line class="st20" x1="983.9" y1="843.9" x2="980.6" y2="843.9"/>
<line class="st20" x1="1017" y1="842.4" x2="1017" y2="845.5"/>
<line class="st20" x1="1018.7" y1="843.9" x2="1015.4" y2="843.9"/>
</g>
<line class="st20" x1="1051.8" y1="842.4" x2="1051.8" y2="845.5"/>
<line class="st20" x1="1053.5" y1="843.9" x2="1050.2" y2="843.9"/>
<line class="st20" x1="1086.6" y1="842.4" x2="1086.6" y2="845.5"/>
<line class="st20" x1="1088.3" y1="843.9" x2="1085" y2="843.9"/>
<line class="st20" x1="1121.4" y1="842.4" x2="1121.4" y2="845.5"/>
<line class="st20" x1="1123.1" y1="843.9" x2="1119.8" y2="843.9"/>
</g>
<g>
<g>
<line class="st20" x1="773.1" y1="875.1" x2="773.1" y2="878.2"/>
<line class="st20" x1="774.7" y1="876.7" x2="771.4" y2="876.7"/>
<line class="st20" x1="807.9" y1="875.1" x2="807.9" y2="878.2"/>
<line class="st20" x1="809.5" y1="876.7" x2="806.2" y2="876.7"/>
<line class="st20" x1="842.7" y1="875.1" x2="842.6" y2="878.2"/>
<line class="st20" x1="844.3" y1="876.7" x2="841" y2="876.7"/>
<line class="st20" x1="877.5" y1="875.1" x2="877.4" y2="878.2"/>
<line class="st20" x1="879.1" y1="876.7" x2="875.8" y2="876.7"/>
</g>
<g>
<line class="st20" x1="912.3" y1="875.1" x2="912.2" y2="878.2"/>
<line class="st20" x1="913.9" y1="876.7" x2="910.6" y2="876.7"/>
<line class="st20" x1="947.1" y1="875.1" x2="947" y2="878.2"/>
<line class="st20" x1="948.7" y1="876.7" x2="945.4" y2="876.7"/>
<line class="st20" x1="981.9" y1="875.1" x2="981.8" y2="878.2"/>
<line class="st20" x1="983.5" y1="876.7" x2="980.2" y2="876.7"/>
<line class="st20" x1="1016.7" y1="875.1" x2="1016.6" y2="878.2"/>
<line class="st20" x1="1018.3" y1="876.7" x2="1015" y2="876.7"/>
</g>
<line class="st20" x1="1051.4" y1="875.1" x2="1051.4" y2="878.2"/>
<line class="st20" x1="1053.1" y1="876.7" x2="1049.8" y2="876.7"/>
<line class="st20" x1="1086.2" y1="875.1" x2="1086.2" y2="878.2"/>
<line class="st20" x1="1087.9" y1="876.7" x2="1084.6" y2="876.7"/>
<line class="st20" x1="1121" y1="875.1" x2="1121" y2="878.2"/>
<line class="st20" x1="1122.7" y1="876.7" x2="1119.4" y2="876.7"/>
</g>
<g>
<line class="st20" x1="772.7" y1="907.9" x2="772.7" y2="911"/>
<line class="st20" x1="774.3" y1="909.4" x2="771" y2="909.4"/>
<line class="st20" x1="807.5" y1="907.9" x2="807.5" y2="911"/>
<line class="st20" x1="809.1" y1="909.4" x2="805.8" y2="909.4"/>
<line class="st20" x1="842.3" y1="907.9" x2="842.3" y2="911"/>
<line class="st20" x1="843.9" y1="909.4" x2="840.6" y2="909.4"/>
<line class="st20" x1="877.1" y1="907.9" x2="877.1" y2="911"/>
<line class="st20" x1="878.7" y1="909.4" x2="875.4" y2="909.4"/>
</g>
<g>
<line class="st20" x1="911.9" y1="907.9" x2="911.8" y2="911"/>
<line class="st20" x1="913.5" y1="909.4" x2="910.2" y2="909.4"/>
<line class="st20" x1="946.7" y1="907.9" x2="946.6" y2="911"/>
<line class="st20" x1="948.3" y1="909.4" x2="945" y2="909.4"/>
<line class="st20" x1="981.5" y1="907.9" x2="981.4" y2="911"/>
<line class="st20" x1="983.1" y1="909.4" x2="979.8" y2="909.4"/>
<line class="st20" x1="1016.3" y1="907.9" x2="1016.2" y2="911"/>
<line class="st20" x1="1017.9" y1="909.4" x2="1014.6" y2="909.4"/>
</g>
<line class="st20" x1="1051.1" y1="907.9" x2="1051" y2="911"/>
<line class="st20" x1="1052.7" y1="909.4" x2="1049.4" y2="909.4"/>
<line class="st20" x1="1085.9" y1="907.9" x2="1085.8" y2="911"/>
<line class="st20" x1="1087.5" y1="909.4" x2="1084.2" y2="909.4"/>
<g>
<line class="st20" x1="1120.6" y1="907.9" x2="1120.6" y2="911"/>
<line class="st20" x1="1122.3" y1="909.4" x2="1119" y2="909.4"/>
</g>
<g>
<line class="st20" x1="1120.3" y1="940.7" x2="1120.2" y2="943.8"/>
<line class="st20" x1="1121.9" y1="942.3" x2="1118.6" y2="942.3"/>
</g>
<g>
<line class="st20" x1="1119.9" y1="973.4" x2="1119.8" y2="976.5"/>
<line class="st20" x1="1121.5" y1="974.9" x2="1118.2" y2="974.9"/>
</g>
<g>
<line class="st20" x1="1119.5" y1="1006.1" x2="1119.4" y2="1009.2"/>
<line class="st20" x1="1121.1" y1="1007.7" x2="1117.8" y2="1007.7"/>
</g>
<g>
<g>
<line class="st20" x1="772.3" y1="940.6" x2="772.3" y2="943.7"/>
<line class="st20" x1="774" y1="942.2" x2="770.6" y2="942.2"/>
<line class="st20" x1="807.1" y1="940.6" x2="807.1" y2="943.7"/>
<line class="st20" x1="808.7" y1="942.2" x2="805.4" y2="942.2"/>
<line class="st20" x1="841.9" y1="940.6" x2="841.9" y2="943.7"/>
<line class="st20" x1="843.5" y1="942.2" x2="840.2" y2="942.2"/>
<line class="st20" x1="876.7" y1="940.6" x2="876.7" y2="943.7"/>
<line class="st20" x1="878.3" y1="942.2" x2="875" y2="942.2"/>
</g>
<g>
<line class="st20" x1="911.5" y1="940.6" x2="911.5" y2="943.7"/>
<line class="st20" x1="913.1" y1="942.2" x2="909.8" y2="942.2"/>
<line class="st20" x1="946.3" y1="940.6" x2="946.2" y2="943.7"/>
<line class="st20" x1="947.9" y1="942.2" x2="944.6" y2="942.2"/>
<line class="st20" x1="981.1" y1="940.6" x2="981" y2="943.7"/>
<line class="st20" x1="982.7" y1="942.2" x2="979.4" y2="942.2"/>
<line class="st20" x1="1015.9" y1="940.6" x2="1015.8" y2="943.7"/>
<line class="st20" x1="1017.5" y1="942.2" x2="1014.2" y2="942.2"/>
</g>
<line class="st20" x1="1050.7" y1="940.6" x2="1050.6" y2="943.7"/>
<line class="st20" x1="1052.3" y1="942.2" x2="1049" y2="942.2"/>
<line class="st20" x1="1085.5" y1="940.6" x2="1085.4" y2="943.7"/>
<line class="st20" x1="1087.1" y1="942.2" x2="1083.8" y2="942.2"/>
</g>
<g>
<g>
<line class="st20" x1="771.9" y1="973.4" x2="771.9" y2="976.5"/>
<line class="st20" x1="773.6" y1="974.9" x2="770.3" y2="974.9"/>
<line class="st20" x1="806.7" y1="973.4" x2="806.7" y2="976.5"/>
<line class="st20" x1="808.4" y1="974.9" x2="805" y2="974.9"/>
<line class="st20" x1="841.5" y1="973.4" x2="841.5" y2="976.5"/>
<line class="st20" x1="843.1" y1="974.9" x2="839.8" y2="974.9"/>
<line class="st20" x1="876.3" y1="973.4" x2="876.3" y2="976.5"/>
<line class="st20" x1="877.9" y1="974.9" x2="874.6" y2="974.9"/>
</g>
<g>
<line class="st20" x1="911.1" y1="973.4" x2="911.1" y2="976.5"/>
<line class="st20" x1="912.7" y1="974.9" x2="909.4" y2="974.9"/>
<line class="st20" x1="945.9" y1="973.4" x2="945.9" y2="976.5"/>
<line class="st20" x1="947.5" y1="974.9" x2="944.2" y2="974.9"/>
<line class="st20" x1="980.7" y1="973.4" x2="980.7" y2="976.5"/>
<line class="st20" x1="982.3" y1="974.9" x2="979" y2="974.9"/>
<line class="st20" x1="1015.5" y1="973.4" x2="1015.4" y2="976.5"/>
<line class="st20" x1="1017.1" y1="974.9" x2="1013.8" y2="974.9"/>
</g>
<line class="st20" x1="1050.3" y1="973.4" x2="1050.2" y2="976.5"/>
<line class="st20" x1="1051.9" y1="974.9" x2="1048.6" y2="974.9"/>
<line class="st20" x1="1085.1" y1="973.4" x2="1085" y2="976.5"/>
<line class="st20" x1="1086.7" y1="974.9" x2="1083.4" y2="974.9"/>
</g>
<g>
<g>
<line class="st20" x1="771.5" y1="1006.1" x2="771.5" y2="1009.2"/>
<line class="st20" x1="773.2" y1="1007.7" x2="769.9" y2="1007.7"/>
<line class="st20" x1="806.3" y1="1006.1" x2="806.3" y2="1009.2"/>
<line class="st20" x1="808" y1="1007.7" x2="804.7" y2="1007.7"/>
<line class="st20" x1="841.1" y1="1006.1" x2="841.1" y2="1009.2"/>
<line class="st20" x1="842.8" y1="1007.7" x2="839.4" y2="1007.7"/>
<line class="st20" x1="875.9" y1="1006.1" x2="875.9" y2="1009.2"/>
<line class="st20" x1="877.6" y1="1007.7" x2="874.2" y2="1007.7"/>
</g>
<g>
<line class="st20" x1="910.7" y1="1006.1" x2="910.7" y2="1009.2"/>
<line class="st20" x1="912.3" y1="1007.7" x2="909" y2="1007.7"/>
<line class="st20" x1="945.5" y1="1006.1" x2="945.5" y2="1009.2"/>
<line class="st20" x1="947.1" y1="1007.7" x2="943.8" y2="1007.7"/>
<line class="st20" x1="980.3" y1="1006.1" x2="980.3" y2="1009.2"/>
<line class="st20" x1="981.9" y1="1007.7" x2="978.6" y2="1007.7"/>
<line class="st20" x1="1015.1" y1="1006.1" x2="1015.1" y2="1009.2"/>
<line class="st20" x1="1016.7" y1="1007.7" x2="1013.4" y2="1007.7"/>
</g>
<line class="st20" x1="1049.9" y1="1006.1" x2="1049.8" y2="1009.2"/>
<line class="st20" x1="1051.5" y1="1007.7" x2="1048.2" y2="1007.7"/>
<line class="st20" x1="1084.7" y1="1006.1" x2="1084.6" y2="1009.2"/>
<line class="st20" x1="1086.3" y1="1007.7" x2="1083" y2="1007.7"/>
</g>
</g>
<g>
<g>
<g>
<line class="st6" x1="726.4" y1="1128.3" x2="726.4" y2="1129.4"/>
<line class="st6" x1="727" y1="1128.8" x2="725.9" y2="1128.8"/>
<line class="st6" x1="738" y1="1128.3" x2="738" y2="1129.4"/>
<line class="st6" x1="738.5" y1="1128.8" x2="737.4" y2="1128.8"/>
<line class="st6" x1="749.6" y1="1128.3" x2="749.6" y2="1129.4"/>
<line class="st6" x1="750.1" y1="1128.8" x2="749" y2="1128.8"/>
<line class="st6" x1="761.1" y1="1128.3" x2="761.1" y2="1129.4"/>
<line class="st6" x1="761.7" y1="1128.8" x2="760.6" y2="1128.8"/>
</g>
<g>
<line class="st6" x1="772.7" y1="1128.3" x2="772.7" y2="1129.4"/>
<line class="st6" x1="773.2" y1="1128.8" x2="772.1" y2="1128.8"/>
<line class="st6" x1="784.2" y1="1128.3" x2="784.2" y2="1129.4"/>
<line class="st6" x1="784.8" y1="1128.8" x2="783.7" y2="1128.8"/>
<line class="st6" x1="795.8" y1="1128.3" x2="795.8" y2="1129.4"/>
<line class="st6" x1="796.3" y1="1128.8" x2="795.2" y2="1128.8"/>
<line class="st6" x1="807.4" y1="1128.3" x2="807.3" y2="1129.4"/>
<line class="st6" x1="807.9" y1="1128.8" x2="806.8" y2="1128.8"/>
</g>
<line class="st6" x1="818.9" y1="1128.3" x2="818.9" y2="1129.4"/>
<line class="st6" x1="819.5" y1="1128.8" x2="818.4" y2="1128.8"/>
<line class="st6" x1="830.5" y1="1128.3" x2="830.5" y2="1129.4"/>
<line class="st6" x1="831" y1="1128.8" x2="829.9" y2="1128.8"/>
<line class="st6" x1="842" y1="1128.3" x2="842" y2="1129.4"/>
<line class="st6" x1="842.6" y1="1128.8" x2="841.5" y2="1128.8"/>
</g>
<g>
<g>
<line class="st6" x1="726.3" y1="1139.2" x2="726.3" y2="1140.2"/>
<line class="st6" x1="726.9" y1="1139.7" x2="725.8" y2="1139.7"/>
<line class="st6" x1="737.9" y1="1139.2" x2="737.9" y2="1140.2"/>
<line class="st6" x1="738.4" y1="1139.7" x2="737.3" y2="1139.7"/>
<line class="st6" x1="749.4" y1="1139.2" x2="749.4" y2="1140.2"/>
<line class="st6" x1="750" y1="1139.7" x2="748.9" y2="1139.7"/>
<line class="st6" x1="761" y1="1139.2" x2="761" y2="1140.2"/>
<line class="st6" x1="761.5" y1="1139.7" x2="760.4" y2="1139.7"/>
</g>
<g>
<line class="st6" x1="772.6" y1="1139.2" x2="772.5" y2="1140.2"/>
<line class="st6" x1="773.1" y1="1139.7" x2="772" y2="1139.7"/>
<line class="st6" x1="784.1" y1="1139.2" x2="784.1" y2="1140.2"/>
<line class="st6" x1="784.7" y1="1139.7" x2="783.6" y2="1139.7"/>
<line class="st6" x1="795.7" y1="1139.2" x2="795.7" y2="1140.2"/>
<line class="st6" x1="796.2" y1="1139.7" x2="795.1" y2="1139.7"/>
<line class="st6" x1="807.2" y1="1139.2" x2="807.2" y2="1140.2"/>
<line class="st6" x1="807.8" y1="1139.7" x2="806.7" y2="1139.7"/>
</g>
<line class="st6" x1="818.8" y1="1139.2" x2="818.8" y2="1140.2"/>
<line class="st6" x1="819.3" y1="1139.7" x2="818.2" y2="1139.7"/>
<line class="st6" x1="830.3" y1="1139.2" x2="830.3" y2="1140.2"/>
<line class="st6" x1="830.9" y1="1139.7" x2="829.8" y2="1139.7"/>
<line class="st6" x1="841.9" y1="1139.2" x2="841.9" y2="1140.2"/>
<line class="st6" x1="842.4" y1="1139.7" x2="841.3" y2="1139.7"/>
</g>
<g>
<line class="st6" x1="726.2" y1="1150.1" x2="726.2" y2="1151.1"/>
<line class="st6" x1="726.7" y1="1150.6" x2="725.6" y2="1150.6"/>
<line class="st6" x1="737.7" y1="1150.1" x2="737.7" y2="1151.1"/>
<line class="st6" x1="738.3" y1="1150.6" x2="737.2" y2="1150.6"/>
<line class="st6" x1="749.3" y1="1150.1" x2="749.3" y2="1151.1"/>
<line class="st6" x1="749.8" y1="1150.6" x2="748.7" y2="1150.6"/>
<line class="st6" x1="760.9" y1="1150.1" x2="760.8" y2="1151.1"/>
<line class="st6" x1="761.4" y1="1150.6" x2="760.3" y2="1150.6"/>
</g>
<g>
<line class="st6" x1="772.4" y1="1150.1" x2="772.4" y2="1151.1"/>
<line class="st6" x1="773" y1="1150.6" x2="771.9" y2="1150.6"/>
<line class="st6" x1="784" y1="1150.1" x2="784" y2="1151.1"/>
<line class="st6" x1="784.5" y1="1150.6" x2="783.4" y2="1150.6"/>
<line class="st6" x1="795.5" y1="1150.1" x2="795.5" y2="1151.1"/>
<line class="st6" x1="796.1" y1="1150.6" x2="795" y2="1150.6"/>
<line class="st6" x1="807.1" y1="1150.1" x2="807.1" y2="1151.1"/>
<line class="st6" x1="807.6" y1="1150.6" x2="806.5" y2="1150.6"/>
</g>
<line class="st6" x1="818.7" y1="1150.1" x2="818.6" y2="1151.1"/>
<line class="st6" x1="819.2" y1="1150.6" x2="818.1" y2="1150.6"/>
<line class="st6" x1="830.2" y1="1150.1" x2="830.2" y2="1151.1"/>
<line class="st6" x1="830.8" y1="1150.6" x2="829.7" y2="1150.6"/>
<g>
<line class="st6" x1="841.8" y1="1150.1" x2="841.8" y2="1151.1"/>
<line class="st6" x1="842.3" y1="1150.6" x2="841.2" y2="1150.6"/>
</g>
<g>
<line class="st6" x1="841.6" y1="1161" x2="841.6" y2="1162"/>
<line class="st6" x1="842.2" y1="1161.5" x2="841.1" y2="1161.5"/>
</g>
<g>
<line class="st6" x1="841.5" y1="1171.8" x2="841.5" y2="1172.9"/>
<line class="st6" x1="842.1" y1="1172.4" x2="841" y2="1172.4"/>
</g>
<g>
<line class="st6" x1="841.4" y1="1182.7" x2="841.4" y2="1183.8"/>
<line class="st6" x1="841.9" y1="1183.2" x2="840.8" y2="1183.2"/>
</g>
<g>
<g>
<line class="st6" x1="726.1" y1="1161" x2="726" y2="1162"/>
<line class="st6" x1="726.6" y1="1161.5" x2="725.5" y2="1161.5"/>
<line class="st6" x1="737.6" y1="1161" x2="737.6" y2="1162"/>
<line class="st6" x1="738.2" y1="1161.5" x2="737.1" y2="1161.5"/>
<line class="st6" x1="749.2" y1="1161" x2="749.2" y2="1162"/>
<line class="st6" x1="749.7" y1="1161.5" x2="748.6" y2="1161.5"/>
<line class="st6" x1="760.7" y1="1161" x2="760.7" y2="1162"/>
<line class="st6" x1="761.3" y1="1161.5" x2="760.2" y2="1161.5"/>
</g>
<g>
<line class="st6" x1="772.3" y1="1161" x2="772.3" y2="1162"/>
<line class="st6" x1="772.8" y1="1161.5" x2="771.7" y2="1161.5"/>
<line class="st6" x1="783.8" y1="1161" x2="783.8" y2="1162"/>
<line class="st6" x1="784.4" y1="1161.5" x2="783.3" y2="1161.5"/>
<line class="st6" x1="795.4" y1="1161" x2="795.4" y2="1162"/>
<line class="st6" x1="796" y1="1161.5" x2="794.9" y2="1161.5"/>
<line class="st6" x1="807" y1="1161" x2="807" y2="1162"/>
<line class="st6" x1="807.5" y1="1161.5" x2="806.4" y2="1161.5"/>
</g>
<line class="st6" x1="818.5" y1="1161" x2="818.5" y2="1162"/>
<line class="st6" x1="819.1" y1="1161.5" x2="818" y2="1161.5"/>
<line class="st6" x1="830.1" y1="1161" x2="830.1" y2="1162"/>
<line class="st6" x1="830.6" y1="1161.5" x2="829.5" y2="1161.5"/>
</g>
<g>
<g>
<line class="st6" x1="725.9" y1="1171.8" x2="725.9" y2="1172.9"/>
<line class="st6" x1="726.5" y1="1172.4" x2="725.4" y2="1172.4"/>
<line class="st6" x1="737.5" y1="1171.8" x2="737.5" y2="1172.9"/>
<line class="st6" x1="738" y1="1172.4" x2="736.9" y2="1172.4"/>
<line class="st6" x1="749" y1="1171.8" x2="749" y2="1172.9"/>
<line class="st6" x1="749.6" y1="1172.4" x2="748.5" y2="1172.4"/>
<line class="st6" x1="760.6" y1="1171.8" x2="760.6" y2="1172.9"/>
<line class="st6" x1="761.1" y1="1172.4" x2="760" y2="1172.4"/>
</g>
<g>
<line class="st6" x1="772.2" y1="1171.8" x2="772.1" y2="1172.9"/>
<line class="st6" x1="772.7" y1="1172.4" x2="771.6" y2="1172.4"/>
<line class="st6" x1="783.7" y1="1171.8" x2="783.7" y2="1172.9"/>
<line class="st6" x1="784.3" y1="1172.4" x2="783.2" y2="1172.4"/>
<line class="st6" x1="795.3" y1="1171.8" x2="795.3" y2="1172.9"/>
<line class="st6" x1="795.8" y1="1172.4" x2="794.7" y2="1172.4"/>
<line class="st6" x1="806.8" y1="1171.8" x2="806.8" y2="1172.9"/>
<line class="st6" x1="807.4" y1="1172.4" x2="806.3" y2="1172.4"/>
</g>
<line class="st6" x1="818.4" y1="1171.8" x2="818.4" y2="1172.9"/>
<line class="st6" x1="818.9" y1="1172.4" x2="817.8" y2="1172.4"/>
<line class="st6" x1="830" y1="1171.8" x2="829.9" y2="1172.9"/>
<line class="st6" x1="830.5" y1="1172.4" x2="829.4" y2="1172.4"/>
</g>
<g>
<g>
<line class="st6" x1="725.8" y1="1182.7" x2="725.8" y2="1183.8"/>
<line class="st6" x1="726.3" y1="1183.2" x2="725.2" y2="1183.2"/>
<line class="st6" x1="737.4" y1="1182.7" x2="737.3" y2="1183.8"/>
<line class="st6" x1="737.9" y1="1183.2" x2="736.8" y2="1183.2"/>
<line class="st6" x1="748.9" y1="1182.7" x2="748.9" y2="1183.8"/>
<line class="st6" x1="749.5" y1="1183.2" x2="748.4" y2="1183.2"/>
<line class="st6" x1="760.5" y1="1182.7" x2="760.5" y2="1183.8"/>
<line class="st6" x1="761" y1="1183.2" x2="759.9" y2="1183.2"/>
</g>
<g>
<line class="st6" x1="772" y1="1182.7" x2="772" y2="1183.8"/>
<line class="st6" x1="772.6" y1="1183.2" x2="771.5" y2="1183.2"/>
<line class="st6" x1="783.6" y1="1182.7" x2="783.6" y2="1183.8"/>
<line class="st6" x1="784.1" y1="1183.2" x2="783" y2="1183.2"/>
<line class="st6" x1="795.1" y1="1182.7" x2="795.1" y2="1183.8"/>
<line class="st6" x1="795.7" y1="1183.2" x2="794.6" y2="1183.2"/>
<line class="st6" x1="806.7" y1="1182.7" x2="806.7" y2="1183.8"/>
<line class="st6" x1="807.3" y1="1183.2" x2="806.2" y2="1183.2"/>
</g>
<line class="st6" x1="818.3" y1="1182.7" x2="818.3" y2="1183.8"/>
<line class="st6" x1="818.8" y1="1183.2" x2="817.7" y2="1183.2"/>
<line class="st6" x1="829.8" y1="1182.7" x2="829.8" y2="1183.8"/>
<line class="st6" x1="830.4" y1="1183.2" x2="829.3" y2="1183.2"/>
</g>
</g>
<g>
<rect x="726" y="1197.9" class="st6" width="115.3" height="79.1"/>
<line class="st6" x1="726" y1="1237.9" x2="841.4" y2="1237.9"/>
</g>
<line class="st6" x1="640" y1="487" x2="640" y2="1762"/>
<g>
<rect x="659.3" y="1813.6" class="st21" width="597.1" height="1335.1"/>
<rect x="667.1" y="1821" class="st22" width="580.8" height="33.9"/>
<rect x="667.1" y="1862.6" class="st22" width="580.8" height="1277.6"/>
<rect x="680.2" y="1834.2" class="st1" width="77.8" height="8.4"/>
<text transform="matrix(1 0 0 1 680.1709 1841.7874)" class="st23 st24 st25">OPTICAL FLOW</text>
<rect x="680.2" y="1875.3" class="st1" width="558.1" height="1265"/>
<text transform="matrix(1 0 0 1 680.1709 1881.6899)"><tspan x="0" y="0" class="st23 st9 st25">#!/usr/bin/env python</tspan><tspan x="0" y="21.4" class="st23 st9 st25">import numpy as np</tspan><tspan x="0" y="32.1" class="st23 st9 st25">import cv2, math</tspan><tspan x="0" y="42.8" class="st23 st9 st25">import video</tspan><tspan x="0" y="64.2" class="st23 st9 st25">help_message = &apos;&apos;&apos;</tspan><tspan x="0" y="74.9" class="st23 st9 st25">USAGE: opt_flow.py [&lt;video_source&gt;]</tspan><tspan x="0" y="96.3" class="st23 st9 st25">Keys:</tspan><tspan x="0" y="107" class="st23 st9 st25"> 1 - toggle HSV flow visualization</tspan><tspan x="0" y="117.7" class="st23 st9 st25"> 2 - toggle glitch</tspan><tspan x="0" y="139.1" class="st23 st9 st25">&apos;&apos;&apos;</tspan><tspan x="0" y="160.5" class="st23 st9 st25"># def draw_flow(img, flow, step=4): # size grid </tspan><tspan x="0" y="171.2" class="st23 st9 st25"># h, w = img.shape[:2]</tspan><tspan x="0" y="181.9" class="st23 st9 st25"># y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1)</tspan><tspan x="0" y="192.6" class="st23 st9 st25"># fx, fy = flow[y,x].T</tspan><tspan x="0" y="203.3" class="st23 st9 st25"># lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)</tspan><tspan x="0" y="214" class="st23 st9 st25"># lines = np.int32(lines + 0.5)</tspan><tspan x="0" y="224.7" class="st23 st9 st25"># vis = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)</tspan><tspan x="0" y="235.4" class="st23 st9 st25"># cv2.polylines(vis, lines, 0, (0, 0, 255)) # BGR</tspan><tspan x="0" y="246.1" class="st23 st9 st25"># for (x1, y1), (x2, y2) in lines:</tspan><tspan x="0" y="256.8" class="st23 st9 st25"># cv2.circle(vis, (x1, y1), 1, (0, 255, 0), -1)</tspan><tspan x="0" y="267.5" class="st23 st9 st25"># return vis</tspan><tspan x="0" y="288.9" class="st23 st9 st25">import OSC</tspan><tspan x="0" y="299.6" class="st23 st9 st25"># from pythonosc import osc_message_builder</tspan><tspan x="0" y="310.3" class="st23 st9 st25"># from pythonosc import udp_client</tspan><tspan x="0" y="321" class="st23 st9 st25">import time</tspan><tspan x="0" y="342.4" class="st23 st9 st25">def send_flow0(img, flow, step=4): # size grid </tspan><tspan x="0" y="353.1" class="st23 st9 st25"> h, w = img.shape[:2]</tspan><tspan x="0" y="363.8" class="st23 st9 st25"> y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1)</tspan><tspan x="0" y="374.5" class="st23 st9 st25"> fx, fy = flow[y,x].T</tspan><tspan x="0" y="385.2" class="st23 st9 st25"> #print &quot;fx, fy&quot;, fx, fy</tspan><tspan x="0" y="395.9" class="st23 st9 st25"> lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)</tspan><tspan x="0" y="406.6" class="st23 st9 st25"> lines = np.int32(lines + 0.5)</tspan><tspan x="0" y="417.3" class="st23 st9 st25"> vis = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)</tspan><tspan x="0" y="449.4" class="st23 st9 st25"> flines = []</tspan><tspan x="0" y="460.1" class="st23 st9 st25"> for (x1, y1), (x2, y2) in lines:</tspan><tspan x="0" y="470.8" class="st23 st9 st25"> # print (&quot;y1&quot;, y1)</tspan><tspan x="0" y="481.5" class="st23 st9 st25"> if (x1 == 38 or x1 == 46 or x1 == 54 or x1 == 62 or x1 == 70 or x1 == 78 or x1 == 86 </tspan><tspan x="0" y="492.2" class="st23 st9 st25">or x1 == 94 or x1 == 102 or x1 == 110 or x1 == 118) and y1 in range(38, 90, 8):</tspan><tspan x="0" y="502.9" class="st23 st9 st25"> flines.append(((x1,y1),(x2,y2)))</tspan><tspan x="0" y="513.6" class="st23 st9 st25"> normx = x1 / 8 - 4</tspan><tspan x="0" y="524.3" class="st23 st9 st25"> normy = 1 - ((y1 / 8 - 4) / 3.0)</tspan><tspan x="0" y="535" class="st23 st9 st25"> dx = x2-x1</tspan><tspan x="0" y="545.7" class="st23 st9 st25"> dy = y2 - y1</tspan><tspan x="0" y="556.4" class="st23 st9 st25"> m = int(math.sqrt( (dx*dx) + (dy*dy) ))</tspan><tspan x="0" y="567.1" class="st23 st9 st25"> if m&gt;2:</tspan><tspan x="0" y="577.8" class="st23 st9 st25"> print (&quot;dot&quot;, (normx, normy))</tspan><tspan x="0" y="588.5" class="st23 st9 st25"> msg = OSC.OSCMessage()</tspan><tspan x="0" y="599.2" class="st23 st9 st25"> msg.setAddress(&quot;/dot&quot;)</tspan><tspan x="0" y="609.9" class="st23 st9 st25"> #msg.append(dx)</tspan><tspan x="0" y="620.6" class="st23 st9 st25"> #msg.append(dy)</tspan><tspan x="0" y="631.3" class="st23 st9 st25"> #msg.append(m)</tspan><tspan x="0" y="642" class="st23 st9 st25"> msg.append(normx)</tspan><tspan x="0" y="652.7" class="st23 st9 st25"> msg.append(normy)</tspan><tspan x="0" y="663.4" class="st23 st9 st25"> client.send(msg)</tspan><tspan x="0" y="674.1" class="st23 st9 st25"> # client.send_message(&quot;/franc&quot;, m)</tspan><tspan x="384.1" y="706.2" class="st23 st9 st25"> flines = np.int32(flines)</tspan><tspan x="240.1" y="716.9" class="st23 st9 st25"> cv2.polylines(vis, flines, 0, (0, 40, 255)) # BGR</tspan><tspan x="336.1" y="727.6" class="st23 st9 st25"> for (x1, y1), (x2, y2) in flines:</tspan><tspan x="240.1" y="738.3" class="st23 st9 st25"> cv2.circle(vis, (x1, y1), 1, (0, 255, 0), -1)</tspan><tspan x="474.1" y="749" class="st23 st9 st25"> return vis</tspan><tspan x="384.1" y="770.4" class="st23 st9 st25"> flines = np.int32(flines)</tspan><tspan x="240.1" y="781.1" class="st23 st9 st25"> cv2.polylines(vis, flines, 0, (0, 40, 255)) # BGR</tspan><tspan x="336.1" y="791.8" class="st23 st9 st25"> for (x1, y1), (x2, y2) in flines:</tspan><tspan x="240.1" y="802.5" class="st23 st9 st25"> cv2.circle(vis, (x1, y1), 1, (0, 255, 0), -1)</tspan><tspan x="474.1" y="813.2" class="st23 st9 st25"> return vis</tspan><tspan x="234.1" y="834.6" class="st23 st9 st25"> # cv2.rectangle(img, pt1, pt2, color[, thickness[, </tspan><tspan x="438.1" y="845.3" class="st23 st9 st25">lineType[, shift]]])</tspan><tspan x="402.1" y="866.7" class="st23 st9 st25">if __name__ == &apos;__main__&apos;:</tspan><tspan x="474.1" y="877.4" class="st23 st9 st25"> import sys</tspan><tspan x="426.1" y="888.1" class="st23 st9 st25"> print help_message</tspan><tspan x="408.1" y="898.8" class="st23 st9 st25"> try: fn = sys.argv[1]</tspan><tspan x="450.1" y="909.5" class="st23 st9 st25"> except: fn = 0</tspan><tspan x="444.1" y="941.6" class="st23 st9 st25"> # connect to pd</tspan><tspan x="474.1" y="952.3" class="st23 st9 st25"> # Init OSC</tspan><tspan x="390.1" y="963" class="st23 st9 st25"> client = OSC.OSCClient()</tspan><tspan x="180.1" y="973.7" class="st23 st9 st25"> client.connect((&apos;127.0.0.1&apos;, 9001)) # first argument is the </tspan><tspan x="258.1" y="984.4" class="st23 st9 st25">IP of the host, second argument is the port to use</tspan><tspan x="456.1" y="995.1" class="st23 st9 st25"> #data=&quot;hello&quot;</tspan><tspan x="198.1" y="1005.8" class="st23 st9 st25"> # client = udp_client.SimpleUDPClient(&quot;127.0.0.1&quot;, 9001)</tspan><tspan x="438.1" y="1027.2" class="st23 st9 st25"> # connect camera</tspan><tspan x="342.1" y="1037.9" class="st23 st9 st25"> # cam = video.create_capture(fn)</tspan><tspan x="192.1" y="1048.6" class="st23 st9 st25"> cam = video.create_capture(&quot;0:size=160x120&quot;) #canvas size </tspan><tspan x="504.1" y="1059.3" class="st23 st9 st25">in pixels</tspan><tspan x="402.1" y="1070" class="st23 st9 st25"> ret, prev = cam.read()</tspan><tspan x="240.1" y="1080.7" class="st23 st9 st25"> prevgray = cv2.cvtColor(prev, cv2.COLOR_BGR2GRAY)</tspan><tspan x="390.1" y="1091.4" class="st23 st9 st25"> cur_glitch = prev.copy()</tspan><tspan x="468.1" y="1112.8" class="st23 st9 st25"> while True:</tspan><tspan x="396.1" y="1123.5" class="st23 st9 st25"> # print &quot;GRAB FRAME&quot;</tspan><tspan x="384.1" y="1134.2" class="st23 st9 st25"> ret, img = cam.read()</tspan><tspan x="246.1" y="1144.9" class="st23 st9 st25"> gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)</tspan><tspan x="204.1" y="1155.6" class="st23 st9 st25"> flow = cv2.calcOpticalFlowFarneback(prevgray, gray, </tspan><tspan x="408.1" y="1166.3" class="st23 st9 st25">0.5, 3, 15, 3, 5, 1.2, 0)</tspan><tspan x="420.1" y="1177" class="st23 st9 st25"> prevgray = gray</tspan><tspan x="258.1" y="1198.4" class="st23 st9 st25"> cv2.imshow(&apos;flow&apos;, send_flow0(gray, flow))</tspan><tspan x="354.1" y="1219.8" class="st23 st9 st25"> ch = 0xFF &amp; cv2.waitKey(5)</tspan><tspan x="438.1" y="1230.5" class="st23 st9 st25"> if ch == 27:</tspan><tspan x="456.1" y="1241.2" class="st23 st9 st25"> break</tspan><tspan x="396.1" y="1251.9" class="st23 st9 st25"> cv2.destroyAllWindows()</tspan></text>
</g>
<rect x="50.6" y="1246.8" class="st1" width="547.5" height="247.7"/>
<text transform="matrix(1 0 0 1 50.6133 1259.8176)"><tspan x="0" y="0" class="st2 st3">By exploring the connection between motion and sound, experiments </tspan><tspan x="0" y="23" class="st2 st3">have been performed through different software and tools, which has </tspan><tspan x="0" y="46" class="st2 st3">strengthen substantially the following additional material in this </tspan><tspan x="0" y="69" class="st2 st3">project. For instance, Kinect sensor and Synapse, which receives input </tspan><tspan x="0" y="92" class="st2 st3">data from Kinect and sends it out to Ableton or Max MSP, have been </tspan><tspan x="0" y="115" class="st2 st3">tested out. Similarly, motion detection was together explored with </tspan><tspan x="0" y="138" class="st2 st3">“color detection” in Puredata, which brought up more interesting </tspan><tspan x="0" y="161" class="st2 st3">alternatives. Sound recording and feedback loop was further tested with </tspan><tspan x="0" y="184" class="st2 st3">this method, though mechanically it was hardly accurate. Finally with </tspan><tspan x="0" y="207" class="st2 st3">“Optical Flow”, this work was reconfigured with a wider sense for </tspan><tspan x="0" y="230" class="st2 st3">interacting with data.</tspan></text>
<polygon class="st26" points="587.3,3146.4 51.3,3146.4 51.3,2804.1 587.3,2804.1 "/>
<polygon class="st27" points="626.8,3131.4 65.7,3131.4 65.7,2773 626.8,2772.9 "/>
<polygon class="st28" points="654.8,3113.4 80.8,3113.4 80.8,2746.8 654.8,2746.8 "/>
<polygon class="st29" points="702,3093.9 98.8,3093.9 98.8,2708.6 701.9,2708.6 "/>
<polygon class="st30" points="779.3,3074.4 118.4,3074.4 118.4,2652.2 779.3,2652.2 "/>
<image style="overflow:visible;" width="600" height="304" xlink:href="edited/8-optflow.jpg" transform="matrix(0.3988 0 0 0.3988 179.3978 1614.6321)">
</image>
<image style="overflow:visible;" width="600" height="304" xlink:href="edited/10-optflow.jpg" transform="matrix(0.3943 0 6.752105e-06 0.3943 256.7634 1761.7285)">
</image>
<image style="overflow:visible;" width="400" height="250" xlink:href="edited/6-pd.jpg" transform="matrix(0.3991 0 0 0.3991 212.8855 1803.1924)">
</image>
<image style="overflow:visible;" width="400" height="250" xlink:href="edited/5-pd.jpg" transform="matrix(0.3996 0 0 0.3996 179.7984 1837.965)">
</image>
<image style="overflow:visible;" width="400" height="250" xlink:href="edited/2-ableton-kinect.jpg" transform="matrix(0.3996 0 0 0.3996 133.2772 1884.1931)">
</image>
<image style="overflow:visible;" width="653" height="408" xlink:href="2.gif" transform="matrix(0.6528 0 0 0.6528 67.8154 2054.3865)">
</image>
<g>
<image style="overflow:visible;" width="944" height="603" xlink:href="pd.png" transform="matrix(0.7541 0 0 0.7541 139.3997 2600.1714)">
</image>
<polygon class="st31" points="852.6,3054.9 139.4,3054.9 139.4,2599.4 852.6,2599.4 "/>
</g>
<image style="overflow:visible;" width="600" height="304" xlink:href="edited/7-optflow.jpg" transform="matrix(0.3988 0 0 0.3988 66.3565 1554.0214)">
</image>
</g>
<g id="Layer_2">
</g>
</svg>
</body>
</html>