[Newton] Bump Newton pin to v1.2.0 (stable)#5616
Conversation
Greptile SummaryThis PR bumps the Newton dependency pin from
Confidence Score: 4/5The 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
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
|
There was a problem hiding this comment.
🤖 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), andwheel_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
-
DelassusOperator refactor: The PR notes that
newton-physics/newton#2734refactoredDelassusOperatorattributes but states it is not used in IsaacLab source. This was verified by the author via grep - no adaptation needed. -
Transitive mjwarp bump: The
newton[sim]extras will now resolve tomjwarp==3.8.0.3(up from3.8.0.1). This flows in transitively since #5566 removed explicit mujoco/mujoco-warp pins. -
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.0rc2 → v1.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_viewnow handles look-at direction parallel to up axis via alternate reference vector (returns valid orthonormal frame) - ✅
create_rotation_matrix_from_viewreturns NaN for undefined forward direction (eyes == targetsor non-finite input) - ✅
quat_from_matrixreturns NaN for non-rotation inputs (singular, reflection, or scale-error matrices)
Camera Sensors (camera.py, ray_caster_camera.py)
- ✅
set_world_poses_from_viewvalidates degenerate poses, skips bad rows with warning, raisesValueErrorif 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 afterSimulationAppstarts, 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_ONLYfor OmniHub asset downloads - ✅ Added LEAPP package diagnostic output
Import Cleanup
- ✅ Explicit
from isaaclab.utils.configclass import configclassimports (lazy-loading friendly)
All changes are well-implemented. No issues found.
|
Let's try moving to |
47f87b4 to
73a2264
Compare
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.
73a2264 to
6bac6d8
Compare
…_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).
Summary
Bumps the Newton pin from
v1.2.0rc2(current develop) directly to thev1.2.0stable release across all five pin sites, keeping the canonicalnewton[sim] @ git+...form everywhere.Per Kelly Guo's suggestion: skip the rc bump and go straight to stable. Upstream published
v1.2.0on 2026-05-12.Alternative: isaac-sim/IsaacLab#5614 (rc3 bump) — pick whichever target based on CI signal. This one is the most forward target.
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:
DelassusOperatorattribute refactor. Not used in IsaacLab source today (verified by grep), no adapt needed.Required dep bumps
None on the IsaacLab side. The
mjwarp 3.8.0.1 → 3.8.0.3bump flows in transitively throughnewton[sim], since isaac-sim/IsaacLab#5566 dropped IsaacLab's explicitmujoco/mujoco-warppins.warp-langstays at1.13.0(set by isaac-sim/IsaacLab#5523).Pins updated
source/isaaclab_newton/setup.pyv1.2.0rc2→v1.2.0source/isaaclab_physx/setup.pyv1.2.0rc2→v1.2.0source/isaaclab_visualizers/setup.pyv1.2.0rc2→v1.2.0tools/wheel_builder/res/python_packages.tomlv1.2.0rc2→v1.2.0Test plan
newton 1.2.0and downstreammjwarp 3.8.0.3.