<?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>technical architecture. &#187; Uncategorized</title>
	<atom:link href="http://buchhofer.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://buchhofer.com</link>
	<description>Maxscript, Architecture, 3D, 3DSMax, Unity3D</description>
	<lastBuildDate>Mon, 30 Apr 2012 00:46:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Sundays random thought:</title>
		<link>http://buchhofer.com/2012/04/sundays-random-thought/</link>
		<comments>http://buchhofer.com/2012/04/sundays-random-thought/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 00:46:12 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=353</guid>
		<description><![CDATA[You know you&#8217;re researching in a good direction when every 45 minutes or so of reading, you go &#8216;Damn! I wish I&#8217;d read that last week.&#8217; It&#8217;s been a very informative week.]]></description>
			<content:encoded><![CDATA[<p>You know you&#8217;re researching in a good direction when every 45 minutes or so of reading, you go &#8216;Damn! I wish I&#8217;d read that last week.&#8217;</p>
<p>It&#8217;s been a very informative week.</p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2012/04/sundays-random-thought/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-Touch and iOS/Android from the same project, Unity3D</title>
		<link>http://buchhofer.com/2012/04/multi-touch-and-iosandroid-from-the-same-project-unity3d/</link>
		<comments>http://buchhofer.com/2012/04/multi-touch-and-iosandroid-from-the-same-project-unity3d/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 11:50:32 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=334</guid>
		<description><![CDATA[There is a bit of a void out there in terms of recent information regarding multi touch in unity, most of the legwork of development looks to have been done in 09/10, looking around the forums there are many more questions than answers, and all out of date. SO! Lets record some of my findings [...]]]></description>
			<content:encoded><![CDATA[<p>There is a bit of a void out there in terms of recent information regarding multi touch in unity, most of the legwork of development looks to have been done in 09/10, looking around the forums there are many more questions than answers, and all out of date. SO! Lets record some of my findings from building a quick turnaround multi platform product config tool. this is the multi touch side of things, there was a slight bit more to keep it all happy with iOS/Android, but for the most part, I adopted their conventions where I could and forced the multi touch into that mold.</p>
<p>First interesting problem is how to begin dev and testing of a multi touch interface when you don&#8217;t have one to use! (wee!) Fortunately there is a few fun tools built by others in the CV world that can get you up and running quickly. There is much information to be had looking around in the <a href="http://nuigroup.com/forums">NUIGROUP forums</a> based around building your own touch tables. My immediate timeline didn&#8217;t let me play with full tables (sad!), fortunately <a href="http://sethsandler.com/multitouch/mtmini/">Seth Sandler </a>had put together a nice DIY project involving a webcam, some cardboard, glass, and a sheet of vellum, run on the <a href="http://sethsandler.com/multitouch/multitouch/community-core-vision-guide/">Community Core Vision package </a>. That got me multi touch input with output to the TUIO protocol fairly easily!</p>
<p>Next, looking into how to handle the TUIO inside of unity, there are a few main packages that work well, (Among others found at : <a href="http://www.tuio.org/?software">tuio.org</a>) I ended up with two that got serious consideration, the <a href="https://code.google.com/p/unity3d-tuio/">Mindstorm tuio</a>, and the <a href="http://www.xtuio.com/index.php/projectsmain/utuiomain">UniTUIO</a> by the guys at xtuio, the code and overall base of the mindstorm system looked more solid and cohesive, but due to the schedule I ended up with the unituio for expediency sake, because it converts the TUIO touches to unitys base input system, by way of building bridged Input class and overriding the get touch functions. There is some editing needed to bring it back up to date with the 3.5 changes, but its minor and the console error log should get you there.</p>
<p>Now! The fun part, things are starting to work, now we can get down to biz. (Almost) There are a few other things to take into account, tuio systems are not taken into account with the built in unity gui. Alternate ui systems that work fairly easily with them are <a href="http://www.anbsoft.com/middleware/ezgui/">EZGUI</a> and <a href="http://www.tasharen.com/?page_id=140">NGUI</a>, I went with NGUI, and have been very happy with the support response time, and solid performance. I also adapted the truly awesome <a href="http://fingergestures.fatalfrog.com/">FingerGestures</a> to use the tuio inputs, so now I&#8217;ve got a framework that works on all platforms, and with a loader for finger gestures that checks for the presence of the tuio inputs, and loads those, or else, reverts to base mouse input as needed. future: combine the two inputs so that there is no manual work on export!</p>
<p>One more: depending on the touch screens you&#8217;re using, you may need to convert windows 7 touches to tuio, I did this with the <a href="http://dm.tzi.de/research/hci/touch2tuio/">Touch2Tuio</a> program. built in Windows 7 touches are functional for 1 touch, and the pinch to zoom gesture gets converted to the scroll wheel by default in unity 3.5 (And I believe it started working in 3.0 or 3.4.. the forum is vague on this.)</p>
<p>Performance wise, it still misses entirely too many touches for my peace of mind as a long term solution, but it worked quickly, and got us through the initial conference expo, and was a success! so work will continue, and it will get better and bigger and faster and more awesomeness. or something. I don&#8217;t know that I&#8217;d suggest this system for a long running exhibit, but it worked fine in the 3-5 day range for me.</p>
<p>Cheers.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2012/04/multi-touch-and-iosandroid-from-the-same-project-unity3d/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Configurable Inverse Kinematics in unity at runtime</title>
		<link>http://buchhofer.com/2012/01/configurable-inverse-kinematics-in-unity-at-runtime/</link>
		<comments>http://buchhofer.com/2012/01/configurable-inverse-kinematics-in-unity-at-runtime/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 04:49:16 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=330</guid>
		<description><![CDATA[As demo&#8217;d in this video: OR3D tool walk thru the video is a bit on the older side, but it shows the IK fairly well. the system is fairly simple rig that attaches as a script to the IK End Effector, and parses up the hierarchy collecting any bones that are tagged with a certain [...]]]></description>
			<content:encoded><![CDATA[<p>As demo&#8217;d in this video: <a href="http://buchhofer.com/2011/06/what-have-you-done-for-me-lately/" title="What have you Done for me Lately">OR3D tool walk thru</a> the video is a bit on the older side, but it shows the IK fairly well.</p>
<p>the system is fairly simple rig that attaches as a script to the IK End Effector, and parses up the hierarchy collecting any bones that are tagged with a certain empty class (In my case called an EndJoint).</p>
<p>I collect bone joints at runtime after combining and configuring the hierarchy, and pass them into the CCD IK function as an array of unity transforms. the bulk of the code is taken almost directly from Jeff Lander&#8217;s game developer article describing the Cyclic Coordinate Decent (CCD) inverse kinematics algorithm, written in 1998, <a href="http://graphics.cs.cmu.edu/nsp/course/15-464/Spring07/assignments/jlander_gamedev_nov98.pdf" title="Original Article Here"></a></p>
<p>the port can be downloaded from here: <a href="http://dl.dropbox.com/u/8000/IKCCD2D.zip">IKCCD2D.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2012/01/configurable-inverse-kinematics-in-unity-at-runtime/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>python based model/texture/matlib browser</title>
		<link>http://buchhofer.com/2009/07/python-based-modeltexturematlib-browser/</link>
		<comments>http://buchhofer.com/2009/07/python-based-modeltexturematlib-browser/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 22:21:59 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=202</guid>
		<description><![CDATA[This was a learning experiment a few months back that showed some promise, and turned into a pretty useful script, I debated passing it around due to its current &#8216;raw&#8217;ness, but it has already been very helpful here, and I think some feedback may motivate me to tighten it up some more! DOWNLOAD: pyAssetBrowser.zip Setting [...]]]></description>
			<content:encoded><![CDATA[<p>This was a learning experiment a few months back that showed some promise, and turned into a pretty useful script, I debated passing it around due to its current &#8216;raw&#8217;ness, but it has already been very helpful here, and I think some feedback may motivate me to tighten it up some more!</p>
<p><a style="text-decoration: none;" href="http://buchhofer.com/wp-content/uploads/2009/07/pyassetbrowser.jpg"><img class="aligncenter size-medium wp-image-206" title="pyAssetbrowser Screenshot" src="http://buchhofer.com/wp-content/uploads/2009/07/pyassetbrowser-300x206.jpg" alt="pyAssetbrowser Screenshot" width="300" height="206" /></a></p>
<h2 style="text-align: center;"><a href="http://buchhofer.com/upload/files/Scripts/pyAssetBrowser.zip">DOWNLOAD: pyAssetBrowser.zip</a></h2>
<h3>Setting it up</h3>
<p>You pick a &#8216;Root Directory&#8217; by editing the<strong> settings.ini</strong> file and changing the<strong> &#8220;rootPath=X:\\Model_Library\\&#8221;</strong> to match up with your chosen path. ex: if your model library is on C:\Assets, then you will make the settings.ini file read as: &#8220;rootPath=C:\\Assets\\&#8221; every directory under this &#8216;root&#8217; directory will show up in the Treeview interface on the left hand side.</p>
<p>(and here comes the part that made me wary of distributing it)</p>
<p>For the connection with 3dsmax to work, python needs to know which version of max to connect to when &#8216;Max.Application&#8217; is invoked! the cleanest way to do this is to just run Adams script: registerPythonCom.ms, this should work for most people! the cases I&#8217;ve found where it doesn&#8217;t work, are where there are more restrictive windows user permissions, in which case it may be required to manually do this. I&#8217;ve included a couple example .reg files that can connect to max 2008 / 2009, all that&#8217;s needed to suit them to your particular installation is to edit the paths under the LocalServer32 reg key for your particular max version.</p>
<p>On the 3dsmax side of things, there are a couple scripts included, the pyAssetbrowser.ms script is a Struct including some simple functions for things like importing, merging, converting to vrmesh, billboarding image maps, collapsing, re-linking maps using a few stripped down bits of modified code from an older version of <a href="http://www.colinsenner.com/">ColinSenner</a>&#8216;s <a href="http://www.colinsenner.com/scripts/relink-bitmaps">Relink Bitmaps script</a></p>
<h3>File Structure</h3>
<p>for the browser to work right as is, there are a few &#8216;format&#8217; type issues that are needed to make it even remotely useful.</p>
<ul>
<li>To use it as a Model Library:
<ul>
<li>A directory that includes .Max files.</li>
</ul>
<ul>
<li>If there is a .JPG file with the same name as the .MAX file, then it will be displayed as the thumbnail for the item, if there is no preview jpg the maxfile will show with a 3dsmax icon.</li>
</ul>
</li>
</ul>
<p>The material library setup is kind of strange, but its modeled somewhat after easily adding items from the VrayMaterials.de site, by just unzipping the library and ensuring that the directory has the same name as the thumbnail.</p>
<ul>
<li>Material Library:
<ul>
<li>A Directory of .JPG thumbnails (Any size)</li>
</ul>
<ul>
<li>In the same directory, a Folder with the same name as the .JPG thumbnail</li>
</ul>
<ul>
<li>in the named folder (Yea, this gets a bit messy) a 3dsmax .mat material library file (Any name), and any textures required</li>
</ul>
</li>
</ul>
<ul>
<li>Billboard/texture Library:
<ul>
<li>A directory of images, Most formats should work, Tiff&#8217;s wont show thumbnails due to some open source licensing silliness with PIL i believe.</li>
<li>One of the good things here, is that it can build a thumbnail list very very fast. not quite picasa fast, but far quicker than explorer does.</li>
</ul>
</li>
</ul>
<h3>I&#8217;m sure there&#8217;ll be many issues, so call it a beta, and let me know if anyone has feedback!</h3>
<p>I&#8217;m including the source also, as 90% of it is all bits and pieces of other peoples work!</p>
<p>A little source info</p>
<ul>
<li>I compiled with python 2.5</li>
<li>the awesome ThumbnailCtrl from <a href="http://xoomer.alice.it/infinity77/main/ThumbnailCtrl.html">Andrea Gavanna</a>
<ul>
<li>I did some *very* slight modifications on it to allow it to show .max files as an icon</li>
</ul>
</li>
<li>used PIL 1.1.6+</li>
<li>Requires <a href="http://sourceforge.net/project/platformdownload.php?group_id=78018">pyWin32 v212+</a> for the COM bridging to talk to 3dsMax</li>
<li>Interface in wxwidgets, using wxPython 2.8</li>
<li>&#8216;lazy&#8217; directory treeview from <a href="http://wiki.wxpython.org/TreeControls#head-21017a515ed8a07d3b528f4ef75be5d4bda1fdaa">here</a></li>
<li>exe compiled with py2exe 0.6.9</li>
</ul>
<p>Some things that currently aren&#8217;t possible, but are obvious additions:</p>
<p style="padding-left: 30px;">Multiple Root items in the treeview to allow for the fact of the various libraries to be in seperate locations/drives&#8230;</p>
<p style="padding-left: 30px;">This <strong>can </strong>be done, but is a bit of a pain in the arse, how you would do it would be to create a virtual root, which is hidden (As the current root item is now) and add in your sub items below it with specific paths, the trick is just to adjust the path sent to the thumbnail control to account for the &#8216;virtual&#8217; root. Not difficult, but possibly a little time consuming, so its been shelved unless someone wants to buy me a beer or two to polish it up <img src='http://buchhofer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="padding-left: 30px;">There is currently no way to retrieve the explorer bitmap thumbnails for .max files through python/pywin32, there is a few hints at there being possible workarounds and ideas that could work on Mark Hammond&#8217;s mailing list, but most of the talk about this is several years stale! any thoughts on this from the python heads would be more than welcome!</p>
<p style="padding-left: 30px;">there are a few errors that pop up after closing but they dont affect usage currently.</p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2009/07/python-based-modeltexturematlib-browser/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>When Sebbys Attack.</title>
		<link>http://buchhofer.com/2009/02/when-sebbys-attack/</link>
		<comments>http://buchhofer.com/2009/02/when-sebbys-attack/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 02:49:35 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Babys]]></category>
		<category><![CDATA[Photo]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=177</guid>
		<description><![CDATA[A shot from earlier today, I&#8217;m pretty sure there&#8217;s a few more solid ones in there, once I plow through the immense stack of fresh RAW photos clogging up my system. On the plus side, after a few days of shooting i definitely have a much more solid grasp of ISO vs Aperture vs. Shutter, [...]]]></description>
			<content:encoded><![CDATA[<p><a title="DSC_0175s by vsai, on Flickr" href="http://www.flickr.com/photos/11168326@N03/3263830037/"><img src="http://farm4.static.flickr.com/3515/3263830037_b666e8f571_o.jpg" alt="DSC_0175s" width="491" height="326" /></a></p>
<p>A shot from earlier today, I&#8217;m pretty sure there&#8217;s a few more solid ones in there, once I plow through the immense stack of fresh RAW photos clogging up my system.</p>
<p>On the plus side, after a few days of shooting i definitely have a much more solid grasp of ISO vs Aperture vs. Shutter, so I&#8217;m learning well why the first few days of shooting were horrifically grainy and blurry.</p>
<p>f5 to f11, ISO as low as it&#8217;ll go and still let me handhold the shutter speed!</p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2009/02/when-sebbys-attack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code snippet site Snipplr.com</title>
		<link>http://buchhofer.com/2008/12/code-snippet-site-snipplrcom/</link>
		<comments>http://buchhofer.com/2008/12/code-snippet-site-snipplrcom/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 21:33:12 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[maxscript]]></category>
		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=156</guid>
		<description><![CDATA[Got them to add the maxscript language at the code snippet site snipplr.com  a maxscript snippet: http://snipplr.com/view/10508/check-the-status-of-a-remote-servers-service/ Here&#8217;s the current list of posts tagged as maxscript, skimpy so far i know!  the site gives us easy commenting, community editing, and an easier taggable search interface than the current state of things: cgtalk forums. I think to [...]]]></description>
			<content:encoded><![CDATA[<p>Got them to add the maxscript language at the code snippet site snipplr.com </p>
<p>a maxscript snippet: <a href="http://snipplr.com/view/10508/check-the-status-of-a-remote-servers-service/">http://snipplr.com/view/10508/check-the-status-of-a-remote-servers-service/</a></p>
<p>Here&#8217;s the <a href="http://snipplr.com/all/language/maxscript">current list</a> of posts tagged as maxscript, skimpy so far i know! </p>
<p>the site gives us easy commenting, community editing, and an easier taggable search interface than the current state of things: cgtalk forums. I think to get wide adoption we might have to make a max or python based interface to make for easier posting/retrieval without having to use the web browser however!</p>
<p>We&#8217;ll see how much time i get to escape from the 4 infants to get that done ! (hah)</p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2008/12/code-snippet-site-snipplrcom/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>model test</title>
		<link>http://buchhofer.com/2008/12/model-test/</link>
		<comments>http://buchhofer.com/2008/12/model-test/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 19:12:32 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=151</guid>
		<description><![CDATA[Was playing around for a few minutes today with a studio setup of an old low poly model I had done for an interactive sales tool a while back. Liked the look]]></description>
			<content:encoded><![CDATA[<p>Was playing around for a few minutes today with a studio setup of an old low poly model I had done for an interactive sales tool a while back. Liked the look <img src='http://buchhofer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://buchhofer.com/wp-content/uploads/2008/12/davinci_03.jpg"><img src="http://buchhofer.com/wp-content/uploads/2008/12/davinci_03-300x199.jpg" alt="" title="DaVinci" width="300" height="199" class="alignnone size-medium wp-image-152" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2008/12/model-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

