This project automates the execution of rendering scenes using YAPT, collects the resulting .exr
images, and extracts statistics (such as RGB channel averages) using oiiotool
. The workflow is managed by Snakemake and configured via a CSV file that defines each job's parameters.
.
├── Snakefile # Snakemake workflow
├── config.yaml # Configuration file with paths
├── params.csv # Scene rendering parameters
├── maps/ # Files mapping scene name to .exr filename
├── images/ # Rendered .exr images
├── stats/ # Extracted statistics per image
└── results/
└── stats_summary.csv # Summary of means for all images
git clone https://github.com/your-username/yapt-sm.git
cd yapt-sm
python3 -m venv snakemake
source snakemake/bin/activate
pip install --upgrade pip
pip install snakemake pandas matplotlib
- YAPT: Clone and build yapt
- OpenImageIO (
oiiotool
)
On Ubuntu:sudo apt install openimageio-tools
yapt_path: /path/to/yapt/bin
function_path: functions
output_image_path: images
This file defines which scenes to run and with which parameters:
name,source,spp
test1,scene1.ypt,10
test2,scene2.ypt,20
Once configured, run the full pipeline with:
snakemake --cores 4 --config params_file=params.csv
The file results/stats_summary.csv
will contain the average value (extracted from the image stats) for each scene:
name,mean
test1,0.791
test2,0.812
To remove all generated files and reset the workflow:
snakemake --delete-all-output --delete-temp-output