<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Daily Sketches on anotherjesse.com</title><link>https://anotherjesse.com/sketches/</link><description>Recent content in Daily Sketches on anotherjesse.com</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 07 Mar 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://anotherjesse.com/sketches/index.xml" rel="self" type="application/rss+xml"/><item><title>Phyllotactic FFT Spirals</title><link>https://anotherjesse.com/sketches/phyllotactic-fft/</link><pubDate>Thu, 07 Mar 2024 00:00:00 +0000</pubDate><guid>https://anotherjesse.com/sketches/phyllotactic-fft/</guid><description>&lt;p&gt;Modifying phyllotactic patterns using fft of microphone input.&lt;/p&gt;
&lt;div id="demo"&gt;&lt;/div&gt;
&lt;p&gt;Note: to use the mic, the browser requires a user interaction &amp;ndash; Click the rotating circle to begin!&lt;/p&gt;
&lt;h2 id="using-the-microphone---learning-to-love-the-fft"&gt;Using the microphone - learning to love the FFT&lt;/h2&gt;
&lt;p&gt;The FFT (see &lt;a href="https://www.youtube.com/watch?v=spUNpyF58BY"&gt;3b1b - But what is the Fourier Transform?&lt;/a&gt; ) converts a signal from the time domain to the frequency domain&amp;hellip;&lt;/p&gt;
&lt;p&gt;What?&lt;/p&gt;
&lt;p&gt;Time domain means the value the microphone is receiving at each point in time.&lt;/p&gt;</description></item><item><title>Lines</title><link>https://anotherjesse.com/sketches/lines/</link><pubDate>Mon, 05 Nov 2018 00:00:00 +0000</pubDate><guid>https://anotherjesse.com/sketches/lines/</guid><description>&lt;p&gt;A line is a series of points &amp;hellip; and moving those points with noise is a fun way to animate them.&lt;/p&gt;
&lt;div id="demo"&gt;&lt;/div&gt;
&lt;script type='text/javascript' src="sketch.js"&gt;&lt;/script&gt;
&lt;script type='text/javascript' src="../p5.min.js"&gt;&lt;/script&gt;
&lt;p&gt;I like it, but didn&amp;rsquo;t (yet) know how to make it loop seamlessly. (see &lt;a href="https://anotherjesse.com/posts/seamless-loops"&gt;Seamless loops&lt;/a&gt; for more)&lt;/p&gt;</description></item><item><title>Mouse Color Worm</title><link>https://anotherjesse.com/sketches/mouse-color-worm/</link><pubDate>Mon, 05 Nov 2018 00:00:00 +0000</pubDate><guid>https://anotherjesse.com/sketches/mouse-color-worm/</guid><description>&lt;p&gt;The worm grows randomly, but the color is based on the mouse position. By using HSB (Hue, Saturation, Brightness) color space, the user can control the color of the worm by moving the mouse.&lt;/p&gt;
&lt;div id="demo"&gt;&lt;/div&gt;
&lt;script src="../p5.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.dom.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.sound.min.js"&gt;&lt;/script&gt;
&lt;script src="sketch.js"&gt;&lt;/script&gt;
&lt;p&gt;During setup we need to switch to HSB color space with a maximum value of 1.0 for each component:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;colorMode&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;HSB&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1.0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then in the draw function, scale the &lt;code&gt;mouseX&lt;/code&gt; and &lt;code&gt;mouseY&lt;/code&gt; values to set the color of the worm.&lt;/p&gt;</description></item><item><title>Video Color Halftones</title><link>https://anotherjesse.com/sketches/video-color-halftones/</link><pubDate>Mon, 05 Nov 2018 00:00:00 +0000</pubDate><guid>https://anotherjesse.com/sketches/video-color-halftones/</guid><description>&lt;p&gt;Webcam filter that uses a grid of circles to create a halftone effect. The color / size of the circles is determined by the video pixel color and intensity.&lt;/p&gt;
&lt;div id="demo"&gt;&lt;/div&gt;
&lt;p&gt;Builds upload the &lt;a href="../video-halftones/"&gt;Video Halftones&lt;/a&gt; setting a color of circle to the color of the video pixel.&lt;/p&gt;
&lt;script src="../p5.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.dom.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.sound.min.js"&gt;&lt;/script&gt;
&lt;script src="sketch.js"&gt;&lt;/script&gt;</description></item><item><title>Video Diff Loops</title><link>https://anotherjesse.com/sketches/video-diff-loops/</link><pubDate>Mon, 05 Nov 2018 00:00:00 +0000</pubDate><guid>https://anotherjesse.com/sketches/video-diff-loops/</guid><description>&lt;p&gt;Mixed together two video loops, with the difference between the two loops shown.&lt;/p&gt;
&lt;p&gt;Pressing and holding &lt;code&gt;1&lt;/code&gt; and &lt;code&gt;2&lt;/code&gt; to record two different loops. The difference between the two loops will be shown.&lt;/p&gt;
&lt;div id="demo"&gt;&lt;/div&gt;
&lt;script src="../p5.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.dom.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.sound.min.js"&gt;&lt;/script&gt;
&lt;script src="sketch.js"&gt;&lt;/script&gt;</description></item><item><title>Video Filters</title><link>https://anotherjesse.com/sketches/video-filters/</link><pubDate>Mon, 05 Nov 2018 00:00:00 +0000</pubDate><guid>https://anotherjesse.com/sketches/video-filters/</guid><description>&lt;p&gt;Exploring filters applied to images captured from the webcam. Inspired by &lt;a href="https://www.youtube.com/watch?v=oLiaUEKsRws"&gt;this coding train&lt;/a&gt; video.&lt;/p&gt;
&lt;div id="demo"&gt;&lt;/div&gt;
&lt;script src="../p5.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.dom.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.sound.min.js"&gt;&lt;/script&gt;
&lt;script src="sketch.js"&gt;&lt;/script&gt;
&lt;p&gt;This is done using the &lt;code&gt;filter&lt;/code&gt; feature in p5.js which applies the filter to the entire canvas. Since I&amp;rsquo;m additively applying the filters - the upper left image will have all the filters applied, and the bottom right will only have &lt;code&gt;erode&lt;/code&gt; applied.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;var&lt;/span&gt; &lt;span style="color:#1f2328"&gt;img&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#1f2328"&gt;capture&lt;/span&gt;&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;&lt;span style="color:#1f2328"&gt;get&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;image&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;img&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;filter&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;THRESHOLD&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;image&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;img&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;filter&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;GRAY&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;image&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;img&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;filter&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;POSTERIZE&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;3&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;image&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;img&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;filter&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;ERODE&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Video Four Tint</title><link>https://anotherjesse.com/sketches/video-four-tint/</link><pubDate>Mon, 05 Nov 2018 00:00:00 +0000</pubDate><guid>https://anotherjesse.com/sketches/video-four-tint/</guid><description>&lt;p&gt;Tint modifies the color of future image operations.&lt;/p&gt;
&lt;div id="demo"&gt;&lt;/div&gt;
&lt;script src="../p5.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.dom.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.sound.min.js"&gt;&lt;/script&gt;
&lt;script src="sketch.js"&gt;&lt;/script&gt;
&lt;p&gt;I was surprised that &lt;code&gt;tint&lt;/code&gt; impacts the future &lt;code&gt;image&lt;/code&gt; calls, while &lt;code&gt;filter&lt;/code&gt; modifies the existing canvas. Compare with &lt;a href="../video-filters"&gt;Video Filters&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;noTint&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;image&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;img&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;tint&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;255&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt; &lt;span style="color:#57606a"&gt;// Blue
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;image&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;img&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;tint&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;255&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt; &lt;span style="color:#57606a"&gt;// Red
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;image&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;img&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;tint&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;255&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt; &lt;span style="color:#57606a"&gt;// Green
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;image&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;img&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_w&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#1f2328"&gt;video_h&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Video Grid Delay</title><link>https://anotherjesse.com/sketches/video-grid-delay/</link><pubDate>Mon, 05 Nov 2018 00:00:00 +0000</pubDate><guid>https://anotherjesse.com/sketches/video-grid-delay/</guid><description>&lt;p&gt;A fun little webcam video effect. By capturing video frames, and playing them back in a grid with increasing delay, we can create a kind of &amp;ldquo;time lapse&amp;rdquo; effect.&lt;/p&gt;
&lt;div id="demo"&gt;&lt;/div&gt;
&lt;p&gt;This code is based on a tutorial by &lt;a href="https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw"&gt;The Coding Train&lt;/a&gt;.&lt;/p&gt;
&lt;script src="../p5.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.dom.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.sound.min.js"&gt;&lt;/script&gt;
&lt;script src="sketch.js"&gt;&lt;/script&gt;</description></item><item><title>Video Grid Random Delay</title><link>https://anotherjesse.com/sketches/video-grid-random-delay/</link><pubDate>Mon, 05 Nov 2018 00:00:00 +0000</pubDate><guid>https://anotherjesse.com/sketches/video-grid-random-delay/</guid><description>&lt;p&gt;A slight (but FUN!) tweak of &lt;a href="../video-grid-delay"&gt;Video Grid Delay&lt;/a&gt; where the delay is randomized.&lt;/p&gt;
&lt;div id="demo"&gt;&lt;/div&gt;
&lt;script src="../p5.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.dom.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.sound.min.js"&gt;&lt;/script&gt;
&lt;script src="sketch.js"&gt;&lt;/script&gt;</description></item><item><title>Video Halftones</title><link>https://anotherjesse.com/sketches/video-halftones/</link><pubDate>Mon, 05 Nov 2018 00:00:00 +0000</pubDate><guid>https://anotherjesse.com/sketches/video-halftones/</guid><description>&lt;p&gt;Exploring using the webcam to create a halftone effect, like ye olde newspaper&amp;hellip;&lt;/p&gt;
&lt;div id="demo"&gt;&lt;/div&gt;
&lt;script src="../p5.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.dom.min.js"&gt;&lt;/script&gt;
&lt;script src="../addons/p5.sound.min.js"&gt;&lt;/script&gt;
&lt;script src="sketch.js"&gt;&lt;/script&gt;</description></item></channel></rss>