primvar + varia · open source · MIT
Physics-ready variability for Physical AI, in OpenUSD.
Procedural asset generators for the objects robots struggle with most: grains, cloth, cables and small mechanical parts. No two instances are the same, every value is measured, and every preset is checked in real engines before it ships.
Three rules, in every generator
Distributions, not one mesh copied a hundred times: shape, size, tolerance, defects, wear and physics drawn per instance, each with its own seed, and written into the file as ground truth.
What was generated is measured afterwards: mass, sphericity, drape, stiffness, fit. The numbers ship with the asset, so a training set can be filtered and stratified.
Every preset passes OpenUSD's validators and physical tests in real engines, read back from the file. What has not been tested is said, in the table below.
The generators
Each is its own package, released on its own schedule. pip install primvaria installs all four and one command line.
Engine matrix
Where each generator stands in each engine, on 29 October 2026. Tests run in each project's CI on every preset, from the OpenUSD file alone.
| Generator | OpenUSD validators | Blender | MuJoCo | Isaac Sim · PhysX | OmniPhysics deformables |
|---|---|---|---|---|---|
| Granulaire | testedevery preset and moisture state | testedpile test, every preset | testedpile test, every preset | not yetstandard UsdPhysics rigid bodies | exportedpeanuts, tomatoes; not run |
| Maillage | testedevery preset, OmniPhysics layer included | testeddrape test, every preset | testedflex export, drape test, every preset | n/acloth: see OmniPhysics | exportedsurface deformables, structure checked; not run |
| Filaire | testedevery preset, with and without physics | testeddrop through the add-on, every preset | testeddrop, sag, coil, insertion | not yetUsdPhysics joints, PhysX attributes | n/a |
| Quincaillerie | testedwhole catalogue, varied instances | testeddrop and assemblies through the add-on | testeddrop, screwing, jammed threads, insertion | not yetUsdPhysics, PhysX attributes | n/a |
Not yet in Isaac Sim. The files follow the standard UsdPhysics schemas and carry PhysX attributes, but no run in Isaac Sim has been done: it needs an NVIDIA RTX GPU. That run is the next milestone.
Fine grains at any scale. Sand and regolith are simulated with lengths and gravity scaled by the same factor, which leaves the motion unchanged and keeps engines away from their absolute tolerances. Each README says how.
Install and generate
pip install primvaria # the four generators pip install "primvaria[all]" # + renders, MuJoCo checks, MaterialX
Python 3.10+, no GPU needed. One generator only? pip install granulaire, or any of the others.
primvaria list primvaria granulaire generate --preset beach_sand primvaria maillage generate --preset tea_towel primvaria filaire generate --preset usb_c primvaria quincaillerie generate screw M10 --with nut,washer