A ray-tracer named after one of the most noble robots out there :)
sample.py: Two cars surrounded by trees and piles of leaves, in front of a set of large boulders. There's a small and sparkling pond.
/wall-e: The Rust ray-tracing library./wall-e-py: Rust Python3 bindings, for scripting./wall-e-py/assets/meshes: Contains.objmesh files./wall-e-py-macros: Rust macros used in/wall-e-py./scripts: Scripts (scenes) you want to render./images: Images from the scenes requested in the assignment guidelines.SCRIPTING.md: Documentation for the scripting API.
Note: You will need to have Rust and Python3 installed on your system.
Create a virtual environment and install maturin.
cd wall-e-py
python3 -m venv .env
source .env/bin/activate
pip install maturin
deactivateScripts, which are python3 files, are put in /scripts.
To run a script ./scripts/custom-script.py, from the root folder, call
# No debug output.
./run.sh custom-script
# With debug output.
./debug.sh custom-scriptOr, alternatively:
cd wall-e-py
source .env/bin/activate
maturin develop
cd ..
python3 ./scripts/custom-script.pyRendered images, by default, are placed in the root folder.
- pyo3: Interacting with Rust code using Python.
nalgebra: Linear algebra cratea.image: Image processing crate.lazy_static: Utility crate for creating global mutable variables with non-const initialization.obj: Utility crate for loadingobjfiles.- maturin: Building python3 module generated using
pyo3. rand: Utility crate for random number generation.
