Skip to content
A Fully Differentiable Ray Tracer
Branch: master
Clone or download


A Ray Tracer written completely in Julia. This allows us to leverage the AD capablities provided by Zygote to differentiate through the Ray Tracer.


The package is currently not registered. So open up a Julia 1.1+ repl and enter the pkg mode.

] add

For GPU Support

] add


For usage examples look into the examples directory. Also the documentation has some getting started examples.


These are not listed in any particular order

  • Add more types of common objects - Disc, Plane, Box
  • Add support for rendering arbitrary mesh (a proof of concept version is present in master but is very slow)
  • GPU Support using CuArrays (partially supported in ap/gpu branch)
  • Inverse Rendering Examples
  • Application in Machine Learning Models through Flux
You can’t perform that action at this time.