> [!abstract] Summary > **Writing USD with a changing point count** — the standard USD point-attribute system assumes a fixed point count over time. For sims (POP / FLIP / Particles / FX) that **birth and die** points, the standard export breaks. Workarounds: use **point instancers**, write **time-varying topology**, or use **velocity-based motion blur** on a fixed-topology cache. --- # The Problem USD's standard point-position attribute is **time-sampled with a fixed array size**. If your simulation adds or removes points frame by frame (sparks, debris, FLIP particles, dying foliage), a naive USD export either: - Errors out / clamps to the first frame's count. - Produces a broken cache where points teleport, disappear, or duplicate. # Standard Solutions ### 1. UsdGeomPointInstancer Instead of a Points / Mesh prim, write a **PointInstancer** — this schema explicitly supports per-frame variation of `invisibleIds` and `protoIndices`, letting you birth and kill instances over time. ### 2. Per-Frame USD Layers Write **one USD per frame** as a sequence, then load them via a stitching node. Heavier on disk, but flexible. ### 3. Fixed-Topology Cache + Velocity If the sim has a stable "max" point count, pre-allocate that count and write velocities + lifespans, then handle culling at render time via shaders / visibility. ### 4. Custom Schema For advanced cases, author a custom USD schema with per-time topology — this is what production pipelines like Rodeo / Animal Logic do. --- # Resources > [!example] ARTFX example scenes & references > [Open in Google Drive](https://drive.google.com/drive/folders/1gUvg2wEwCrA91FsGeS5Q1PF95F2EWKJM?usp=drive_link) --- # 🔗 Related - [[Write USD with moving point number - Pop - FX|Write USD with moving point number — POP / FX]] — companion note. - [[../SOLARIS MOC|SOLARIS MOC]]. - [[../../../../PROTOCOL/USD/Notes/USD KNOWLEDGE/6.30 USD Theory|USD Theory]] — point primvars and attribute time samples. - [[../../../../PROTOCOL/USD/Notes/USD KNOWLEDGE/USD terms and definitions|USD Terms & Definitions]] — Point Instancer schema.