Skip to content

Drop the unreachable Newton preset from the Digit tasks - #7165

Merged
kellyguo11 merged 2 commits into
isaac-sim:developfrom
AntoineRichard:antoiner/fix-digit-newton-companion
Aug 20, 2026
Merged

Drop the unreachable Newton preset from the Digit tasks#7165
kellyguo11 merged 2 commits into
isaac-sim:developfrom
AntoineRichard:antoiner/fix-digit-newton-companion

Conversation

@AntoineRichard

Copy link
Copy Markdown
Collaborator

Problem

LocomotionVelocityRoughEnvCfg declares events.base_com as a preset whose
newton_mjwarp branch disables the centre-of-mass randomization, because Newton does
not support it:

base_com = preset(
    default=EventTerm(func=mdp.randomize_rigid_body_com, ...),
    newton_mjwarp=None,
)

On tasks that offer Newton, that branch is a companion: it rides along with the
newton_mjwarp already on the physics axis and is never selectable on its own.

Digit is PhysX-only — DigitPhysicsCfg declares only isaacsim_physx, physx and
default, and its own docstring says so. The inherited branch therefore names no
reachable backend:

token result
physics=newton_mjwarp rejected — the task has no Newton physics variant
presets=newton_mjwarp resolves, stays on PhysxCfg, and silently drops the randomization

So the three Digit tasks advertised a presets=newton_mjwarp that was never a backend
switch. Selecting it gave you PhysX physics with a Newton-only workaround applied.

Affects IsaacContrib-Velocity-Flat-Digit, IsaacContrib-Velocity-Rough-Digit and
IsaacContrib-Tracking-LocoManip-Digit — all three derive from DigitRoughEnvCfg.

Fix

Collapse the preset to its default in DigitRoughEnvCfg.__post_init__, so the task
offers only what it can run. One edit covers all three tasks.

Verification

  • All three tasks now report presets: [] (was ['newton_mjwarp']); base_com
    survives with body_names="torso_base".

  • AnymalCRoughEnvCfg still carries ['default', 'newton_mjwarp'] — the shared
    config and every task that does offer Newton are untouched.

  • New test_digit_physics_presets.py follows the existing
    test_dr_legs_physics_presets.py pattern (offline, no sim). Confirmed the guard
    fails without the fix and passes with it:

    1 failed, 2 passed   # fix reverted
    3 passed             # fix applied
    

Notes

Found while building a task-discovery API that enumerates each task's runnable backend
combinations — this surfaced as a task declaring a preset it cannot resolve.

Sibling velocity tasks were checked: Velocity-Flat-AnymalC has the same base_com
preset and newton_mjwarp on its physics axis, so the companion is correctly paired
there; G1 and Spot override base_com away entirely. Digit was the only one that
inherited the companion without the backend.

LocomotionVelocityRoughEnvCfg declares events.base_com as a preset whose
newton_mjwarp branch disables the center-of-mass randomization, because Newton
does not support it. On tasks that offer Newton the branch rides along with the
backend and is never selectable on its own.

Digit is PhysX-only, so the branch named no reachable backend: physics=newton_mjwarp
is rejected, while presets=newton_mjwarp resolved and merely stripped the
randomization from a PhysX run. Collapse the preset to its default on Digit so the
task offers only what it can run.
@github-actions github-actions Bot added bug Something isn't working isaac-lab Related to Isaac Lab team labels Aug 19, 2026
Review feedback on isaac-sim#7165: the six-line rationale is condensed to two, and the
per-task preset test is removed.
@AntoineRichard
AntoineRichard marked this pull request as ready for review August 19, 2026 11:26
@AntoineRichard
AntoineRichard requested a review from a team August 19, 2026 11:27

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isaac Lab Review Bot

Reviewed the Digit-specific collapse of the inherited base_com preset and its changelog entry. The change narrowly removes the standalone Newton workaround from the three PhysX-only Digit tasks while preserving their default center-of-mass randomization.

  • Design and architecture: Applying the override in DigitRoughEnvCfg.__post_init__ keeps the shared locomotion configuration and Newton-capable tasks unchanged. This is appropriately scoped to the Digit configuration.
  • API: The three Digit tasks will no longer expose or accept presets=newton_mjwarp. Existing scripts that explicitly pass that token will fail rather than silently disabling randomization on PhysX; the changelog clearly documents this compatibility change.
  • Implementation: After the superclass initialization, events.base_com is rebound from the preset wrapper to its default EventTerm, then its asset body is configured as torso_base. This preserves the effective default PhysX event while removing the unreachable preset branch.

No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.

Automated review; human maintainers own approval decisions.

@greptile-apps

greptile-apps Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR removes an unreachable Newton-specific preset from PhysX-only Digit tasks while retaining center-of-mass randomization with the Digit torso body configuration.

  • Collapses the inherited base_com preset to its default event term in DigitRoughEnvCfg.
  • Documents that the affected Digit velocity and loco-manipulation tasks no longer advertise the standalone newton_mjwarp preset.

Confidence Score: 5/5

The PR appears safe to merge with no actionable defects identified.

The preset collapse occurs on an instance-isolated configuration, removes the unwanted preset from discovery, preserves the default event and its Digit-specific body selection, and does not violate assumptions in current Digit subclasses.

Important Files Changed

Filename Overview
source/isaaclab_tasks/isaaclab_tasks/contrib/velocity/config/digit/rough_env_cfg.py Safely replaces the unreachable preset wrapper with its default event term and preserves the existing torso_base targeting.
source/isaaclab_tasks/changelog.d/fix-digit-newton-companion.rst Accurately documents the affected tasks, prior incorrect preset behavior, and scope of the fix.

Reviews (1): Last reviewed commit: "Address review: shorten the Digit preset..." | Re-trigger Greptile

@kellyguo11
kellyguo11 merged commit 610ede8 into isaac-sim:develop Aug 20, 2026
73 of 75 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants