Source code can be downloaded on GitHub.

bytecode77 / literay

See also...

Other projects in the field of software rendering:


2.5D Raycaster


A polygonal software renderer

Literay is a raytracer for rendering of high-quality static scenes. This is not done in real-time, so therefore it is not in the same category as a 3D engine. However, raytracing facilitates different interesting graphics features. For instance, non-polygonal primitives such as those on the screenshots as well as textures, bump maps, anti-aliasing and especially realistic lighting are key features to raytracing. You can create Lua scripts which generate scenes that are set up static, but contain entities generated on the fly, in loops or using recursive functions.

Literay's Lua scripts can also be used to render multiple sequentive images, thus creating a moving scene. These images can be then converted to a video (conversion is not part of Literay). Lua scripts leave you enough options to create any set of entities and light settings to render. The best example of how Lua is superior over a static markup script is the sphere fractal as on the screenshot below.

Literay also takes advantage of multi-core processors. It renders multiple times faster on a CPU with 4 cores and hyper threading in comparison to using only a single CPU or thread. Raytracing is a task that can be very easily parallelized.

These scenes can also be downloaded as PNG files, rendered at 1920x1080 and high quality settings.


  • Primitives
    • Plane
    • Cube
    • Sphere
    • Cylinder
    • Tube
  • Lighting, shadows & soft shadows
  • Reflection
  • Anti-Aliasing (different pre-defined OG / RG variants, from 4x to 16x)
  • Textures (with bi-linear filtering)
  • Runtime generated scenes using Lua scripts
  • A scene editor
  • Multi-threaded rendering implemented in a native C++ DLL



This is a great visualization of different anti-aliasing modes and how they affect image quality. A nice side effect of anti-aliasing is soft shadows rendering with higer quality, because anti-aliasing also increases the sample rate for light picking operations per pixel.