> [!abstract] Summary > **Making a proxy** geometry for Houdini / USD — a low-poly stand-in used for the viewport while the heavy render geometry stays hidden. The proxy and render geo share the same hierarchy and **`purpose`** USD attribute (`proxy` vs `render`), letting you swap between them per viewport with no scene reload. --- # What is a Proxy? A **proxy** is a lightweight stand-in for an asset, used to: - **Speed up the viewport** — work with a 5K-poly proxy instead of a 2M-poly hero asset. - **Speed up layout / set dressing** — only the proxy displays during layout, the render geo is loaded only at render time. - **Show in playblasts / dailies** without needing the full render asset to be cached. In USD, the proxy and render geo are split via the **`purpose`** attribute (`proxy` / `render` / `guide` / `default`). See [[../../../PROTOCOL/USD/Notes/USD KNOWLEDGE/6.30 USD Theory|USD Theory — Purpose]]. --- # Making a Proxy in Houdini ## Step 1 — Reduce the geometry Start from the hero / render geometry, then reduce. Typical paths: - **PolyReduce SOP** — target a percentage of original polycount (e.g. `5%`). - **Convex Hull / VDB → PolyReduce** — clean low-poly silhouette. - **Bounding box** — extreme case: cube proxy. ![[image-20230327.png]] ## Step 2 — Keep the hierarchy The proxy must share the **same hierarchy and naming** as the render mesh so USD can swap purposes prim-by-prim. ![[image-20230329.png]] ## Step 3 — Tag with `purpose` In Solaris, when publishing as USD: - Render geo → `purpose = render`. - Proxy → `purpose = proxy`. - Optional `guide` mesh for layout silhouettes. ![[image-20230811.png]] ![[image-20230811 1.png]] ![[image-20230811 2.png]] The viewer's **Purpose dropdown** lets you display only proxy / render / both: ![[image-20230811 3.png]] --- # Why hierarchy matters If the proxy and render geo have **matching prim paths**: - The **Kind** can be set so selecting the component selects both. - Animation transferred onto the render hierarchy will also drive the proxy (point deform, sublayered anim). - The render geometry can be **on-demand loaded** via a payload while the proxy stays light in the viewport. See [[../../../ARTFX OSMIUM/PIPELINE/Notes/PIPELINE ASSET|OSMIUM PIPELINE ASSET]] and [[../../../PROTOCOL/USD/Notes/USD KNOWLEDGE/6.30 USD Theory|USD Theory — Kind & Purpose]]. --- # 🔗 Related - [[../HOUDINI MOC|HOUDINI MOC]]. - [[../ENVIRONMENT/Houdini LOD Creation|Houdini LOD Creation]] — alternative: multiple LOD variants on a single asset. - [[../SOLARIS/NODES/SOLARIS Component builder - Explore Variants|Component Builder]] — publishes render + proxy + payload in one shot. - [[../../../PROTOCOL/USD/Notes/USD KNOWLEDGE/6.30 USD Theory|USD Theory — Purpose & Kind]]. - [[../../../ARTFX OSMIUM/PIPELINE/Notes/PIPELINE ASSET|OSMIUM PIPELINE ASSET]] — proxy in the production workflow.