<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>openFrameworks &#8211; bruzed</title>
	<atom:link href="https://www.bruzed.com/tag/openframeworks/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bruzed.com</link>
	<description>Bruce Drummond&#039;s archive of selected work</description>
	<lastBuildDate>Mon, 26 Feb 2024 21:45:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>
	<item>
		<title>social sqncr</title>
		<link>https://www.bruzed.com/social-sqncr/</link>
		
		<dc:creator><![CDATA[bruzed]]></dc:creator>
		<pubDate>Sat, 22 May 2010 19:21:14 +0000</pubDate>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[openCV]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[openGL]]></category>
		<category><![CDATA[OSC]]></category>
		<category><![CDATA[supercollider]]></category>
		<guid isPermaLink="false">http://www.bruzed.com/?p=732</guid>

					<description><![CDATA[social sqncr is an interactive audio-visual installation.]]></description>
										<content:encoded><![CDATA[<div style="width: 100%; min-height: 1px;" id="vimeo-wc-video-660361d9948df" data-js="vimeo-wc-video" data-atts="{&quot;autopause&quot;:true,&quot;autoplay&quot;:false,&quot;background&quot;:false,&quot;byline&quot;:&quot;false&quot;,&quot;color&quot;:&quot;none&quot;,&quot;controls&quot;:true,&quot;dnt&quot;:false,&quot;height&quot;:&quot;none&quot;,&quot;id&quot;:false,&quot;loop&quot;:false,&quot;maxheight&quot;:&quot;none&quot;,&quot;maxwidth&quot;:&quot;none&quot;,&quot;muted&quot;:false,&quot;pip&quot;:false,&quot;playsinline&quot;:true,&quot;portrait&quot;:&quot;false&quot;,&quot;quality&quot;:&quot;auto&quot;,&quot;responsive&quot;:false,&quot;speed&quot;:false,&quot;texttrack&quot;:&quot;none&quot;,&quot;title&quot;:&quot;false&quot;,&quot;transparent&quot;:true,&quot;url&quot;:&quot;https:\/\/vimeo.com\/11487774&quot;,&quot;width&quot;:&quot;none&quot;}"></div>
<p><strong>Role:</strong> Designer, Developer<br />
<strong>Client:</strong> Self, Parsons MFA Design and Technology Thesis<br />
<strong>Team:</strong> Nick Hardeman, Bruce Drummond<br />
<strong>Technology:</strong> C++, openFrameworks, OpenGL, OpenCV, SuperCollider, OSC, Photoshop, Maya</p>
<hr />
<p>social sqncr is an interactive audio-visual installation that aims to make people more aware of the act of creating their public identity.</p>
<p>To create their &#8216;identity&#8217;, <strong>participants use their bodies</strong> to physically interact with a pseudo-musical instrument projected in a physical space to create <strong>virtual musical creatures</strong> based on their movements. The instrument consists of eight zones that participants interact with which influence the shape, movement, and aural properties of the resulting entity.</p>
<p>Once complete, the system captures an image of the participant to attach to the creature which is then set free into <strong>an eco-system inhabited by similar entities</strong>. The entities react to one another, much like human beings in a social network. Participants can cause environmental disturbances by <strong>physically interacting</strong> with the projection.</p>
<p>The physical movements required of participants ensures a high level of investment in the process, causing a heightened awareness of their creation, and thus themselves. Watching their entity interact with other entities is a reflection of their own interaction in their social networks.</p>
<p><a href="https://www.bruzed.com/wp-content/uploads/2023/07/social_sqncr_final_paper.pdf">Final Thesis Paper</a></p>
<div style="width: 100%; min-height: 1px;" id="vimeo-wc-video-660361d994905" data-js="vimeo-wc-video" data-atts="{&quot;autopause&quot;:true,&quot;autoplay&quot;:false,&quot;background&quot;:false,&quot;byline&quot;:&quot;false&quot;,&quot;color&quot;:&quot;none&quot;,&quot;controls&quot;:true,&quot;dnt&quot;:false,&quot;height&quot;:&quot;none&quot;,&quot;id&quot;:false,&quot;loop&quot;:false,&quot;maxheight&quot;:&quot;none&quot;,&quot;maxwidth&quot;:&quot;none&quot;,&quot;muted&quot;:false,&quot;pip&quot;:false,&quot;playsinline&quot;:true,&quot;portrait&quot;:&quot;false&quot;,&quot;quality&quot;:&quot;auto&quot;,&quot;responsive&quot;:false,&quot;speed&quot;:false,&quot;texttrack&quot;:&quot;none&quot;,&quot;title&quot;:&quot;false&quot;,&quot;transparent&quot;:true,&quot;url&quot;:&quot;https:\/\/vimeo.com\/11585861&quot;,&quot;width&quot;:&quot;none&quot;}"></div>
<p><a href="https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_4.png"><img fetchpriority="high" decoding="async" class="size-full wp-image-50553 aligncenter" src="https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_4.png" alt="" width="1280" height="960" srcset="https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_4.png 1280w, https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_4-600x450.png 600w, https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_4-700x525.png 700w" sizes="(max-width: 1280px) 100vw, 1280px" /></a></p>
<p><a href="http://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_2.jpg"><img decoding="async" class="size-full wp-image-50555 aligncenter" src="http://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_2.jpg" alt="social_sqncr_2" width="1400" height="1640" srcset="https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_2.jpg 1400w, https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_2-600x703.jpg 600w, https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_2-598x700.jpg 598w" sizes="(max-width: 1400px) 100vw, 1400px" /></a> <a href="http://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_3.jpg"><img decoding="async" class="size-full wp-image-50556 aligncenter" src="http://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_3.jpg" alt="social_sqncr_3" width="1400" height="1453" srcset="https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_3.jpg 1400w, https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_3-600x623.jpg 600w, https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_3-674x700.jpg 674w" sizes="(max-width: 1400px) 100vw, 1400px" /></a> <a href="http://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_5.jpg"><img loading="lazy" decoding="async" class="size-full wp-image-50557 aligncenter" src="http://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_5.jpg" alt="social_sqncr_5" width="1400" height="1132" srcset="https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_5.jpg 1400w, https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_5-600x485.jpg 600w, https://www.bruzed.com/wp-content/uploads/2010/05/social_sqncr_5-700x566.jpg 700w" sizes="(max-width: 1400px) 100vw, 1400px" /></a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Beautiful People</title>
		<link>https://www.bruzed.com/beautiful-people/</link>
		
		<dc:creator><![CDATA[bruzed]]></dc:creator>
		<pubDate>Thu, 10 Dec 2009 16:54:32 +0000</pubDate>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<guid isPermaLink="false">http://www.bruzed.comportfolio/?p=50</guid>

					<description><![CDATA[A generative poster based on pixel data in Marilyn Manson's "Beautiful People" music video.]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.bruzed.com/wp-content/uploads/2009/12/beautiful_people_0.jpg"><img decoding="async" src="http://www.bruzed.com/wp-content/uploads/2009/12/beautiful_people_0-700x453.jpg" alt="beautiful_people_0" /></a></p>
<p>Beautiful People is a poster generated by analyzing and processing pixel data from Marilyn Manson&#8217;s &#8220;Beautiful People&#8221; music video. The software was written in C++/<a href="http://openframeworks.cc">OpenFrameworks</a>. The software analyzes histogram values for each frame in the video and generates organic elements based on these values. The size and position of each element is dictated by the average brightness of darkness of that frame in the video.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Gaussian blur and median filtering on a noisy image</title>
		<link>https://www.bruzed.com/gaussian-blur-and-median-filtering-on-a-noisy-image/</link>
		
		<dc:creator><![CDATA[bruzed]]></dc:creator>
		<pubDate>Sat, 12 Dec 2009 02:57:20 +0000</pubDate>
				<category><![CDATA[Experiments]]></category>
		<category><![CDATA[More Experiments]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<guid isPermaLink="false">http://www.bruzed.com/?p=10994</guid>

					<description><![CDATA[The column in the middle is the image with gaussian blur and the right column is the image with median &#8230; <a class="more-link" href="https://www.bruzed.com/gaussian-blur-and-median-filtering-on-a-noisy-image/">More</a>]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.bruzed.com/wp-content/uploads/2011/04/blur_filter.jpg"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-10995" src="https://www.bruzed.com/wp-content/uploads/2011/04/blur_filter-700x458.jpg" alt="" width="700" height="458" srcset="https://www.bruzed.com/wp-content/uploads/2011/04/blur_filter-700x458.jpg 700w, https://www.bruzed.com/wp-content/uploads/2011/04/blur_filter-600x393.jpg 600w, https://www.bruzed.com/wp-content/uploads/2011/04/blur_filter.jpg 1536w" sizes="(max-width: 700px) 100vw, 700px" /></a> <a href="https://www.bruzed.com/wp-content/uploads/2011/04/blur_filter1.jpg"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-10996" src="https://www.bruzed.com/wp-content/uploads/2011/04/blur_filter1-700x458.jpg" alt="" width="700" height="458" srcset="https://www.bruzed.com/wp-content/uploads/2011/04/blur_filter1-700x458.jpg 700w, https://www.bruzed.com/wp-content/uploads/2011/04/blur_filter1-600x393.jpg 600w, https://www.bruzed.com/wp-content/uploads/2011/04/blur_filter1.jpg 1536w" sizes="(max-width: 700px) 100vw, 700px" /></a></p>
<p>The column in the middle is the image with gaussian blur and the right column is the image with median filter &#8211; top amount = 2 and bottom amount = 4. The gaussian blur seems to be better at removing points of noise although I like the effect the median filter creates.</p>
<p><a title="Source" href="http://www.bruzed.com/wp-content/uploads/2011/04/blurring.zip" target="_blank" rel="noopener noreferrer">Source</a></p>
<pre class="brush: cpp; title: ; notranslate">
for (int i = 0; i &lt; width; i++){
		for (int j = 0; j &lt; height; j++){

			int pixIndex = j * width + i;

			int i_m_1 = MAX(0, i-1);
			int i_p_1 = MIN(width-1, i+1);
			int j_m_1 = MAX(0, j-1);
			int j_p_1 = MIN(height-1, j+1);

			int ne = (j_m_1 * width + i_m_1);
			int n_ = (j_m_1 * width + i    );
			int nw = (j_m_1 * width + i_p_1);
			int _e = (j     * width + i_m_1);
			int me = (j     * width + i    );
			int _w = (j     * width + i_p_1);
			int se = (j_p_1 * width + i_m_1);
			int s_ = (j_p_1 * width + i    );
			int sw = (j_p_1 * width + i_p_1);

			//place the values in the array
			sortArray&#x5B;0] = pixelsMedian1&#x5B;ne];
			sortArray&#x5B;1] = pixelsMedian1&#x5B;n_];
			sortArray&#x5B;2] = pixelsMedian1&#x5B;nw];
			sortArray&#x5B;3] = pixelsMedian1&#x5B;_e];
			sortArray&#x5B;4] = pixelsMedian1&#x5B;me];
			sortArray&#x5B;5] = pixelsMedian1&#x5B;_w];
			sortArray&#x5B;6] = pixelsMedian1&#x5B;se];
			sortArray&#x5B;7] = pixelsMedian1&#x5B;s_];
			sortArray&#x5B;8] = pixelsMedian1&#x5B;sw];

			qsort(sortArray, 9, sizeof(int), compare);

			int newValue = sortArray&#x5B;4];

			if (newValue &lt; 0) newValue = 0;
			if (newValue &gt; 255) newValue = 255;

			pixelsMedian1&#x5B;pixIndex]  = newValue;
		}
	}

	texture3.loadData(pixelsMedian1, width, height, GL_LUMINANCE);
</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Grumpus &#8211; face tracking experiment</title>
		<link>https://www.bruzed.com/grumpus-face-tracking-experiment/</link>
		
		<dc:creator><![CDATA[bruzed]]></dc:creator>
		<pubDate>Mon, 16 Nov 2009 03:43:29 +0000</pubDate>
				<category><![CDATA[Experiments]]></category>
		<category><![CDATA[More Experiments]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[Photoshop]]></category>
		<guid isPermaLink="false">http://www.bruzed.com/?p=9371</guid>

					<description><![CDATA[Face tracking experiment.]]></description>
										<content:encoded><![CDATA[<p>[vimeo http://www.vimeo.com/7564829]</p>
<p>Uses frontal face tracking, the cats eyes follow the face detected. Made with <a href="http://www.openframeworks.cc/">OpenFrameworks.</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Color tracking experiment</title>
		<link>https://www.bruzed.com/color-tracking-and/</link>
		
		<dc:creator><![CDATA[bruzed]]></dc:creator>
		<pubDate>Sun, 15 Nov 2009 09:31:22 +0000</pubDate>
				<category><![CDATA[Experiments]]></category>
		<category><![CDATA[More Experiments]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[openCV]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<guid isPermaLink="false">http://www.bruzed.com/?p=559</guid>

					<description><![CDATA[A simple color tracking app that tracks 2 colors.]]></description>
										<content:encoded><![CDATA[<p>[vimeo http://www.vimeo.com/7561515]</p>
<p>A simple color tracking app that tracks 2 colors. Made with <a href="http://www.openframeworks.cc/">OpenFrameworks</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Contrast stretching and histogram equalization</title>
		<link>https://www.bruzed.com/contrast-stretching-and-histogram-equalization/</link>
		
		<dc:creator><![CDATA[bruzed]]></dc:creator>
		<pubDate>Sat, 03 Oct 2009 02:13:40 +0000</pubDate>
				<category><![CDATA[Experiments]]></category>
		<category><![CDATA[More Experiments]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<guid isPermaLink="false">http://www.bruzed.com/?p=11003</guid>

					<description><![CDATA[Contrast stretching: do min max contrast stretching of the image. Find the minimum and maximum values of the pixels in &#8230; <a class="more-link" href="https://www.bruzed.com/contrast-stretching-and-histogram-equalization/">More</a>]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.bruzed.com/wp-content/uploads/2011/04/contrast_stretching.jpg"><img decoding="async" title="contrast_stretching" src="http://www.bruzed.com/wp-content/uploads/2011/04/contrast_stretching.jpg" alt="" /></a></p>
<p>Contrast stretching: do min max contrast stretching of the image. Find the minimum and maximum values of the pixels in an image, and then convert pixels from the source to destination like ((pixel – min) / (max – min))*255.</p>
<p><a href="http://www.bruzed.com/wp-content/uploads/2011/04/contrast.zip">Contrast stretching source</a></p>
<p><a href="http://www.bruzed.com/wp-content/uploads/2011/04/histogrameq.jpg"><img decoding="async" title="histogrameq" src="http://www.bruzed.com/wp-content/uploads/2011/04/histogrameq.jpg" alt="" /></a></p>
<p>Histogram equalization, as described here: <a href="http://en.wikipedia.org/wiki/Histogram_equalization" target="_blank" rel="noopener noreferrer">http://en.wikipedia.org/wiki/Histogram_equalization</a></p>
<p><a href="http://www.bruzed.com/wp-content/uploads/2011/04/histogram_eq.zip">Histrogram equalization source</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Experiment 1</title>
		<link>https://www.bruzed.com/experiment-1/</link>
		
		<dc:creator><![CDATA[bruzed]]></dc:creator>
		<pubDate>Sat, 26 Sep 2009 22:35:41 +0000</pubDate>
				<category><![CDATA[Experiments]]></category>
		<category><![CDATA[More Experiments]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[OSC]]></category>
		<category><![CDATA[reaktor]]></category>
		<guid isPermaLink="false">http://www.bruzed.com/?p=472</guid>

					<description><![CDATA[Reaktor and OpenFrameworks experiment]]></description>
										<content:encoded><![CDATA[<p>[vimeo http://www.vimeo.com/6676617]</p>
<p>Another prototype for thesis &#8211; a refined squid and a new tick creature created in oF. Both are hooked up to Reaktor via OSC. The squid produces the screechy sounds and the tick produces the beats.</p>
<p>[vimeo http://www.vimeo.com/6676645]</p>
<p>Here the speed at which the tick kicks it&#8217;s legs is controlled via a slider. The tempo of the beats produced by the tick are also manipulated at the same time. Created with oF, Reaktor and OSC.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The squid &#8211; oF + Reaktor</title>
		<link>https://www.bruzed.com/the-squid-of-reaktor/</link>
		
		<dc:creator><![CDATA[bruzed]]></dc:creator>
		<pubDate>Mon, 14 Sep 2009 01:19:19 +0000</pubDate>
				<category><![CDATA[Experiments]]></category>
		<category><![CDATA[More Experiments]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[OSC]]></category>
		<category><![CDATA[reaktor]]></category>
		<guid isPermaLink="false">http://www.bruzed.com/?p=458</guid>

					<description><![CDATA[Another Reaktor and OpenFrameworks experiment.]]></description>
										<content:encoded><![CDATA[<p>[vimeo http://www.vimeo.com/6560483]</p>
<p>The first prototype for thesis &#8211; hooked up Nick&#8217;s squid to Reaktor. The squid breathes and moves towards the mouse. OpenFrameworks sends OSC messages based on the squids properties to control 3 parameters in Skrewell within Reaktor &#8211; breath controls flow, x position controls filter and y position controls delay.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
