t-ray

What is it?

t-ray is a raytracer and (eventually) global illumination tool written purely in Common Lisp. Click here to download.

Most of the work done on t-ray was initially done in 2006, and unfortunately I haven't had much time recently to add to it too much. I have tried to clean up the code quite a bit, though. Most of the features were written without being fully integrated for ease of use, though. The included examples, for instance, only demonstrate a small fraction of the features actually implemented.

Features

Speaking of which, those features include:

  • Plane, Quadric, Box, Implicit Equation primitives, among otheres
  • Point, directional, and area lights (via random sampling) for hard and soft shadows
  • Image post-processing effects (tonemapping, etc.)

Some other features are also implemented but not fully integrated:

  • Procedural texture generation, including noise maps
  • Arbitrary transformations for primitives
  • Constructive solid geometry

Other features are only partially implemented:

  • Photon Mapping

Screenshots

These were generated with the 0.9.1 version of the program.

Rendering of a quartic equation. Note there are some issues with shadowing artifacts.
Refraction of objects through a glass box.

Requirements

The code has only been tested in SBCL, but doesn't use any particular extensions and should work with any CL environment with ASDF. It does depend on alexandria and metabang-bind, both of which are asdf-installable.

Download

The most recent version of t-ray is 0.9.1, available here.