<br><br><div class="gmail_quote">On Fri, Apr 18, 2008 at 7:43 PM, Don Stewart &lt;<a href="mailto:dons@galois.com">dons@galois.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
jsnow:<br>
<div class="Ih2E3d">&gt; A new version of my raytracer is out. &nbsp;It now supports cones, cylinders,<br>
&gt; disks, boxes, and planes as base primitives (previously it only<br>
&gt; supported triangles and spheres), as well as transformations of<br>
&gt; arbitrary objects (rotate, scale, translate) and the CSG operations<br>
&gt; difference and intersection. &nbsp;Perlin noise and Blinn highlights have<br>
&gt; been added, as well.<br>
&gt;<br>
&gt; <a href="http://syn.cs.pdx.edu/%7Ejsnow/glome/" target="_blank">http://syn.cs.pdx.edu/~jsnow/glome/</a><br>
&gt;<br>
&gt; Glome can parse NFF-format scene files (see<br>
&gt; <a href="http://tog.acm.org/resources/SPD/" target="_blank">http://tog.acm.org/resources/SPD/</a>), but many features are only<br>
&gt; accessible via raw Haskell, since NFF doesn&#39;t support very many kinds of<br>
&gt; primitives. &nbsp;I included a TestScene.hs file that demonstrates how to<br>
&gt; create a scene with various kinds of geometry (including a crude attempt<br>
&gt; at a recursively-defined oak tree) in haskell. &nbsp;There isn&#39;t any<br>
&gt; documentation yet, but many of the primitives have constructors that<br>
&gt; resemble their equivalents in povray, so anyone familiar with povray&#39;s<br>
&gt; syntax should be able to figure out what&#39;s going on.<br>
<br>
</div>Very impressive. Did you consider cabalising the Haskell code, so it<br>
can be easily distributed from <a href="http://hackage.haskell.org" target="_blank">hackage.haskell.org</a>?<br>
<br>
I note on the website you say:<br>
<br>
 &nbsp; &nbsp;&quot;no threading (shared-memory concurrency is not supported by ocaml,<br>
 &nbsp; &nbsp;in haskell it&#39;s buggy)&quot;<br>
<br>
Could you elaborate on this? Shared memory concurrency is a sweet spot<br>
in Haskell, and heavily utilised, so I think we&#39;d all like to know more<br>
details..<br>
<font color="#888888"></font></blockquote><div><br>Not sure what you need shared memory concurrency for in this case as it seems to be a straightforward parallelism problem (i.e. the different threads would be different pixels, there is no sharing needed).<br>
</div></div><br>-- <br>Sebastian Sylvan<br>+44(0)7857-300802<br>UIN: 44640862