> [!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.