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