Skip to content

Commit 792e400

Browse files
committed
Deduplicate backend scene presets via inner-class defaults
The per-backend scene preset entries repeated identical num_envs, env_spacing, and replicate_physics values, differing only in clone_in_fabric (Fabric cloning is unsupported on Newton). Move the invariant values onto each family's shared scene class as defaults so the presets declare only their backend delta. Verified byte-identical across all twenty preset variants.
1 parent 2c5ea5b commit 792e400

5 files changed

Lines changed: 40 additions & 88 deletions

File tree

source/isaaclab_tasks/isaaclab_tasks/core/handover/handover_manager_env_cfg.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@
3535
class _HandoverManagerSceneCfg(InteractiveSceneCfg):
3636
"""Scene shared by the handover Manager backend alternatives."""
3737

38+
num_envs = 2048
39+
env_spacing = 1.5
40+
replicate_physics = True
41+
3842
ground = AssetBaseCfg(
3943
prim_path="/World/ground",
4044
spawn=sim_utils.GroundPlaneCfg(),
@@ -52,10 +56,8 @@ class _HandoverManagerSceneCfg(InteractiveSceneCfg):
5256
class HandoverManagerSceneCfg(PresetCfg):
5357
"""Backend-specific scene cloning settings for handover."""
5458

55-
physx = _HandoverManagerSceneCfg(num_envs=2048, env_spacing=1.5, replicate_physics=True, clone_in_fabric=True)
56-
newton_mjwarp = _HandoverManagerSceneCfg(
57-
num_envs=2048, env_spacing=1.5, replicate_physics=True, clone_in_fabric=False
58-
)
59+
physx = _HandoverManagerSceneCfg(clone_in_fabric=True)
60+
newton_mjwarp = _HandoverManagerSceneCfg(clone_in_fabric=False)
5961
ovphysx = physx
6062
default = physx
6163

source/isaaclab_tasks/isaaclab_tasks/core/reorient/config/allegro_hand/allegro_hand_manager_env_cfg.py

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@
3838
class _AllegroCubeSceneCfg(InteractiveSceneCfg):
3939
"""Allegro scene shared by the backend alternatives."""
4040

41+
num_envs = 8192
42+
env_spacing = 0.75
43+
replicate_physics = True
44+
4145
ground = AssetBaseCfg(prim_path="/World/ground", spawn=sim_utils.GroundPlaneCfg())
4246
robot: ArticulationCfg = ROBOT_CFG
4347
object: ObjectCfg = OBJECT_CFG
@@ -51,24 +55,9 @@ class _AllegroCubeSceneCfg(InteractiveSceneCfg):
5155
class AllegroCubeSceneCfg(PresetCfg):
5256
"""Backend-specific scene cloning settings matching the Direct task."""
5357

54-
physx = _AllegroCubeSceneCfg(
55-
replicate_physics=True,
56-
num_envs=8192,
57-
env_spacing=0.75,
58-
clone_in_fabric=True,
59-
)
60-
newton_mjwarp = _AllegroCubeSceneCfg(
61-
replicate_physics=True,
62-
num_envs=8192,
63-
env_spacing=0.75,
64-
clone_in_fabric=False,
65-
)
66-
ovphysx = _AllegroCubeSceneCfg(
67-
replicate_physics=True,
68-
num_envs=8192,
69-
env_spacing=0.75,
70-
clone_in_fabric=True,
71-
)
58+
physx = _AllegroCubeSceneCfg(clone_in_fabric=True)
59+
newton_mjwarp = _AllegroCubeSceneCfg(clone_in_fabric=False)
60+
ovphysx = _AllegroCubeSceneCfg(clone_in_fabric=True)
7261
default = physx
7362

7463
def set_num_envs(self, num_envs: int) -> None:

source/isaaclab_tasks/isaaclab_tasks/core/reorient/config/shadow_hand/shadow_hand_camera_manager_env_cfg.py

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@
3838
class _ShadowHandCameraManagerSceneCfg(_ShadowHandManagerSceneCfg):
3939
"""State Manager scene augmented with camera and fingertip-wrench sensors."""
4040

41+
num_envs = 1225
42+
env_spacing = 2.0
43+
4144
ground = None
4245
tiled_camera: ShadowHandTiledCameraCfg = ShadowHandTiledCameraCfg()
4346
joint_wrench = JointWrenchSensorCfg(prim_path="{ENV_REGEX_NS}/Robot")
@@ -47,18 +50,8 @@ class _ShadowHandCameraManagerSceneCfg(_ShadowHandManagerSceneCfg):
4750
class ShadowHandCameraManagerSceneCfg(PresetCfg):
4851
"""Backend-specific camera scene alternatives for training and benchmarking."""
4952

50-
physx = _ShadowHandCameraManagerSceneCfg(
51-
num_envs=1225,
52-
env_spacing=2.0,
53-
replicate_physics=True,
54-
clone_in_fabric=True,
55-
)
56-
newton_mjwarp = _ShadowHandCameraManagerSceneCfg(
57-
num_envs=1225,
58-
env_spacing=2.0,
59-
replicate_physics=True,
60-
clone_in_fabric=False,
61-
)
53+
physx = _ShadowHandCameraManagerSceneCfg(clone_in_fabric=True)
54+
newton_mjwarp = _ShadowHandCameraManagerSceneCfg(clone_in_fabric=False)
6255
ovphysx = physx
6356
default = physx
6457

@@ -67,24 +60,9 @@ class ShadowHandCameraManagerSceneCfg(PresetCfg):
6760
class ShadowHandCameraManagerPlaySceneCfg(PresetCfg):
6861
"""Reduced backend-specific camera scenes for checkpoint playback."""
6962

70-
physx = _ShadowHandCameraManagerSceneCfg(
71-
num_envs=CAMERA_PLAY_NUM_ENVS,
72-
env_spacing=2.0,
73-
replicate_physics=True,
74-
clone_in_fabric=True,
75-
)
76-
newton_mjwarp = _ShadowHandCameraManagerSceneCfg(
77-
num_envs=CAMERA_PLAY_NUM_ENVS,
78-
env_spacing=2.0,
79-
replicate_physics=True,
80-
clone_in_fabric=False,
81-
)
82-
ovphysx = _ShadowHandCameraManagerSceneCfg(
83-
num_envs=CAMERA_PLAY_NUM_ENVS,
84-
env_spacing=2.0,
85-
replicate_physics=True,
86-
clone_in_fabric=True,
87-
)
63+
physx = _ShadowHandCameraManagerSceneCfg(num_envs=CAMERA_PLAY_NUM_ENVS, clone_in_fabric=True)
64+
newton_mjwarp = _ShadowHandCameraManagerSceneCfg(num_envs=CAMERA_PLAY_NUM_ENVS, clone_in_fabric=False)
65+
ovphysx = _ShadowHandCameraManagerSceneCfg(num_envs=CAMERA_PLAY_NUM_ENVS, clone_in_fabric=True)
8866
default = physx
8967

9068

source/isaaclab_tasks/isaaclab_tasks/core/reorient/config/shadow_hand/shadow_hand_env_cfg.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,15 @@ class ObjectCfg(PresetCfg):
266266
newton_kamino = newton_mjwarp
267267

268268

269+
@configclass
270+
class _ShadowHandSceneCfg(InteractiveSceneCfg):
271+
"""Shadow Direct scene defaults; backend presets only set ``clone_in_fabric``."""
272+
273+
num_envs = 8192
274+
env_spacing = 0.75
275+
replicate_physics = True
276+
277+
269278
@configclass
270279
class ShadowHandSceneCfg(PresetCfg):
271280
"""Scene configuration presets for the shadow hand environment.
@@ -274,18 +283,8 @@ class ShadowHandSceneCfg(PresetCfg):
274283
Newton does not support Fabric cloning, so ``clone_in_fabric`` must be ``False``.
275284
"""
276285

277-
physx: InteractiveSceneCfg = InteractiveSceneCfg(
278-
num_envs=8192,
279-
env_spacing=0.75,
280-
replicate_physics=True,
281-
clone_in_fabric=True,
282-
)
283-
newton_mjwarp: InteractiveSceneCfg = InteractiveSceneCfg(
284-
num_envs=8192,
285-
env_spacing=0.75,
286-
replicate_physics=True,
287-
clone_in_fabric=False,
288-
)
286+
physx: InteractiveSceneCfg = _ShadowHandSceneCfg(clone_in_fabric=True)
287+
newton_mjwarp: InteractiveSceneCfg = _ShadowHandSceneCfg(clone_in_fabric=False)
289288
default: InteractiveSceneCfg = physx
290289
newton_kamino = newton_mjwarp
291290

source/isaaclab_tasks/isaaclab_tasks/core/reorient/config/shadow_hand/shadow_hand_manager_env_cfg.py

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@
4444
class _ShadowHandManagerSceneCfg(InteractiveSceneCfg):
4545
"""Scene shared by the Shadow Hand Manager backend alternatives."""
4646

47+
num_envs = 8192
48+
env_spacing = 0.75
49+
replicate_physics = True
50+
4751
ground = AssetBaseCfg(prim_path="/World/ground", spawn=sim_utils.GroundPlaneCfg())
4852
robot: PresetCfg = ROBOT_CFG
4953
object: ObjectCfg = OBJECT_CFG
@@ -57,18 +61,8 @@ class _ShadowHandManagerSceneCfg(InteractiveSceneCfg):
5761
class ShadowHandManagerSceneCfg(PresetCfg):
5862
"""Backend-specific scene cloning settings matching the Direct task."""
5963

60-
physx = _ShadowHandManagerSceneCfg(
61-
num_envs=8192,
62-
env_spacing=0.75,
63-
replicate_physics=True,
64-
clone_in_fabric=True,
65-
)
66-
newton_mjwarp = _ShadowHandManagerSceneCfg(
67-
num_envs=8192,
68-
env_spacing=0.75,
69-
replicate_physics=True,
70-
clone_in_fabric=False,
71-
)
64+
physx = _ShadowHandManagerSceneCfg(clone_in_fabric=True)
65+
newton_mjwarp = _ShadowHandManagerSceneCfg(clone_in_fabric=False)
7266
ovphysx = physx
7367
newton_kamino = newton_mjwarp
7468
default = physx
@@ -312,18 +306,8 @@ class _ShadowHandOpenAIManagerSceneCfg(_ShadowHandManagerSceneCfg):
312306
class ShadowHandOpenAIManagerSceneCfg(PresetCfg):
313307
"""Backend-specific OpenAI scene alternatives."""
314308

315-
physx = _ShadowHandOpenAIManagerSceneCfg(
316-
num_envs=8192,
317-
env_spacing=0.75,
318-
replicate_physics=True,
319-
clone_in_fabric=True,
320-
)
321-
newton_mjwarp = _ShadowHandOpenAIManagerSceneCfg(
322-
num_envs=8192,
323-
env_spacing=0.75,
324-
replicate_physics=True,
325-
clone_in_fabric=False,
326-
)
309+
physx = _ShadowHandOpenAIManagerSceneCfg(clone_in_fabric=True)
310+
newton_mjwarp = _ShadowHandOpenAIManagerSceneCfg(clone_in_fabric=False)
327311
ovphysx = physx
328312
newton_kamino = newton_mjwarp
329313
default = physx

0 commit comments

Comments
 (0)