<?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>Samiam's Scribble Pad &#187; linkedin</title>
	<atom:link href="http://www.hodge.net.au/sam/blog/tag/linkedin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hodge.net.au/sam/blog</link>
	<description>Random Thoughts of Sam Hodge, about Life, Art and Technology</description>
	<lastBuildDate>Mon, 01 Dec 2025 07:20:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>AFTRS May 2009</title>
		<link>http://www.hodge.net.au/sam/blog/2009/05/19/aftrs-may-2009/</link>
		<comments>http://www.hodge.net.au/sam/blog/2009/05/19/aftrs-may-2009/#comments</comments>
		<pubDate>Mon, 18 May 2009 22:57:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linkedin]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[training rsp]]></category>

		<guid isPermaLink="false">http://www.hodge.net.au/sam/blog/?p=121</guid>
		<description><![CDATA[Yesterday, Dan Thompson, Fred Chapman, Cam Langs, Sara Henschke and myself from Rising Sun went for a visit to the students from AFTRS (Australian Film Radio and Television School) in Kensington. Its in the same location where Rising Sun Pictures used to be. The Students were really keen to soak up what we had to [...]]]></description>
				<content:encoded><![CDATA[<p>Yesterday, Dan Thompson, Fred Chapman, Cam Langs, Sara Henschke and myself from Rising Sun went for a visit to the students from AFTRS (Australian Film Radio and Television School) in Kensington.</p>
<p>Its in the same location where Rising Sun Pictures used to be.</p>
<p>The Students were really keen to soak up what we had to say, and for people making a start they seemed to be making a fair effort.</p>
<p>We went to the pub for a meal afterwards and it was good to catch up with someone in the industry in Adelaide besides colleagues at RSP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hodge.net.au/sam/blog/2009/05/19/aftrs-may-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>voxel madness</title>
		<link>http://www.hodge.net.au/sam/blog/2009/01/12/voxel-madness/</link>
		<comments>http://www.hodge.net.au/sam/blog/2009/01/12/voxel-madness/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 12:07:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linkedin]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[python cgkit renderman voxels]]></category>

		<guid isPermaLink="false">http://www.hodge.net.au/sam/blog/?p=45</guid>
		<description><![CDATA[Basically I want a big block of RiPoints to shade into, so I made them like this I used  cgKit to make a big block of points, now I just need to see how it performs under stress Parent Voxel script voxelParent.py #!/usr/bin/env python from cgkit.ri import * &#160; &#34;&#34;&#34; RiProcedural(data, bound, subdividefunc, freefunc=None) Declare [...]]]></description>
				<content:encoded><![CDATA[<p>Basically I want a big block of RiPoints to shade into, so I made them like this</p>
<p>I used  <a href="http://cgkit.sourceforge.net/" target="_blank">cgKit</a> to make a big block of points, now I just need to see how it performs under stress</p>
<p>Parent Voxel script</p>
<p>voxelParent.py</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #ff7700;font-weight:bold;">from</span> cgkit.<span style="color: black;">ri</span> <span style="color: #ff7700;font-weight:bold;">import</span> *
&nbsp;
<span style="color: #483d8b;">&quot;&quot;&quot;
RiProcedural(data, bound, subdividefunc, freefunc=None)
    Declare a procedural model.
&nbsp;
    subdividefunc and freefunc may either be the standard RenderMan
    procedurals (RiProcDelayedReadArchive, RiProcRunProgram,
    RiProcDynamicLoad and RiProcFree) or Python callables.
    In the former case, data must be a sequence of strings or a single
    string containing the data for the functions. In the latter case,
    data may be any Python object which is just passed on to the
    functions.
    freefunc is optional and defaults to None.
&nbsp;
    Because this module can only produce RIB, a custom subdivide function is
    simply called with a detail value of RI_INFINITY to generate all the
    data at once.
&nbsp;
    Example: RiProcedural(&quot;mymodel.rib&quot;, [-1,1,-1,1,-1,1], <span style="color: #000099; font-weight: bold;">\</span>
                          RiProcDelayedReadArchive, RI_NULL)
&nbsp;
             RiProcedural([&quot;python teapot.py&quot;,&quot;&quot;],[0,1,0,1,0,1], <span style="color: #000099; font-weight: bold;">\</span>
                          RiProcRunProgram, RI_NULL)
&nbsp;
             RiProcedural([&quot;teapot.so&quot;,&quot;&quot;],[0,1,0,1,0,1], <span style="color: #000099; font-weight: bold;">\</span>
                          RiProcDynamicLoad, RI_NULL)
&quot;&quot;&quot;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>
&nbsp;
args <span style="color: #66cc66;">=</span> <span style="color: #dc143c;">sys</span>.<span style="color: black;">stdin</span>.<span style="color: #dc143c;">readline</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">while</span> args:
	arg <span style="color: #66cc66;">=</span> args.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	size<span style="color: #66cc66;">=</span><span style="color: #008000;">float</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	parts<span style="color: #66cc66;">=</span><span style="color: #008000;">int</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	seed<span style="color: #66cc66;">=</span><span style="color: #008000;">int</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	childCount<span style="color: #66cc66;">=</span><span style="color: #008000;">int</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	childSeed <span style="color: #66cc66;">=</span> seed
	<span style="color: #ff7700;font-weight:bold;">for</span> xstep <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>parts<span style="color: black;">&#41;</span>:
		<span style="color: #ff7700;font-weight:bold;">for</span> ystep <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>parts<span style="color: black;">&#41;</span>:
			<span style="color: #ff7700;font-weight:bold;">for</span> zstep <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>parts<span style="color: black;">&#41;</span>:
				xmin <span style="color: #66cc66;">=</span> xstep - <span style="color: #ff4500;">0.5</span>*size/parts - size*<span style="color: #ff4500;">0.5</span>
				xmax <span style="color: #66cc66;">=</span> xstep + <span style="color: #ff4500;">0.5</span>*size/parts - size*<span style="color: #ff4500;">0.5</span>
				ymin <span style="color: #66cc66;">=</span> ystep - <span style="color: #ff4500;">0.5</span>*size/parts- size*<span style="color: #ff4500;">0.5</span>
				ymax <span style="color: #66cc66;">=</span> ystep + <span style="color: #ff4500;">0.5</span>*size/parts- size*<span style="color: #ff4500;">0.5</span>
				zmin <span style="color: #66cc66;">=</span> zstep - <span style="color: #ff4500;">0.5</span>*size/parts- size*<span style="color: #ff4500;">0.5</span>
				zmax <span style="color: #66cc66;">=</span> zstep + <span style="color: #ff4500;">0.5</span>*size/parts- size*<span style="color: #ff4500;">0.5</span>
				childSeed+<span style="color: #66cc66;">=</span><span style="color: #ff4500;">1</span>
				<span style="color: #ff7700;font-weight:bold;">print</span> RiProcedural<span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;python voxelChild.py&quot;</span><span style="color: #66cc66;">,</span><span style="color: #483d8b;">&quot;%s %s %s %s %s %s %s %s&quot;</span> % <span style="color: black;">&#40;</span>xmin<span style="color: #66cc66;">,</span>xmax<span style="color: #66cc66;">,</span>ymin<span style="color: #66cc66;">,</span>ymax<span style="color: #66cc66;">,</span>zmin<span style="color: #66cc66;">,</span>zmax<span style="color: #66cc66;">,</span>childSeed<span style="color: #66cc66;">,</span> childCount<span style="color: black;">&#41;</span><span style="color: black;">&#93;</span><span style="color: #66cc66;">,</span><span style="color: black;">&#91;</span>xmin<span style="color: #66cc66;">,</span>xmax<span style="color: #66cc66;">,</span>ymin<span style="color: #66cc66;">,</span>ymax<span style="color: #66cc66;">,</span>zmin<span style="color: #66cc66;">,</span>zmax<span style="color: black;">&#93;</span><span style="color: #66cc66;">,</span> RiProcRunProgram<span style="color: #66cc66;">,</span> RI_NULL<span style="color: black;">&#41;</span>
	<span style="color: #dc143c;">sys</span>.<span style="color: black;">stdout</span>.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\3</span>77'</span><span style="color: black;">&#41;</span>
	<span style="color: #dc143c;">sys</span>.<span style="color: black;">stdout</span>.<span style="color: black;">flush</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	args <span style="color: #66cc66;">=</span> <span style="color: #dc143c;">sys</span>.<span style="color: black;">stdin</span>.<span style="color: #dc143c;">readline</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>Child Voxel Script</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #ff7700;font-weight:bold;">from</span> cgkit.<span style="color: black;">ri</span> <span style="color: #ff7700;font-weight:bold;">import</span> *
&nbsp;
<span style="color: #ff7700;font-weight:bold;">from</span> cgkit.<span style="color: black;">cgtypes</span> <span style="color: #ff7700;font-weight:bold;">import</span> *
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">random</span>
args <span style="color: #66cc66;">=</span> <span style="color: #dc143c;">sys</span>.<span style="color: black;">stdin</span>.<span style="color: #dc143c;">readline</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">while</span> args:
	arg <span style="color: #66cc66;">=</span> args.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	xmin<span style="color: #66cc66;">=</span><span style="color: #008000;">float</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	xmax<span style="color: #66cc66;">=</span><span style="color: #008000;">float</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	ymin<span style="color: #66cc66;">=</span><span style="color: #008000;">float</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	ymax<span style="color: #66cc66;">=</span><span style="color: #008000;">float</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">3</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	zmin<span style="color: #66cc66;">=</span><span style="color: #008000;">float</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">4</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	zmax<span style="color: #66cc66;">=</span><span style="color: #008000;">float</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">5</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	childSeed<span style="color: #66cc66;">=</span><span style="color: #008000;">int</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">6</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	childCount <span style="color: #66cc66;">=</span> <span style="color: #008000;">int</span><span style="color: black;">&#40;</span>arg<span style="color: black;">&#91;</span><span style="color: #ff4500;">7</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	pointList <span style="color: #66cc66;">=</span> <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
	pointSize <span style="color: #66cc66;">=</span> vec3<span style="color: black;">&#40;</span>xmax-xmin<span style="color: #66cc66;">,</span>ymax-ymin<span style="color: #66cc66;">,</span>zmax-zmin<span style="color: black;">&#41;</span>.<span style="color: black;">length</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> / <span style="color: #008000;">float</span><span style="color: black;">&#40;</span>childCount<span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> xstep <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>childCount<span style="color: black;">&#41;</span>:
		childSeed+<span style="color: #66cc66;">=</span><span style="color: #ff4500;">1</span>
		<span style="color: #dc143c;">random</span>.<span style="color: black;">seed</span><span style="color: black;">&#40;</span>childSeed<span style="color: black;">&#41;</span>
		xval <span style="color: #66cc66;">=</span> <span style="color: #dc143c;">random</span>.<span style="color: black;">uniform</span><span style="color: black;">&#40;</span>xmin<span style="color: #66cc66;">,</span>xmax<span style="color: black;">&#41;</span>
		<span style="color: #dc143c;">random</span>.<span style="color: black;">jumpahead</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
		yval <span style="color: #66cc66;">=</span> <span style="color: #dc143c;">random</span>.<span style="color: black;">uniform</span><span style="color: black;">&#40;</span>ymin<span style="color: #66cc66;">,</span>ymax<span style="color: black;">&#41;</span>
		<span style="color: #dc143c;">random</span>.<span style="color: black;">jumpahead</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
		zval <span style="color: #66cc66;">=</span> <span style="color: #dc143c;">random</span>.<span style="color: black;">uniform</span><span style="color: black;">&#40;</span>zmin<span style="color: #66cc66;">,</span>zmax<span style="color: black;">&#41;</span>
		<span style="color: #dc143c;">random</span>.<span style="color: black;">jumpahead</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
		pointVal <span style="color: #66cc66;">=</span> vec3<span style="color: black;">&#40;</span>xval<span style="color: #66cc66;">,</span>yval<span style="color: #66cc66;">,</span>zval<span style="color: black;">&#41;</span>
		pointList.<span style="color: black;">append</span><span style="color: black;">&#40;</span>pointVal<span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">print</span> RiPoints<span style="color: black;">&#40;</span>P<span style="color: #66cc66;">=</span>pointList<span style="color: #66cc66;">,</span>constantwidth<span style="color: #66cc66;">=</span><span style="color: black;">&#91;</span>pointSize<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	<span style="color: #dc143c;">sys</span>.<span style="color: black;">stdout</span>.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\3</span>77'</span><span style="color: black;">&#41;</span>
	<span style="color: #dc143c;">sys</span>.<span style="color: black;">stdout</span>.<span style="color: black;">flush</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	args <span style="color: #66cc66;">=</span> <span style="color: #dc143c;">sys</span>.<span style="color: black;">stdin</span>.<span style="color: #dc143c;">readline</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>Just add brick map or ptc based 3d look up shader and rejoice!</p>
<p>I still have an outstanding testing of seeing if it acutally produces geometry and see if it looks good, but they are small details <img src='http://www.hodge.net.au/sam/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hodge.net.au/sam/blog/2009/01/12/voxel-madness/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
