> [!abstract] Summary
> **Clean attributes before USD export** — Houdini SOP attributes don't all need to travel into the USD layer. Use the **Attribute Delete** SOP to strip everything except what USD actually needs (`path` on primitives, `P` on points, `uv` / `N` on vertices). Keep shading-specific attributes only when needed.
---
# Cleaning Attributes Before USD Export
Use the **Attribute Delete** SOP just before publishing to USD:
![[image-20230331.png]]
## What to Keep
Unless you have shading-specific attributes you need to preserve:
| Class | Keep |
|---|---|
| **Primitive** | `path` |
| **Point** | `P` |
| **Vertex** | `uv`, `N` |
Everything else can usually be removed.
## What to Remove
- `Cd` (display color) — unless required by lookdev.
- Random debug attributes left over from SOP iterations.
- Intermediate computation attributes (`@dist`, `@mask`, `@piece`, etc.) that have no value past the export point.
> [!tip] Why cleaning matters
> USD layers carry every attribute downstream — keeping useless attributes bloats the cache, slows down stage loading, and noises up the scene graph. The smaller the published USD, the snappier the pipeline.
---
# 🔗 Related
- [[SOLARIS MOC|SOLARIS MOC]].
- [[NODES/SOLARIS Component builder - Explore Variants|Component Builder]] — where the USD publish actually happens.
- [[../../../PROTOCOL/USD/Notes/USD KNOWLEDGE/USD terms and definitions|USD Terms & Definitions]] — Primvar vs Attribute.
- [[../../../PROTOCOL/OPTIMISATION/OPTIMISATION MOC|OPTIMISATION MOC]] — pipeline-level cleanup.