Hyde
2014-05-25T14:13:34-07:00
http://hyde.getpoole.com
Mark Otto
Introducing Hyde
2013-12-28T00:00:00-08:00
http://hyde.getpoole.com/2013/12/28/introducing-hyde
<p>Hyde is a brazen two-column <a href="http://jekyllrb.com">Jekyll</a> theme that pairs a prominent sidebar with uncomplicated content. It's based on <a href="http://getpoole.com">Poole</a>, the Jekyll butler.</p>
<h3>Built on Poole</h3>
<p>Poole is the Jekyll Butler, serving as an upstanding and effective foundation for Jekyll themes by <a href="https://twitter.com/mdo">@mdo</a>. Poole, and every theme built on it (like Hyde here) includes the following:</p>
<ul>
<li>Complete Jekyll setup included (layouts, config, <a href="/404">404</a>, <a href="/atom.xml">RSS feed</a>, posts, and <a href="/about">example page</a>)</li>
<li>Mobile friendly design and development</li>
<li>Easily scalable text and component sizing with <code>rem</code> units in the CSS</li>
<li>Support for a wide gamut of HTML elements</li>
<li>Related posts (time-based, because Jekyll) below each post</li>
<li>Syntax highlighting, courtesy Pygments (the Python-based code snippet highlighter)</li>
</ul>
<h3>Hyde features</h3>
<p>In addition to the features of Poole, Hyde adds the following:</p>
<ul>
<li>Sidebar includes support for textual modules and a dynamically generated navigation with active link support</li>
<li>Two orientations for content and sidebar, default (left sidebar) and <a href="https://github.com/poole/lanyon#reverse-layout">reverse</a> (right sidebar), available via <code><body></code> classes</li>
<li><a href="https://github.com/poole/hyde#themes">Eight optional color schemes</a>, available via <code><body></code> classes</li>
</ul>
<p><a href="https://github.com/poole/hyde#readme">Head to the readme</a> to learn more.</p>
<h3>Browser support</h3>
<p>Hyde is by preference a forward-thinking project. In addition to the latest versions of Chrome, Safari (mobile and desktop), and Firefox, it is only compatible with Internet Explorer 9 and above.</p>
<h3>Download</h3>
<p>Hyde is developed on and hosted with GitHub. Head to the <a href="https://github.com/poole/hyde">GitHub repository</a> for downloads, bug reports, and features requests.</p>
<p>Thanks!</p>
Example content
2012-02-07T00:00:00-08:00
http://hyde.getpoole.com/2012/02/07/example-content
<p>This blog post shows a few different types of content that's supported and styled with Hyde. Basic typography, images, and code are all supported.</p>
<hr>
<p>Cum sociis natoque penatibus et magnis <a href="#">dis parturient montes</a>, nascetur ridiculus mus. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Sed posuere consectetur est at lobortis. Cras mattis consectetur purus sit amet fermentum.</p>
<blockquote>
<p>Curabitur blandit tempus porttitor. <strong>Nullam quis risus eget urna mollis</strong> ornare vel eu leo. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
</blockquote>
<p>Etiam porta <em>sem malesuada magna</em> mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur.</p>
<h2>Heading</h2>
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<h3>Sub-heading</h3>
<p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
<div class="highlight"><pre><code class="js"><span class="c1">// Example can be run directly in your JavaScript console</span>
<span class="c1">// Create a function that takes two arguments and returns the sum of those arguments</span>
<span class="kd">var</span> <span class="nx">adder</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">Function</span><span class="p">(</span><span class="s2">"a"</span><span class="p">,</span> <span class="s2">"b"</span><span class="p">,</span> <span class="s2">"return a + b"</span><span class="p">);</span>
<span class="c1">// Call the function</span>
<span class="nx">adder</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">6</span><span class="p">);</span>
<span class="c1">// > 8</span>
</code></pre></div>
<p>Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa.</p>
<h3>Sub-heading</h3>
<p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
<ul>
<li>Praesent commodo cursus magna, vel scelerisque nisl consectetur et.</li>
<li>Donec id elit non mi porta gravida at eget metus.</li>
<li>Nulla vitae elit libero, a pharetra augue.</li>
</ul>
<p>Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue.</p>
<ol>
<li>Vestibulum id ligula porta felis euismod semper.</li>
<li>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</li>
<li>Maecenas sed diam eget risus varius blandit sit amet non magna.</li>
</ol>
<p>Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis.</p>
<hr>
<p>Want to see something else added? <a href="https://github.com/mdo/hyde/issues/new">Open an issue.</a></p>
What's Jekyll?
2012-02-06T00:00:00-08:00
http://hyde.getpoole.com/2012/02/06/whats-jekyll
<p><a href="http://jekyllrb.com">Jekyll</a> is a static site generator, an open-source tool for creating simple yet powerful websites of all shapes and sizes. From <a href="https://github.com/mojombo/jekyll/blob/master/README.markdown">the project's readme</a>:</p>
<blockquote>
<p>Jekyll is a simple, blog aware, static site generator. It takes a template directory [...] and spits out a complete, static website suitable for serving with Apache or your favorite web server. This is also the engine behind GitHub Pages, which you can use to host your project’s page or blog right here from GitHub.</p>
</blockquote>
<p>It's an immensely useful tool and one we encourage you to use here with Hyde.</p>
<p>Find out more by <a href="https://github.com/mojombo/jekyll">visiting the project on GitHub</a>.</p>
Happy Celebration Day
2011-04-20T00:00:00-07:00
http://hyde.getpoole.com/2011/04/20/happy-celebration-day
<p><img src="http://media.tumblr.com/tumblr_ljz591RVcE1qz4ztm.gif" /></p>
<div class="highlight"><pre><code class="bash">convert *.tga out.gif <span class="o">&&</span> gifsicle --dither -k 3 out.gif >outg.gif
</code></pre></div>
<p><img src="http://i.imgur.com/49iJW.gif" /></p>
<div class="highlight"><pre><code class="bash">convert -liquid-rescale <span class="s1">'300x500!'</span> screen-2146.tga screen-2147.tga screen-2148.tga screen-2149.tga screen-2150.tga screen-2151.tga screen-2152.tga screen-2153.tga screen-2154.tga screen-2155.tga screen-2156.tga screen-2157.tga screen-2158.tga screen-2159.tga screen-2160.tga screen-2161.tga screen-2162.tga screen-2163.tga screen-2164.tga screen-2165.tga screen-2166.tga screen-2167.tga screen-2168.tga screen-2169.tga screen-2170.tga screen-2171.tga screen-2172.tga screen-2173.tga screen-2174.tga screen-2175.tga screen-2176.tga screen-2177.tga screen-2178.tga screen-2179.tga screen-2180.tga screen-2181.tga screen-2182.tga screen-2183.tga screen-2184.tga screen-2185.tga screen-2186.tga screen-2187.tga lqs1.gif <span class="o">&&</span> convert -liquid-rescale <span class="s1">'500x500!'</span> lqs1.gif lqs1-5x5.gif <span class="o">&&</span> gifsicle --dither -k 2 lqs1-5x5.gif >outg.gif <span class="o">&&</span>
</code></pre></div>
<p><img src="http://media.tumblr.com/tumblr_ljz7g66pxQ1qz4ztm.gif" /></p>
<div class="highlight"><pre><code class="bash">convert -liquid-rescale <span class="s1">'300x500!'</span> screen-2146.tga screen-2147.tga screen-2148.tga screen-2149.tga screen-2150.tga screen-2151.tga screen-2152.tga screen-2153.tga screen-2154.tga screen-2155.tga screen-2156.tga screen-2157.tga screen-2158.tga screen-2159.tga screen-2160.tga screen-2161.tga screen-2162.tga screen-2163.tga screen-2164.tga screen-2165.tga screen-2166.tga screen-2167.tga screen-2168.tga screen-2169.tga screen-2170.tga screen-2171.tga screen-2172.tga screen-2173.tga screen-2174.tga screen-2175.tga screen-2176.tga screen-2177.tga screen-2178.tga screen-2179.tga screen-2180.tga screen-2181.tga screen-2182.tga screen-2183.tga screen-2184.tga screen-2185.tga screen-2186.tga screen-2187.tga lqs1.gif <span class="o">&&</span> convert -liquid-rescale <span class="s1">'500x500!'</span> lqs1.gif lqs1-5x5.gif <span class="o">&&</span> gifsicle --dither -k 2 lqs1-5x5.gif >outg.gif <span class="o">&&</span> convert -liquid-rescale <span class="s1">'100x100!'</span> outg.gif outglqs.gif
</code></pre></div>
<p><img src="http://s3.amazonaws.com/yolkmedia/outglqs-5x5.gif" /></p>
<div class="highlight"><pre><code class="bash">convert -liquid-rescale <span class="s1">'300x500!'</span> screen-2146.tga screen-2147.tga screen-2148.tga screen-2149.tga screen-2150.tga screen-2151.tga screen-2152.tga screen-2153.tga screen-2154.tga screen-2155.tga screen-2156.tga screen-2157.tga screen-2158.tga screen-2159.tga screen-2160.tga screen-2161.tga screen-2162.tga screen-2163.tga screen-2164.tga screen-2165.tga screen-2166.tga screen-2167.tga screen-2168.tga screen-2169.tga screen-2170.tga screen-2171.tga screen-2172.tga screen-2173.tga screen-2174.tga screen-2175.tga screen-2176.tga screen-2177.tga screen-2178.tga screen-2179.tga screen-2180.tga screen-2181.tga screen-2182.tga screen-2183.tga screen-2184.tga screen-2185.tga screen-2186.tga screen-2187.tga lqs1.gif <span class="o">&&</span> convert -liquid-rescale <span class="s1">'500x500!'</span> lqs1.gif lqs1-5x5.gif <span class="o">&&</span> gifsicle --dither -k 2 lqs1-5x5.gif >outg.gif <span class="o">&&</span> convert -liquid-rescale <span class="s1">'100x100!'</span> outg.gif outglqs.gif <span class="o">&&</span> convert -liquid-rescale <span class="s1">'500x500!'</span> outglqs.gif outglqs-5x5.gif
</code></pre></div>
Chills
2011-04-06T00:00:00-07:00
http://hyde.getpoole.com/2011/04/06/chills
<p><img src="http://media.tumblr.com/tumblr_lj8tyvXPgy1qz4ztm.gif" />
<iframe src="http://player.vimeo.com/video/22025548?byline=0&portrait=0&color=ffffff&loop=1" width="500" height="500" frameborder="0"></iframe></p>
<div class="highlight"><pre><code class="java"><span class="kn">import</span> <span class="nn">ddf.minim.*</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">ddf.minim.analysis.*</span><span class="o">;</span>
<span class="n">Minim</span> <span class="n">minim</span><span class="o">;</span>
<span class="n">AudioPlayer</span> <span class="n">groove</span><span class="o">;</span>
<span class="n">BeatDetect</span> <span class="n">beat</span><span class="o">;</span>
<span class="n">BeatListener</span> <span class="n">bl</span><span class="o">;</span>
<span class="kt">float</span><span class="o">[]</span> <span class="n">sampL</span><span class="o">;</span>
<span class="kt">int</span> <span class="n">dlimit</span> <span class="o">=</span> <span class="mi">200</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">samplebit</span><span class="o">;</span>
<span class="kt">boolean</span> <span class="n">go</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
<span class="kt">int</span> <span class="n">t</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">wave</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">weight</span><span class="o">;</span>
<span class="n">Attractor</span><span class="o">[]</span> <span class="n">attractors</span><span class="o">;</span>
<span class="n">Attractor</span> <span class="n">dragged</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="n">ArrayList</span> <span class="n">dots</span><span class="o">;</span>
<span class="n">PFont</span> <span class="n">font</span><span class="o">;</span>
<span class="kt">void</span> <span class="nf">setup</span><span class="o">()</span> <span class="o">{</span>
<span class="n">dots</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">();</span>
<span class="k">for</span> <span class="o">(</span> <span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o"><</span><span class="n">dlimit</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
<span class="n">dots</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="n">Dot</span><span class="o">());</span>
<span class="o">}</span>
<span class="n">size</span><span class="o">(</span><span class="mi">800</span><span class="o">,</span> <span class="mi">800</span><span class="o">,</span> <span class="n">P3D</span><span class="o">);</span>
<span class="n">samplebit</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
<span class="n">minim</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Minim</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
<span class="c1">// groove = minim.loadFile("smr.mp3", 2048);</span>
<span class="c1">// groove = minim.loadFile("inthecoldstanding.mp3", 2048);</span>
<span class="n">groove</span> <span class="o">=</span> <span class="n">minim</span><span class="o">.</span><span class="na">loadFile</span><span class="o">(</span><span class="s">"inthecold.wav"</span><span class="o">,</span> <span class="mi">2048</span><span class="o">);</span>
<span class="n">groove</span><span class="o">.</span><span class="na">play</span><span class="o">();</span>
<span class="c1">// sampL = new float[groove.left.size()];</span>
<span class="n">beat</span> <span class="o">=</span> <span class="k">new</span> <span class="n">BeatDetect</span><span class="o">(</span><span class="n">groove</span><span class="o">.</span><span class="na">bufferSize</span><span class="o">(),</span> <span class="n">groove</span><span class="o">.</span><span class="na">sampleRate</span><span class="o">());</span>
<span class="c1">//frequency energy mode</span>
<span class="c1">// beat = new BeatDetect();</span>
<span class="n">beat</span><span class="o">.</span><span class="na">setSensitivity</span><span class="o">(</span><span class="mi">900</span><span class="o">);</span>
<span class="n">bl</span> <span class="o">=</span> <span class="k">new</span> <span class="n">BeatListener</span><span class="o">(</span><span class="n">beat</span><span class="o">,</span> <span class="n">groove</span><span class="o">);</span>
<span class="n">colorMode</span><span class="o">(</span><span class="n">HSB</span><span class="o">,</span> <span class="mi">255</span><span class="o">);</span>
<span class="n">background</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
<span class="n">frameRate</span><span class="o">(</span><span class="mi">12</span><span class="o">);</span>
<span class="n">stroke</span><span class="o">(</span><span class="mi">255</span><span class="o">,</span> <span class="mi">100</span><span class="o">);</span>
<span class="n">fill</span><span class="o">(</span><span class="mi">255</span><span class="o">);</span>
<span class="n">ellipseMode</span><span class="o">(</span><span class="n">CENTER</span><span class="o">);</span>
<span class="n">font</span> <span class="o">=</span> <span class="n">loadFont</span><span class="o">(</span><span class="s">"Verdana-11.vlw"</span><span class="o">);</span>
<span class="n">textMode</span><span class="o">(</span><span class="n">SCREEN</span><span class="o">);</span>
<span class="n">textFont</span><span class="o">(</span><span class="n">font</span><span class="o">);</span>
<span class="c1">// smooth();</span>
<span class="n">makeAttractors</span><span class="o">();</span>
<span class="n">makeDots</span><span class="o">();</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">makeAttractors</span><span class="o">()</span> <span class="o">{</span>
<span class="c1">// number of attractors to use</span>
<span class="kt">int</span> <span class="n">n</span> <span class="o">=</span> <span class="mi">16</span><span class="o">;</span>
<span class="kt">int</span> <span class="n">types</span> <span class="o">=</span> <span class="mi">14</span><span class="o">;</span>
<span class="n">attractors</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Attractor</span><span class="o">[</span><span class="n">n</span><span class="o">];</span>
<span class="kt">float</span><span class="o">[]</span> <span class="n">emittersx</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">float</span><span class="o">[</span><span class="n">n</span><span class="o">];</span>
<span class="kt">float</span><span class="o">[]</span> <span class="n">emittersy</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">float</span><span class="o">[</span><span class="n">n</span><span class="o">];</span>
<span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">j</span><span class="o">=</span><span class="mi">0</span><span class="o">;</span> <span class="n">j</span><span class="o"><</span><span class="n">n</span><span class="o">;</span> <span class="n">j</span><span class="o">++){</span>
<span class="c1">// emittersx[j] = random(width/2);</span>
<span class="c1">// emittersy[j] = random(height/2);</span>
<span class="n">emittersx</span><span class="o">[</span><span class="n">j</span><span class="o">]</span> <span class="o">=</span> <span class="n">random</span><span class="o">(</span><span class="n">width</span><span class="o">);</span>
<span class="n">emittersy</span><span class="o">[</span><span class="n">j</span><span class="o">]</span> <span class="o">=</span> <span class="n">random</span><span class="o">(</span><span class="n">height</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o"><</span><span class="n">n</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
<span class="kt">int</span> <span class="n">t</span> <span class="o">=</span> <span class="n">floor</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="n">types</span><span class="o">+</span><span class="mi">1</span><span class="o">));</span>
<span class="c1">// int t = 6;</span>
<span class="c1">//0 - linear force from core</span>
<span class="c1">//1 - heavy attractor</span>
<span class="c1">//2 - outer rim attraction</span>
<span class="c1">//3 - inner-core deflector</span>
<span class="c1">//4 - boundary interaction</span>
<span class="c1">//5 - squiggly swarm</span>
<span class="c1">//6 - round-about</span>
<span class="c1">//7 - round and down, then up</span>
<span class="c1">//8 - gravity orbit</span>
<span class="c1">//9 - slow orbit</span>
<span class="c1">//10 - large orbit</span>
<span class="c1">//11 - interesting deflector</span>
<span class="c1">//12 - random firings</span>
<span class="c1">//13 - linear orbit</span>
<span class="c1">//14 - linear force from core</span>
<span class="kt">float</span> <span class="n">r</span> <span class="o">=</span> <span class="n">random</span><span class="o">(</span><span class="mi">100</span><span class="o">,</span><span class="mi">900</span><span class="o">);</span>
<span class="c1">// float r = 150;</span>
<span class="kt">int</span> <span class="n">col</span> <span class="o">=</span> <span class="n">round</span><span class="o">(</span><span class="n">lerp</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span> <span class="mi">255</span><span class="o">,</span> <span class="o">(</span><span class="kt">float</span><span class="o">)</span><span class="n">groove</span><span class="o">.</span><span class="na">position</span><span class="o">()/</span><span class="n">groove</span><span class="o">.</span><span class="na">length</span><span class="o">()));</span>
<span class="c1">// color col = color(0,(round(lerp(0, 255, float(t)/float(types)))));</span>
<span class="n">attractors</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Attractor</span><span class="o">(</span><span class="n">t</span><span class="o">,</span> <span class="n">r</span><span class="o">,</span> <span class="n">col</span><span class="o">);</span>
<span class="n">println</span><span class="o">(</span><span class="n">t</span><span class="o">);</span>
<span class="n">attractors</span><span class="o">[</span><span class="n">i</span><span class="o">].</span><span class="na">x</span> <span class="o">=</span> <span class="n">emittersx</span><span class="o">[</span><span class="n">i</span><span class="o">];</span>
<span class="n">attractors</span><span class="o">[</span><span class="n">i</span><span class="o">].</span><span class="na">y</span> <span class="o">=</span> <span class="n">emittersy</span><span class="o">[</span><span class="n">i</span><span class="o">];</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">makeDots</span><span class="o">(){</span>
<span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o"><</span><span class="n">dlimit</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
<span class="n">dots</span><span class="o">.</span><span class="na">add</span><span class="o">((</span><span class="n">Dot</span><span class="o">)</span> <span class="k">new</span> <span class="n">Dot</span><span class="o">());</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">draw</span><span class="o">()</span> <span class="o">{</span>
<span class="n">println</span><span class="o">(</span><span class="n">frameRate</span><span class="o">);</span>
<span class="k">if</span><span class="o">(</span><span class="n">go</span><span class="o">){</span>
<span class="kt">float</span> <span class="n">timepos</span> <span class="o">=</span> <span class="o">((</span><span class="kt">float</span><span class="o">)</span><span class="n">groove</span><span class="o">.</span><span class="na">position</span><span class="o">()/</span><span class="n">groove</span><span class="o">.</span><span class="na">length</span><span class="o">());</span>
<span class="c1">//sound sampling</span>
<span class="n">samplebit</span> <span class="o">=</span> <span class="n">groove</span><span class="o">.</span><span class="na">left</span><span class="o">.</span><span class="na">get</span><span class="o">((</span><span class="kt">int</span><span class="o">)(</span><span class="n">random</span><span class="o">(</span><span class="n">groove</span><span class="o">.</span><span class="na">bufferSize</span><span class="o">()-</span><span class="mi">1</span><span class="o">)));</span>
<span class="c1">// samplebit = random(.2);</span>
<span class="n">fill</span><span class="o">(</span><span class="n">map</span><span class="o">(</span><span class="n">groove</span><span class="o">.</span><span class="na">position</span><span class="o">(),</span> <span class="mi">0</span><span class="o">,</span> <span class="n">groove</span><span class="o">.</span><span class="na">length</span><span class="o">(),</span> <span class="mi">0</span><span class="o">,</span> <span class="mi">255</span><span class="o">),</span> <span class="mi">255</span><span class="o">,</span> <span class="mi">255</span><span class="o">,</span> <span class="mi">1</span><span class="o">)</span> <span class="o">;</span>
<span class="n">noStroke</span><span class="o">();</span>
<span class="n">rect</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span> <span class="mi">0</span><span class="o">,</span> <span class="n">width</span><span class="o">,</span> <span class="n">height</span><span class="o">);</span>
<span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o"><</span><span class="n">dots</span><span class="o">.</span><span class="na">size</span><span class="o">()-</span><span class="mi">1</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
<span class="c1">// -----old-----------------------------</span>
<span class="c1">// dots[i].step(round(map(i, 0, dlimit, 1, 10)));</span>
<span class="c1">// dots[i].step(round(map(noise(random(100)), 0, 1, 1, 5)));</span>
<span class="c1">// dots[i].step(round(map(groove.get(round(map(i, 0, dlimit, 0, groove.length()-1)))), 0, 1, 1, 10));</span>
<span class="c1">// dots[i].step(map(groove.left.level(), 0, 1, 1, 10));</span>
<span class="c1">// dots[i].step(lerp(.1, 10, groove.left.level()/1));</span>
<span class="c1">// dots[i].setSampleBit(samplebit);</span>
<span class="n">Dot</span> <span class="n">d</span><span class="o">;</span>
<span class="n">d</span> <span class="o">=</span> <span class="o">(</span><span class="n">Dot</span><span class="o">)</span> <span class="n">dots</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">i</span><span class="o">);</span>
<span class="n">d</span><span class="o">.</span><span class="na">setSampleBit</span><span class="o">(</span><span class="n">samplebit</span><span class="o">);</span>
<span class="n">d</span><span class="o">.</span><span class="na">step</span><span class="o">(</span><span class="n">lerp</span><span class="o">(.</span><span class="mi">1</span><span class="o">,</span> <span class="mi">4</span><span class="o">,</span> <span class="o">(</span><span class="kt">float</span><span class="o">)</span> <span class="n">groove</span><span class="o">.</span><span class="na">position</span><span class="o">()</span> <span class="o">/</span> <span class="n">groove</span><span class="o">.</span><span class="na">length</span><span class="o">()));</span>
<span class="c1">// d.step(1);</span>
<span class="o">}</span>
<span class="n">oscillate</span><span class="o">(</span><span class="n">samplebit</span><span class="o">);</span>
<span class="c1">//sound energy mode detection</span>
<span class="c1">// if ( beat.isOnset() ) </span>
<span class="c1">//frequency mode detection</span>
<span class="k">if</span> <span class="o">(</span><span class="n">beat</span><span class="o">.</span><span class="na">isKick</span><span class="o">()</span> <span class="o">)</span> <span class="o">{</span>
<span class="c1">// dlimit = int(map(noise(random(200.2)), 0, 1, 1, 10*timepos));</span>
<span class="n">dlimit</span> <span class="o">=</span> <span class="mi">10</span><span class="o">+</span><span class="kt">int</span><span class="o">(</span><span class="mi">100</span><span class="o">*</span><span class="n">timepos</span><span class="o">);</span>
<span class="n">makeDots</span><span class="o">();</span>
<span class="n">println</span><span class="o">(</span><span class="s">"Max size = "</span> <span class="o">+</span><span class="n">dlimit</span><span class="o">);</span>
<span class="n">println</span><span class="o">(</span><span class="s">"Dots size = "</span> <span class="o">+</span> <span class="n">dots</span><span class="o">.</span><span class="na">size</span><span class="o">());</span>
<span class="c1">// makeAttractors();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="n">saveFrame</span><span class="o">(</span><span class="s">"screen-#####.tga"</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span> <span class="o">!</span><span class="n">groove</span><span class="o">.</span><span class="na">isPlaying</span><span class="o">()){</span>
<span class="n">stop</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">oscillate</span><span class="o">(</span><span class="kt">float</span> <span class="n">samplebit</span><span class="o">){</span>
<span class="n">t</span><span class="o">++;</span>
<span class="n">wave</span> <span class="o">=</span> <span class="n">samplebit</span> <span class="o">+</span> <span class="n">noise</span><span class="o">(</span><span class="n">t</span><span class="o">*</span><span class="mf">0.01</span><span class="o">);</span>
<span class="c1">// wave = samplebit * .01;</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">keyPressed</span><span class="o">(){</span>
<span class="k">switch</span><span class="o">(</span><span class="n">key</span><span class="o">){</span>
<span class="k">case</span> <span class="sc">' '</span><span class="o">:</span>
<span class="c1">// go = !go;</span>
<span class="n">groove</span><span class="o">.</span><span class="na">skip</span><span class="o">(</span><span class="mi">10000</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="sc">'s'</span><span class="o">:</span>
<span class="n">save</span><span class="o">(</span><span class="s">"img"</span><span class="o">+</span><span class="n">day</span><span class="o">()+</span><span class="n">nf</span><span class="o">(</span><span class="n">hour</span><span class="o">(),</span><span class="mi">2</span><span class="o">)+</span><span class="n">nf</span><span class="o">(</span><span class="n">minute</span><span class="o">(),</span><span class="mi">2</span><span class="o">)+</span><span class="n">nf</span><span class="o">(</span><span class="n">second</span><span class="o">(),</span><span class="mi">2</span><span class="o">)+</span><span class="s">".tif"</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="sc">'t'</span><span class="o">:</span>
<span class="n">makeAttractors</span><span class="o">();</span>
<span class="n">makeDots</span><span class="o">();</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="sc">'r'</span><span class="o">:</span>
<span class="n">makeDots</span><span class="o">();</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="sc">'f'</span><span class="o">:</span>
<span class="n">println</span><span class="o">(</span><span class="n">dots</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="sc">'d'</span><span class="o">:</span>
<span class="n">dlimit</span> <span class="o">=</span> <span class="mi">10</span><span class="o">;</span>
<span class="n">makeDots</span><span class="o">();</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">stop</span><span class="o">(){</span>
<span class="n">groove</span><span class="o">.</span><span class="na">close</span><span class="o">();</span>
<span class="n">minim</span><span class="o">.</span><span class="na">stop</span><span class="o">();</span>
<span class="kd">super</span><span class="o">.</span><span class="na">stop</span><span class="o">();</span>
<span class="o">}</span>
<span class="kt">float</span> <span class="nf">easeIn</span> <span class="o">(</span><span class="kt">float</span> <span class="n">t</span><span class="o">,</span> <span class="kt">float</span> <span class="n">c</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="n">c</span><span class="o">*(</span><span class="n">t</span><span class="o">/=</span><span class="mi">1</span><span class="o">)*</span><span class="n">t</span><span class="o">;</span>
<span class="o">}</span>
<span class="kt">float</span> <span class="nf">easeOut</span> <span class="o">(</span><span class="kt">float</span> <span class="n">t</span><span class="o">,</span> <span class="kt">float</span> <span class="n">c</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="o">-</span><span class="n">c</span> <span class="o">*(</span><span class="n">t</span><span class="o">/=</span><span class="mi">1</span><span class="o">)*(</span><span class="n">t</span><span class="o">-</span><span class="mi">2</span><span class="o">);</span>
<span class="o">}</span>
<span class="kd">class</span> <span class="nc">Attractor</span> <span class="o">{</span>
<span class="kt">int</span> <span class="n">type</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">rad</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">x</span><span class="o">,</span> <span class="n">y</span><span class="o">;</span>
<span class="kt">int</span> <span class="n">col</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">weight</span><span class="o">;</span>
<span class="c1">//sound bit sample</span>
<span class="c1">//float soundbit;</span>
<span class="n">Attractor</span><span class="o">(</span><span class="kt">int</span> <span class="n">type</span><span class="o">,</span> <span class="kt">float</span> <span class="n">rad</span><span class="o">,</span> <span class="kt">int</span> <span class="n">col</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="na">type</span> <span class="o">=</span> <span class="n">type</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">rad</span> <span class="o">=</span> <span class="n">rad</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">col</span> <span class="o">=</span> <span class="n">col</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">weight</span> <span class="o">=</span> <span class="n">noise</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">100</span><span class="o">));</span>
<span class="c1">//sound</span>
<span class="c1">//this.soundbit = soundbit;</span>
<span class="c1">//init x,y</span>
<span class="k">this</span><span class="o">.</span><span class="na">x</span> <span class="o">=</span> <span class="n">random</span><span class="o">(</span><span class="n">width</span><span class="o">/</span><span class="mi">2</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="na">y</span> <span class="o">=</span> <span class="n">random</span><span class="o">(</span><span class="n">height</span><span class="o">/</span><span class="mi">2</span><span class="o">);</span>
<span class="o">}</span>
<span class="kt">float</span><span class="o">[]</span> <span class="nf">act</span><span class="o">(</span><span class="kt">float</span> <span class="n">_x</span><span class="o">,</span> <span class="kt">float</span> <span class="n">_y</span><span class="o">,</span> <span class="kt">float</span> <span class="n">_vx</span><span class="o">,</span> <span class="kt">float</span> <span class="n">_vy</span><span class="o">)</span> <span class="o">{</span>
<span class="kt">float</span><span class="o">[]</span> <span class="n">forces</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">float</span><span class="o">[</span><span class="mi">3</span><span class="o">];</span>
<span class="kt">float</span> <span class="n">dxy</span> <span class="o">=</span> <span class="n">dist</span><span class="o">(</span><span class="n">x</span><span class="o">,</span> <span class="n">y</span><span class="o">,</span> <span class="n">_x</span><span class="o">,</span> <span class="n">_y</span><span class="o">);</span>
<span class="k">if</span><span class="o">(</span><span class="n">dxy</span> <span class="o"><</span> <span class="n">rad</span><span class="o">){</span>
<span class="kt">float</span> <span class="n">rx</span><span class="o">,</span> <span class="n">ry</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">dx</span> <span class="o">=</span> <span class="n">x</span> <span class="o">-</span> <span class="n">_x</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">dy</span> <span class="o">=</span> <span class="n">y</span> <span class="o">-</span> <span class="n">_y</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">ang</span> <span class="o">=</span> <span class="n">atan2</span><span class="o">(</span><span class="n">dy</span><span class="o">,</span> <span class="n">dx</span><span class="o">);</span>
<span class="kt">float</span> <span class="n">ratio</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">-</span> <span class="n">easeOut</span><span class="o">(</span><span class="n">dxy</span><span class="o">/</span><span class="n">rad</span><span class="o">,</span> <span class="mi">1</span><span class="o">);</span>
<span class="k">switch</span><span class="o">(</span><span class="n">type</span><span class="o">)</span> <span class="o">{</span>
<span class="k">case</span> <span class="mi">0</span><span class="o">:</span>
<span class="k">default</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="n">_x</span> <span class="o"><</span> <span class="n">x</span> <span class="o">?</span> <span class="o">-</span><span class="mi">2</span> <span class="o">:</span> <span class="mi">2</span><span class="o">;</span>
<span class="n">ry</span> <span class="o">=</span> <span class="n">_y</span> <span class="o"><</span> <span class="n">y</span> <span class="o">?</span> <span class="o">-</span><span class="mi">2</span> <span class="o">:</span> <span class="mi">2</span><span class="o">;</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">1</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="o">(</span><span class="n">width</span><span class="o">/</span><span class="mi">2</span> <span class="o">-</span> <span class="n">_x</span><span class="o">)/</span><span class="mi">100</span><span class="o">;</span>
<span class="n">ry</span> <span class="o">=</span> <span class="o">(</span><span class="n">height</span><span class="o">/</span><span class="mi">2</span> <span class="o">-</span> <span class="n">_y</span><span class="o">)/</span><span class="mi">100</span><span class="o">;</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">2</span><span class="o">:</span>
<span class="kt">float</span> <span class="n">radium</span> <span class="o">=</span> <span class="n">dxy</span> <span class="o">-</span> <span class="n">random</span><span class="o">(</span><span class="n">width</span><span class="o">*.</span><span class="mi">2</span><span class="o">,</span> <span class="n">height</span><span class="o">*.</span><span class="mi">6</span><span class="o">);</span>
<span class="n">rx</span> <span class="o">=</span> <span class="n">radium</span><span class="o">/</span><span class="mi">10</span> <span class="o">*</span> <span class="n">sin</span><span class="o">(</span><span class="n">ang</span><span class="o">+</span><span class="n">HALF_PI</span><span class="o">);</span>
<span class="n">ry</span> <span class="o">=</span> <span class="o">-</span><span class="n">radium</span><span class="o">/</span><span class="mi">10</span> <span class="o">*</span> <span class="n">cos</span><span class="o">(</span><span class="n">ang</span><span class="o">+</span><span class="n">HALF_PI</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">3</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="o">(</span><span class="n">wave</span><span class="o">*</span><span class="mi">6</span><span class="o">-</span><span class="mi">3</span><span class="o">)</span> <span class="o">*</span> <span class="n">sin</span><span class="o">(</span><span class="n">ang</span><span class="o">+</span><span class="n">HALF_PI</span><span class="o">);</span>
<span class="n">ry</span> <span class="o">=</span> <span class="o">-(</span><span class="n">wave</span><span class="o">*</span><span class="mi">6</span><span class="o">-</span><span class="mi">3</span><span class="o">)</span> <span class="o">*</span> <span class="n">cos</span><span class="o">(</span><span class="n">ang</span><span class="o">+</span><span class="n">HALF_PI</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">4</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="o">-</span><span class="n">dx</span><span class="o">/</span><span class="mi">50</span><span class="o">;</span>
<span class="n">ry</span> <span class="o">=</span> <span class="o">-</span><span class="n">dy</span><span class="o">/</span><span class="mi">50</span><span class="o">;</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">5</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="n">random</span><span class="o">(-</span><span class="mi">8</span><span class="o">,</span> <span class="mi">8</span><span class="o">);</span>
<span class="n">ry</span> <span class="o">=</span> <span class="n">random</span><span class="o">(-</span><span class="mi">8</span><span class="o">,</span> <span class="mi">8</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">6</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="n">sin</span><span class="o">(</span><span class="n">TWO_PI</span> <span class="o">*</span> <span class="n">wave</span><span class="o">);</span>
<span class="n">ry</span> <span class="o">=</span> <span class="o">-</span><span class="mi">5</span> <span class="o">*</span> <span class="n">cos</span><span class="o">(</span><span class="n">TWO_PI</span> <span class="o">*</span> <span class="n">wave</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">7</span><span class="o">:</span>
<span class="kt">float</span> <span class="n">_ang</span> <span class="o">=</span> <span class="n">atan2</span><span class="o">(</span><span class="n">_vy</span><span class="o">,</span> <span class="n">_vx</span><span class="o">);</span>
<span class="n">rx</span> <span class="o">=</span> <span class="mi">3</span> <span class="o">*</span> <span class="n">sin</span><span class="o">(</span><span class="n">_ang</span> <span class="o">+</span> <span class="n">PI</span><span class="o">*</span><span class="n">wave</span><span class="o">);</span>
<span class="n">ry</span> <span class="o">=</span> <span class="o">-</span><span class="mi">3</span> <span class="o">*</span> <span class="n">cos</span><span class="o">(</span><span class="n">_ang</span> <span class="o">+</span> <span class="n">PI</span><span class="o">*</span><span class="n">wave</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">8</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="n">sin</span><span class="o">(</span><span class="n">ang</span><span class="o">);</span>
<span class="n">ry</span> <span class="o">=</span> <span class="o">-</span><span class="mi">5</span> <span class="o">*</span> <span class="n">cos</span><span class="o">(</span><span class="n">ang</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">9</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="o">-</span><span class="mi">5</span> <span class="o">*</span> <span class="n">sin</span><span class="o">(</span><span class="n">ang</span> <span class="o">+</span> <span class="n">PI</span><span class="o">/</span><span class="mi">12</span><span class="o">);</span>
<span class="n">ry</span> <span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="n">cos</span><span class="o">(</span><span class="n">ang</span> <span class="o">+</span> <span class="n">PI</span><span class="o">/</span><span class="mi">12</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">10</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="n">sin</span><span class="o">(</span><span class="n">ang</span> <span class="o">-</span> <span class="n">PI</span><span class="o">/</span><span class="mi">12</span><span class="o">);</span>
<span class="n">ry</span> <span class="o">=</span> <span class="o">-</span><span class="mi">5</span> <span class="o">*</span> <span class="n">cos</span><span class="o">(</span><span class="n">ang</span> <span class="o">-</span> <span class="n">PI</span><span class="o">/</span><span class="mi">16</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">11</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="n">cos</span><span class="o">(</span><span class="n">ang</span><span class="o">);</span>
<span class="n">ry</span> <span class="o">=</span> <span class="o">-</span><span class="mi">5</span> <span class="o">*</span> <span class="n">sin</span><span class="o">(</span><span class="n">ang</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">12</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="n">_vx</span> <span class="o">*</span> <span class="mi">2</span><span class="o">;</span>
<span class="n">ry</span> <span class="o">=</span> <span class="n">_vy</span> <span class="o">*</span> <span class="mi">2</span><span class="o">;</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">13</span><span class="o">:</span>
<span class="n">rx</span> <span class="o">=</span> <span class="n">dy</span><span class="o">/</span><span class="mi">20</span><span class="o">;</span>
<span class="n">ry</span> <span class="o">=</span> <span class="n">dx</span><span class="o">/</span><span class="mi">20</span><span class="o">;</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="n">forces</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span> <span class="o">=</span> <span class="n">rx</span> <span class="o">*</span> <span class="n">ratio</span><span class="o">;</span>
<span class="n">forces</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span> <span class="o">=</span> <span class="n">ry</span> <span class="o">*</span> <span class="n">ratio</span><span class="o">;</span>
<span class="n">forces</span><span class="o">[</span><span class="mi">2</span><span class="o">]</span> <span class="o">=</span> <span class="n">ratio</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">return</span> <span class="n">forces</span><span class="o">;</span>
<span class="o">}</span>
<span class="kt">int</span> <span class="nf">getCol</span><span class="o">(){</span>
<span class="k">return</span> <span class="n">col</span><span class="o">;</span>
<span class="o">}</span>
<span class="kt">float</span> <span class="nf">getWeight</span><span class="o">(){</span>
<span class="k">return</span> <span class="n">weight</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kd">class</span> <span class="nc">BeatListener</span> <span class="kd">implements</span> <span class="n">AudioListener</span>
<span class="o">{</span>
<span class="kd">private</span> <span class="n">BeatDetect</span> <span class="n">beat</span><span class="o">;</span>
<span class="kd">private</span> <span class="n">AudioPlayer</span> <span class="n">source</span><span class="o">;</span>
<span class="n">BeatListener</span><span class="o">(</span><span class="n">BeatDetect</span> <span class="n">beat</span><span class="o">,</span> <span class="n">AudioPlayer</span> <span class="n">source</span><span class="o">)</span>
<span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="na">source</span> <span class="o">=</span> <span class="n">source</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">source</span><span class="o">.</span><span class="na">addListener</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="na">beat</span> <span class="o">=</span> <span class="n">beat</span><span class="o">;</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">samples</span><span class="o">(</span><span class="kt">float</span><span class="o">[]</span> <span class="n">samps</span><span class="o">)</span>
<span class="o">{</span>
<span class="n">beat</span><span class="o">.</span><span class="na">detect</span><span class="o">(</span><span class="n">source</span><span class="o">.</span><span class="na">mix</span><span class="o">);</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">samples</span><span class="o">(</span><span class="kt">float</span><span class="o">[]</span> <span class="n">sampsL</span><span class="o">,</span> <span class="kt">float</span><span class="o">[]</span> <span class="n">sampsR</span><span class="o">)</span>
<span class="o">{</span>
<span class="n">beat</span><span class="o">.</span><span class="na">detect</span><span class="o">(</span><span class="n">source</span><span class="o">.</span><span class="na">mix</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kd">class</span> <span class="nc">Dot</span> <span class="o">{</span>
<span class="kt">float</span> <span class="n">x</span><span class="o">,</span> <span class="n">y</span><span class="o">,</span> <span class="n">ax</span><span class="o">,</span> <span class="n">ay</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">vx</span><span class="o">,</span> <span class="n">vy</span><span class="o">,</span> <span class="n">sx</span><span class="o">,</span> <span class="n">sy</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">flowx</span><span class="o">,</span> <span class="n">flowy</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">damp</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">samplebit</span><span class="o">;</span>
<span class="n">Dot</span><span class="o">()</span> <span class="o">{</span>
<span class="n">init</span><span class="o">();</span>
<span class="n">vx</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
<span class="n">vy</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
<span class="n">damp</span> <span class="o">=</span> <span class="o">.</span><span class="mi">1</span><span class="o">*</span><span class="n">noise</span><span class="o">(</span><span class="n">samplebit</span><span class="o">);</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">init</span><span class="o">()</span> <span class="o">{</span>
<span class="n">ax</span> <span class="o">=</span> <span class="n">x</span> <span class="o">=</span> <span class="n">random</span><span class="o">(</span><span class="n">width</span><span class="o">);</span>
<span class="n">ay</span> <span class="o">=</span> <span class="n">y</span> <span class="o">=</span> <span class="n">random</span><span class="o">(</span><span class="n">height</span><span class="o">);</span>
<span class="n">flowx</span> <span class="o">=</span> <span class="n">random</span><span class="o">(-</span><span class="mf">0.08</span><span class="o">,</span> <span class="mf">0.08</span><span class="o">);</span>
<span class="n">flowy</span> <span class="o">=</span> <span class="n">random</span><span class="o">(-</span><span class="mf">0.08</span><span class="o">,</span> <span class="mf">0.08</span><span class="o">);</span>
<span class="n">samplebit</span> <span class="o">=</span> <span class="n">random</span><span class="o">(-</span><span class="mi">1</span><span class="o">,</span> <span class="mi">1</span><span class="o">);</span>
<span class="c1">// flowx = random(-.01, .1);</span>
<span class="c1">// flowy = random(.1*noise(random(1)), .01*noise(2)+noise(random(100)));</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">setSampleBit</span><span class="o">(</span><span class="kt">float</span> <span class="n">samplebit</span><span class="o">){</span>
<span class="k">this</span><span class="o">.</span><span class="na">samplebit</span> <span class="o">=</span> <span class="n">samplebit</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">damp</span> <span class="o">=</span> <span class="o">.</span><span class="mi">5</span><span class="o">*</span><span class="n">noise</span><span class="o">(</span><span class="n">samplebit</span><span class="o">);</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">step</span><span class="o">(</span><span class="kt">float</span> <span class="n">lineweight</span><span class="o">)</span> <span class="o">{</span>
<span class="kt">float</span><span class="o">[]</span> <span class="n">ratios</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">float</span><span class="o">[</span><span class="n">attractors</span><span class="o">.</span><span class="na">length</span><span class="o">];</span>
<span class="kt">float</span> <span class="n">sr</span> <span class="o">=</span> <span class="n">map</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">10</span><span class="o">),</span> <span class="mi">0</span><span class="o">,</span> <span class="mi">10</span><span class="o">,</span> <span class="mi">0</span><span class="o">,</span> <span class="mi">1</span><span class="o">);</span>
<span class="c1">// float sr = map(samplebit, -1, 1, 0, 1);</span>
<span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o"><</span><span class="n">attractors</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
<span class="kt">float</span><span class="o">[]</span> <span class="n">forces</span> <span class="o">=</span> <span class="n">attractors</span><span class="o">[</span><span class="n">i</span><span class="o">].</span><span class="na">act</span><span class="o">(</span><span class="n">x</span><span class="o">,</span> <span class="n">y</span><span class="o">,</span> <span class="n">vx</span><span class="o">,</span> <span class="n">vy</span><span class="o">);</span>
<span class="n">sx</span> <span class="o">+=</span> <span class="n">forces</span><span class="o">[</span><span class="mi">0</span><span class="o">];</span>
<span class="n">sy</span> <span class="o">+=</span> <span class="n">forces</span><span class="o">[</span><span class="mi">1</span><span class="o">];</span>
<span class="n">ratios</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="n">forces</span><span class="o">[</span><span class="mi">2</span><span class="o">];</span>
<span class="n">sr</span> <span class="o">+=</span> <span class="n">forces</span><span class="o">[</span><span class="mi">2</span><span class="o">];</span>
<span class="o">}</span>
<span class="kt">float</span> <span class="n">col</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
<span class="k">if</span><span class="o">(</span><span class="n">sr</span> <span class="o">></span> <span class="mi">0</span><span class="o">){</span>
<span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">j</span><span class="o">=</span><span class="mi">0</span><span class="o">;</span> <span class="n">j</span><span class="o"><</span><span class="n">attractors</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">j</span><span class="o">++){</span>
<span class="kt">int</span> <span class="n">acol</span> <span class="o">=</span> <span class="n">attractors</span><span class="o">[</span><span class="n">j</span><span class="o">].</span><span class="na">getCol</span><span class="o">();</span>
<span class="c1">// float weight = map(attractors[j].getWeight(), 0, 1, 0, sr);</span>
<span class="kt">float</span> <span class="n">weight</span> <span class="o">=</span> <span class="n">norm</span><span class="o">(</span><span class="n">ratios</span><span class="o">[</span><span class="n">j</span><span class="o">],</span> <span class="mi">0</span><span class="o">,</span> <span class="n">sr</span><span class="o">);</span>
<span class="n">sr</span> <span class="o">+=</span> <span class="o">.</span><span class="mi">1</span><span class="o">;</span>
<span class="n">col</span> <span class="o">+=</span> <span class="n">acol</span> <span class="o">*</span> <span class="n">weight</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="c1">//old </span>
<span class="c1">// stroke(col, lerp(0, 255, sr), 255, 60);</span>
<span class="c1">// stroke(col, lerp(0,255,.9), 255, map(noise(random(1200),random(200), random(500)), 0, 1, 5, 50));</span>
<span class="c1">// stroke(constrain(col, 0, 255), 255, 255, constrain(t, 0, 100));</span>
<span class="c1">// stroke(map(noise(col), 0, 1, 0,255), col, 255, map(noise(weight), 0, 1, 200, 255));</span>
<span class="n">stroke</span><span class="o">(</span><span class="n">lerp</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span> <span class="mi">255</span><span class="o">,</span> <span class="n">col</span><span class="o">/</span><span class="n">noise</span><span class="o">(</span><span class="n">col</span><span class="o">)),</span> <span class="n">col</span><span class="o">,</span> <span class="mi">255</span><span class="o">,</span> <span class="n">map</span><span class="o">(</span><span class="n">noise</span><span class="o">(</span><span class="n">weight</span><span class="o">),</span> <span class="mi">0</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="mi">200</span><span class="o">,</span> <span class="mi">255</span><span class="o">));</span>
<span class="n">strokeWeight</span><span class="o">(</span><span class="n">lineweight</span><span class="o">*</span><span class="mf">1.2</span><span class="o">);</span>
<span class="n">vx</span> <span class="o">+=</span> <span class="n">sx</span> <span class="o">/</span> <span class="n">attractors</span><span class="o">.</span><span class="na">length</span> <span class="o">+</span> <span class="n">flowx</span><span class="o">;</span>
<span class="n">vy</span> <span class="o">+=</span> <span class="n">sy</span> <span class="o">/</span> <span class="n">attractors</span><span class="o">.</span><span class="na">length</span> <span class="o">+</span> <span class="n">flowy</span><span class="o">;</span>
<span class="n">vx</span> <span class="o">+=</span> <span class="n">constrain</span><span class="o">(</span><span class="n">samplebit</span><span class="o">,</span> <span class="mi">0</span><span class="o">,</span> <span class="o">.</span><span class="mi">2</span><span class="o">);</span>
<span class="n">vy</span> <span class="o">+=</span> <span class="n">map</span><span class="o">((</span><span class="kt">float</span><span class="o">)</span><span class="n">groove</span><span class="o">.</span><span class="na">position</span><span class="o">()</span> <span class="o">/</span> <span class="n">groove</span><span class="o">.</span><span class="na">length</span><span class="o">(),</span> <span class="mi">0</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="o">-.</span><span class="mi">2</span><span class="o">,</span> <span class="o">.</span><span class="mi">2</span><span class="o">);</span>
<span class="n">x</span> <span class="o">+=</span> <span class="n">vx</span><span class="o">;</span>
<span class="n">y</span> <span class="o">+=</span> <span class="n">vy</span><span class="o">;</span>
<span class="n">line</span><span class="o">(</span><span class="n">ax</span><span class="o">,</span> <span class="n">ay</span><span class="o">,</span> <span class="n">x</span><span class="o">,</span> <span class="n">y</span><span class="o">);</span>
<span class="n">ax</span> <span class="o">=</span> <span class="n">x</span><span class="o">;</span>
<span class="n">ay</span> <span class="o">=</span> <span class="n">y</span><span class="o">;</span>
<span class="n">vx</span> <span class="o">*=</span> <span class="n">damp</span><span class="o">;</span>
<span class="n">vy</span> <span class="o">*=</span> <span class="n">damp</span><span class="o">;</span>
<span class="n">sx</span> <span class="o">=</span> <span class="n">sy</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="n">x</span> <span class="o"><</span> <span class="mi">0</span><span class="o">)</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">x</span> <span class="o">=</span> <span class="n">width</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="n">x</span> <span class="o">></span> <span class="n">width</span><span class="o">)</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="n">y</span> <span class="o"><</span> <span class="mi">1</span><span class="o">)</span> <span class="n">ay</span> <span class="o">=</span> <span class="n">y</span> <span class="o">=</span> <span class="n">height</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="n">y</span> <span class="o">></span> <span class="n">height</span><span class="o">-</span><span class="mi">1</span><span class="o">)</span> <span class="n">ay</span> <span class="o">=</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
</code></pre></div>
Stare 3 ½
2011-03-19T00:00:00-07:00
http://hyde.getpoole.com/2011/03/19/stare-3-and-a-half
<iframe src="http://hascanvas.com/stare2.5/embed" frameborder="0" scrolling="no" style="width:500px;height:500px;"></iframe>
Stare III
2011-03-18T00:00:00-07:00
http://hyde.getpoole.com/2011/03/18/stare-iii
<iframe src="http://hascanvas.com/stareiii/embed" frameborder="0" scrolling="no" style="width:500px;height:500px;"></iframe>
Stare Long II
2011-03-17T00:00:00-07:00
http://hyde.getpoole.com/2011/03/17/stare-long-ii
<p><img src="http://media.tumblr.com/tumblr_li709mbzh31qz4ztm.png" />
<div class='player'><iframe src="http://player.vimeo.com/video/21175667?byline=0&portrait=0&color=ffffff&loop=1" width="500" height="500" frameborder="0"></iframe></div></p>
<div class="highlight"><pre><code class="java"><span class="c1">// Sketch 4 - "Stare Long II"</span>
<span class="n">NP</span> <span class="n">foo</span><span class="o">[];</span>
<span class="kt">float</span> <span class="n">rot</span><span class="o">;</span>
<span class="kt">void</span> <span class="nf">setup</span><span class="o">(){</span>
<span class="n">size</span><span class="o">(</span><span class="mi">500</span><span class="o">,</span><span class="mi">500</span><span class="o">);</span>
<span class="n">foo</span> <span class="o">=</span> <span class="k">new</span> <span class="n">NP</span><span class="o">[</span><span class="mi">12</span><span class="o">];</span>
<span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">foo</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
<span class="n">foo</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="k">new</span> <span class="n">NP</span><span class="o">(</span><span class="mf">2.2</span><span class="o">,</span> <span class="n">random</span><span class="o">(</span><span class="mf">3.3</span><span class="o">*</span><span class="n">i</span><span class="o">*</span><span class="n">i</span><span class="o">),</span> <span class="n">random</span><span class="o">(</span><span class="mf">4.1</span><span class="o">*</span><span class="n">i</span><span class="o">*</span><span class="n">i</span><span class="o">),</span> <span class="n">random</span><span class="o">(</span><span class="mi">1</span><span class="o">),</span> <span class="n">round</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">80</span><span class="o">)),</span> <span class="n">round</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">100</span><span class="o">))));</span>
<span class="o">}</span>
<span class="n">frameRate</span><span class="o">(</span><span class="mi">60</span><span class="o">);</span>
<span class="n">background</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
<span class="n">smooth</span><span class="o">();</span>
<span class="n">rot</span> <span class="o">=</span> <span class="n">PI</span><span class="o">*.</span><span class="mi">90</span><span class="o">;</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">draw</span><span class="o">(){</span>
<span class="k">if</span> <span class="o">(</span><span class="n">mousePressed</span><span class="o">){</span>
<span class="n">noStroke</span><span class="o">();</span>
<span class="n">fill</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span><span class="mi">10</span><span class="o">);</span>
<span class="n">rect</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span><span class="mi">0</span><span class="o">,</span><span class="n">width</span><span class="o">,</span><span class="n">height</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">else</span> <span class="o">{</span>
<span class="n">strokeWeight</span><span class="o">(</span><span class="mi">10</span><span class="o">);</span>
<span class="n">noFill</span><span class="o">();</span>
<span class="n">rect</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span><span class="mi">0</span><span class="o">,</span> <span class="n">width</span><span class="o">,</span> <span class="n">height</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span><span class="o">(</span> <span class="n">frameCount</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span><span class="o">){</span>
<span class="n">fill</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span><span class="mi">1</span><span class="o">);</span>
<span class="n">rect</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span><span class="mi">0</span><span class="o">,</span><span class="n">width</span><span class="o">,</span><span class="n">height</span><span class="o">);</span>
<span class="o">}</span>
<span class="n">translate</span><span class="o">(</span><span class="n">width</span><span class="o">/</span><span class="mi">2</span><span class="o">,</span> <span class="n">height</span><span class="o">/</span><span class="mi">2</span><span class="o">);</span>
<span class="n">rotate</span><span class="o">(</span><span class="n">rot</span><span class="o">);</span>
<span class="n">rot</span> <span class="o">+=</span> <span class="n">PI</span><span class="o">*.</span><span class="mi">8</span><span class="o">;</span>
<span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o"><</span><span class="n">foo</span><span class="o">.</span><span class="na">length</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
<span class="n">rotate</span><span class="o">(</span><span class="n">HALF_PI</span><span class="o">/</span><span class="mi">4</span><span class="o">);</span>
<span class="n">foo</span><span class="o">[</span><span class="n">i</span><span class="o">].</span><span class="na">draw</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kd">class</span> <span class="nc">NP</span><span class="o">{</span>
<span class="kt">float</span> <span class="n">s1</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">s2</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">s3</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">v1</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">x</span><span class="o">,</span> <span class="n">y</span><span class="o">,</span> <span class="n">a</span><span class="o">;</span>
<span class="kt">int</span> <span class="n">seed</span><span class="o">;</span>
<span class="kt">int</span> <span class="n">nseed</span><span class="o">;</span>
<span class="n">color</span><span class="o">[]</span> <span class="n">carray</span><span class="o">;</span>
<span class="n">NP</span><span class="o">(</span><span class="kt">float</span> <span class="n">s1</span><span class="o">,</span> <span class="kt">float</span> <span class="n">s2</span><span class="o">,</span> <span class="kt">float</span> <span class="n">s3</span><span class="o">,</span> <span class="kt">float</span> <span class="n">v1</span><span class="o">,</span> <span class="kt">int</span> <span class="n">seed</span><span class="o">,</span> <span class="kt">int</span> <span class="n">nseed</span><span class="o">){</span>
<span class="k">this</span><span class="o">.</span><span class="na">s1</span> <span class="o">=</span> <span class="n">s1</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">s2</span> <span class="o">=</span> <span class="n">s2</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">s3</span> <span class="o">=</span> <span class="n">s3</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">v1</span> <span class="o">=</span> <span class="n">v1</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">seed</span> <span class="o">=</span> <span class="n">seed</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="na">nseed</span> <span class="o">=</span> <span class="n">nseed</span><span class="o">;</span>
<span class="n">carray</span> <span class="o">=</span> <span class="k">new</span> <span class="n">color</span><span class="o">[</span><span class="mi">5</span><span class="o">];</span>
<span class="c1">// carray[0] = color(#556270) ;</span>
<span class="c1">// carray[1] = color(#4ECDC4) ;</span>
<span class="c1">// carray[2] = color(#C7F464) ;</span>
<span class="c1">// carray[3] = color(#FF6B6B) ;</span>
<span class="c1">// carray[4] = color(#C44D58) ;</span>
<span class="n">carray</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span> <span class="o">=</span> <span class="n">color</span><span class="o">(</span><span class="err">#</span><span class="n">ffffff</span><span class="o">);</span>
<span class="n">carray</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span> <span class="o">=</span> <span class="n">color</span><span class="o">(</span><span class="err">#</span><span class="n">FF5555</span><span class="o">);</span>
<span class="n">carray</span><span class="o">[</span><span class="mi">2</span><span class="o">]</span> <span class="o">=</span> <span class="n">color</span><span class="o">(</span><span class="err">#</span><span class="n">FFF7F7</span><span class="o">);</span>
<span class="n">carray</span><span class="o">[</span><span class="mi">3</span><span class="o">]</span> <span class="o">=</span> <span class="n">color</span><span class="o">(</span><span class="err">#</span><span class="mi">000000</span><span class="o">);</span>
<span class="n">carray</span><span class="o">[</span><span class="mi">4</span><span class="o">]</span> <span class="o">=</span> <span class="n">color</span><span class="o">(</span><span class="err">#</span><span class="n">FF5555</span><span class="o">);</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">generate</span><span class="o">(){</span>
<span class="n">randomSeed</span><span class="o">(</span><span class="n">seed</span><span class="o">);</span>
<span class="n">noiseSeed</span><span class="o">(</span><span class="n">nseed</span><span class="o">);</span>
<span class="n">s1</span> <span class="o">+=</span> <span class="n">random</span><span class="o">(</span><span class="mf">0.001</span><span class="o">,</span> <span class="mf">0.01</span><span class="o">)*.</span><span class="mi">1</span><span class="o">;</span>
<span class="n">s2</span> <span class="o">+=</span> <span class="n">random</span><span class="o">(</span><span class="mf">0.01</span><span class="o">,</span> <span class="mf">0.001</span><span class="o">)*.</span><span class="mi">2</span><span class="o">;</span>
<span class="n">s3</span> <span class="o">+=</span> <span class="n">random</span><span class="o">(.</span><span class="mi">001</span><span class="o">,</span> <span class="mf">0.01</span><span class="o">);</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">noise</span><span class="o">(</span><span class="n">s1</span><span class="o">)</span> <span class="o">*</span> <span class="o">(</span><span class="n">width</span><span class="o">);</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">noise</span><span class="o">(</span><span class="n">s2</span><span class="o">)</span> <span class="o">*</span> <span class="o">(</span><span class="n">height</span><span class="o">);</span>
<span class="n">a</span> <span class="o">=</span> <span class="n">noise</span><span class="o">(</span><span class="n">s3</span><span class="o">)</span> <span class="o">*</span> <span class="o">(</span><span class="n">min</span><span class="o">(</span><span class="n">width</span><span class="o">,</span><span class="n">height</span><span class="o">));</span>
<span class="n">v1</span> <span class="o">=</span> <span class="n">noise</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">1</span><span class="o">))*</span><span class="mi">255</span><span class="o">;</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">draw</span><span class="o">(){</span>
<span class="n">generate</span><span class="o">();</span>
<span class="n">noFill</span><span class="o">();</span>
<span class="n">stroke</span><span class="o">(</span><span class="mi">255</span><span class="o">);</span>
<span class="n">strokeWeight</span><span class="o">(</span><span class="n">constrain</span><span class="o">(</span><span class="n">v1</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="mf">2.4</span><span class="o">));</span>
<span class="n">rotate</span><span class="o">(</span><span class="n">PI</span><span class="o">/</span><span class="mi">2</span><span class="o">);</span>
<span class="n">stroke</span><span class="o">(</span><span class="mi">255</span><span class="o">,</span> <span class="n">v1</span><span class="o">);</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">y</span> <span class="o">%</span> <span class="n">height</span><span class="o">/</span><span class="mi">2</span><span class="o">;</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">x</span> <span class="o">%</span> <span class="n">width</span><span class="o">/</span><span class="mi">2</span><span class="o">;</span>
<span class="n">a</span> <span class="o">=</span> <span class="n">a</span> <span class="o">%</span> <span class="n">min</span><span class="o">(</span><span class="n">width</span><span class="o">,</span> <span class="n">height</span><span class="o">)/</span><span class="mi">2</span><span class="o">;</span>
<span class="k">switch</span><span class="o">(</span><span class="n">floor</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">4</span><span class="o">))){</span>
<span class="k">case</span> <span class="mi">0</span><span class="o">:</span>
<span class="n">beginShape</span><span class="o">(</span><span class="n">QUAD_STRIP</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">1</span><span class="o">:</span>
<span class="n">beginShape</span><span class="o">(</span><span class="n">POINTS</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">2</span><span class="o">:</span>
<span class="n">beginShape</span><span class="o">(</span><span class="n">LINES</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">3</span><span class="o">:</span>
<span class="n">beginShape</span><span class="o">(</span><span class="n">POINTS</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="n">stroke</span><span class="o">(</span><span class="n">carray</span><span class="o">[</span><span class="n">floor</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">5</span><span class="o">))],</span><span class="n">v1</span><span class="o">);</span>
<span class="n">vertex</span><span class="o">(</span><span class="n">x</span><span class="o">,</span><span class="n">y</span><span class="o">);</span>
<span class="n">vertex</span><span class="o">(</span><span class="n">y</span><span class="o">,</span><span class="n">x</span><span class="o">);</span>
<span class="n">stroke</span><span class="o">(</span><span class="n">carray</span><span class="o">[</span><span class="n">floor</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">5</span><span class="o">))],</span><span class="n">v1</span><span class="o">);</span>
<span class="n">vertex</span><span class="o">(</span><span class="n">a</span><span class="o">,</span><span class="n">x</span><span class="o">);</span>
<span class="n">stroke</span><span class="o">(</span><span class="n">carray</span><span class="o">[</span><span class="n">floor</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">5</span><span class="o">))],</span><span class="n">v1</span><span class="o">);</span>
<span class="n">vertex</span><span class="o">(</span><span class="n">a</span><span class="o">,</span><span class="n">y</span><span class="o">);</span>
<span class="n">stroke</span><span class="o">(</span><span class="n">carray</span><span class="o">[</span><span class="n">floor</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">5</span><span class="o">))],</span><span class="n">v1</span><span class="o">);</span>
<span class="n">vertex</span><span class="o">(</span><span class="n">y</span><span class="o">,</span><span class="n">a</span><span class="o">);</span>
<span class="n">stroke</span><span class="o">(</span><span class="n">carray</span><span class="o">[</span><span class="n">floor</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">5</span><span class="o">))],</span><span class="n">v1</span><span class="o">);</span>
<span class="n">vertex</span><span class="o">(</span><span class="n">x</span><span class="o">,</span><span class="n">a</span><span class="o">);</span>
<span class="n">stroke</span><span class="o">(</span><span class="mi">255</span><span class="o">,</span><span class="n">v1</span><span class="o">);</span>
<span class="n">endShape</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
</code></pre></div>
Joyful Light Drawer
2011-03-10T00:00:00-08:00
http://hyde.getpoole.com/2011/03/10/joyful-light-drawer
<p><img src="http://media.tumblr.com/tumblr_lht1pduLTD1qz4ztm.png" />
<div class='player'><iframe src="http://player.vimeo.com/video/20846305?portrait=0&color=ffffff&loop=1" width="500" height="500" frameborder="0"></iframe></div></p>
<div class="highlight"><pre><code class="java"><span class="c1">//Joyful Light Drawer</span>
<span class="c1">//Derived from "Experiment in Abstract Shading" code.</span>
<span class="c1">//A lissajous curve modified to respond to mouseX, mouseY</span>
<span class="kt">float</span> <span class="n">t</span> <span class="o">=</span> <span class="mf">0.2</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">spX</span><span class="o">,</span> <span class="n">spY</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">stopVal</span><span class="o">;</span>
<span class="kt">int</span> <span class="n">myFill</span><span class="o">;</span>
<span class="c1">//color lookup array</span>
<span class="n">color</span><span class="o">[]</span> <span class="n">colors</span> <span class="o">=</span> <span class="k">new</span> <span class="n">color</span><span class="o">[</span><span class="mi">5</span><span class="o">];</span>
<span class="c1">//how many circles to use when drawing</span>
<span class="kt">int</span> <span class="n">count</span> <span class="o">=</span> <span class="mi">100</span><span class="o">;</span>
<span class="kt">void</span> <span class="nf">setup</span><span class="o">(){</span>
<span class="n">frameRate</span><span class="o">(</span><span class="mi">15</span><span class="o">);</span>
<span class="n">size</span><span class="o">(</span><span class="mi">500</span><span class="o">,</span><span class="mi">500</span><span class="o">);</span>
<span class="n">smooth</span><span class="o">();</span>
<span class="n">stopValSet</span><span class="o">();</span>
<span class="n">myFill</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
<span class="c1">//the colors to be used</span>
<span class="n">colors</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span> <span class="o">=</span> <span class="err">#</span><span class="n">DAF799</span><span class="o">;</span>
<span class="n">colors</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span> <span class="o">=</span> <span class="err">#</span><span class="mi">5</span><span class="n">FFAC6</span><span class="o">;</span>
<span class="n">colors</span><span class="o">[</span><span class="mi">2</span><span class="o">]</span> <span class="o">=</span> <span class="err">#</span><span class="mi">394541</span><span class="o">;</span>
<span class="n">colors</span><span class="o">[</span><span class="mi">3</span><span class="o">]</span> <span class="o">=</span> <span class="err">#</span><span class="n">C45923</span><span class="o">;</span>
<span class="n">colors</span><span class="o">[</span><span class="mi">4</span><span class="o">]</span> <span class="o">=</span> <span class="err">#</span><span class="n">F55302</span><span class="o">;</span>
<span class="n">background</span><span class="o">(</span><span class="mi">255</span><span class="o">);</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">draw</span><span class="o">(){</span>
<span class="c1">// change the background color every 100 frames</span>
<span class="k">if</span><span class="o">(</span><span class="n">frameCount</span><span class="o">%</span><span class="mi">100</span><span class="o">==</span><span class="mi">0</span><span class="o">){</span>
<span class="n">switchColor</span><span class="o">();</span>
<span class="o">}</span>
<span class="n">fill</span><span class="o">(</span><span class="n">myFill</span><span class="o">,</span><span class="mi">10</span><span class="o">);</span>
<span class="n">strokeWeight</span><span class="o">(</span><span class="mi">20</span><span class="o">);</span>
<span class="n">rect</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span><span class="mi">0</span><span class="o">,</span><span class="n">width</span><span class="o">,</span><span class="n">height</span><span class="o">);</span>
<span class="n">strokeWeight</span><span class="o">(</span><span class="mi">5</span><span class="o">);</span>
<span class="c1">//create a lissajous curve</span>
<span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o"><</span> <span class="n">count</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
<span class="n">spX</span> <span class="o">=</span> <span class="o">(</span><span class="n">t</span><span class="o">*</span> <span class="n">mouseX</span><span class="o">*</span><span class="n">width</span><span class="o">)</span> <span class="o">*</span> <span class="mf">0.000001</span><span class="o">;</span>
<span class="n">spY</span> <span class="o">=</span> <span class="o">(</span><span class="n">t</span><span class="o">*</span> <span class="n">mouseY</span><span class="o">*</span><span class="n">width</span><span class="o">)</span> <span class="o">*</span> <span class="mf">0.000001</span><span class="o">;</span>
<span class="n">spX</span> <span class="o">=</span> <span class="o">(</span><span class="n">width</span><span class="o">/</span><span class="mi">2</span><span class="o">)*</span><span class="n">sin</span><span class="o">(</span><span class="n">spX</span><span class="o">);</span>
<span class="n">spY</span> <span class="o">=</span> <span class="o">(</span><span class="n">height</span><span class="o">/</span><span class="mi">2</span><span class="o">)*</span><span class="n">cos</span><span class="o">(</span><span class="n">spY</span><span class="o">);</span>
<span class="n">stroke</span><span class="o">(</span><span class="n">colors</span><span class="o">[</span><span class="n">floor</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="n">colors</span><span class="o">.</span><span class="na">length</span><span class="o">))]);</span>
<span class="n">strokeWeight</span><span class="o">(</span><span class="mi">5</span><span class="o">);</span>
<span class="n">point</span><span class="o">(</span><span class="n">spX</span> <span class="o">+</span> <span class="n">width</span><span class="o">/</span><span class="mi">2</span> <span class="o">,</span> <span class="n">spY</span> <span class="o">+</span> <span class="n">height</span><span class="o">/</span><span class="mi">2</span><span class="o">);</span>
<span class="n">t</span> <span class="o">+=</span> <span class="o">.</span><span class="mi">1</span><span class="o">;</span>
<span class="o">}</span>
<span class="c1">//reset theta if it is greater than stopVal</span>
<span class="k">if</span><span class="o">(</span><span class="n">t</span> <span class="o">></span> <span class="n">stopVal</span><span class="o">){</span>
<span class="n">t</span> <span class="o">=</span> <span class="mf">0.1</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">switchColor</span><span class="o">(){</span>
<span class="k">if</span> <span class="o">(</span><span class="n">myFill</span> <span class="o">==</span> <span class="mi">0</span><span class="o">){</span>
<span class="n">myFill</span> <span class="o">=</span> <span class="mi">255</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="n">myFill</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">stopValSet</span><span class="o">(){</span>
<span class="n">stopVal</span> <span class="o">=</span> <span class="mi">50000</span><span class="o">;</span>
<span class="o">}</span>
</code></pre></div>
Stare Long
2011-03-09T00:00:00-08:00
http://hyde.getpoole.com/2011/03/09/stare-long
<p><img src="http://media.tumblr.com/tumblr_lhs31ouIzP1qz4ztm.png" />
<div class='player'><iframe src="http://player.vimeo.com/video/20823352?portrait=0&color=ffffff&loop=1" width="500" height="500" frameborder="0"></iframe></div></p>
<div class="highlight"><pre><code class="java"><span class="c1">// Sketch2</span>
<span class="c1">// CONTROLS:</span>
<span class="c1">// Click on the canvas to pause/unpause</span>
<span class="c1">// r = saves the current frame</span>
<span class="c1">// any other key while paused = step forward one frame</span>
<span class="c1">// This runs through draw to create a canvas filled with little shape. </span>
<span class="c1">// I swear I see things if I stare at this long enough.</span>
<span class="kt">float</span> <span class="n">shapeSize</span><span class="o">;</span>
<span class="n">PShape</span> <span class="n">oblong</span><span class="o">;</span>
<span class="kt">boolean</span> <span class="n">pause</span><span class="o">;</span>
<span class="kt">void</span> <span class="nf">setup</span><span class="o">()</span>
<span class="o">{</span>
<span class="n">size</span><span class="o">(</span><span class="mi">500</span><span class="o">,</span> <span class="mi">500</span><span class="o">);</span>
<span class="n">background</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
<span class="n">frameRate</span><span class="o">(</span><span class="mi">15</span><span class="o">);</span>
<span class="n">oblong</span> <span class="o">=</span> <span class="n">loadShape</span><span class="o">(</span><span class="s">"wave.svg"</span><span class="o">);</span>
<span class="n">oblong</span><span class="o">.</span><span class="na">disableStyle</span><span class="o">();</span>
<span class="n">noStroke</span><span class="o">();</span>
<span class="n">smooth</span><span class="o">();</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">draw</span><span class="o">()</span>
<span class="o">{</span>
<span class="c1">// cycle through the vertical</span>
<span class="k">for</span> <span class="o">(</span><span class="kt">float</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">x</span> <span class="o"><</span> <span class="n">height</span><span class="o">;</span> <span class="n">x</span><span class="o">+=</span><span class="n">shapeSize</span><span class="o">){</span>
<span class="c1">// then the horizontal</span>
<span class="k">for</span> <span class="o">(</span> <span class="kt">float</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">y</span> <span class="o"><</span> <span class="n">width</span><span class="o">;</span> <span class="n">y</span><span class="o">+=</span><span class="n">shapeSize</span> <span class="o">){</span>
<span class="c1">// set the size of the shape</span>
<span class="n">shapeSize</span> <span class="o">=</span> <span class="n">random</span><span class="o">(</span><span class="mi">1</span><span class="o">,</span><span class="mi">25</span><span class="o">);</span>
<span class="c1">// randomly select the color to fill the shape</span>
<span class="k">switch</span><span class="o">(</span><span class="n">floor</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">3</span><span class="o">))){</span>
<span class="k">case</span> <span class="mi">0</span><span class="o">:</span>
<span class="n">fill</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="mi">255</span><span class="o">),</span><span class="n">random</span><span class="o">(</span><span class="mi">255</span><span class="o">),</span><span class="n">random</span><span class="o">(</span><span class="mi">255</span><span class="o">));</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">1</span><span class="o">:</span>
<span class="n">fill</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="k">case</span> <span class="mi">2</span><span class="o">:</span>
<span class="n">fill</span><span class="o">(</span><span class="mi">255</span><span class="o">);</span>
<span class="k">break</span><span class="o">;</span>
<span class="o">}</span>
<span class="c1">// draw the shape</span>
<span class="n">shape</span><span class="o">(</span><span class="n">oblong</span><span class="o">,</span> <span class="n">x</span><span class="o">,</span> <span class="n">y</span><span class="o">,</span> <span class="n">shapeSize</span><span class="o">,</span> <span class="n">shapeSize</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">keyPressed</span><span class="o">(){</span>
<span class="k">if</span><span class="o">(</span><span class="n">key</span><span class="o">==</span><span class="sc">'r'</span><span class="o">){</span>
<span class="n">saveFrame</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">else</span><span class="o">{</span>
<span class="n">redraw</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">mouseClicked</span><span class="o">(){</span>
<span class="k">if</span><span class="o">(</span><span class="n">pause</span><span class="o">){</span>
<span class="n">loop</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">else</span> <span class="o">{</span>
<span class="n">noLoop</span><span class="o">();</span>
<span class="o">}</span>
<span class="n">pause</span> <span class="o">=</span> <span class="o">!</span><span class="n">pause</span><span class="o">;</span>
<span class="o">}</span>
</code></pre></div>
An Experiment in Abstract Shading
2011-02-17T00:00:00-08:00
http://hyde.getpoole.com/2011/02/17/an-experiment-in-abstract-shading
<p><p><img src="http://media.tumblr.com/tumblr_lgrquqrSCJ1qz4ztm.png" />
<div class='player'><iframe src="http://player.vimeo.com/video/20823299?portrait=0&color=ffffff&loop=1" width="500" height="500" frameborder="0"></iframe></div>
</p> </p>
<div class="highlight"><pre><code class="java"><span class="c1">//A experiment in abstract shading.</span>
<span class="kt">float</span> <span class="n">t</span> <span class="o">=</span> <span class="mf">0.2</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">spX</span><span class="o">,</span> <span class="n">spY</span><span class="o">;</span>
<span class="kt">float</span> <span class="n">stopVal</span><span class="o">;</span>
<span class="c1">//color lookup array</span>
<span class="n">color</span><span class="o">[]</span> <span class="n">colors</span> <span class="o">=</span> <span class="k">new</span> <span class="n">color</span><span class="o">[</span><span class="mi">5</span><span class="o">];</span>
<span class="c1">//how many circles to use when drawing</span>
<span class="kt">int</span> <span class="n">count</span> <span class="o">=</span> <span class="mi">100</span><span class="o">;</span>
<span class="kt">void</span> <span class="nf">setup</span><span class="o">(){</span>
<span class="n">size</span><span class="o">(</span><span class="mi">500</span><span class="o">,</span><span class="mi">500</span><span class="o">);</span>
<span class="n">smooth</span><span class="o">();</span>
<span class="n">stopValSet</span><span class="o">();</span>
<span class="c1">//the colors to be used</span>
<span class="n">colors</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span> <span class="o">=</span> <span class="err">#</span><span class="mi">811421</span><span class="o">;</span>
<span class="n">colors</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span> <span class="o">=</span> <span class="err">#</span><span class="n">a81e2e</span><span class="o">;</span>
<span class="n">colors</span><span class="o">[</span><span class="mi">2</span><span class="o">]</span> <span class="o">=</span> <span class="err">#</span><span class="n">aedfe4</span><span class="o">;</span>
<span class="n">colors</span><span class="o">[</span><span class="mi">3</span><span class="o">]</span> <span class="o">=</span> <span class="err">#</span><span class="mi">58</span><span class="n">b6dd</span><span class="o">;</span>
<span class="n">colors</span><span class="o">[</span><span class="mi">4</span><span class="o">]</span> <span class="o">=</span> <span class="err">#</span><span class="mi">00</span><span class="n">b0d8</span><span class="o">;</span>
<span class="n">background</span><span class="o">(</span><span class="mi">255</span><span class="o">);</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">draw</span><span class="o">(){</span>
<span class="c1">//draw consecutive lines, horizontally - and only on the first frame</span>
<span class="k">if</span><span class="o">(</span><span class="n">frameCount</span><span class="o">==</span><span class="mi">1</span><span class="o">){</span>
<span class="n">strokeWeight</span><span class="o">(</span><span class="mi">5</span><span class="o">);</span>
<span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o"><</span><span class="mi">60</span><span class="o">;</span> <span class="n">i</span><span class="o">+=</span><span class="mi">1</span><span class="o">){</span>
<span class="c1">//draw the line with x values 0 and the width of the sketch</span>
<span class="c1">//y1, y2 is determines by i</span>
<span class="n">line</span><span class="o">(</span><span class="mi">0</span><span class="o">,(</span><span class="n">i</span><span class="o">*</span><span class="mi">10</span><span class="o">),</span><span class="n">width</span><span class="o">,(</span><span class="n">i</span><span class="o">*</span><span class="mi">10</span><span class="o">));</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="c1">//create a lissajous curve</span>
<span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span><span class="o"><</span> <span class="n">count</span><span class="o">;</span> <span class="n">i</span><span class="o">+=</span><span class="mi">1</span><span class="o">){</span>
<span class="n">spX</span> <span class="o">=</span> <span class="o">(</span><span class="n">t</span><span class="o">*</span> <span class="n">cos</span><span class="o">(</span><span class="n">spX</span><span class="o">))</span> <span class="o">*</span> <span class="mf">0.001</span><span class="o">;</span>
<span class="n">spY</span> <span class="o">=</span> <span class="o">(</span><span class="n">t</span><span class="o">*</span> <span class="n">sin</span><span class="o">(</span><span class="n">spX</span><span class="o">))</span> <span class="o">*</span> <span class="mf">0.001</span><span class="o">;</span>
<span class="n">spX</span> <span class="o">=</span> <span class="n">height</span><span class="o">/</span><span class="mi">2</span> <span class="o">*</span> <span class="n">sin</span><span class="o">(</span><span class="n">spX</span><span class="o">);</span>
<span class="n">spY</span> <span class="o">=</span> <span class="n">width</span><span class="o">/</span><span class="mi">2</span> <span class="o">*</span> <span class="n">cos</span><span class="o">(</span><span class="n">spY</span><span class="o">);</span>
<span class="c1">//fill for the circles - black with 40% opacity</span>
<span class="n">fill</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span><span class="mi">40</span><span class="o">);</span>
<span class="n">stroke</span><span class="o">(</span><span class="n">colors</span><span class="o">[</span><span class="n">floor</span><span class="o">(</span><span class="n">random</span><span class="o">(</span><span class="n">colors</span><span class="o">.</span><span class="na">length</span><span class="o">))],</span><span class="mi">45</span><span class="o">);</span>
<span class="n">strokeWeight</span><span class="o">(</span><span class="mi">5</span><span class="o">);</span>
<span class="n">ellipse</span><span class="o">(</span><span class="n">spX</span><span class="o">+</span><span class="n">width</span><span class="o">/</span><span class="mi">2</span><span class="o">,</span><span class="n">spY</span><span class="o">+</span><span class="n">height</span><span class="o">/</span><span class="mi">2</span><span class="o">,</span> <span class="mi">20</span><span class="o">,</span><span class="mi">20</span><span class="o">);</span>
<span class="n">point</span><span class="o">(</span><span class="n">spX</span> <span class="o">+</span> <span class="n">width</span><span class="o">/</span><span class="mi">2</span><span class="o">,</span> <span class="n">spY</span><span class="o">+</span><span class="n">height</span><span class="o">/</span><span class="mi">2</span><span class="o">);</span>
<span class="n">t</span> <span class="o">+=</span> <span class="mf">0.3</span><span class="o">;</span>
<span class="n">println</span><span class="o">(</span><span class="n">t</span><span class="o">);</span>
<span class="o">}</span>
<span class="c1">//reset theta if it is greater than stopVal</span>
<span class="k">if</span><span class="o">(</span><span class="n">t</span> <span class="o">></span> <span class="n">stopVal</span><span class="o">){</span>
<span class="n">t</span> <span class="o">=</span> <span class="mf">0.2</span><span class="o">;</span>
<span class="n">stopValSet</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kt">void</span> <span class="nf">stopValSet</span><span class="o">(){</span>
<span class="n">stopVal</span> <span class="o">=</span> <span class="n">random</span><span class="o">(</span><span class="mi">2000</span><span class="o">,</span><span class="mi">5500</span><span class="o">);</span>
<span class="c1">//stopVal = 5000;</span>
<span class="o">}</span>
</code></pre></div>