I'll try to be more clear this time.
So, intent of my system is to be used both in SOPS and LOPS.
1. Animator would open his animation scene in which he has environment HDA loaded. It loads whole environemnt USD, which loads bunch of building USD's. Everything there is shown as proxy.
2. He would have simple explosion POPs with which he would decide where grenades would hit. If these particles hit one of these building assets, it would trigger sublayering of appropriate FX destruction USD. If particles hit ground it would add point to instancer which instances ground_explosion.usd.
So, animator would see proxies of usd destruction like this. Figured out it is most optimal to have these vdb converted to low poly geo proxies.
Problem with that is the fact it is very slow. Even though I'm pulling only proxy geometries from LOPS doesn't stop sublayer for processing stuff 2-3s per frame.
Data moves like this:
a) layout of explosions SOPS
b) importing explosion list in LOPS, figuring out which ones are instances, and which ones are sublayer destructions over existing assets.
c) importing proxies of destruction from LOPS back to SOPS so animator has preview of what he is doing.
Idea was to have everything packed up in usd files, so we don't have to do double work. One system in sops for animator (where bgeo proxies would be read) and other one in LOPS for look dev.
4. As for instancing and virtual memory, pinpointed what was causing problem. Retime instances makes them unique frame, that is for sure. Converting dirt explosion meshes to value clips, think that would consume far less ram, as you guys already wrote up there.