#rendering #3d

bin+lib agni

Agni is 3D pathtracing research library

2 releases

Uses old Rust 2015

0.1.2 Dec 23, 2018
0.1.1 Dec 23, 2018
0.1.0 Nov 22, 2018

#50 in #rendering

Used in jal

MPL-2.0 license

186 lines


Agni is a pathtraceing renderer written in Rust. It is based on the excellent PBRT book.


  • pbrt-rs by Jan Walters

    This is another implementation of the book in Rust, that's much further along.

  • Physically Based Rendering by Greg Humphreys and Matt Pharr

    The book I'll be basing this renderer on. Originally written in C++, I will be reimplementing it in Rust


Why PBR?

I've previously worked through the Raytracing in a weekend books and would like to write something more comprehensive.

This seems like a great exercise to learn how pathtracers work, and try and build functionality around one.

Why Rust?

I chose Rust because it seems like a really well thought out language. I enjoy the dependency management and strictness of it.

I've done smaller projects previously in Rust but would like to set a larger project here so that I can learn more about it, specifically with regards to lots of data and threading.

My hope is that, as I work, I can provide functionality that can be useful outside this project itself.

Why Agni?

Agni is the Hindu Deity of fire.

He is often also associated with the sun in the sky and represents energy as a whole.

That seems very fitting with the nature of a render system.

Also it was not used yet on crates.io which is a big plus.

What if this Crate is abandoned?

I realize crates get abandoned all the time. If that happens, please reach out to me and we can talk about reassigning it.


~11K SLoC