<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
	
	>
<channel>
	<title>Comments on: 3D rendering as functional reactive programming</title>
	<atom:link href="http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming/feed" rel="self" type="application/rss+xml" />
	<link>http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming</link>
	<description>Inspirations &#38; experiments, mainly about denotative/functional programming in Haskell</description>
	<lastBuildDate>Sat, 26 Sep 2020 21:06:12 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1.17</generator>
	<item>
		<title>By: conal</title>
		<link>http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming#comment-316</link>
		<dc:creator><![CDATA[conal]]></dc:creator>
		<pubDate>Tue, 20 Jan 2009 19:28:13 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=75#comment-316</guid>
		<description><![CDATA[&lt;p&gt;@newsham - Yes, that&#039;s the idea: futures are opaque.  Events are partially transparent.  For fancier rendering, using transmission through 3D media (air, jello, etc), the (per-ray) model is analogous to (continuous-time) behaviors with integration.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>@newsham &#8211; Yes, that&#8217;s the idea: futures are opaque.  Events are partially transparent.  For fancier rendering, using transmission through 3D media (air, jello, etc), the (per-ray) model is analogous to (continuous-time) behaviors with integration.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: newsham</title>
		<link>http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming#comment-315</link>
		<dc:creator><![CDATA[newsham]]></dc:creator>
		<pubDate>Tue, 20 Jan 2009 18:59:43 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=75#comment-315</guid>
		<description><![CDATA[&lt;p&gt;So (stretching a metaphor) the future occludes the more distant future in FRP?&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>So (stretching a metaphor) the future occludes the more distant future in FRP?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: andreas</title>
		<link>http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming#comment-314</link>
		<dc:creator><![CDATA[andreas]]></dc:creator>
		<pubDate>Tue, 20 Jan 2009 18:43:01 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=75#comment-314</guid>
		<description><![CDATA[&lt;p&gt;Hi conal. i am really excited about your interesting post. So i was thinking about a small example where you don&#039;t need the color but just the depth value like ShadowMapping. Semantically something like&lt;/p&gt;

&lt;pre&gt;
type ShadowMap = Image Depth
renderShadow :: Geometry -&gt; ShadowMap
&lt;/pre&gt;

&lt;p&gt;And a Light that uses the image (creating a dependency).&lt;/p&gt;

&lt;pre&gt;
shadowPointLight :: Color -&gt; R^3 -&gt; ShadowMap -&gt; Light
&lt;/pre&gt;

&lt;p&gt;What are your thoughts on that? Could that also be described ?&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Hi conal. i am really excited about your interesting post. So i was thinking about a small example where you don&#8217;t need the color but just the depth value like ShadowMapping. Semantically something like</p>

<pre>
type ShadowMap = Image Depth
renderShadow :: Geometry -> ShadowMap
</pre>

<p>And a Light that uses the image (creating a dependency).</p>

<pre>
shadowPointLight :: Color -> R^3 -> ShadowMap -> Light
</pre>

<p>What are your thoughts on that? Could that also be described ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: conal</title>
		<link>http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming#comment-313</link>
		<dc:creator><![CDATA[conal]]></dc:creator>
		<pubDate>Sat, 17 Jan 2009 17:25:39 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=75#comment-313</guid>
		<description><![CDATA[&lt;blockquote&gt;
  &lt;p&gt;In practice, points also need tangents and bitangents for certain types of lighting. What are your thoughts on that?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Thanks, Peter.  I&#039;d forgotten that normals aren&#039;t enough for all lighting models.  An easy solution is to throw away less information.  In place of location and normal, we might have location and first derivative (full, i.e., both partial derivatives), or a full (infinite) &lt;a href=&quot;http://conal.net/blog/tag/derivative/&quot; rel=&quot;nofollow&quot;&gt;derivative tower&lt;/a&gt;.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<blockquote>
  <p>In practice, points also need tangents and bitangents for certain types of lighting. What are your thoughts on that?</p>
</blockquote>

<p>Thanks, Peter.  I&#8217;d forgotten that normals aren&#8217;t enough for all lighting models.  An easy solution is to throw away less information.  In place of location and normal, we might have location and first derivative (full, i.e., both partial derivatives), or a full (infinite) <a href="http://conal.net/blog/tag/derivative/" rel="nofollow">derivative tower</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Verswyvelen</title>
		<link>http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming#comment-312</link>
		<dc:creator><![CDATA[Peter Verswyvelen]]></dc:creator>
		<pubDate>Sat, 17 Jan 2009 00:53:34 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=75#comment-312</guid>
		<description><![CDATA[&lt;p&gt;A bit off topic. You write:&lt;/p&gt;

&lt;p&gt;&quot;Each point on these surfaces has a location, a normal (perpendicular direction), and material properties (determining how light is reflected by and transmitted through the surface at the point).&quot;&lt;/p&gt;

&lt;p&gt;In practice, points also need tangents and bitangents for certain types of lighting. What are your thoughts on that? See e.g. http://www.terathon.com/code/tangent.html&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>A bit off topic. You write:</p>

<p>&#8220;Each point on these surfaces has a location, a normal (perpendicular direction), and material properties (determining how light is reflected by and transmitted through the surface at the point).&#8221;</p>

<p>In practice, points also need tangents and bitangents for certain types of lighting. What are your thoughts on that? See e.g. <a href="http://www.terathon.com/code/tangent.html" rel="nofollow">http://www.terathon.com/code/tangent.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: conal</title>
		<link>http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming#comment-311</link>
		<dc:creator><![CDATA[conal]]></dc:creator>
		<pubDate>Wed, 14 Jan 2009 05:23:31 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=75#comment-311</guid>
		<description><![CDATA[&lt;p&gt;Hi Artyom.  Thanks for the feedback.  Yes, I&#039;m talking about Reactive as an approach to FRP that is built around the notion of future values.  Also about FieldTrip, though I haven&#039;t yet applied my new semantic ideas in the library.&lt;/p&gt;

&lt;p&gt;About Reactive and real applications, I think it&#039;s getting quite close.  There&#039;s been a persistent troubling bug that now appears to be rooted in a concurrency bug in the GHC&#039;s run-time system.  That bug has been fixed, and once I can get a new stable version, I&#039;ll better know how close we are.  I&#039;ve also been exploring changes to Reactive&#039;s programming model that I think will make FRP more well-suited to space-time modular user-interaction.  You can find hints about these changes in some of my recent blog posts.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Hi Artyom.  Thanks for the feedback.  Yes, I&#8217;m talking about Reactive as an approach to FRP that is built around the notion of future values.  Also about FieldTrip, though I haven&#8217;t yet applied my new semantic ideas in the library.</p>

<p>About Reactive and real applications, I think it&#8217;s getting quite close.  There&#8217;s been a persistent troubling bug that now appears to be rooted in a concurrency bug in the GHC&#8217;s run-time system.  That bug has been fixed, and once I can get a new stable version, I&#8217;ll better know how close we are.  I&#8217;ve also been exploring changes to Reactive&#8217;s programming model that I think will make FRP more well-suited to space-time modular user-interaction.  You can find hints about these changes in some of my recent blog posts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Artyom Shalkhakov</title>
		<link>http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming#comment-310</link>
		<dc:creator><![CDATA[Artyom Shalkhakov]]></dc:creator>
		<pubDate>Wed, 14 Jan 2009 04:48:08 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=75#comment-310</guid>
		<description><![CDATA[&lt;p&gt;An enjoyable post, thanks. The functional approach seems very elegant.&lt;/p&gt;

&lt;p&gt;I haven&#039;t looked into Reactive and FieldTrip, are describing them?&lt;/p&gt;

&lt;p&gt;PS when will Reactive be ready for usage in real applications?&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>An enjoyable post, thanks. The functional approach seems very elegant.</p>

<p>I haven&#8217;t looked into Reactive and FieldTrip, are describing them?</p>

<p>PS when will Reactive be ready for usage in real applications?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: conal</title>
		<link>http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming#comment-309</link>
		<dc:creator><![CDATA[conal]]></dc:creator>
		<pubDate>Wed, 14 Jan 2009 03:36:24 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=75#comment-309</guid>
		<description><![CDATA[&lt;p&gt;Hi Michael.  I love your idea for extending the FRP abstractions in ways that account for reflections, diffraction etc, and then seeing what these extended abstractions suggest for FRP.  Thanks!&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>Hi Michael.  I love your idea for extending the FRP abstractions in ways that account for reflections, diffraction etc, and then seeing what these extended abstractions suggest for FRP.  Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Robinson</title>
		<link>http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming#comment-308</link>
		<dc:creator><![CDATA[Michael Robinson]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 20:02:47 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=75#comment-308</guid>
		<description><![CDATA[&lt;p&gt;This is a clever idea, and an enjoyable post!  You could extend it to permit accounting for more complicated phenomena, like reflections or diffraction by changing your Time type to be a rooted tree, which of course has a notion of &lt;em&gt;partial&lt;/em&gt; ordering rather than a total ordering as in Ord.  Metaphorically, the root of such a tree lies in the Image surface, each edge is marked with a distance/propagation time, and each node in the tree is on a reflective portion of your Geometry.  It seems this might mesh well with your notion of interactive FRP.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>This is a clever idea, and an enjoyable post!  You could extend it to permit accounting for more complicated phenomena, like reflections or diffraction by changing your Time type to be a rooted tree, which of course has a notion of <em>partial</em> ordering rather than a total ordering as in Ord.  Metaphorically, the root of such a tree lies in the Image surface, each edge is marked with a distance/propagation time, and each node in the tree is on a reflective portion of your Geometry.  It seems this might mesh well with your notion of interactive FRP.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dougal Stanton</title>
		<link>http://conal.net/blog/posts/3d-rendering-as-functional-reactive-programming#comment-307</link>
		<dc:creator><![CDATA[Dougal Stanton]]></dc:creator>
		<pubDate>Mon, 12 Jan 2009 10:22:41 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=75#comment-307</guid>
		<description><![CDATA[&lt;p&gt;I&#039;m currently reading Steven Pinker&#039;s &lt;em&gt;The Stuff of Thought&lt;/em&gt;. He devotes lengthy sections to the discussion of repurposing basic metaphors for more abstract domains. One of the simplest he describes is using metaphors of space to describe time (time as a journey, time as a flowing river, looking into the past or the future). It&#039;s interesting that you&#039;re basically doing the opposite here: you already had the temporal metaphors (well, functions) worked out and you&#039;re reusing them to describe three-dimensional space.&lt;/p&gt;
]]></description>
		<content:encoded><![CDATA[<p>I&#8217;m currently reading Steven Pinker&#8217;s <em>The Stuff of Thought</em>. He devotes lengthy sections to the discussion of repurposing basic metaphors for more abstract domains. One of the simplest he describes is using metaphors of space to describe time (time as a journey, time as a flowing river, looking into the past or the future). It&#8217;s interesting that you&#8217;re basically doing the opposite here: you already had the temporal metaphors (well, functions) worked out and you&#8217;re reusing them to describe three-dimensional space.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
