> [!abstract] Summary > **USD writing when the point count varies frame-to-frame** — typical FX context (POP, FLIP, particles, sims that birth/kill points). Embeds the full solution write-up. Use **PointInstancer** with `invisibleIds` and `protoIndices` for the cleanest USD-native solution. --- # Context This is the **practical / FX-side** of the same problem covered in [[Advanced USD Writing different point number|Advanced USD Writing — different point counts]]. Use when: - A **POP solver** births / kills particles over the sim's lifetime. - A **FLIP** sim's surface mesh changes topology per frame. - A **scatter / instance** result varies in count over time. --- # Embedded Reference ![[Advanced USD Writing different point number]] --- # Quick Cheat-Sheet | Source | USD-friendly approach | |---|---| | **POP particles** | `UsdGeomPointInstancer` with per-frame `invisibleIds` and `protoIndices`. | | **FLIP surface** | Per-frame USD layers stitched, or fixed-topology cache + velocity. | | **Scatter (time-varying)** | Same as POP — go through PointInstancer. | | **Cloth / static sim** | Fixed-topology + per-frame point positions — works with the default USD export. | --- # 🔗 Related - [[Advanced USD Writing different point number|Advanced USD Writing — different point counts]] — full explanation. - [[../SOLARIS MOC|SOLARIS MOC]]. - [[../../../../ARTFX OSMIUM/PIPELINE/Notes/DETAILS/PIPELINE CFX and ANIM|OSMIUM PIPELINE CFX and ANIM]] — sim/CFX in pipeline context.