AuraRay

A deterministic C++17 ray tracer and reusable Unity package for simulated gaze-aware rendering experiments.

AuraRay gaze point moving through foveation regions

Foveated rendering ideas are hard to inspect when rendering policy, runtime behavior, and visual output are tangled together, especially before eye-tracking hardware is available.

Inside the experience

What someone can actually do

  1. 11 renders verified by SHA-256 hashes with automated CTest checks
  2. Lambertian, metal, and dielectric materials with recursive scattering
  3. Reusable Unity Package Manager package with clean-import verification
  4. Interactive simulated gaze regions with relative ray-budget estimates

How the idea took shape

Two connected tools: a deterministic C++17 reference renderer with hash-verified outputs, and a reusable Unity package for exploring gaze regions and estimated ray budgets.

A rendering experiment is easier to trust when reference output and interactive behavior are separated, inspectable, and reproducible.
Full, low, gaze-aware, and overlay rendering comparison
Foveation comparison
Ray-traced XR lens scene
XR optics reference scene
Ray-traced glass orbs
Dielectric materials
Warm ray-traced studio spheres
Studio reference scene
Foveated sampling-region overlay
Sampling regions
Explore how it was built +

I designed the architecture, wrote the C++ renderer, built the Unity package and simulator, created the verification workflow, and documented the boundary between simulation and hardware behavior.

  • C++17
  • CMake
  • Ray tracing
  • Unity 6
  • C#
  • JSON metadata

Where it could go next

The project became stronger when reproducibility and distribution were treated as core product features, not cleanup work.

More work