> A new version of my raytracer is out. It now supports cones, cylinders,
> disks, boxes, and planes as base primitives (previously it only
> supported triangles and spheres), as well as transformations of
> arbitrary objects (rotate, scale, translate) and the CSG operations
> difference and intersection. Perlin noise and Blinn highlights have
> been added, as well.
>
>
http://syn.cs.pdx.edu/~jsnow/glome/
>
> Glome can parse NFF-format scene files (see
>
http://tog.acm.org/resources/SPD/), but many features are only
> accessible via raw Haskell, since NFF doesn't support very many kinds of
> primitives. I included a TestScene.hs file that demonstrates how to
> create a scene with various kinds of geometry (including a crude attempt
> at a recursively-defined oak tree) in haskell. There isn't any
> documentation yet, but many of the primitives have constructors that
> resemble their equivalents in povray, so anyone familiar with povray's
> syntax should be able to figure out what's going on.
Very impressive. Did you consider cabalising the Haskell code, so it