<?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>Tom / bangnoise &#187; code</title>
	<atom:link href="http://kriss.cx/tom/tag/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://kriss.cx/tom</link>
	<description></description>
	<lastBuildDate>Wed, 11 Apr 2012 17:25:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>VVFFGL</title>
		<link>http://kriss.cx/tom/2012/01/vvffgl/</link>
		<comments>http://kriss.cx/tom/2012/01/vvffgl/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 17:20:17 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[visuals]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Quartz Composer]]></category>
		<category><![CDATA[VDMX]]></category>

		<guid isPermaLink="false">http://kriss.cx/tom/?p=283</guid>
		<description><![CDATA[In 2009 vade and I developed the VVFFGL framework which provides FreeFrame GL support for VDMX. Vidvox have open-sourced our work: as well as the framework there&#8217;s a Quartz Composer plugin for running FreeFrame GL (and older FreeFrame 1.0) plugins in Quartz Composer.]]></description>
			<content:encoded><![CDATA[<p><a href="http://kriss.cx/tom/wp-content/uploads/2012/01/VDMX5-Main-Output-2012-01-24-at-17.09.01.png"><img class="alignnone size-large wp-image-284" title="TVPixel" src="http://kriss.cx/tom/wp-content/uploads/2012/01/VDMX5-Main-Output-2012-01-24-at-17.09.01-700x393.png" alt="" width="700" height="393" /></a></p>
<p>In 2009 <a href="http://vade.info/">vade</a> and I developed the <a href="http://code.google.com/p/vvffgl/">VVFFGL</a> framework which provides FreeFrame GL support for <a href="http://vidvox.net/">VDMX</a>. Vidvox have open-sourced our work: as well as the framework there&#8217;s a Quartz Composer <a href="http://code.google.com/p/vvffgl/downloads/list">plugin</a> for running FreeFrame GL (and older FreeFrame 1.0) plugins in Quartz Composer.</p>
]]></content:encoded>
			<wfw:commentRss>http://kriss.cx/tom/2012/01/vvffgl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syphon</title>
		<link>http://kriss.cx/tom/2010/11/syphon/</link>
		<comments>http://kriss.cx/tom/2010/11/syphon/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 14:42:43 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[visuals]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Syphon]]></category>

		<guid isPermaLink="false">http://kriss.cx/tom/?p=261</guid>
		<description><![CDATA[vade and I have just released Syphon for realtime video sharing between apps. Read about it at createdigitalmotion. Udart at Obscura did a nice post about Syphon too.]]></description>
			<content:encoded><![CDATA[<p>vade and I have just released <a href="http://syphon.v002.info">Syphon</a> for realtime video sharing between apps. Read about it at <a href="http://createdigitalmotion.com/2010/11/removing-the-walls-between-mac-visual-apps-syphon-beta-projects-mad-mapping/">createdigitalmotion</a>. Udart at Obscura did a nice <a href="http://www.udart.dk/2010/10/29/realtime-visuals-open-up-the-cage-with-syphon/">post about Syphon</a> too.</p>
]]></content:encoded>
			<wfw:commentRss>http://kriss.cx/tom/2010/11/syphon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GL PBO Glitch</title>
		<link>http://kriss.cx/tom/2010/09/gl-pbo-glitch/</link>
		<comments>http://kriss.cx/tom/2010/09/gl-pbo-glitch/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 00:34:22 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[visuals]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Quartz Composer]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://kriss.cx/tom/?p=239</guid>
		<description><![CDATA[A plugin for Quartz Composer to misrepresent pixel-buffer data on the GPU. Download GL PBO Glitch. See also: GL PBO Glitch source http://www.opengl.org/sdk/docs/man/xhtml/glTexImage2D.xml http://rosa-menkman.blogspot.com/2010/08/vernacular-of-file-formats-2-workshop.html pp 3-5 http://kriss.cx/tom/2010/09/gl_pixel_unpack_buffer/]]></description>
			<content:encoded><![CDATA[<p>A plugin for Quartz Composer to misrepresent pixel-buffer data on the GPU.</p>
<p><strong><a href="http://kriss.cx/tom/downloads/GL_PBO_Glitch.zip">Download GL PBO Glitch</a>.</strong></p>
<p><img class="alignnone size-large wp-image-247" title="BGRA as LUMINANCE" src="http://kriss.cx/tom/wp-content/uploads/2010/09/Screen-shot-2010-09-14-at-01.50.04-700x393.png" alt="" width="700" height="393" /></p>
<p>See also:</p>
<p><a href="http://kriss.cx/tom/downloads/GL_PBO_Glitch_Source.zip">GL PBO Glitch source</a></p>
<p><a href="http://www.opengl.org/sdk/docs/man/xhtml/glTexImage2D.xml">http://www.opengl.org/sdk/docs/man/xhtml/glTexImage2D.xml</a></p>
<p><a href="http://rosa-menkman.blogspot.com/2010/08/vernacular-of-file-formats-2-workshop.html">http://rosa-menkman.blogspot.com/2010/08/vernacular-of-file-formats-2-workshop.html</a> pp 3-5</p>
<p><a href="http://kriss.cx/tom/2010/09/gl_pixel_unpack_buffer/">http://kriss.cx/tom/2010/09/gl_pixel_unpack_buffer/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kriss.cx/tom/2010/09/gl-pbo-glitch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Feedback</title>
		<link>http://kriss.cx/tom/2010/08/feedback/</link>
		<comments>http://kriss.cx/tom/2010/08/feedback/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 23:00:05 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[visuals]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[glitch]]></category>
		<category><![CDATA[Syphon]]></category>

		<guid isPermaLink="false">http://kriss.cx/tom/?p=185</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-large wp-image-194" title="feedback 02" src="http://kriss.cx/tom/wp-content/uploads/2010/08/feedback-02-494x271.png" alt="" width="494" height="271" /><img class="alignnone size-large wp-image-195" title="feedback 03" src="http://kriss.cx/tom/wp-content/uploads/2010/08/feedback-03-494x271.png" alt="" width="494" height="271" /><img class="alignnone size-large wp-image-196" title="feedback 04" src="http://kriss.cx/tom/wp-content/uploads/2010/08/feedback-04-494x271.png" alt="" width="494" height="271" /><img class="alignnone size-large wp-image-197" title="feedback 05" src="http://kriss.cx/tom/wp-content/uploads/2010/08/feedback-05-494x271.png" alt="" width="494" height="271" /></p>
]]></content:encoded>
			<wfw:commentRss>http://kriss.cx/tom/2010/08/feedback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>v002</title>
		<link>http://kriss.cx/tom/2010/06/v002/</link>
		<comments>http://kriss.cx/tom/2010/06/v002/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 16:29:40 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[visuals]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[glitch]]></category>
		<category><![CDATA[Quartz Composer]]></category>
		<category><![CDATA[VDMX]]></category>

		<guid isPermaLink="false">http://kriss.cx/tom/?p=150</guid>
		<description><![CDATA[Recent coding work has been with vade on v002.]]></description>
			<content:encoded><![CDATA[<p>Recent coding work has been with vade on <a href="http://v002.info/">v002</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://kriss.cx/tom/2010/06/v002/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RGB Shift</title>
		<link>http://kriss.cx/tom/2009/05/rgb-shift/</link>
		<comments>http://kriss.cx/tom/2009/05/rgb-shift/#comments</comments>
		<pubDate>Sat, 02 May 2009 23:10:18 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[visuals]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Quartz Composer]]></category>
		<category><![CDATA[VDMX]]></category>

		<guid isPermaLink="false">http://kriss.cx/tom/?p=92</guid>
		<description><![CDATA[RGB Shift CI Filter for Quartz Composer. Kernel: kernel vec4 RGBEffect(sampler image, vec2 offset) { vec2 coord = destCoord(); float r = sample(image, samplerTransform(image, coord - offset)).r; vec2 ga = sample(image, samplerTransform(image, coord)).ga; float b = sample(image, samplerTransform(image, coord + offset)).b; return vec4(r, ga[0], b, ga[1]); } Filter Function: function myROIFunction(samplerIndex, dstRect, offset) {    [...]]]></description>
			<content:encoded><![CDATA[<p>RGB Shift CI Filter for Quartz Composer.</p>
<p><img class="alignnone size-large wp-image-91" title="rgb-shifted-dots" src="http://kriss.cx/tom/wp-content/uploads/2009/05/rgb-shifted-dots-700x393.png" alt="" width="700" height="393" /></p>
<p><span id="more-92"></span></p>
<h4>Kernel:</h4>
<pre>kernel vec4 RGBEffect(sampler image, vec2 offset)
{
<span>	</span>vec2 coord = destCoord();
<span>	</span>float r = sample(image, samplerTransform(image, coord - offset)).r;
<span>	</span>vec2 ga = sample(image, samplerTransform(image, coord)).ga;
<span>	</span>float b = sample(image, samplerTransform(image, coord + offset)).b;
<span>	</span>return vec4(r, ga[0], b, ga[1]);
}</pre>
<h4>Filter Function:</h4>
<pre>function myROIFunction(samplerIndex, dstRect, offset) {
   var roiRect = new Vec(dstRect);
   var extra = new Vec(Math.abs(offset.x), Math.abs(offset.y));
   if (dstRect.x &gt; extra.x)
   <span>	</span>roiRect.x -= extra.x;
   if (dstRect.y &gt; extra.y)
   <span>	</span>roiRect.y -= extra.y;
   roiRect.z += extra.x;
   roiRect.w += extra.y;
   return roiRect;
}

RGBEffect.ROIHandler = myROIFunction;

function __image main(__image image, __number amount, __number angle) {
   s = amount / 2;
   offset = new Vec(s * Math.cos(angle), s * Math.sin(angle));
   return RGBEffect.apply(image.definition, offset, image, offset);
}</pre>
<p><a href="http://kriss.cx/tom/downloads/rgb-shift.qtz">Download</a> (qcFX for VDMX)</p>
]]></content:encoded>
			<wfw:commentRss>http://kriss.cx/tom/2009/05/rgb-shift/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

