# Agni
Agni is a pathtraceing renderer written in Rust.
It is based on the excellent PBRT book.
## References
* [pbrt-rs](https://github.com/wahn/rs_pbrt) by Jan Walters
This is another implementation of the book in Rust,
that's much further along.
* [Physically Based Rendering](http://www.pbr-book.org/)
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
## FAQ
### 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](https://en.wikipedia.org/wiki/Agni).
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.