Skip to content

Bump Newton to include torque routing#6293

Open
AntoineRichard wants to merge 8 commits into
isaac-sim:developfrom
AntoineRichard:antoiner/pin-newton-49ca73b
Open

Bump Newton to include torque routing#6293
AntoineRichard wants to merge 8 commits into
isaac-sim:developfrom
AntoineRichard:antoiner/pin-newton-49ca73b

Conversation

@AntoineRichard

@AntoineRichard AntoineRichard commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Description

Pins every active newton[sim] dependency to Newton commit
2064e3b79807dcc1679d1eb86ef7efd9ef0f28ee, the squash-merge commit for
Newton PR #3134. The
update also changes the core IsaacLab Warp requirement from 1.14.0 to the
prerelease build 1.15.0.dev20260626.

This branch is based on the reviewed origin/develop snapshot
e5478465baf58f735ba308e40faf6b4eb2993d29.

Upstream comparison from the prior pin to the new pin:
newton-physics/newton@49ca73b...2064e3b

Compatibility updates

  • Reinterprets seven PhysX/OVPhysX COM staging sources as wp.float32 views
    before copying, matching Warp 1.15 element-size validation.
  • Forwards model.shape_margin through the MJWarp/VBD and Featherstone/VBD
    reaction paths, with regression coverage for both solvers.
  • Migrates Kamino reset to SolverKamino.ResetConfig.from_joints() while
    keeping the reset migration minimal.

IsaacLab adds no custom Kamino torque-routing path. Newton PR #3134 consumes
the generic Control.joint_f effort input upstream. IsaacLab retains only its
Kamino lifecycle, reset, forward-kinematics, collision, and graph
specialization.

Local verification

Exact local environment: Newton
2064e3b79807dcc1679d1eb86ef7efd9ef0f28ee, Warp
1.15.0.dev20260626.

  • Wheel metadata: 3 passed.
  • Newton manager abstraction: 72 passed across both Kamino modes.
  • Exact Kamino Cartpole integration smoke: 16 environments, 5 iterations,
    exit code 0, no traceback, and Training time: 2.83 seconds. This proves
    runtime/integration compatibility of the generic effort path; it does not
    establish numerical torque effectiveness.
  • Two-way coupling: MJWarp 1 passed; Featherstone 1 passed.
  • Soft/cloth: 4 passed, 122 deselected.
  • Full ./isaaclab.sh -f: passed before and after the final commit.

Local COM coverage gap

The focused kitless COM fallback run produced 76 passed, 520 deselected,
28 setup errors, and 0 skipped. The 28 setup errors are a pre-existing
OVPhysX fixture/API mismatch: mock_bindings.bindings is a dictionary where
the fixture expects an object exposing .view. They are not a failure caused
by this pin, but the affected COM assertions remain a disclosed local coverage
gap. The final-head CI matrix will be authoritative once terminal.

CI result

Current head 6d7b40682a2117a28ff4fb2dff7a8aaadca75b2e, based on reviewed
origin/develop snapshot e5478465baf58f735ba308e40faf6b4eb2993d29:
CI pending for this rebased head. Historical results below are from
pre-rebase head 5b004bd04e79d735324ae64c9d4210f79b77c519 and are retained as
diagnostic context; they are not the final-head result.

On pre-rebase head 5b004bd04e79d735324ae64c9d4210f79b77c519, the
compatibility-focused jobs passed, including isaaclab_newton,
isaaclab_physx, isaaclab_contrib, all core and task shards, both
installation jobs, and isaaclab_ov on unchanged rerun.

