1.1 Ray tracing

A monte carlo ray tracer in Haskell. Monte-Carlo ray-Tracing uses random and quasi-random techniques for improved image synthesis. Monte-carlo ray-tracers simulate global illumination and eliminates the ambient term. It does this using a set of random techniques to simulate an integration model of illumination, which is far more realistic.

HRay, a ray tracer in Haskell. The goal is to show how elegant, short and maintainable a ray tracing implementation would be in a functional language, as opposed to an imperative or procedural language. It uses a formal model for the application, using the functional and declarative formalism Funmath

2 Libraries

The Hugs Graphics Library supports 2-dimensional graphics operations, timers, mouse and keyboard actions and multiple windows. It runs on Hugs under both Win32 and X11. An earlier version was used for early prototypes of Fran.

2.1 Pan

An embedded language and highly optimizing compiler for image synthesis and transformation, based on the simple idea of images as functions over infinite, continuous 2D space. The resulting binaries can be used as PhotoShop plugins, embedded in web pages or PowerPoint, or used in an interactive standalone viewer. The compiler contains no domain-specific knowledge, so it's very extensible. See the gallery for visual examples. Currently Windows-only, but ports are encouraged.

Pan# is a slightly re-engineered version of Pan. It uses the same compiler but used the Microsoft .NET framework instead of visual studio, making it easier to install and use. It also has a number of new features added. While Pan is embedded in Haskell, Pan# has its own Haskell-like language built in so there is no need to use other Haskell compilers. Currently Windows-only.