<?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>Portfolio of Michael T. Mayers</title>
	<atom:link href="http://www.tweakoz.com/michael/wordpress/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.tweakoz.com/michael/wordpress</link>
	<description>Welcome to the Machine</description>
	<lastBuildDate>Mon, 06 Sep 2010 20:15:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Adobe has a new name for an old friend, its called &#8220;Ahead of Time (AOT) compilation&#8221;.</title>
		<link>http://www.tweakoz.com/michael/wordpress/?p=788</link>
		<comments>http://www.tweakoz.com/michael/wordpress/?p=788#comments</comments>
		<pubDate>Thu, 18 Feb 2010 18:15:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tweakoz.com/michael/wordpress/?p=788</guid>
		<description><![CDATA[from http://www.adobe.com/devnet/logged_in/abansod_iphone.html
Wow, to think I have been compiling code for the last 20 years or so and I instead could have been &#8220;ahead of time&#8221; compiling it. 20 years wasted&#8230;..
mtm
]]></description>
			<content:encoded><![CDATA[<p>from http://www.adobe.com/devnet/logged_in/abansod_iphone.html</p>
<p>Wow, to think I have been compiling code for the last 20 years or so and I instead could have been &#8220;ahead of time&#8221; compiling it. 20 years wasted&#8230;..</p>
<p>mtm</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tweakoz.com/michael/wordpress/?feed=rss2&amp;p=788</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>And while I am learning ObjectiveC/ObjectiveC++&#8230;.</title>
		<link>http://www.tweakoz.com/michael/wordpress/?p=783</link>
		<comments>http://www.tweakoz.com/michael/wordpress/?p=783#comments</comments>
		<pubDate>Mon, 15 Feb 2010 10:44:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tweakoz.com/michael/wordpress/?p=783</guid>
		<description><![CDATA[This guy eloquently enumerates some reasons I like C++.
Although I do imagine once I get a C++0x compiler, I will like it the most..
D has a lot of promise also&#8230;..
]]></description>
			<content:encoded><![CDATA[<p><a href="http://cplusplus-soup.com/2010/01/09/advantages-of-c-over-c/#more-176">This guy</a> eloquently enumerates some reasons I like C++.<br />
Although I do imagine once I get a C++0x compiler, I will like it the most..<br />
D has a lot of promise also&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tweakoz.com/michael/wordpress/?feed=rss2&amp;p=783</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Currently learning ObjectiveC/ObjectiveC++</title>
		<link>http://www.tweakoz.com/michael/wordpress/?p=778</link>
		<comments>http://www.tweakoz.com/michael/wordpress/?p=778#comments</comments>
		<pubDate>Sat, 13 Feb 2010 16:32:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apple iPad ObjectiveC ObjectiveC++ Orkid Reflection Introspection]]></category>

		<guid isPermaLink="false">http://www.tweakoz.com/michael/wordpress/?p=778</guid>
		<description><![CDATA[My new employer bought me a shiny new 17&#8243; MacBook Pro.
Currently developing an iPad application.
Needless to say, my biggest obstacles are ObjectiveC/ObjectiveC++.
I am guessing the best way to learn would be re-implementing Orkid&#8217;s C++ static introspection/reflection system in terms of ObjectiveC++ to see what ObjectiveC++ actually buys me in dynamic features.
Shame It wont be portable [...]]]></description>
			<content:encoded><![CDATA[<p>My new employer bought me a shiny new 17&#8243; MacBook Pro.<br />
Currently developing an iPad application.<br />
Needless to say, my biggest obstacles are ObjectiveC/ObjectiveC++.<br />
I am guessing the best way to learn would be re-implementing Orkid&#8217;s C++ static introspection/reflection system in terms of ObjectiveC++ to see what ObjectiveC++ actually buys me in dynamic features.<br />
Shame It wont be portable to MSVC++. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.tweakoz.com/michael/wordpress/?feed=rss2&amp;p=778</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmer Art</title>
		<link>http://www.tweakoz.com/michael/wordpress/?page_id=615</link>
		<comments>http://www.tweakoz.com/michael/wordpress/?page_id=615#comments</comments>
		<pubDate>Tue, 26 Jan 2010 19:10:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tweakoz.com/michael/wordpress/?page_id=615</guid>
		<description><![CDATA[
Being a graphics programmer, I often need to make art to test engine features, or familiarize myself with the artist&#8217;s pipeline. (Or even because it is fun)
Here is some of that art. They call it programmer art for a reason. ;>

Jan 24, 2010:
ZMan3: (ZBrush 3.5r3)
3rd attempt at using zsphere sculpt with armatures. Also used planar-cut, [...]]]></description>
			<content:encoded><![CDATA[<hr />
Being a graphics programmer, I often need to make art to test engine features, or familiarize myself with the artist&#8217;s pipeline. (Or even because it is fun)<br />
Here is some of that art. They call it <a href="http://en.wikipedia.org/wiki/Programmer_art">programmer art</a> for a reason. ;></p>
<hr />
Jan 24, 2010:<br />
ZMan3: (<a href="http://www.pixologic.com/zbrush/features/01_UI/">ZBrush 3.5r3</a>)<br />
3rd attempt at using zsphere sculpt with armatures. Also used planar-cut, smooth-valence, inflat, nudge, and pinch. There are so many brushes and so little time to learn ;>.<br />
My anatomy skills leave something to be desired.<br />
<a href="http://www.tweakoz.com/portfolio/ezweb/ZGrab01.jpg"><img src="http://www.tweakoz.com/portfolio/ezweb/ZGrab01Small.jpg"></a>   <a href="http://www.tweakoz.com/portfolio/ezweb/ZGrab02.jpg"><img src="http://www.tweakoz.com/portfolio/ezweb/ZGrab02Small.jpg"></a>   <a href="http://www.tweakoz.com/portfolio/ezweb/ZGrab03.jpg"><img src="http://www.tweakoz.com/portfolio/ezweb/ZGrab03Small.jpg"></a></p>
<hr />
Jan 19, 2010:<br />
ZMan2: (<a href="http://www.pixologic.com/zbrush/features/01_UI/">ZBrush 3.5r3</a>)<br />
2nd attempt at using zspheres.<br />
Used AUVTile UV mapping, baked normalmaps, applied a CgFX shader and Rigged/Animated it.<br />
This one is kind of demented, you have been warned.<br />
I keep hearing it looks like Silent Hill. I have never played it.<br />
I was going for more twisted than you would find in a commercially available game. I guess I will have to try harder.<br />
<a href="http://www.tweakoz.com/portfolio/ezweb/zman2a.avi">http://www.tweakoz.com/portfolio/ezweb/zman2a.avi</a></p>
<p>Here is ZMan2 looking a little more business like. (Playing with polypaint)<br />
<a href="http://www.tweakoz.com/portfolio/ezweb/ZGrab04.jpg"><img src="http://www.tweakoz.com/portfolio/ezweb/ZGrab04Small.jpg"></a></p>
<hr />
There is more programmer art <a href="http://www.tweakoz.com/michael/wordpress/?page_id=5">here (procedural textures)</a>.<br />
In the interest of not repeating things on the portfolio I will just link it here.</p>
<hr />
]]></content:encoded>
			<wfw:commentRss>http://www.tweakoz.com/michael/wordpress/?feed=rss2&amp;page_id=615</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shared</title>
		<link>http://www.tweakoz.com/michael/wordpress/?page_id=504</link>
		<comments>http://www.tweakoz.com/michael/wordpress/?page_id=504#comments</comments>
		<pubDate>Fri, 22 Jan 2010 21:26:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tweakoz.com/michael/wordpress/?page_id=504</guid>
		<description><![CDATA[
ipad accelerometer emulation
A deeply skeptical look at a deeply sceptical look at c++
C++Soup
C++ vs C# Performance Comparison(Revisited)
HLVM Raytracing
cool gfx tricks by toneburst
FFMPEG Video conversion cheat sheet
Using ffmpeg to manipulate audio and video files
FFmpeg x264 encoding guide
SimdApps(Intel, PDF)
Blocked SOA


Found myself wanting to radix-sort some floats today, which led me here&#8230;
Radix Sort Revisited


]]></description>
			<content:encoded><![CDATA[<hr />
<a href="http://arstechnica.com/apple/news/2010/02/isimulate-pipes-gestures-and-more-into-ipad-simulator.ars">ipad accelerometer emulation</a><br />
<a href="http://www.reddit.com/comments/6xafe/a_deeply_skeptical_look_at_c0x/">A deeply skeptical look at a deeply sceptical look at c++</a><br />
<a href="http://cplusplus-soup.com/">C++Soup</a><br />
<a href="http://systematicgaming.wordpress.com/2009/01/04/performance-c-vs-c-revisted/">C++ vs C# Performance Comparison(Revisited)</a><br />
<a href="http://flyingfrogblog.blogspot.com/2010/01/hlvm-on-ray-tracer-language-comparison.html">HLVM Raytracing</a><br />
<a href="http://vimeo.com/user340793">cool gfx tricks by toneburst</a><br />
<a href="http://www.m3fe.com/31765">FFMPEG Video conversion cheat sheet</a><br />
<a href="http://howto-pages.org/ffmpeg/#basicvideo">Using ffmpeg to manipulate audio and video files</a><br />
<a href="http://rob.opendot.cl/index.php/useful-stuff/ffmpeg-x264-encoding-guide/">FFmpeg x264 encoding guide</a><br />
<a href="http://download.intel.com/technology/itj/Q21999/PDF/apps_simd.pdf">SimdApps(Intel, PDF)</a><br />
<a href="http://v5.kazzuya.com/2009/05/bs-bsao.html">Blocked SOA</a><br />
</p>
<hr />
Found myself wanting to radix-sort some floats today, which led me here&#8230;<br />
<a href="http://www.codercorner.com/RadixSortRevisited.htm">Radix Sort Revisited</a></p>
<hr />
<ul class="gReader-list"><li class="gReader-item gReader-item-1"><a href="http://www.youtube.com/watch?v=UYIPg8TEMmU&feature=player_embedded#" title="link to post" target="_blank"  class="gReader-title">YouTube - NVIDIA GF100 Fluids Demo</a><div class="gReader-date"><span class="preface">Published: </span>January 22, 2010</div><div class="gReader-source"><span class="preface">Source: </span><a href="http://www.youtube.com/" target="_blank"  title="source blog">www.youtube.com</a></div><div class="gReader-notes"><span class="preface">My Note:  </span>yep..</div><div class="gReader-desc">

</div></li><li class="grMore"><a href="http://www.google.com/reader/shared/05786106786667527120" target="_blank" >See all shared items</a></li><li class="grCredit"><small>Plugin by <a href="http://www.cmurrayconsulting.com/software/google-reader-shared-wordpress/" title="Expert WordPress Developers" target="_blank">C. Murray Consulting</a></small></li></ul>
<hr />
]]></content:encoded>
			<wfw:commentRss>http://www.tweakoz.com/michael/wordpress/?feed=rss2&amp;page_id=504</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Rasterizer</title>
		<link>http://www.tweakoz.com/michael/wordpress/?page_id=464</link>
		<comments>http://www.tweakoz.com/michael/wordpress/?page_id=464#comments</comments>
		<pubDate>Thu, 21 Jan 2010 08:57:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tweakoz.com/michael/wordpress/?page_id=464</guid>
		<description><![CDATA[

Jan 21, 2010:
This is the software renderer for Orkid I just started. It is a side project to address my interest in software renderers. I also have a practical need for it, and I will not be rushing this out. I made a simple raytracer for baking lightmaps in the last project I worked on [...]]]></description>
			<content:encoded><![CDATA[<div style="margin-left: 150px; margin-right: 150px; padding: 10px;" >
<p align="left">
Jan 21, 2010:<br />
This is the software renderer for Orkid I just started. It is a side project to address my interest in software renderers. I also have a practical need for it, and I will not be rushing this out. I made a simple raytracer for baking lightmaps in the last project I worked on and this renderer when finished will likely take its place. Previously, I had also tried using <a href="http://www.renderpixie.com/">Pixie</a> and <a href="http://blogs.nvidia.com/gelato/">Gelato</a> (<a href="http://en.wikipedia.org/wiki/Reyes_rendering">REYES</a> renderers) for baking lightmaps, AO, etc&#8230;. And while they do work, they were buggy and the way they go about baking to a map with non overlapping UV&#8217;s is horribly inefficient. They are designed to render to a camera view or to a &#8217;spatial database&#8217;, and in either case you have to turn visibility culling and view based dicing off and they end up doing way too much work (time and memory) for what you need. The ideal baker rasterizes triangles directly into UV space. The ideal baker can still use raytracing or whatever other method it needs to compute the color, but the decision of which pixels to actually compute falls to the UV space rasterizer. I am sure these are issues that <a href="http://www.illuminatelabs.com/products/turtle"> Turtle </a> has had to deal with.</p>
<p>This renderer is heavily threaded via a thread pool with <a href="http://www.threadingbuildingblocks.org/files/documentation/a00129.html">concurrent job queues</a> and other atomic building blocks. The transformation pipeline is data parallel (fixed at 64 jobs). Each job handles 1/64th of the polys. Each transformation pipeline job distributes the poly to the appropriate tiles (buckets). Each bucket can atomically add polys without locks, so that each bucket can receive polys from multiple threads efficiently and concurrently. The tile rasterizers are also data parallel. The number of jobs is computed dynamically based on screensize. It divides the screen up into NxN pixel tiles (currently N=128). Task parallelism via the pipeline pattern is coming soon. It will require multi-buffered buckets.</p>
<p>It started out using a Z buffer, recently I switched to a <a href="http://en.wikipedia.org/wiki/Reyes_rendering">REYES</a> style <a href="http://www.cs.unc.edu/~lastra/Courses/COMP290_F2005/Notes/12_A-Buffer.ppt">A buffer/Compositor/Hider</a> for per pixel z sorted translucent fragment lists. I will probably end up making it configurable, the Z buffer is much faster and will still come in handy sometimes. A Renderman like shader language or environment is planned. I plan on doing light shaders, surface shaders, atmospheric and volume shaders. I&#8217;m not sold on displacement shaders yet (normalmaps seem fine for the kind of things I plan on using this for).. I will also add in a trace family of functions for ray-tracing, AO and SSS baking.</p>
<p>All performance figures are for a dual Xeon 2.26ghz E5520 machine with all 8 cores (16 ht cores) enabled running Windows7 X64 with a 32bit executable. It is not SIMD optimized yet. I am also not using indexed triangles yet (and therefore also not using a post xform cache). While performance is important, I will be primarily aiming for image quality. Once I get the basic features ironed out and solid, I am going to move a few pipeline stages over to OpenCL/CUDA.  I could probably save a lot of time by using CUDA/OpenCL directly as the shading language. The model is shown here with only back faces so you can see the internal complexity of the object (usually it would be hidden by the outer walls). The test model has approximately 350K triangles. </p>
<p>Note: some video captures are colored incorrectly because Fraps has a swizzling/surface format bug with direct2d, I believe R and B are swapped. I have recently switched to using ffmpeg, these captures are <a href="http://maidus.blogspot.com/2006/08/moment-for-comedy-fine-and-dandy.html">both fine and dandy</a>.
</p>
</div>
<hr />
<p align="center">
(Version: Feb04)</p>
<div style="margin-left: 150px; margin-right: 150px; padding: 10px;">
Spherical environment mapping working in OpenCL with 2d image objects and samplers. I was very surprised to find out OpenCL does not have float3 support, so I have to use float4 for normals. Also the NVidia OpenCL compiler is very buggy. It chokes horribly on commented out code.<br />
<a href="http://www.tweakoz.com/portfolio/ezweb/mframe_0001.jpg"><img src="http://www.tweakoz.com/portfolio/ezweb/th_mframe_0001.jpg"></a><br />
Next I am going to see if porting the triangle scan converter and aa resolver to OpenCL help performance.<br />
Sharing buffers between stages should get me less host<>opencl data movement traffic.<br />
Or maybe I should do a ray marching volume shader. So many choices&#8230;
</div>
</p>
<hr />
<p align="center">
(Version: Feb01)</p>
<div style="margin-left: 150px; margin-right: 150px; padding: 10px;">
The Renderer is now computing fragments in OpenCL. What a PITA! Dealing with broken NVidia SDK&#8217;s (I had to &#8216;hot rod&#8217; the NVidia SDK with the OpenCL headers and libs from the ATI stream SDK (see <a href="http://forums.nvidia.com/index.php?showtopic=156175"> this post </a>). At least it works now! </p>
<p>It is currently a bit slower on a Geforce260core216 than a 2x Xeon E5520, This is most likely due to:</p>
<ul>
<li>Very simple shader (barycentric->color with no conditionals), => The math/overhead ratio is lower. ( source code to shader: <a href="http://www.tweakoz.com/portfolio/testshader.cl">here</a> ) .</li>
<li>The need for locking (OpenCL cannot enqueue kernels from multiple threads, so only 1 tile buffer can access the OpenCL device at a time). The CPU version needs absolutely no locking, as it relies upon atomic operations when dealing with concurrent containers.</li>
<li>PCI-Express data movement overhead.</li>
<li>Bottleneck elsewhere in the pipeline.</li>
<li>Shiny new untested OpenCL drivers?.</li>
</ul>
<p>The Performance gap should shift drastically into OpenCL&#8217;s favor when I get a more complicated shader in..
</p>
</div>
<p align="center">Heres a more recent performance table.<br />
A-Buffer enabled.<br />
Backface culling off.<br />
All fragments 50% translucent for A-Buffer performance testing.<br />
32&#215;32 tile size (or 32&#215;32x3&#215;3 for 9xAA).<br />
16 CPU threads.<br />
2x Xeon E5520.<br />
Windows7 X64<br />
Geforce260Core216 (196.21 drivers).<br />
OpenCL (hacked NVIDIA SDK 2.3a with ATI stream headers and static library).<br />
Local WorkGroup Size: 512 (or 1 &#8211; does not make a difference)<br />
Still ~350K triangles without shared vertices.<br />
Average Depth Complexity==2</p>
<table align="center" border="1">
<tr>
<td align="center">AAMode/Res</td>
<td align="center">Frames/Sec</td>
<td align="center">OpenCL</td>
<td align="center">Notes</td>
</tr>
<tr>
<td align="center">No AA 640&#215;480</td>
<td align="center">9.993 FPS</td>
<td align="center">Disabled</td>
<td align="center">*10.57 FPS (Shade: Enabled, Resolve: Disabled)</td>
</tr>
<tr>
<td align="center">No AA 640&#215;480</td>
<td align="center">8.12 FPS</td>
<td align="center">Enabled</td>
<td align="center">*8.55 FPS (Shade: Enabled, Resolve: Disabled)</td>
</tr>
<tr>
<td align="center">No AA 1920&#215;1080</td>
<td align="center">3.87 FPS</td>
<td align="center">Disabled</td>
</tr>
<tr>
<td align="center">No AA 1920&#215;1080</td>
<td align="center">2.43 FPS</td>
<td align="center">Enabled</td>
</tr>
<tr>
<td align="center">9X AA 1920&#215;1080</td>
<td align="center">0.672 FPS</td>
<td align="center">Disabled</td>
<td align="center">*0.814 FPS (Shade: Enabled, Resolve: Disabled)</td>
</tr>
<tr>
<td align="center">9X AA 1920&#215;1080</td>
<td align="center">0.593 FPS</td>
<td align="center">Enabled</td>
<td align="center">*0.657 FPS (Shade: Enabled, Resolve: Disabled)</td>
</tr>
</table>
<hr />
<p align="center">
(Version: Jan29)</p>
<div style="margin-left: 150px; margin-right: 150px; padding: 10px;">
Our second shader! It is written in C++ (not in a shading language). Normals interpolation working. Texture/Samplers working. Spherical environment mapping, etc&#8230; You can really see the A-Buffer&#8217;s perfect depth sorted translucency in this video.</p>
</div>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/hujl2Avg6Rc&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/hujl2Avg6Rc&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p align="center">720p Always</p>
<hr />
<p align="center">
(Version: Jan28)</p>
<div style="margin-left: 150px; margin-right: 150px; padding: 10px;">
Our first shader! It is written in C++ (not in a shading language). The full shading pipe is not yet implemented. That said, it is still a shader!<br />
It is a composite of object-space face normals, a grid in object-space, and a single octave of object-space noise modulating another grid.<br />
Spent way too much time fiddling with ffmpeg and YouTube trying to get a decent quality video. At least now I have a reasonable transcoding process ironed out..
</p>
</div>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/J5uvwsXvGP8&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/J5uvwsXvGP8&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p align="center">Also recommended in 1280&#215;720.</p>
<hr />
<p align="center">
(Version: Jan26)</p>
<div style="margin-left: 150px; margin-right: 150px; padding: 10px;">
The A-Buffer is working and the Z-Buffer is disabled. Obviously, performance dropped quite a bit. Every fragment now has to allocate a rend_fragment struct from a fragment pool and add it to a per pixel linked list. There is a single fragment pool per tile buffer (and therefore 1 per thread). The fragment pool does help quite a bit by batching up heap allocations. The fragment pools have a reset function which just resets counters so that next frame the recycled fragments are used first and heap traffic is greatly reduced. After the tile has computed all fragments then they are composited in the AA resolve step. I don&#8217;t have fragment Z sorting working yet, I am undecided on if it will happen on the fly at list addition or as a postprocess in the composite phase. Maintaining good data and instruction cache locality would lead me to try the postprocess phase first (probably using a radix sort).
</p>
</div>
<p align="center"><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/9XhkfU6zzXw&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/9XhkfU6zzXw&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
</p>
<p align="center">I recommend this one in 1280&#215;720.<br />
Here you can see the A-Buffer working.<br />
The triangles are colorized with their barycentric coordinates, this help visualize the mesh topology, and also depth complexity.
</p>
<hr />
<p align="center">
(Version: Jan25)<br />
Here is the current performance table with Perspective correct UV interpolation and differing AA modes.<br />
Note: I am not filling the screen, the performance stats represent the screen fill coverage that you see in the videos. However, Overdraw and AA-Resolve are included.<br />
There is 1 tile buffer per thread in the threadpool (currently 32). With fixed assignment, this removes the need for locking on tile buffers and still allows concurrency.
</p>
<p align="center">
<table align="center" border="1">
<tr>
<td align="center">AAMode/Res</td>
<td align="center">Frames/Sec</td>
<td align="center">MPix/Sec</td>
<td align="center">TileBuffer Ram (RGBAZ) (32&#215;128x128xAA)</td>
</tr>
<tr>
<td align="center">No AA 1920&#215;1080</td>
<td align="center">~20 FPS</td>
<td align="center">~41 MPPS</td>
<td align="center">~4MB (32&#215;128x128&#215;1)</td>
</tr>
<tr>
<td align="center">4xAA 1920&#215;1080</td>
<td align="center">~15 FPS</td>
<td align="center">~124 MPPS</td>
<td align="center">~16MB (32&#215;128x128&#215;4)</td>
</tr>
<tr>
<td align="center">9xAA 1920&#215;1080</td>
<td align="center">~9 FPS</td>
<td align="center">~168 MPPS</td>
<td align="center">~36MB (32&#215;128x128&#215;9)</td>
</tr>
<tr>
<tr>
<td align="center">16xAA 1920&#215;1080</td>
<td align="center">~7 FPS</td>
<td align="center">~232 MPPS</td>
<td align="center">~64MB (32&#215;128x128&#215;16)</td>
</tr>
<tr>
<td align="center">25xAA 1920&#215;1080</td>
<td align="center">~5 FPS</td>
<td align="center">~259 MPPS</td>
<td align="center">~100MB (32&#215;128x128&#215;25)</td>
</tr>
<tr>
<td align="center">49xAA 1920&#215;1080</td>
<td align="center">~2.8 FPS</td>
<td align="center">~284 MPPS</td>
<td align="center">~205MB (32&#215;128x128&#215;49)</td>
</tr>
<tr>
<td align="center">100xAA 1920&#215;1080</td>
<td align="center">~1.5 FPS</td>
<td align="center">~315 MPPS</td>
<td align="center">~400MB (32&#215;128x128&#215;100)</td>
</tr>
<tr>
<td align="center">256xAA 1920&#215;1080</td>
<td align="center">~0.868 FPS</td>
<td align="center">~461 MPPS</td>
<td align="center">~256MB (32&#215;64x64&#215;256)</td>
</tr>
</table>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/FIksNd8rGZk&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/FIksNd8rGZk&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p align="center">Screenshot of 25XAA<br />
<a href="http://www.tweakoz.com/portfolio/ezweb/rasterizer_large.jpg"><img src="http://www.tweakoz.com/portfolio/ezweb/rasterizer_small.jpg"></a>
</p>
<hr />
<p align="center">
(Version: Jan24)<br />
It currently runs at interactive rates (~25-28hz) at 1920&#215;1080.<br />
Currently it is more geometry bound than fill bound, this will change of course when I start sampling textures and computing shaders.
</p>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/kiixXzu6RSQ&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/kiixXzu6RSQ&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<hr />
<p align="center">
(Version: Jan21)<br />
You can see that polys that span tile boundaries are currently dropped, this will be fixed soon.
</p>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ivjd2VW0VUE&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ivjd2VW0VUE&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<hr />
<p align="center">
This is just a little tool I made to debug my rasterizer&#8217;s pixel coverage and fill rules.</p>
<p>(Newer Version)<br />
Fixed the fill rules
</p>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/CbdovgxOaK8&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/CbdovgxOaK8&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p align="center">
(Older Version)<br />
Apparently, I still have some debugging to do with it ;>
</p>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/BpaTGULdIaE&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/BpaTGULdIaE&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<hr />
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tweakoz.com/michael/wordpress/?feed=rss2&amp;page_id=464</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shaders</title>
		<link>http://www.tweakoz.com/michael/wordpress/?page_id=444</link>
		<comments>http://www.tweakoz.com/michael/wordpress/?page_id=444#comments</comments>
		<pubDate>Fri, 15 Jan 2010 00:31:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tweakoz.com/michael/wordpress/?page_id=444</guid>
		<description><![CDATA[Here are some of the shaders I have worked on in the past.
In some cases I will show programmer art, as the point is to showcase the shader and not the specific model

There are some new shaders coming soon.
I have to wait until our last game (GravJet Racing) passes XBLA cert. As soon as it [...]]]></description>
			<content:encoded><![CDATA[<p align="center">Here are some of the shaders I have worked on in the past.<br />
In some cases I will show programmer art, as the point is to showcase the shader and not the specific model</p>
<hr />
<p align="center">There are some new shaders coming soon.<br />
I have to wait until our last game (GravJet Racing) passes XBLA cert. As soon as it does, I can put them up.. Stay tuned..<br />
for now look <a href="http://www.gamerbytes.com/2009/09/leaked_screenshots_concept_art.php">here</a>. I did all the shaders for that game.<br />
I am allowed to show these privately to potential employers, if you are interested contact me at michael at tweakoz.com.
</p>
<hr />
<p align="center">Here are some more miscellaneous shaders I have written in 2007-2009. Some of them were originally shader bugs, and I thought they looked cool, so I kept them around&#8230; The model&#8217;s shaders have In-Maya CgFx and In-Engine HLSL/CgFx versions.</p>
<p align="center">
<ul>
<li>Multilayered with normal maps</li>
<li>Octave noise</li>
<li>A few fullscreen effect shaders
<ul>
<li>Ghostly</li>
<li>Glow</li>
<li>Afterlife</li>
<li>Painterly</li>
</ul>
</li>
</ul>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/PDLu1HBq1Ww&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PDLu1HBq1Ww&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/KMV5HTxyJ0E&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/KMV5HTxyJ0E&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/q7t8SdFhi8Q&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/q7t8SdFhi8Q&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<hr />
Frogman Shader (2007)<br />
This is really a modified and abused parallax shader. The subdermal layer is created by animating the parallax depth parameter. There are also 3 normal maps, the main artist supplied normal map, and 2 detail normal maps. You can see the normal maps change strength in the video. The model and texturing was done by <a href="http://www.koryanderson.com">Kenneth Anderson</a> at Santa Cruz Games.</p>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/CKZUReH6Eh8&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/CKZUReH6Eh8&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<hr />
<p align="center">Anisotropic Shaders</p>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/JCC8jWm0kas&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/JCC8jWm0kas&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<hr />
]]></content:encoded>
			<wfw:commentRss>http://www.tweakoz.com/michael/wordpress/?feed=rss2&amp;page_id=444</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Music</title>
		<link>http://www.tweakoz.com/michael/wordpress/?page_id=381</link>
		<comments>http://www.tweakoz.com/michael/wordpress/?page_id=381#comments</comments>
		<pubDate>Tue, 12 Jan 2010 14:00:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tweakoz.com/michael/wordpress/?page_id=381</guid>
		<description><![CDATA[
If you can tolerate some repetiveness, bad lyrics and sometimes bad timing, then here is some of the music I do. I wish I had more time to spend on it. Crunching in the games industry sucks up all my time. Most of the items here are more like song fragments or sketches (Again,  [...]]]></description>
			<content:encoded><![CDATA[<div style="margin: 100px; padding: 10px; background-color: #000000" >
If you can tolerate some repetiveness, bad lyrics and sometimes bad timing, then here is some of the music I do. I wish I had more time to spend on it. Crunching in the games industry sucks up all my time. Most of the items here are more like song <em class="style1">fragments</em> or <em class="style1">sketches</em> (Again,  due to lack of time). The average length of time spent working on each piece is probably around 4-8 hours, from initial composition to mixing. The repetitiveness comes in because of good ol copy and paste. The bad timing because I don&#8217;t practice enough. And the bad lyrics, well, I&#8217;m not a poet, and I certainly know it (I usually spend about 1 or 2 minutes on the lyrics). And the singing, uggh &#8211; Good thing I have a day job ;&gt; Seriously though, If I spent more time on it I&#8217;m sure I could come up with something half decent. As a general rule I do not used canned loops, though there are a few exceptions.<br />
And yes, I really do go a year or two between writing song fragments (you can tell;&gt;). My new years resolution for 2010 is to spend some more time on da music. I am guessing a well done single song will probably take on the order of 100hrs of work. Maybe I will actually get a full song out this year.</p>
<p>All music here (except prayers for rain and testesture) is copyright 1991-2010 Michael T.Mayers (and friends).</p>
<p>This material has not been mastered properly.<br />
For best results listen to it on some nice bassy headphones with a nice headphone amp. (Like which I engineered it on)</p>
<p align="center"><a href="http://www.audioreview.com/PRD_118049_2750crx.aspx#reviews">sony mdr 7506&#8217;s (They make a huge difference) </a> </p>
</div>
<div style="margin: 100px; padding: 10px; background-color: #000000; color: #f00000;" >
<hr/>
<h3 align="center" style="color: #fff;">Solo Works (2010)</h3>
<p align="center">
Skinny Puppy Dance Remix, Testure, Indian Percussion.<br />
WTF was I thinking? &#8230;. ;>
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/Testure1.mp3">Testxture</a><br />
Testure: Original Composition: Copyright 1988 Skinny Puppy</p>
<hr/>
<p align="center">
All in <a href="http://www.reaper.fm/">Reaper</a>, No external equipment, All &#8220;performance&#8221; in the MIDI editor (even the drums).<br />
Just a test. Learning Reaper (so far, Reaper rocks!)
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/Situation.mp3">Situation</a></p>
<hr/>
<p align="center">
K2VX/VSynth, and Sonar 2.0<br />
Just practicing.
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/Cage2010.mp3">Cage2010</a></p>
<hr />
<h3 align="center" style="color: #fff;">TweakoZ And Friends (2010)</h3>
<p align="center">
This is an ambient collage made from some recordings at our party in 2003 and some random older material.<br />
It brings new meaning to the term &#8220;mashup&#8221;.<br />
I will warn you in advance, it is 15 minutes long and it goes all over the place.<br />
Much of it is random, but it gets surprisingly cohesive in a few spots and somehow a progression emerged.<br />
Collage is fun, for 12 hours of arranging and mixing I get 15 minutes of music (if you can call it music ;&gt;).<br />
It started out as an exercise in dense arranging and mixing.<br />
How many layers can you cram in and still have enough clarity to make out the pieces?<br />
Because of the mix density, a nice set of headphones are recommended for hearing all the details.<br />
I have a ton of old DATS to go thru, I think I will to do another..<br />
I am a little at odds between the heavier effected version and the cleaner version, so I put both up.
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/wtf_clean.mp3">WTF (Cleaner Version)</a></p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/wtf.mp3">WTF, aka &#8220;for those with an unusually high tolerance for sculpted noise&#8221; or &#8220;dueling multiband compressors&#8221;</a></p>
<p align="center" style="color: #bbb; font-size:11px;">
Copyright 2010 TweakoZ And Friends<br />
Recording/Arranging/Mixing/Bass/Keyboards/Engineering &#8211; Michael T. Mayers<br />
Vocals- Spookus Dotticus And The Wolf<br />
Guitar- Michael Ulrick<br />
Ambience- The Party Goers
</p>
<hr />
<h3 align="center" style="color: #fff;">Solo Works (2008)</h3>
<p align="center">
Just messing around with the caps lock keyboard in Logic Audio.
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/Tweakmix08Remaster.mp3">Tweakmix08</a></p>
<hr />
<h3 align="center">Solo Works (2007)</h3>
<p align="center">
K2VX/VSynth, and Sonar 2.0
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/hallomix.mp3">HalloMix</a></p>
<p align="center" style="color: #bbb; font-size:11px;">
Copyright 2010 Michael T. Mayers<br />
Composition/Keyboards/Vocals/Engineering &#8211; Michael T. Mayers
</p>
<hr />
<h3 align="center" style="color: #fff;">Solo Works (2002, 2003)</h3>
<p align="center">
korg triton, kurzweil k2000R, Digitech 2120 artist, many plugins and Sonar2.0
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/helpless.mp3">Helpless</a></p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/easter_mix2f.mp3">EasterMix</a></p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/numb.mp3">Numb</a></p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/untitled.mp3">Untitled</a></p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/egypt2.mp3">Egypt2</a></p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/prayersforrain.mp3">Prayers For Rain (Cure Cover)</a></p>
<p align="center" style="color: #bbb; font-size:11px;">
Copyright 2002, 2003, Composition/Keyboards/Guitar/Vocals/Engineering &#8211; Michael T. Mayers<br />
Prayers for rain: Composition: The Cure. Keyboards/Guitar/Engineering &#8211; Michael T. Mayers
</p>
<hr />
<h3 align="center" style="color: #fff;">Solo Works (1996)</h3>
<p align="center">
k2000 and a tsr24s with multitracking<br />
(multitracked/mixed on a silicon graphics O2 ;&gt;)
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/cage.mp3"> Cage (best lyrics I ever wrote, probably because they actually mean something ;&gt;)</a></p>
<p align="center" style="color: #bbb; font-size:11px;">
Copyright 1996, Composition/Keyboards/Vocals/Engineering &#8211; Michael T. Mayers
</p>
<hr />
<h3 align="center" style="color: #fff;">Music as Nocturnal Test Drive (1991)</h3>
<p align="center">
peavey dpm3/korg m1 and an alesis quadraverb<br />
no multitracking
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/crashcontent.mp3"> Crash Content </a></p>
<p align="center" style="color: #bbb; font-size:11px;">
( Copyright 1991, Steve Yocum &#8211; Composition/Vocals, Peggy<br />
Frohlich &#8211; Lyrics, Michael Mayers &#8211; Composition/Keyboards/Engineering)
</p>
<hr />
<h3 align="center" style="color: #fff;">Music with Michael Ulrick (1995)</h3>
<p align="center">
k2000 and a tsr24s<br />
no multitracking
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/ezweb/nukewar.mp3"> NukeWar </a></p>
<p align="center" style="color: #bbb; font-size:11px;">
Copyright 1995, Michael Ulrick &#8211; Composition/Vocals, Michael Mayers &#8211; Composition/Keyboards/Engineering
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/rain.mp3"> Rain </a></p>
<p align="center" style="color: #bbb; font-size:11px;">
Copyright 1995, Michael Ulrick &#8211; Composition/Vocals/Keyboards, Michael Mayers &#8211; Engineering
</p>
<hr />
<h3 align="center" style="color: #fff;">Michael Ulrick Portfolio (2003)</h3>
<p align="center"><a href="http://www.tweakoz.com/portfolio/beer.mp3"> Beer </a></p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/darkclass.mp3"> DarkClassical </a></p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/fantazy.mp3"> Fantazy </a></p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/hardone.mp3"> HarderOne</a></p>
<p align="center" style="color: #bbb; font-size:11px;">
Copyright 2003, Composition/Vocals/Keyboards: Michael Ulrick, Engineering: Michael T. Mayers
</p>
</div>
<hr />
]]></content:encoded>
			<wfw:commentRss>http://www.tweakoz.com/michael/wordpress/?feed=rss2&amp;page_id=381</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resume</title>
		<link>http://www.tweakoz.com/michael/wordpress/?page_id=371</link>
		<comments>http://www.tweakoz.com/michael/wordpress/?page_id=371#comments</comments>
		<pubDate>Tue, 12 Jan 2010 13:53:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tweakoz.com/michael/wordpress/?page_id=371</guid>
		<description><![CDATA[Resume
&#62;&#62;download resume (ascii txt file)&#60;&#60;
&#62;&#62;download resume (word .doc file)&#60;&#60;

Michael T. Mayers
Santa Cruz, CA 95062

email:&#160; &#160;michael@tweakoz.com
www: &#160; &#160; http://www.tweakoz.com/portfolio/

OBJECTIVE

Seeking a position at a software engineering, entertainment or multimedia
&#160;production company. Looking for a firm which will offer a challenging
&#160;environment and which thrives upon creativity and cutting edge technology.

EMPLOYMENT HISTORY

Apr 2010 - Present &#160; &#160; &#160; &#160;APPLE : [...]]]></description>
			<content:encoded><![CDATA[<h3 align="center">Resume</h3>
<p align="center"><a href="http://www.tweakoz.com/portfolio/mike_resume.txt">&gt;&gt;download resume (ascii txt file)&lt;&lt;</a></p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/mike_resume.doc">&gt;&gt;download resume (word .doc file)&lt;&lt;</a></p>
<hr size="2" />
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:600px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Michael T. Mayers<br />
Santa Cruz, CA 95062<br />
<br />
email:&nbsp; &nbsp;michael@tweakoz.com<br />
www: &nbsp; &nbsp; http://www.tweakoz.com/portfolio/<br />
<br />
OBJECTIVE<br />
<br />
Seeking a position at a software engineering, entertainment or multimedia<br />
&nbsp;production company. Looking for a firm which will offer a challenging<br />
&nbsp;environment and which thrives upon creativity and cutting edge technology.<br />
<br />
EMPLOYMENT HISTORY<br />
<br />
Apr 2010 - Present &nbsp; &nbsp; &nbsp; &nbsp;APPLE : Gpu Software Engineer<br />
<br />
Jul 2009 - Apr 2010 &nbsp; &nbsp; &nbsp; TWEAKOZ (Self Employed)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NICKELODEON/MTV/VIACOM : Full Time Contractor<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SANTA CRUZ, CA<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Many Programming Roles<br />
<br />
Projects: Jul2009-Present : XBLA/PC Spongebob GravJet Racing : Lead Engineer<br />
<br />
Continuing work done at SCG, but directly for the client.....<br />
<br />
Oct 2005 - Jul 2009 &nbsp; &nbsp; &nbsp; TWEAKOZ (Self Employed)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SANTA CRUZ GAMES : Full Time Contractor<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SANTA CRUZ, CA<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Many Programming Roles<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Part-Time System Administrator<br />
<br />
Projects: Oct2005-Jun2006 : Superman Returns (Nintento DS/Sony PSP) : Lead PSP Engineer<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Jul2006-Jun2007 : Godzilla Unleashed (Nintendo DS) : Tools/Engine Programmer <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Jun2007 &nbsp; &nbsp; &nbsp; &nbsp; : Unannounced &quot;CodeName Noke&quot; (Nintendo DS) : Tools/Engine Programmer<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Jul2007-Oct2007 : Tomb Raider Underworld (Nintendo DS) : Part-Time Tools/Engine Programmer<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Jul2007-Jan2008 : Wii Miniork R&amp;D : R&amp;D Engineer<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Jan2008-Jul2008 : Igor PC/Wii : Lead PC/Wii and Tools Engineer<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Oct2008-Jul2009 : XB360/PC/Wii Spongebob GravJet Racing : Lead Platform and Tools Engineer<br />
<br />
Ported SCG's legacy engine to the PSP, Implemented autobuild system for Superman/PSP. <br />
&nbsp;Architected large portions of &quot;MiniOrk&quot; - an integrated next-gen tool/engine which scales <br />
&nbsp;from Nintendo DS to high-end hardware and allows for game execution/tuning in tool. Designed <br />
&nbsp;Miniork graphics, audio and IO devices for PC,XB360(Dx9) and Wii. Designed scene and entity<br />
&nbsp;layer of the Miniork game engine. Created heterogenous(CPU/GPU) multithreaded dataflow engines<br />
&nbsp;for particles, procedural textures, and audio. Integrated Maya/CgFX-&gt;Collada-&gt;Miniork asset pipeline. <br />
Protoyped miniork physics system using Bullet.<br />
<br />
&nbsp;Performed security and Subversion system administration duties. <br />
<br />
Apr 2004 - Oct 2005 &nbsp; &nbsp; &nbsp; SONY ONLINE ENTERTAINMENT<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SAN DIEGO, CA<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Senior Graphics Programmer<br />
<br />
Projects: 2004: Unannounced PC/PS3 MMORPG title (canceled, though engine still in use in ULDK)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2005: Sony PS3 E3 2005 Launch Event Demo<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2005: Untold Legends Dark Kingdom<br />
<br />
Implemented WYSIWYG Maya6.0/OpenGL/CgFX based Pipeline, including hardware shader nodes, <br />
&nbsp;terrain blending modeling tools, a texture compression settings panel,<br />
&nbsp;and a shape node to override maya's poor binormal/tangent calculations.<br />
&nbsp;Integrated the DX9 HLSL/FX framework into the PC game engine and implemented new <br />
&nbsp;shaders (to match the WYSIWYG pipeline). Ported above shader pipeline to the<br />
&nbsp;PS3 (for E3 PS3 Launch Event). Designed/Implemented a data driven finite state<br />
&nbsp;machine editor for use in input-&gt;animation/action mapping, and for use in AI.<br />
&nbsp;Implemented audio device driver for PS3. Setup PS3 Build System.<br />
<br />
Feb 2002 - Feb 2004 &nbsp; &nbsp; &nbsp; JALECO ENTERTAINMENT<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BOULDER, CO<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Senior Programmer/XBox Lead<br />
<br />
Projects: 2002: NightcasterII (XBox)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2003: Werewolf, Goblin Commander (PS2/XBox/GameCube)<br />
<br />
NightcasterII:<br />
Updated NC 1 Maya exporters, Implemented special effects with vertex and pixel<br />
&nbsp;shaders, including 3D Perlin noise pixel shaders for effects like burn,<br />
&nbsp;freeze, poison, and electrocute on a skinned model, wrote a tcp/ip networked<br />
&nbsp;parameter editor for editing effects live on the XBox, added macros and<br />
&nbsp;templates to the nightcaster spell effects scripting system. Implemented<br />
&nbsp;Pak File Loader.<br />
<br />
Werewolf:<br />
Selected as lead engineer, acted on those duties for 3 weeks until project held<br />
in order to condense resources on Goblin Commander.<br />
<br />
Goblin Commander:<br />
Re-Architected legacy OpenGL renderer to better support cross platforms with<br />
&nbsp;shader support on OpenGL and XBox. Re-Architected Granny model renderer on<br />
&nbsp;PC, XBox and Gamecube to support hardware deformation with vertex shaders<br />
&nbsp;and matrix palette skinning, wrote Granny to custom format converter to <br />
&nbsp;support new renderer and improve memory footprints and loading times for<br />
&nbsp;all platforms. Optimized heightfield renderer significantly. Programmed<br />
&nbsp;majority of the port of Goblin Commander to the XBox. <br />
<br />
Feb 2001 - Feb 2002 &nbsp; &nbsp; &nbsp; SANTA CRUZ GAMES<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SANTA CRUZ, CA<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Senior Tools, Audio Programmer, Audio Director, System Administrator<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
Projects: ET - Interplanetary Adventure for Playstation and PC<br />
<br />
Created the WorldBuilder design tool which has the following functions: <br />
&nbsp;Manage cel (geometry unit) instantiation, cel animations, actor placement and <br />
&nbsp;world attribute database editing. Wrote all Maya Exporters including<br />
&nbsp;Actor (Weighted, Boned-Mesh), Skeleton, Boned-Animation and Cel (Simple-Mesh)<br />
&nbsp;Exporters. Implemented entire ET sound system, provided direction for the<br />
&nbsp;audio content, and created some of the audio content. Also performed most system <br />
&nbsp;administration duties.<br />
<br />
Jul 1999 - Jan 2001 &nbsp; &nbsp; &nbsp; OSIRIS STUDIOS<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SANTA CRUZ, CA<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Senior Tools, Game Programmer<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
Projects: HBO Boxing for Playstation<br />
<br />
Architected and implemented ADB (Animation Database) which allows a user to graphically edit<br />
an animation state machine for character animation with hundreds of animation nodes and <br />
thousands of transitions between nodes (edges), supporting multiple animations streams <br />
concurrently on a single skeleton, animation blending control, user control mapping, <br />
collision sphere targeting, etc.. Created the Streaming Database for navigation, classification and<br />
conversion of several thousand commentator audio streams. Also created the entire<br />
sound system for HBO Boxing, including a MIDI playback engine and conversion <br />
tools for the PSX based on EMU Soundfonts/DLS, crowd simulation, and other sound<br />
effects. Most tools provided with OpenGL based GUI on Win32 for fast / precise<br />
navigation and workflow.<br />
<br />
Dec 1997 - Jul 1999 &nbsp; IDOL MINDS, LLC.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BOULDER, CO<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Tools, Game Programmer<br />
<br />
Projects: CoolBoarders3, RallyCross2 for Playstation (MIDI Engine also used in CB4)<br />
<br />
Duties included design and implementation of a Sony Playstation based MIDI <br />
playback engine. Frontend development including tools and runtime code.<br />
GUI based File converters for Audio and 3D, Apps including Alias PowerAnimator<br />
and AliasWavefront Maya on IRIX/Win32.<br />
<br />
Jun 1997 - Sep 1997 &nbsp; &nbsp; &nbsp; SOUTHEASTERN COMMUNICATIONS SERVICE, INC.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SARASOTA, FL<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Sub-Contracted Software Developer.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
SECS is a service oriented business for construction of complete cellular sites.<br />
&nbsp;Responsible for the development of Win32 automation software for Hewlett<br />
&nbsp;Packard RF test equipment communicating to the host via HPIB/GPIB. The software<br />
&nbsp;is used in the testing of RF signal transmission components at microwave and <br />
&nbsp;cellular telephone radio sites.<br />
<br />
Jan 1995 - Jun 1997 &nbsp; &nbsp; &nbsp; MINDESIGN limited<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SARASOTA, FL<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Programmer, System Administrator.<br />
<br />
Responsible for system administration of a network of Silicon Graphics (UNIX)<br />
&nbsp;and Macintosh computers. Developed plugins for 3D animation and film/video<br />
&nbsp;editing software including Discreet Logic Flint, Newtek Lightwave,<br />
&nbsp;Alias/Wavefront PowerAnimator and Composer. Development of custom applications<br />
&nbsp;for use in audio and film/video production. Setup 32 track digital audio / MIDI<br />
&nbsp;production studio based on Digidesign ProTools.<br />
<br />
Sep 1993 - Mar 1994 &nbsp; &nbsp; &nbsp; SILTRON ILLUMINATION<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ONTARIO, CA (California)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Quality Assurance Technician.<br />
<br />
Siltron is a manufacturer of emergency lighting systems. Responsible for <br />
&nbsp;developing test procedures and test fixtures, training and assisting the<br />
&nbsp;manufacturing department in the mechanical and electrical requirements needed<br />
&nbsp;to construct various company products.<br />
<br />
Aug 1992 - Aug 1993 &nbsp; &nbsp; &nbsp; SOUTHEASTERN COMMUNICATIONS SERVICE, INC.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SARASOTA, FL<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cellular Electronics Specialist.<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
SECS is a service oriented business for construction of complete cellular sites.<br />
&nbsp;Responsibilities included the testing of the antenna and lighting systems after<br />
&nbsp;completion of construction. I was also responsible for repairing existing<br />
&nbsp;cellular sites for AT&amp;T wireless.<br />
<br />
Aug 1990 - Jun 1992 &nbsp; &nbsp; &nbsp; UNITED STATES NAVY<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NTC Orlando, FL<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
U.S. Naval Nuclear Propulsion Program.<br />
<br />
<br />
AQUIRED SKILLS<br />
<br />
Currently Learning Verilog / VHDL<br />
<br />
Fluent in usage of IRIX/UNIX/LINUX, MSDOS/Windows, OS/2 and MacOS.<br />
<br />
Device driver programming for LINUX. Created MOTU MIDI Timepiece AV driver<br />
for the Advanced Linux Sound Architecture (ALSA).<br />
<br />
Applications used include Adobe Photoshop, Adobe Premiere, Media 100,<br />
&nbsp;Alias/Wavefront Composer, PowerAnimator and Maya, Discreet Logic Flint, Digidesign<br />
&nbsp;ProTools, Steinberg CubaseVST, and MIT Csound among others. <br />
<br />
Twenty years of programming experience; languages include C/C++, Python, Java, Pascal,<br />
&nbsp;ModulaII, REXX, TCL/TK, HTML, PHP, assembly languages for Motorola 680x0, <br />
&nbsp;Intel 80x86, and MIPS Rx000 among others. Have also written custom scripting<br />
&nbsp;languages.<br />
<br />
Fluent in programming at the systems and applications level for a variety of <br />
&nbsp;pre-emptive multitasking operating systems, object oriented design, automated<br />
&nbsp;GUI builders (Qt, X11, MFC, Java, TCL/TK, FLTK), Digital Signal Processing, <br />
&nbsp;Simulation, Digital Video/3D Animation and Digital Audio/MIDI.<br />
<br />
Main development/testing environments used include Visual Studio .NET, Eclipse, <br />
&nbsp;Silicon Graphics Casevision Workshop/IDO, GNU GCC/GDB, CVS, Microsoft Visual <br />
&nbsp;Sourcesafe, Subversion, Perforce, SN Systems ProDG and Visual Slickedit.<br />
<br />
API's used include Qt, FLTK, X11/Glx, MFC, OpenGL/Direct3D, RenderMan, SGI DMedia<br />
&nbsp;(audio/MIDI, video), POSIX, Win32, TCP/IP sockets and my own library <br />
&nbsp;of Unix/Win32 C++ classes which handle things like graphical dataflow modeling,<br />
&nbsp;timers, Audio/Video signal processing, particle systems, physical dynamics, <br />
&nbsp;multithreading, event handlers, file parsing, 3D graphics, and sound/artwork file<br />
&nbsp;conversion among others.<br />
<br />
System administration skills include OS/Software upgrades, TCP/IP network setup<br />
&nbsp;and maintenance on UNIX and Win32 systems, NFS, data storage setup for realtime <br />
&nbsp;digital video editing (SCSI Raid striped over multiple SCSI Busses), <br />
&nbsp;FlexLM/Elan Network licensing, and Web Server administration among others.<br />
<br />
Hardware/Software design of simple microprocessor, microcontroller and FPGA based systems.<br />
<br />
Extensive personal experience with Digital Audio / Music Systems; Consumer, Professional<br />
&nbsp;and otherwise.<br />
<br />
CrossPlatform Coding - Most of the software I write easily ports onto other platforms.<br />
<br />
EDUCATION<br />
<br />
2005 Sony Playstation 3 Developers Conference<br />
<br />
2000, 2001, 2003 Game Developers Conference<br />
<br />
1996, 1999, 2000, 2003 Sony Playstation Developers Forums<br />
<br />
1995, 1996, 1997 Silicon Graphics Developers Forums<br />
<br />
Attended classes covering IRIX system administration, OpenGL, DSO Security, <br />
&nbsp;Symmetrical Multiprocessing, IRIS Performer, UNIX/Win32 portability, <br />
&nbsp;Image / Audio Synthesis among other topics.<br />
<br />
1993 Commodore Amiga Developers Conference<br />
<br />
Naval Nuclear Power School - NTC Orlando, FL<br />
<br />
Electrical Operator Curriculum; particle physics, thermodynamics, mathematics and<br />
&nbsp;electrical power generation.<br />
<br />
Nuclear Field 'A' School - NTC Orlando, FL<br />
<br />
Electricians Mate Curriculum; mathematics, basic electricity, basic/advanced <br />
&nbsp;analog and digital electronics.<br />
<br />
Lemon Bay High School - Englewood, FL<br />
Chatfield Sr. High School - Littleton, CO<br />
Littleton Sr. High School - Littleton, CO<br />
Marina Sr. High School - Huntington Beach, CA<br />
Peterson High School - Santa Clara, CA<br />
<br />
<br />
OTHER<br />
<br />
References and portfolio (audio, video, code, etc..) available upon request.</div></div>
<hr size="2" />
]]></content:encoded>
			<wfw:commentRss>http://www.tweakoz.com/michael/wordpress/?feed=rss2&amp;page_id=371</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AudioTools</title>
		<link>http://www.tweakoz.com/michael/wordpress/?page_id=333</link>
		<comments>http://www.tweakoz.com/michael/wordpress/?page_id=333#comments</comments>
		<pubDate>Tue, 12 Jan 2010 12:42:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tweakoz.com/michael/wordpress/?page_id=333</guid>
		<description><![CDATA[&#62;&#62;&#62;&#60;&#60;&#60;

Audity

Modular Software Synthesizer
Currently runs on Win32 / DirectSound or as a DXi plugin
LINUX Alsa version coming soon
GUI based on OpenGL / FLTK
Grouped Parameter morphing (SetDrivenKey)


    

SDB (Streamer)

Used on HBO Boxing for Sony Playstation
Manages audio commentary database
Lets operator set up ingame data structures
Converts all WAV files to VAG (Sony ADPCM) on export
Compiles all [...]]]></description>
			<content:encoded><![CDATA[<h3 align="center">&gt;&gt;&gt;<a href="http://www.tweakoz.com/orkid/"><img align="center" src="http://www.tweakoz.com/orkid/splash/th_orkid_splash7.jpg" alt="" height="290" width="373" border="0"></a>&lt;&lt;&lt;</h3>
<hr size="2" />
<h3 align="center">Audity</h3>
<p align="center">
Modular Software Synthesizer<br />
Currently runs on Win32 / DirectSound or as a DXi plugin<br />
LINUX Alsa version coming soon<br />
GUI based on OpenGL / FLTK<br />
Grouped Parameter morphing (SetDrivenKey)
</p>
<p align="center">
<a href="http://www.tweakoz.com/portfolio/auditya.jpg"><img align="center" src="http://www.tweakoz.com/portfolio/th_auditya.jpg" alt="" height="137" width="186" border="0"></a>  <a href="http://www.tweakoz.com/portfolio/audity2.jpg"><img align="center" src="http://www.tweakoz.com/portfolio/th_audity2.jpg" alt="" height="140" width="186" border="0"></a>  <a href="http://www.tweakoz.com/portfolio/audity3.jpg"><img align="center" src="http://www.tweakoz.com/portfolio/th_audity3.jpg" alt="" height="140" width="214" border="0"></a></p>
<hr size="2" />
<h3 align="center">SDB (Streamer)</h3>
<p align="center">
Used on HBO Boxing for Sony Playstation<br />
Manages audio commentary database<br />
Lets operator set up ingame data structures<br />
Converts all WAV files to VAG (Sony ADPCM) on export<br />
Compiles all Audio Files (thousands) into a much more managable package<br />
OpenGL / FLTK based GUI
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/sdb1.jpg"><img align="center" src="http://www.tweakoz.com/portfolio/th_sdb1.jpg" alt="" height="143" width="246" border="0"></a>  <a href="http://www.tweakoz.com/portfolio/sdb2.jpg"><img align="center" src="http://www.tweakoz.com/portfolio/th_sdb2.jpg" alt="" height="143" width="246" border="0"></a></p>
<hr size="2" />
<h3 align="center">Crowd Modeler</h3>
<p align="center">
Graphical representation of crowd reaction audio modeler in HBO Boxing for Playstation<br />
Lets programmer (me) edit coeffecients / synthesis matrix of PSX runtimecrowd audio
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/crowdmodel.jpg"><img align="center" src="http://www.tweakoz.com/portfolio/th_crowdmodel.jpg" alt="" height="138" width="172" border="0"></a></p>
<hr size="2" />
<h3 align="center"><a href="http://www.alsa-project.org/">ALSA &#8211; Advanced Linux Sound Architecture</a></h3>
<p align="center">
wrote Mark Of The Unicorn MIDI TimePieceAV driver
</p>
<hr size="2" />
<h3 align="center">AlsaKeys</h3>
<p align="center">
Displays realtime MIDI input on graphic keyboard<br />
Pure FLTK interface
</p>
<p align="center">
<a href="http://mitglied.tripod.de/iwai/lk2k/lk2k.html">AlsaKeys is an Alsa Sequencer Client</a>
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/alsakeys_shot.jpg"><img align="center" src="http://www.tweakoz.com/portfolio/th_alsakeys_shot.jpg" alt="" height="124" width="113" border="0"></a></p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/alsakeys.html">http://www.tweakoz.com/portfolio/alsakeys.html</a></p>
<hr size="2" />
<h3 align="center">FLTK/OpenGL Widgets</h3>
<p align="center">
miscellaneous FLTK/OpenGL GUI widgets I was working on
</p>
<p align="center"><a href="http://www.tweakoz.com/portfolio/widgets1.jpg"><img align="center" src="http://www.tweakoz.com/portfolio/th_widgets1.jpg" alt="" height="158" width="127" border="0"></a>   <a href="http://www.tweakoz.com/portfolio/curvegen.jpg"><img align="center" src="http://www.tweakoz.com/portfolio/th_curvegen.jpg" alt="" height="103" width="123" border="0"></a></p>
<hr size="2" />
]]></content:encoded>
			<wfw:commentRss>http://www.tweakoz.com/michael/wordpress/?feed=rss2&amp;page_id=333</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