Original and rerun evidence

  • isaaclab_ov original
    failed the GPU test_body_root_state_properties[True-cuda:0-1] numerical
    velocity comparison after its three built-in attempts: the final maximum
    absolute difference was 0.000190109 for a 0.0001 tolerance. The
    unchanged rerun
    passed, confirming this as known intermittent and non-blocking.
  • rendering-correctness-kitless original
    exhausted its built-in attempts for an OVPhysX Cartpole diffuse comparison
    (2.38% different pixels versus a 1.00% limit) and a Newton Dexsuite
    full-MDL comparison (10.37% versus 8.00%). Both original cases passed
    on the unchanged rerun,
    while a different Newton Cartpole normals comparison exhausted its attempts
    (2.39% versus 1.00%, final SSIM 0.9566). An independently triggered
    unchanged attempt 3
    passed. The shifting failures followed by a clean rerun confirm this as a
    known intermittent, non-blocking rendering flake.
  • test-curobo original
    was cancelled when its runner received a shutdown signal during OCI export,
    followed by an RPC Unavailable/EOF. The
    unchanged rerun
    passed, confirming an infrastructure-only transient.

The final branch delta from reviewed base
e5478465baf58f735ba308e40faf6b4eb2993d29 touches the OV/PhysX COM staging
sources listed above but does not modify rendering test or baseline files.
Because the reviewed base includes Cartpole lighting and rendering test/golden
updates, final-head rendering CI is an important integration check.

The CI matrix does not make the locally blocked COM assertions pass and does
not close the clean-wheel [newton] installation coverage gap; both remain
documented separately.

Remaining installation coverage gap

Current installation CI does not clean-install a built wheel with the
[newton] extra. End-to-end resolution of the generated Git Newton URL plus
the prerelease Warp build from the NVIDIA index remains untested by that path.

@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team infrastructure labels Jun 29, 2026
@greptile-apps

greptile-apps Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR bumps the newton[sim] pin from commit 79e95bf to 49ca73b across all four active source packages and the wheel builder, and simultaneously upgrades the Warp pin from warp-lang==1.14.0 (a stable PyPI release) to warp-lang==1.15.0.dev20260626 (a dev prerelease hosted exclusively on the NVIDIA package index). Per the PR description, this is an intentional compatibility probe — no runtime API fixes are included — designed to surface CI failures against the latest Newton main branch.

  • All seven Newton commit pins and three Warp pins are updated consistently, and the existing metadata test (test_wheel_builder_metadata.py) verifies this consistency.
  • The warp-lang==1.15.0.dev20260626 upgrade moves a core isaaclab dependency from the default PyPI index to the NVIDIA-only index, meaning any install environment without the NVIDIA extra index will fail to resolve the core package.
  • A design document is added under the newly created docs/superpowers/specs/ directory.

Confidence Score: 3/5

Not safe to merge as-is: the upgrade from a stable PyPI Warp release to a NVIDIA-index-only dev prerelease breaks standard installs, and the PR explicitly states Kamino runtime calls will fail.

The core isaaclab package now depends on warp-lang==1.15.0.dev20260626, which exists only on the NVIDIA package index. Any environment resolving from PyPI alone fails before reaching runtime. This is different in kind from the previous warp-lang==1.14.0 pin, which was a stable PyPI package. Additionally, known Kamino reset API breakages will cause runtime test failures — the PR description is explicit that CI will find blockers that are not yet fixed.

source/isaaclab/pyproject.toml needs attention for the Warp prerelease pin; source/isaaclab_newton/pyproject.toml would benefit from an explicit Warp pin in its [all] extra.

Important Files Changed

