Skip to content

[Newton] Bump Newton pin to v1.2.0 (stable)#5616

Merged
kellyguo11 merged 3 commits into
isaac-sim:developfrom
hujc7:jichuanh/newton-1.2.0rc4-bump
May 15, 2026
Merged

[Newton] Bump Newton pin to v1.2.0 (stable)#5616
kellyguo11 merged 3 commits into
isaac-sim:developfrom
hujc7:jichuanh/newton-1.2.0rc4-bump

Conversation

@hujc7
Copy link
Copy Markdown
Collaborator

@hujc7 hujc7 commented May 14, 2026

Summary

Bumps the Newton pin from v1.2.0rc2 (current develop) directly to the v1.2.0 stable release across all five pin sites, keeping the canonical newton[sim] @ git+... form everywhere.

Per Kelly Guo's suggestion: skip the rc bump and go straight to stable. Upstream published v1.2.0 on 2026-05-12.

Alternative: isaac-sim/IsaacLab#5614 (rc3 bump) — pick whichever target based on CI signal. This one is the most forward target.

Branch is still named jichuanh/newton-1.2.0rc4-bump from when this PR was originally proposing rc4 — the branch name doesn't match the current target but the diff is correct. Force-pushing the rename would close/reopen the PR, which adds noise without changing the artifact.

What's new in Newton v1.2.0 vs v1.2.0rc2

Full release notes: newton-physics/newton release v1.2.0. Notable IsaacLab-relevant fixes:

Required dep bumps

None on the IsaacLab side. The mjwarp 3.8.0.1 → 3.8.0.3 bump flows in transitively through newton[sim], since isaac-sim/IsaacLab#5566 dropped IsaacLab's explicit mujoco / mujoco-warp pins.

warp-lang stays at 1.13.0 (set by isaac-sim/IsaacLab#5523).

Pins updated

File Change
source/isaaclab_newton/setup.py v1.2.0rc2v1.2.0
source/isaaclab_physx/setup.py v1.2.0rc2v1.2.0
source/isaaclab_visualizers/setup.py v1.2.0rc2v1.2.0
tools/wheel_builder/res/python_packages.toml v1.2.0rc2v1.2.0

Test plan

  • Pre-commit clean.
  • CI smoke verifies clean install picks up newton 1.2.0 and downstream mjwarp 3.8.0.3.

@hujc7 hujc7 requested a review from hhansen-bdai as a code owner May 14, 2026 15:28
@github-actions github-actions Bot added isaac-lab Related to Isaac Lab team infrastructure labels May 14, 2026
@hujc7 hujc7 mentioned this pull request May 14, 2026
2 tasks
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 14, 2026

Greptile Summary

This PR bumps the Newton dependency pin from v1.2.0rc2 to v1.2.0rc4 uniformly across all five pin sites (three setup.py files, one python_packages.toml) and adds changelog fragments for each affected package.

  • All five newton[sim] @ git+... pin strings are updated consistently to v1.2.0rc4, pulling in upstream fixes for MPR/GJK, Kamino FK performance, HDR camera output, URDF Collada textures, multi-GPU gravity allocation, and transitive mjwarp 3.8.0.1 → 3.8.0.3.
  • The changelog fragments for isaaclab and isaaclab_newton use the .minor.rst suffix (minor bump), while those for isaaclab_physx and isaaclab_visualizers use the plain .rst suffix (patch bump) — the version tier will differ across packages at compile time.

Confidence Score: 4/5

The pin changes are correct and consistent across all five locations; the only question is whether the mixed patch/minor changelog suffixes reflect intentional versioning choices for the physx and visualizers packages.

The dependency pin changes themselves are straightforward and correctly applied everywhere. The mixed changelog fragment suffixes (.minor.rst for isaaclab/isaaclab_newton, plain .rst for isaaclab_physx/isaaclab_visualizers) mean these packages will receive different semver bumps for the same upstream change at the next compile pass, which may or may not be intended.

source/isaaclab_physx/changelog.d/jichuanh-newton-1.2.0rc4-bump.rst and source/isaaclab_visualizers/changelog.d/jichuanh-newton-1.2.0rc4-bump.rst — verify the patch-level suffix is intentional.

Important Files Changed

Filename Overview
source/isaaclab_newton/setup.py Single-line bump of newton[sim] git pin from v1.2.0rc2 to v1.2.0rc4; change is correct and consistent.
source/isaaclab_physx/setup.py Single-line bump of the optional [newton] extra from v1.2.0rc2 to v1.2.0rc4; mirrors the other setup.py changes.
source/isaaclab_visualizers/setup.py Three occurrences of the newton[sim] pin bumped from v1.2.0rc2 to v1.2.0rc4 across newton, rerun, and viser extras; all consistent.
tools/wheel_builder/res/python_packages.toml Pin bumped from v1.2.0rc2 to v1.2.0rc4 in the wheel-builder manifest; consistent with setup.py changes.
source/isaaclab_physx/changelog.d/jichuanh-newton-1.2.0rc4-bump.rst Changelog fragment classified as patch (.rst) while the parallel fragments for isaaclab and isaaclab_newton use .minor.rst; bump tier inconsistency.
source/isaaclab_visualizers/changelog.d/jichuanh-newton-1.2.0rc4-bump.rst Changelog fragment classified as patch (.rst) while the parallel fragments for isaaclab and isaaclab_newton use .minor.rst; bump tier inconsistency.
source/isaaclab/changelog.d/jichuanh-newton-1.2.0rc4-bump.minor.rst Well-documented minor changelog fragment covering all upstream fixes pulled in by the rc4 bump.
source/isaaclab_newton/changelog.d/jichuanh-newton-1.2.0rc4-bump.minor.rst Minor changelog fragment correctly documenting the newton pin bump and transitive mjwarp change.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["newton[sim] @ git+...@v1.2.0rc4"] --> B["isaaclab_newton/setup.py\n(extras: all)"]
    A --> C["isaaclab_physx/setup.py\n(extras: newton)"]
    A --> D["isaaclab_visualizers/setup.py\n(extras: newton, rerun, viser)"]
    A --> E["tools/wheel_builder/res/python_packages.toml\n(pyproject.optional-dependencies.all)"]
    A --> F["Transitive: mjwarp 3.8.0.1 → 3.8.0.3"]
    B --> G["warp-lang stays at 1.13.0\n(pinned by #5523)"]
    F --> G
Loading

Comments Outside Diff (2)

  1. source/isaaclab_physx/changelog.d/jichuanh-newton-1.2.0rc4-bump.rst, line 1-6 (link)

    P2 The changelog fragment for isaaclab_physx uses the plain .rst suffix (patch bump), while the parallel fragments for isaaclab and isaaclab_newton use .minor.rst. According to tools/changelog/cli.py, the suffix drives the semver tier applied at compile time — so this bump will register as a patch in isaaclab_physx and isaaclab_visualizers but as a minor in the other two packages. If that difference is intentional (e.g. Newton is only an optional extra here), a brief comment in the file would clarify it; otherwise the suffix should match.

  2. source/isaaclab_visualizers/changelog.d/jichuanh-newton-1.2.0rc4-bump.rst, line 1-7 (link)

    P2 Same bump-tier inconsistency as isaaclab_physx: this fragment uses the plain .rst suffix (patch) while isaaclab and isaaclab_newton use .minor.rst. If Newton being only an optional extra justifies a patch tier here, that's reasonable — but aligning the suffix with the other packages (or adding an inline comment) would make the intent explicit.

    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!

Reviews (1): Last reviewed commit: "Rename rc4 changelog fragments to dot-fr..." | Re-trigger Greptile

Copy link
Copy Markdown

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

Choose a reason for hiding this comment

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

🤖 Automated Code Review

Summary

This PR bumps the Newton physics engine pin from v1.2.0rc2 to v1.2.0rc4 across all five pin sites in the repository. The changes are well-structured and consistent.

✅ What Looks Good

Consistency

  • All 5 Newton pin locations updated to the same version (v1.2.0rc4)
  • Canonical newton[sim] @ git+... form maintained throughout
  • Pin sites: isaaclab_newton, isaaclab_physx, isaaclab_visualizers (×3 extras), and wheel_builder

Documentation

  • Comprehensive changelog fragments added for each affected package
  • PR description clearly documents upstream fixes being pulled in
  • Transitive dependency changes (mjwarp 3.8.0.1 → 3.8.0.3) properly noted

CI Status

  • Core checks passing: Build Wheel ✅, Installation Tests ✅, pre-commit ✅, changelog fragments ✅

📋 Observations

  1. DelassusOperator refactor: The PR notes that newton-physics/newton#2734 refactored DelassusOperator attributes but states it is not used in IsaacLab source. This was verified by the author via grep - no adaptation needed.

  2. Transitive mjwarp bump: The newton[sim] extras will now resolve to mjwarp==3.8.0.3 (up from 3.8.0.1). This flows in transitively since #5566 removed explicit mujoco/mujoco-warp pins.

  3. Pending CI checks: Some checks are still running (license-check, Docker builds, docs). The core installation and build tests have passed.

Verdict

LGTM ✅ - Clean dependency version bump with consistent updates across all pin sites and proper changelog documentation.


🔍 Reviewed commit: 47f87b4


Update (6bac6d8): ✅ Pin updated from v1.2.0rc2v1.2.0 (stable release). All 5 pin sites consistently updated. Changelog fragments properly revised to reflect stable version. No new issues.


Update (29315c7): This commit significantly expands the PR scope beyond the Newton pin bump with important bug fixes:

Math Utilities (math.py)

  • create_rotation_matrix_from_view now handles look-at direction parallel to up axis via alternate reference vector (returns valid orthonormal frame)
  • create_rotation_matrix_from_view returns NaN for undefined forward direction (eyes == targets or non-finite input)
  • quat_from_matrix returns NaN for non-rotation inputs (singular, reflection, or scale-error matrices)

Camera Sensors (camera.py, ray_caster_camera.py)

  • set_world_poses_from_view validates degenerate poses, skips bad rows with warning, raises ValueError if entire batch is degenerate

PVA Debug Visualizers (isaaclab_newton, isaaclab_physx)

  • ✅ Skip bodies with zero acceleration to avoid undefined arrow directions

Changelog Tool (tools/changelog/cli.py)

  • ✅ New validation catches orphan paragraphs that would break Sphinx doc builds

Test Coverage

  • ✅ 11 new parametrized tests for math edge cases
  • ✅ Camera test coordinates adjusted from [0.1, 0.0, 5.0][0.0, 0.0, 5.0] (singularity now handled)

Versions: isaaclab 5.2.0→5.2.1, isaaclab_newton 0.9.0→0.9.1, isaaclab_physx 0.7.0→0.7.1

All changes look well-implemented with proper error handling and documentation. No new issues.


Update (e07b904): New commits add CI/infrastructure improvements:

AppLauncher CUDA Fix (app_launcher.py)

  • ✅ Defers torch.cuda.set_device() until after SimulationApp starts, fixing OpenBLAS fork crash

LEAPP Export Refactor (export.py)

  • ✅ Major testability refactor: modular functions, deferred imports, proper cleanup with try/finally
  • ✅ New parse_export_args(), export_rsl_rl_agent(), main_cli() entry points

Test Improvements

  • ✅ Export tests batched to share Kit processes (reduced CI time)
  • ✅ Removed unnecessary Isaac Sim launcher boilerplate from pure-Python tests
  • ✅ Better mocking in renderer tests

CI (run-tests/action.yml)

  • ✅ Unset HUB__ARGS__DETECT_ONLY for OmniHub asset downloads
  • ✅ Added LEAPP package diagnostic output

Import Cleanup

  • ✅ Explicit from isaaclab.utils.configclass import configclass imports (lazy-loading friendly)

All changes are well-implemented. No issues found.

@kellyguo11
Copy link
Copy Markdown
Contributor

Let's try moving to v1.2.0 for Newton. the 1.2 release went out

@hujc7 hujc7 force-pushed the jichuanh/newton-1.2.0rc4-bump branch from 47f87b4 to 73a2264 Compare May 14, 2026 15:47
@hujc7 hujc7 changed the title [Newton] Bump Newton pin to v1.2.0rc4 [Newton] Bump Newton pin to v1.2.0 (stable) May 14, 2026
Bumps the Newton pin from v1.2.0rc2 (current develop) directly to the
v1.2.0 stable release across all five pin sites (isaaclab_newton,
isaaclab_physx, isaaclab_visualizers x3,
tools/wheel_builder/res/python_packages.toml), keeping the canonical
`newton[sim] @ git+...` form everywhere.

The full upstream release notes are at
https://github.com/newton-physics/newton/releases/tag/v1.2.0
(published 2026-05-12). IsaacLab-relevant changes vs the rc2 pin:

- MPR/GJK convex-hull centering fix
  (newton-physics/newton#2651)
- Kamino FK solver performance
  (newton-physics/newton#2703)
- HDR color output for tiled camera sensors
  (newton-physics/newton#2721)
- Collada texture URDF import fix
  (newton-physics/newton#2743)
- Kamino multi-GPU gravity-data device fix
  (newton-physics/newton#2823)
- CollisionPipeline small fixes
  (newton-physics/newton#2632)
- DelassusOperator attribute refactor
  (newton-physics/newton#2734) -- not used in
  IsaacLab source, no adapt needed.
- SolverMuJoCo fixes: planar meshes, contact-anchor computation,
  distance conversion.

mjwarp moves 3.8.0.1 -> 3.8.0.3 transitively via newton[sim]; no
IsaacLab-side mujoco / mujoco-warp pin change since
isaac-sim#5566 dropped explicit pins.
@hujc7 hujc7 force-pushed the jichuanh/newton-1.2.0rc4-bump branch from 73a2264 to 6bac6d8 Compare May 14, 2026 15:48
@kellyguo11 kellyguo11 merged commit aef3dbc into isaac-sim:develop May 15, 2026
53 of 56 checks passed
ooctipus pushed a commit that referenced this pull request May 16, 2026
…_ik (#5644)

## Summary

One-character fix in
`source/isaaclab/test/controllers/test_pink_ik.py:309`:

```diff
- quat_from_matrix(matrix_from_quat(target_rot_tensor) * matrix_from_quat(quat_inv(current_rot)))
+ quat_from_matrix(matrix_from_quat(target_rot_tensor) @ matrix_from_quat(quat_inv(current_rot)))
```

`calculate_rotation_error` was composing two rotation matrices with
PyTorch's element-wise multiplication (`*`) where matrix multiplication
(`@`) was intended. The Hadamard product of two rotation matrices is not
generally a rotation matrix.

## Why this surfaced as test failures now

The bug has been latent since
[#3149](#3149)
(2025-08-26) because the Hadamard product of two near-identity matrices
is also near-identity — `quat_from_matrix` could still recover a
near-unit quaternion and the assertion `rot_error ≈ 0` would pass for
completely wrong mathematical reasons.

It became visible when [#5609
(jmart)](#5609) (2026-05-14)
added the unit-norm guard to `isaaclab/utils/math.py:quat_from_matrix`:

```python
invalid = (quat.norm(p=2, dim=-1, keepdim=True) - 1.0).abs() > 2e-5
return torch.where(invalid, torch.full_like(quat, float("nan")), quat)
```

After that PR, any non-rotation input (the Hadamard mess) returns NaN,
which `axis_angle_from_quat` propagates → `torch.max(NaN) = NaN` →
`AssertionError: Left hand IK rotation error (nan) exceeds tolerance`.
Both hands always went to NaN; left hand is just asserted first.

## Verification

Local repro on the Horde VM against current `develop` (`isaaclab_physx`
backend, `newton[sim]@v1.2.0rc2`):

| Configuration | Result |
|---|---|
| Unfixed, `Isaac-PickPlace-GR1T2-Abs-v0-horizontal_movement` | FAILED —
`Left hand IK rotation error (nan)` |
| Fixed, same parameterization | PASSED — rotation errors `1e-4` to
`1e-7` (well within 0.02 rad tolerance) |
| Fixed, all 12 GR1T2 cases, run 1 | 11 passed, 1 skipped |
| Fixed, all 12 GR1T2 cases, run 2 | 11 passed, 1 skipped
(deterministic) |

## Scope

This addresses the consistent `Left hand IK rotation error (nan)`
failures seen across recent develop PRs (e.g. [#5633
`test-curobo`
log](https://github.com/isaac-sim/IsaacLab/actions/runs/25926139790/job/76211194676),
[#5609 `test-curobo`
log](https://github.com/isaac-sim/IsaacLab/actions/runs/25831490295/job/75897258188),
[#5616 `test-curobo`
log](https://github.com/isaac-sim/IsaacLab/actions/runs/25930392313/job/76222556444)).

Remaining failures on G1 envs (finite ~0.03-0.05 rad rotation errors
against the 0.030 rad tolerance) are a **separate** issue — IK
convergence quality rather than the NaN math bug. Out of scope for this
PR; needs its own ticket.

## Test plan

- [x] Pre-commit clean.
- [x] Unfixed branch reproduces NaN on
`Isaac-PickPlace-GR1T2-Abs-v0-horizontal_movement` locally.
- [x] Fixed branch passes the same parameterization locally with finite
rotation errors.
- [x] Fixed branch passes all 12 GR1T2 parameterizations across two
consecutive runs (deterministic).
@isaaclab-review-bot isaaclab-review-bot Bot mentioned this pull request May 16, 2026
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants