> [!abstract] Summary > **`folderGenerator`** — a Houdini Digital Asset (HDA) for the Solaris (LOP) context, by **Arthur Cauchois**. Automates the creation of output folders required for rendering — particularly useful with **RenderMan**, which does **not** create output directories automatically. Drop it before the Render Settings node, set scene type / path / identifier / version, hit *Create Folders*. > [!info] HDA path > ``` > V:\OSMIUM\00_Pipeline\HDA\OSM_lop_folderGenerator.1.0.hdanc > ``` --- # Purpose When rendering with RenderMan, the process **fails** if the output directories (EXRs, AOVs, cryptomattes, etc.) do not already exist. `folderGenerator` ensures **all necessary folders are created before rendering begins**, preventing render failures from missing directories. --- # How to Use 1. **Place the HDA** in your LOP network, ideally **before** your Render Settings node. 2. In the HDA parameters: - **Scene Type:** - **Asset** — for turntables or lookdev renders. - **Shot** — for final shot renders. - **Location Path:** - **Local** — render to local drive (e.g. `/$PRISMJOBLOCAL/../`). - **Global** — render to the project network drive (e.g. `/$PRISMJOB/../`). - **Custom** — manually specify a path (e.g. `/JOB/render/...`). - **Identifier** — short name defining the render purpose (works like a render layer name): - Examples: `beauty`, `turn`, `env01`, `char01`. - **Important:** follow the **OSMIUM naming convention** ([[../../../PROTOCOL/FOUNDATION/PROTOCOL Naming Convention|PROTOCOL Naming Convention]]). - **Version:** - **Auto** — detects latest version, increments (e.g. `v0002` → `v0003`). - **Manual** — enter a version. Existing files **aren't overwritten** — useful for restarting renders without deleting previous EXRs. - **Additional Folders:** - **Cryptomatte** — creates a subfolder at `identifier/v000X/cryptomatte/` (Shot mode only). 3. **Click *Create Folders*** — the HDA creates all directories if they don't already exist. --- # Best Practices - **Always verify** folders were created in the correct path before launching a render. - Optimized for **template scenes** — its parameters are automatically wired to Output Picture paths (EXRs, cryptomattes). - In a template, you only need to set **location**, **identifier**, **version**, and **additional folders**. - For **non-template setups**: - Copy and paste the generated folder path into your Render Settings' **Output Picture** field. - Use the same **identifier** and **version** parameters to keep naming consistent. - Always place `folderGenerator` **before** your RenderMan Render Settings node. - For graph readability — **color-code** the node or add a sticky note as a reminder. --- # 🔗 Related - [[../TOOLS MOC|TOOLS MOC]]. - [[../../DEADLINE/Notes/Render to Deadline without Prism|Render to Deadline without Prism]] — folder existence is critical when submitting. - [[../../PIPELINE/Notes/PIPELINE SHOT PART 02|PIPELINE SHOT — Part 02]] — rendering stage. - [[../../../PROTOCOL/FOUNDATION/PROTOCOL Naming Convention|PROTOCOL Naming Convention]] — naming used for identifiers and versions.