Filename Overview
source/isaaclab/pyproject.toml Core warp-lang pin bumped from stable 1.14.0 (on PyPI) to prerelease 1.15.0.dev20260626 (NVIDIA-only index), making isaaclab unresolvable from PyPI without extra index configuration.
tools/wheel_builder/res/python_packages.toml Both the core Warp pin and the newton-extra Warp/Newton pins updated consistently; matches the source package declarations as validated by the metadata test.
source/isaaclab_newton/pyproject.toml Newton commit updated in the all extra; no explicit warp-lang pin here (pre-existing pattern), relying on the core isaaclab package to constrain Warp.
source/isaaclab_physx/pyproject.toml Newton commit updated in the newton extra; single-line change, consistent with other packages.
source/isaaclab_visualizers/pyproject.toml All four Newton-bearing extras (newton, rerun, viser, all) updated to the new commit; changes are consistent.
docs/superpowers/specs/2026-06-29-newton-latest-pin-design.md Design document added to the newly created docs/superpowers/specs/ directory — this path has no prior precedent in the repo.
source/isaaclab/changelog.d/pin-newton-49ca73b.rst Changelog fragment for isaaclab; accurately describes both the Newton commit and the Warp version bump.
source/isaaclab_newton/changelog.d/pin-newton-49ca73b.rst Changelog fragment; references the correct Newton commit and recommends the matching Warp version.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[pip install isaaclab] --> B{Index configured?}
    B -- PyPI only default --> C[FAIL: warp-lang dev build not on PyPI]
    B -- PyPI + NVIDIA index --> D[Resolves warp-lang==1.15.0.dev20260626]
    D --> E[Install newton at 49ca73b from GitHub]
    E --> F{Runtime tests}
    F -- Kamino solver --> G[FAIL: joint_q/joint_u removed by Newton upstream]
    F -- Other paths --> H[CI reveals remaining blockers]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[pip install isaaclab] --> B{Index configured?}
    B -- PyPI only default --> C[FAIL: warp-lang dev build not on PyPI]
    B -- PyPI + NVIDIA index --> D[Resolves warp-lang==1.15.0.dev20260626]
    D --> E[Install newton at 49ca73b from GitHub]
    E --> F{Runtime tests}
    F -- Kamino solver --> G[FAIL: joint_q/joint_u removed by Newton upstream]
    F -- Other paths --> H[CI reveals remaining blockers]
Loading

Comments Outside Diff (1)

  1. source/isaaclab_newton/pyproject.toml, line 25-31 (link)

    P2 warp-lang not explicitly pinned in [all] extra

    isaaclab_newton[all] lists newton[sim] at the new commit but carries no explicit warp-lang==1.15.0.dev20260626 pin. When this package is resolved standalone — without isaaclab pulling in the exact Warp version — pip satisfies Newton's own transitive Warp requirement, which may allow a different dev build. The wheel-builder's newton extra does carry the pin, so the wheel path is covered, but a direct pip install "isaaclab_newton[all]" from source is not constrained. Consider mirroring the explicit Warp pin here.

Reviews (1): Last reviewed commit: "Bump Newton to latest main commit" | Re-trigger Greptile

"transformers==4.57.6",
"einops",
"warp-lang==1.14.0",
"warp-lang==1.15.0.dev20260626",

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.

P1 Dev prerelease blocks standard PyPI installs

warp-lang==1.15.0.dev20260626 is not on PyPI — it is only available from https://pypi.nvidia.com. Unlike the previous warp-lang==1.14.0 (a stable PyPI release), this version requires an explicit --extra-index-url https://pypi.nvidia.com when resolving isaaclab's core dependencies. Any CI environment, Docker image, or downstream user that does pip install isaaclab without the NVIDIA extra index will fail at dependency resolution, even before reaching the known Kamino runtime failures.

Comment on lines +1 to +5
<!-- Copyright (c) 2022-2026, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md). -->
<!-- All rights reserved. -->
<!-- SPDX-License-Identifier: BSD-3-Clause -->

# Newton Latest-Pin Compatibility Probe

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.

P2 Non-standard documentation directory

docs/superpowers/specs/ is created for the first time by this PR and contains only this one file. Standard Isaac Lab design and spec content lives under docs/source/. An isolated new top-level subtree with no cross-references from the rendered docs site will be hard to discover and may accumulate stale specs over time. If this is intentional, a README or index explaining the superpowers/ convention would help future contributors understand its purpose.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@AntoineRichard AntoineRichard force-pushed the antoiner/pin-newton-49ca73b branch from ce0672e to 819e9bd Compare June 30, 2026 09:43
@AntoineRichard AntoineRichard changed the title Bump Newton to latest main commit Bump Newton to include torque routing Jun 30, 2026
@AntoineRichard AntoineRichard force-pushed the antoiner/pin-newton-49ca73b branch from 5b004bd to 6d7b406 Compare June 30, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant