You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Honor replicate_physics as cloner-side policy directed by asset cfgs
Since the replication-session refactor, InteractiveSceneCfg.replicate_physics
was ignored: scenes configured with replicate_physics=False invoked native
physics replication anyway, silently discarding per-environment USD
differences (identified in #6541).
The flag now lives where the policy executes:
- CloneCfg.replicate_physics is the policy's home; InteractiveScene pipes its
cfg flag into it and forwards it through ReplicateSession to replicate().
- REPLICATION_QUEUE holds bare asset cfgs: construction only registers which
cfgs participate (required by ClonePlan.from_env_0 in direct workflows and
to distinguish clonable assets from lights/terrain).
- replicate() resolves how each cfg clones at dispatch: the cfg's
cloning_contexts field when set, otherwise the active backend's default
stack exported as isaaclab_<backend>.cloner.REPLICATION. PhysX pairs
physics replication with USD clones (collision groups are authored on the
per-env prims; PhysX has no kitless mode), Newton includes USD only under
Kit, and OvPhysX replicates alone since its clone replay authors USD.
- With replicate_physics=False, cloning is USD-only: the physics engine
parses the per-env USD prims directly; an asset whose contexts are all
physics-based is simply not cloned.
Asset implementations know nothing about cloning beyond registering their
cfg; per-asset overrides are a cfg assignment. The per-backend
queue_*_replication helpers are removed in favor of this single path.
0 commit comments