Skip to content

Enable Use of Newton IK in Lab #662#1539

Merged
vreutskyy merged 19 commits into
newton-physics:mainfrom
vreutskyy:662-enable-use-of-newton-ik-in-lab
Feb 11, 2026
Merged

Enable Use of Newton IK in Lab #662#1539
vreutskyy merged 19 commits into
newton-physics:mainfrom
vreutskyy:662-enable-use-of-newton-ik-in-lab

Conversation

@vreutskyy

@vreutskyy vreutskyy commented Feb 5, 2026

Copy link
Copy Markdown
Member

Description

Add eval_jacobian() and eval_mass_matrix() functions for articulated rigid body dynamics, enabling self-contained IK computations for IsaacLab integration.

Closes #662, Closes #671, Closes #672

New Functions

eval_jacobian(model, state, J=None, joint_S_s=None, mask=None)

  • Computes spatial Jacobian mapping joint velocities to link spatial velocities
  • Output shape: (articulation_count, max_links*6, max_dofs)

eval_mass_matrix(model, state, H=None, J=None, body_I_s=None, joint_S_s=None, mask=None)

  • Computes generalized mass matrix H = J^T * M * J
  • Output shape: (articulation_count, max_dofs, max_dofs)

API Design

Both functions support two usage patterns:

Convenience pattern (function allocates output):

J = newton.eval_jacobian(model, state)
H = newton.eval_mass_matrix(model, state)

Performance pattern (caller pre-allocates and reuses):

# Pre-allocate once
J = wp.zeros((count, max_links*6, max_dofs), dtype=float, device=device)
H = wp.zeros((count, max_dofs, max_dofs), dtype=float, device=device)

# In simulation loop - reuse arrays, avoid allocations
newton.eval_jacobian(model, state, J)
newton.eval_mass_matrix(model, state, H, J=J)

Changes

  • Added eval_jacobian and eval_mass_matrix kernels in newton/_src/sim/articulation.py
  • Added max_dofs_per_articulation attribute to Model
  • Exposed functions via public API (newton.eval_jacobian, newton.eval_mass_matrix)
  • Added ArticulationView.eval_jacobian() and ArticulationView.eval_mass_matrix() methods
  • Added comprehensive tests in newton/tests/test_jacobian_mass_matrix.py

Newton Migration Guide

Please ensure the migration guide for warp.sim users is up-to-date with the changes made in this PR.

  • The migration guide in docs/migration.rst is up-to date

(No migration needed - these are new functions with no warp.sim equivalents)

Before your PR is "Ready for review"

  • Necessary tests have been added and new examples are tested (see newton/tests/test_examples.py)
  • Documentation is up-to-date
  • Code passes formatting and linting checks with pre-commit run -a

Summary by CodeRabbit

  • New Features

    • Added public APIs eval_jacobian and eval_mass_matrix for spatial Jacobian and generalized mass-matrix computation.
    • Model now exposes per-articulation DOF limits to support Jacobian/mass-matrix workflows.
    • ArticulationView gains convenience methods to compute Jacobians and mass matrices using view-derived masks.
  • Tests

    • Added comprehensive tests for Jacobian and mass-matrix correctness, symmetry/positive-definiteness, masking, multiple joint types, and edge cases.

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
@coderabbitai

coderabbitai Bot commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds public functions eval_jacobian and eval_mass_matrix; implements motion-subspace, Jacobian, spatial-inertia, and mass-matrix kernels; extends Model/Builder with per-articulation DOF sizing; adds ArticulationView convenience methods; and introduces comprehensive tests for Jacobian and mass-matrix behavior.

Changes

Cohort / File(s) Summary
Public API Exports
newton/__init__.py, newton/_src/sim/__init__.py
Exported eval_jacobian and eval_mass_matrix from the sim submodule and added them to __all__.
Core Implementation
newton/_src/sim/articulation.py
Added motion-subspace helper (jcalc_motion_subspace), Jacobian kernel (eval_articulation_jacobian), spatial inertia transform, body inertia kernel, mass-matrix accumulation kernel (eval_articulation_mass_matrix), and top-level eval_mass_matrix. Also imported transform_twist.
Model Infrastructure
newton/_src/sim/builder.py, newton/_src/sim/model.py
Compute and expose max_dofs_per_articulation during finalize; add max_dofs_per_articulation attribute to Model for sizing Jacobian/mass-matrix kernels.
Convenience API
newton/_src/utils/selection.py
Added ArticulationView.eval_jacobian(...) and ArticulationView.eval_mass_matrix(...) that delegate to top-level functions using the view's articulation mask.
Tests
newton/tests/test_jacobian_mass_matrix.py
New test module covering numeric Jacobian checks, mass-matrix symmetry/positive-definiteness, multi-articulation and masked cases, prismatic joints, and empty-model handling.

Sequence Diagram

sequenceDiagram
    participant User
    participant View as ArticulationView
    participant API as eval_jacobian / eval_mass_matrix
    participant Subspace as jcalc_motion_subspace
    participant Assemble as eval_articulation_jacobian
    participant InertiaTransform as transform_spatial_inertia
    participant ComputeInertia as compute_body_spatial_inertia
    participant Accumulate as eval_articulation_mass_matrix

    User->>View: call eval_jacobian(state, mask)
    View->>API: delegate with model + mask
    API->>Subspace: compute motion subspace S
    Subspace-->>API: S
    API->>Assemble: assemble per-articulation Jacobians (J)
    Assemble-->>API: J
    API-->>View: return J

    User->>View: call eval_mass_matrix(state, J?, mask)
    View->>API: ensure J (compute if missing)
    API->>InertiaTransform: request per-body inertia transforms
    InertiaTransform->>ComputeInertia: compute world spatial inertia per body
    ComputeInertia-->>API: body_I_s
    API->>Accumulate: compute H = J^T * M * J
    Accumulate-->>API: H
    API-->>View: return H
    View-->>User: return result
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

Suggested reviewers

  • eric-heiden
🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Title check ⚠️ Warning Title references issue #662 but primarily describes enabling Newton IK in Lab. The actual changes are adding eval_jacobian and eval_mass_matrix functions; IK controller implementation is not present in the changeset. Update title to accurately reflect the primary changes: 'Add eval_jacobian and eval_mass_matrix functions' or similar, as the full IK controller enabling Lab integration is not implemented.
Linked Issues check ❓ Inconclusive PR fully implements #671 (eval_jacobian) and #672 (eval_mass_matrix) with proper 3D array returns and ArticulationView methods. However, #662 objective of replacing Lab's IK controller is incomplete; only prerequisite functions are added without the actual controller implementation. Verify if #662 requires actual IK controller code in this PR or if prerequisite functions alone satisfy closure. Consider keeping #662 open if controller implementation is separate.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Out of Scope Changes check ✅ Passed All changes are directly related to adding eval_jacobian and eval_mass_matrix APIs and supporting infrastructure. No unrelated modifications detected; changes are scoped to objectives in #671 and #672.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

vreutskyy and others added 2 commits February 5, 2026 18:54
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
@codecov

codecov Bot commented Feb 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@newton/tests/test_jacobian_mass_matrix.py`:
- Around line 106-110: The test modifies the NumPy view of the GPU-backed tensor
(state.joint_q.numpy()) in-place but never syncs it back to the GPU; update the
pattern to mirror test_sensor_frame_transform.py by calling
state.joint_q.assign(...) after you change the numpy array so the GPU copy gets
updated. Specifically, after you set state.joint_q.numpy()[0] = 0.5 (and the
other modifications at the later occurrence around the same test), call
state.joint_q.assign(state.joint_q.numpy()) so newton.eval_fk(model,
state.joint_q, state.joint_qd, state) uses the updated GPU values.
🧹 Nitpick comments (2)
newton/_src/sim/articulation.py (2)

1033-1062: Consider renaming parameter I for clarity.

Static analysis flags I as an ambiguous variable name (E741). While I is the conventional symbol for inertia in robotics, renaming to I_local or inertia would improve readability and silence the linter.

The comment about duplication from featherstone/kernels.py is helpful context. If this function is used frequently, consider refactoring to a shared location in a future PR.

♻️ Optional rename
 `@wp.func`
-def transform_spatial_inertia(t: wp.transform, I: wp.spatial_matrix):
+def transform_spatial_inertia(t: wp.transform, I_m: wp.spatial_matrix):
     """Transform a spatial inertia tensor to a new coordinate frame.
 
     Note: This is duplicated from featherstone/kernels.py to avoid circular imports.
     """
     t_inv = wp.transform_inverse(t)
 
     q = wp.transform_get_rotation(t_inv)
     p = wp.transform_get_translation(t_inv)
     ...
-    return wp.mul(wp.mul(wp.transpose(T), I), T)
+    return wp.mul(wp.mul(wp.transpose(T), I_m), T)

1148-1159: Consider renaming loop variable l for clarity.

Static analysis flags l as an ambiguous variable name (E741) since it can be confused with 1 or I. Consider renaming to m or col_idx.

♻️ Optional rename
                 # J_i^T * I_i * J_j (for the 6 rows of this link)
                 for k in range(6):
-                    for l in range(6):
+                    for m in range(6):
                         J_ik = J[art_idx, row_start + k, dof_i]
-                        J_jl = J[art_idx, row_start + l, dof_j]
-                        sum_val += J_ik * I_s[k, l] * J_jl
+                        J_jm = J[art_idx, row_start + m, dof_j]
+                        sum_val += J_ik * I_s[k, m] * J_jm

Comment thread newton/tests/test_jacobian_mass_matrix.py

@coderabbitai coderabbitai 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.

Actionable comments posted: 3

🤖 Fix all issues with AI agents
In `@newton/_src/sim/articulation.py`:
- Around line 1102-1160: In eval_articulation_mass_matrix, H for the current
articulation is never zeroed before accumulating per-link contributions, causing
results to accumulate across kernel calls; fix by clearing the articulation’s H
block for indices [art_idx, 0:articulation_dof_count, 0:articulation_dof_count]
to zero immediately after computing articulation_dof_count (i.e., before the for
link_idx in range(joint_count) loop) so subsequent additions use a fresh zeroed
matrix; use the kernel-safe array writes (set H[art_idx, dof_i, dof_j] = 0.0 in
nested loops or a single nested loop to zero the sub-block) referencing
eval_articulation_mass_matrix, articulation_dof_count, and H.
- Around line 875-959: In eval_articulation_jacobian the output block J for
art_idx isn't cleared before writing only ancestor columns, leaving stale values
when callers reuse a preallocated buffer; fix by zeroing the articulation's J
block before the "Second pass" (after computing joint_count and
articulation_dof_start) — compute articulation_dof_end =
joint_qd_start[joint_end] and articulation_dof_count = articulation_dof_end -
articulation_dof_start, then set J[art_idx, 0:6*joint_count,
0:articulation_dof_count] to zero (via a small nested loop over rows k in
0..6*joint_count-1 and cols c in 0..articulation_dof_count-1) so subsequent
writes in the second pass (the loop using joint_ancestor, joint_dof_start,
joint_dof_end and joint_S_s) overwrite only the intended entries.

In `@newton/tests/test_jacobian_mass_matrix.py`:
- Around line 106-108: The test mutates a temporary host buffer via
state.joint_q.numpy()[0] = 0.5 which doesn’t update the device tensor; replace
these direct .numpy() mutations with the assign pattern: read the array with
state.joint_q.numpy(), modify the element, then call state.joint_q.assign(...)
so the change is applied to the device-backed tensor (do this for the
occurrences around state.joint_q at the earlier block and the later block
referenced in the comment).

Comment thread newton/_src/sim/articulation.py
Comment thread newton/_src/sim/articulation.py
Comment thread newton/tests/test_jacobian_mass_matrix.py
vreutskyy and others added 4 commits February 6, 2026 09:10
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@newton/_src/sim/articulation.py`:
- Around line 806-873: jcalc_motion_subspace is missing handling for
JointType.CABLE so CABLE joints leave Jacobian columns zero; add an elif branch
for JointType.CABLE in jcalc_motion_subspace that reads the linear axis from
joint_axis[qd_start] and the angular axis from joint_axis[qd_start + 1], uses
transform_twist with wp.spatial_vector(axis, wp.vec3()) for the linear DoF and
wp.spatial_vector(wp.vec3(), axis) for the angular DoF, and assigns them to
joint_S_s[qd_start] and joint_S_s[qd_start + 1] respectively (use the same
symbols: joint_axis, qd_start, X_sc, joint_S_s, transform_twist,
wp.spatial_vector); if you prefer not to implement it now add a clear # TODO
comment in jcalc_motion_subspace mentioning JointType.CABLE is unhandled.
🧹 Nitpick comments (3)
newton/_src/sim/articulation.py (2)

1040-1069: Consider extracting the shared transform_spatial_inertia helper.

This is a verbatim copy of the implementation in newton/_src/solvers/featherstone/kernels.py (lines 62–133). The comment on line 1044 acknowledges this. If both modules live under _src, a shared utility in newton/_src/core/spatial.py (where transform_twist already lives) could eliminate the duplication without circular imports.


1160-1171: Rename loop variable l and hoist redundant array read.

l is flagged by Ruff (E741) as ambiguous — it's visually indistinguishable from 1. Additionally, J_ik is re-read 6 times inside the l loop but doesn't depend on l; hoisting it halves global memory reads in the hot loop.

♻️ Proposed fix
                 # J_i^T * I_i * J_j (for the 6 rows of this link)
                 for k in range(6):
-                    for l in range(6):
-                        J_ik = J[art_idx, row_start + k, dof_i]
-                        J_jl = J[art_idx, row_start + l, dof_j]
-                        sum_val += J_ik * I_s[k, l] * J_jl
+                    J_ik = J[art_idx, row_start + k, dof_i]
+                    for m in range(6):
+                        J_jm = J[art_idx, row_start + m, dof_j]
+                        sum_val += J_ik * I_s[k, m] * J_jm
newton/tests/test_jacobian_mass_matrix.py (1)

186-216: Consider extending positive-definiteness test to multi-DOF.

For 1 DOF, H[0,0] > 0 is equivalent to PD, so the check is correct. A multi-DOF version (e.g., the 2-link pendulum) that also verifies all eigenvalues are positive would make the test name more representative.

♻️ Example extension (add after existing checks)
# Multi-DOF positive definiteness via eigenvalues
H_multi = newton.eval_mass_matrix(model_2dof, state_2dof)
H_valid = H_multi.numpy()[0, :2, :2]
eigenvalues = np.linalg.eigvalsh(H_valid)
assert np.all(eigenvalues > 0), f"Expected all positive eigenvalues, got {eigenvalues}"

Comment thread newton/_src/sim/articulation.py
vreutskyy and others added 3 commits February 6, 2026 09:49
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
@mzamoramora-nvidia

Copy link
Copy Markdown
Member

This looks pretty good. I have few questions/comments. Some of the comments don't need to be solved in this PR but would be good to track them, depending on your thoughts about them.

  • This implementation shares a lot of similarities with some kernels from the Featherstone solver. Some of the kernels in the Featherstone solver are also reused in the IK solver. I think articulation.py is a good place to have a common set of functions/kernels that can be reused by the Featherstone solver, the IK solver, and the Articulation view. That way we could avoid duplicates of very similar functions/kernels. Would you agree with that or is that refactoring too complex?
  • Usually for a differential IK controller, we are mostly interested in the Jacobians of the end-effectors. Any chance we can extend this implementation with some masks to compute only the Jacobians of interest, say the Jacobians of the feet of a quadruped from the Articulation View?
  • Looking at the notes in get_jacobians , it's mentioned that the size of the Jacobians is different depending on whether we are using a floating base articulation or a fixed base articulation. Could you add some tests to verify that the Jacobians are as expected for a floating base?

Test a FREE joint at root (6 DOFs) plus a revolute child to verify
that the Jacobian has the expected shape, the base link is unaffected
by the revolute DOF, and the mass matrix is symmetric positive definite.

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
@vreutskyy

Copy link
Copy Markdown
Member Author

@mzamoramora-nvidia
Added a test with the floating base. The articulation expectedly has 6 more DOFs.

@mzamoramora-nvidia mzamoramora-nvidia left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@vreutskyy thanks for the PR. Looks good to me.

@vreutskyy vreutskyy added this pull request to the merge queue Feb 11, 2026
Merged via the queue into newton-physics:main with commit 0fb91a4 Feb 11, 2026
22 checks passed
dylanturpin pushed a commit to dylanturpin/newton-collab that referenced this pull request Feb 13, 2026
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
vastsoun added a commit to vastsoun/newton that referenced this pull request Mar 3, 2026
* [Warp Raytrace] Added device parameter (newton-physics#1544)

* [Warp Raytrace] Added device parameter to previously overlooked call (newton-physics#1545)

* SolverMuJoCo: Fix tolerance clamping in update_solver_options_kernel (newton-physics#1546)

* Change default shape_ke to align with MuJoCo, parse geom solref from MJCF for contact stiffness/damping (newton-physics#1491)

Signed-off-by: Alain Denzler <adenzler@nvidia.com>

* Fix log_shapes broadcasting for length-1 warp arrays (newton-physics#1550)

* Fix XPBD restitution particle index (newton-physics#1557)

* Out-of-Bound memory read in example_diffsim_bear newton-physics#1386 (newton-physics#1533)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Add versioned documentation deployment to GitHub Pages (newton-physics#1560)

* Fix broken documentation links after versioned docs deployment (newton-physics#1566)

* VBD New Features (newton-physics#1479)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* Add banners to membership verification workflow steps (newton-physics#1569)

* Support cable junctions (newton-physics#1519)

Signed-off-by: JC <jumyungc@nvidia.com>

* Rename parameter I to inertia newton-physics#1543 (newton-physics#1551)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Fix example_robot_anymal_c_walk.py (newton-physics#1574)

* Change everywhere linesearch to iterative (newton-physics#1573)

* Remove standard collision pipeline (newton-physics#1538)

* USD Plumbing MJC solver attributes through resolver and custom attribute framework (newton-physics#1463)

Signed-off-by: Milad Rakhsha <mrakhsha@nvidia.com>
Signed-off-by: Milad-Rakhsha-NV <167464435+Milad-Rakhsha-NV@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>

* Fix child shape filtering (newton-physics#1559)

* Fix ViewerRerun ignoring hidden parameter in log_mesh and log_instances (newton-physics#1555)

* Make NxN and SAP broad phase respect filtered pairs (newton-physics#1554)

* Add --quiet flag to examples to suppress Warp messages (newton-physics#1585)

* Defer resolution of MESH_MAXHULLVERT default in importers (newton-physics#1587)

* Fix TypeError when finalizing SDF geometry with device kwarg (newton-physics#1586)

* Make MESH_MAXHULLVERT a static class attribute Mesh.MAX_HULL_VERTICES. (newton-physics#1598)

* Significant non-determinism in unified collision pipeline for anymal_c_walking example newton-physics#1505 (newton-physics#1588)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Add test for non-contiguous case (newton-physics#1549)

* Fix nightly Warp CI to resolve pre-release builds (newton-physics#1606)

* Verify default class and value handling (newton-physics#1556)

* SolverMuJoCo: Expand geom_margin to avoid OOB read with heterogeneous worlds (newton-physics#1607)

* Fix bug in control clear method (newton-physics#1602)

* Enable Use of Newton IK in Lab newton-physics#662 (newton-physics#1539)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Fix import  of non-articulated joints (newton-physics#1535)

* Deduplicate _process_joint_custom_attributes frequency handling (newton-physics#1584)

* Add CI check for stale API docs and fix local build warnings (newton-physics#1570)

* Update Pillow 12.0.0 to 12.1.1 (newton-physics#1612)

* Prepare handling of mimic constraints in Newton (newton-physics#1523)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Support floating,  base_joint and parent_body arguments for importers (newton-physics#1498)

* Fix contact buffer memory overestimation (newton-physics#1614)

* Configure banned-module-level-imports for ruff (newton-physics#1583)

* Explicit `Contacts` instantiation with `Model.contacts()` and `CollisionPipeline.contacts()` (newton-physics#1445)

* Fix the quadruped benchmark regression (newton-physics#1615)

* Change default ignore_inertial_definitions from True to False (newton-physics#1537)

* Finalize the Recording API (newton-physics#1600)

* SolverMuJoCo: Fix ccd_iterations default (newton-physics#1631)

* update gitignore to ignore Claude Code sandbox files (newton-physics#1628)

* Add mimic joint support to SolverMuJoCo (newton-physics#1627)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Add --no-cache-clear flag to test runner (newton-physics#1629)

* Update MuJoCo and MuJoCo Warp to 3.5.0 release (newton-physics#1633)

* Improve inertia parsing from USD (newton-physics#1605)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Remove standalone .typos.toml in favor of pyproject.toml config (newton-physics#1642)

* Heightfield support newton-physics#1189 (newton-physics#1547)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Example_robot_policy: Replace ValueError with clean error for missing PhysX policy (newton-physics#1636)

Co-authored-by: Viktor Reutskyy <33062116+vreutskyy@users.noreply.github.com>

* Avoid unnecessary inflation of the contact reduction voxel aabb (newton-physics#1650)

* Rename num_worlds to world_count (newton-physics#1634)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Support parsing autolimits from MJCF (newton-physics#1651)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Fix particle-shape restitution ignoring body velocity (newton-physics#1273) (newton-physics#1580)

* Add overflow warnings for narrow-phase collision buffers (newton-physics#1643)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Documentation: add units to model/state docstrings (newton-physics#1649)

* fix(viewer): add missing JointType.BALL support to contact line kernel (newton-physics#1640)

* Make terrain mesh visual-only in anymal C walking example (newton-physics#1660)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Fix initialization of collider state in MPM finite difference mode (newton-physics#1652)

* docs: document ModelBuilder.default_shape_cfg (newton-physics#1662)

* Finalize the collision API (newton-physics#1581)

* Remove hardcoded subnet ID from AWS workflow (newton-physics#1664)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Attempt to fix AWS config (newton-physics#1666)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Update AWS workflows to g7e.2xlarge with multi-AZ failover (newton-physics#1669)

* fix(viewer-usd): disambiguate log_points colors for N=3 warp arrays (newton-physics#1661)

* Viewer gl optimizations (newton-physics#1656)

Signed-off-by: Miles Macklin <mmacklin@nvidia.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* docs: add articulation workflow guidance and regression check (newton-physics#1663)

* fix(examples): propagate IK solution to model state in Franka example (newton-physics#1637)

* fix(deps,docs): bump nbconvert to 7.17.0 and fix ArticulationView doctest (newton-physics#1670)

* Cleanup and improve some example (newton-physics#1625)

Signed-off-by: adenzler-nvidia <adenzler@nvidia.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>

* Handle zero-mass bodies and flip ensure_nonstatic_links default (newton-physics#1635)

* Additional testing for ArticulationView (newton-physics#1527)

Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* Update warp-lang nightly to 1.12.0.dev20260217 (newton-physics#1677)

* Change default friction coefficients to match MuJoCo (newton-physics#1681)

* Refactor mesh creation functions (newton-physics#1654)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Parse joint frictionloss from MJCF (newton-physics#1680)

* Fix free joint body_pos and add ref/qpos0 support for MuJoCo solver (newton-physics#1645)

* Fix root shapes in ArticulationView with fixed base (newton-physics#1639)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Use model collision methods and remove `create_collision_pipeline` from examples (newton-physics#1648)

Co-authored-by: nvtw <110816143+nvtw@users.noreply.github.com>

* Fix XPBD apply_joint_forces ignoring child joint transform (newton-physics#1582)

* Adjust SDF API (newton-physics#1644)

Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* Optimize test suite runtime (~18% faster) (newton-physics#1689)

* Remove ensure_nonstatic_links option from importers (newton-physics#1682)

Signed-off-by: adenzler-nvidia <adenzler@nvidia.com>

* SolverMuJoCo: Add geom_margin support, align thickness default with MuJoCo and schemas (newton-physics#1653)

* refactor: privatize non-public solver internals (newton-physics#1683)

* Fix option parsing with multiple <option> elements from includes (newton-physics#1692)

* Bump warp-lang nightly and newton-usd-schemas (newton-physics#1693)

* Get rid of tkinter dependency (newton-physics#1676)

* Fix SDF example contact buffer overflow (newton-physics#1695)

* Fix implicit biastype for position/velocity actuator shortcuts (newton-physics#1678)

* Fix include processor to respect meshdir/texturedir (newton-physics#1685)

* Reduce cold-cache Warp compile time for geometry modules (newton-physics#1618)

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>

* Fix xyzw-to-wxyz quaternion conversion in body inertia kernel (newton-physics#1694)

* Rename key to label and add hierarchical labels (newton-physics#1592) (newton-physics#1632)

* Expose geometry SDF helpers on public API (newton-physics#1684)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Improve custom frequency handling from USD, parse MuJoCo actuators and tendons (newton-physics#1510)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Collapse fixed joints with non articulated bodies (newton-physics#1608)

* Fix renaming joint_key -> joint_label (newton-physics#1700)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Bump .python-version from 3.11 to 3.12 (newton-physics#1702)

* Replace CITATION.md with CITATION.cff (newton-physics#1706)

* Respect MJCF contype=conaffinity=0 via collision_group=0 (newton-physics#1703)

* Make ViewerUSD reuse existing USD layers for the same output path (newton-physics#1704)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Remove dead up-axis conversion from MuJoCo solver (newton-physics#1707)

* Skip IK cube stacking example test (newton-physics#1713)

* Fix global pairs (world=-1) not exported to MuJoCo spec (newton-physics#1705)

* Reduce the memory consumption of hydroelastic contacts (newton-physics#1609)

* Fix flakiness cube stacking (newton-physics#1714)

* Fix collision shapes not toggleable in viewer UI (newton-physics#1715)

* Fix softbody examples table layout in README (newton-physics#1716)

* Standardize sensor APIs: label matching, keyword args, and update() method naming (newton-physics#1665)

* Fix intermittent crash in parallel test runner from Manager proxy race (newton-physics#1721)

* Clean up inertia.py function arguments to match Mesh.create_* API (newton-physics#1719)

* Reduce default test runner verbosity (newton-physics#1723)

* Add menagerie comparison tests for SolverMuJoCo (newton-physics#1720)

Signed-off-by: Alain Denzler <adenzler@nvidia.com>
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Co-authored-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Co-authored-by: Viktor Reutskyy <33062116+vreutskyy@users.noreply.github.com>

* Add spatial tendon support for MuJoCo solver (newton-physics#1687)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Expose qfrc_actuator from mujoco (newton-physics#1698)

* Skip non-MODEL custom attributes in finalize validation (newton-physics#1734)

* Resolve inheritrange for position actuators in MJCF parser (newton-physics#1727)

* Support dampratio for position/velocity actuator shortcuts (newton-physics#1722)

* Limit concurrency to 1 (newton-physics#1736)

* Add a helper method for checking applied usd (newton-physics#1731)

* Enhance playback URL handling in ViewerViser (newton-physics#1742)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Removed RenderShapeType (newton-physics#1748)

* Override only MassAPI attributes that have been authored (newton-physics#1688)

* Integration of newton-actuators  (newton-physics#1342)

Signed-off-by: jvonmuralt <jvonmuralt@nvidia.com>

* Fix ArticulationView crash with fixed-joint-only articulations (newton-physics#1726)

* Improve retrieval of Jupyter base URL in ViewerViser (newton-physics#1750)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Disable dynamics testing for UR5e and Apollo tests to avoid CI flakiness (newton-physics#1755)

* Margin and Gap rename (newton-physics#1732)

* Vbd Demos Fixing (newton-physics#1740)

* Fix ViewerViser.log_lines method (newton-physics#1764)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Update warp-lang dependency to 1.12.0rc1 (newton-physics#1763)

* Fix fromto capsule/cylinder orientation in MJCF parser (newton-physics#1741)

* fix: multi-world particle BVH indexing (newton-physics#1641)

Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* Clean up unused and internal-only kwargs in SolverMuJoCo (newton-physics#1766)

* Parsing of the mimic joint and contact gap/margin from newton schemas (newton-physics#1690)

Signed-off-by: Milad Rakhsha <mrakhsha@nvidia.com>

* API Refactor v2 (newton-physics#1749)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Support explicit geom mass attributes in MJCF (newton-physics#1744)

* Bump flask and werkzeug in lockfile for security (newton-physics#1769)

Co-authored-by: Cursor <cursoragent@cursor.com>

* Split MJCF worldbody root bodies into separate articulations (newton-physics#1754)

* Expose VBD rigid contact forces for solver coupling (newton-physics#1745)

Signed-off-by: JC <jumyungc@nvidia.com>

* Add MJCF ellipsoid geom import and regression test (newton-physics#1772)

Co-authored-by: Cursor <cursoragent@cursor.com>

* Weld equality constraints parsed from mjcf are given Nan as the default value of torquescale. The correct default should be 1.0 (newton-physics#1760)

* Improve picking accuracy and stability (newton-physics#1712)

* Franka cloth demo improvement (newton-physics#1765)

* Support computing sensing object transforms & API cleanup (newton-physics#1759)

* Remove threading workaround (newton-physics#1751)

* [Warp Raytrace] Consolidated ray intersect functions, renamed Options to Config (newton-physics#1767)

* Improve README example gallery for PyPI compatibility (newton-physics#1776)

* Fix issue with mesh in rerun viewer (newton-physics#1768)

* Add PhysxMimicJointAPI parsing to USD importer (newton-physics#1735)

* Move some math functions to Warp (newton-physics#1717)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Add test to ensure MJCF xform argument is relative (newton-physics#1777)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Emit diaginertia instead of fullinertia for diagonal body inertia (newton-physics#1780)

* Change default joint armature from 0.01 to 0 (newton-physics#1782)

* Fix default kp/kv for position and velocity actuators (newton-physics#1786)

* Lock body inertia after explicit MJCF <inertial> element (newton-physics#1784)

* Fix for MJCF actuator custom attributes (newton-physics#1783)

* Bump version to 0.2.3

Prepare the package metadata for the v0.2.3 release tag.

* Fix ViewerRerun rendering of instances from hidden meshes (newton-physics#1788)

* API cleanup (newton-physics#1789)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* BODY actuator target name bypasses body name de-duplication in SolverMuJoCo (newton-physics#1729)

* Use default density for visual geoms in MJCF import (newton-physics#1781)

* Fix GL viewer crash on Wayland (newton-physics#1793)

* Make USD xform parameter control absolute articulation placement (newton-physics#1771)

* Fix CUDA context corruption in SDF implementation (newton-physics#1792)

* Bump mujoco-warp dependency to 3.5.0.2 (newton-physics#1779)

* Fix MuJoCo margin/gap conversion (newton-physics#1785)

* Bump version to 1.1.0.dev0 (newton-physics#1798)

* Missing unittest.main added back to test_import_mjcf.py.  Helps with F5 debugging in VS Code. (newton-physics#1796)

* Improve H1 example (newton-physics#1801)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Fix ViewerViser.set_camera() (newton-physics#1805)

* Rename examples to follow prefix-first naming convention (newton-physics#1802)

* Improve MuJoCo actuator domain randomization (newton-physics#1773)

* Restore in_cup test in hydro example (newton-physics#1775)

* Fix `newton.geometry` imports and change of Mesh maxhullverts global constant

* Adapt to having both margin and gap arrays for each geom/shape

* Fix for newton.geometry API changes in primitive/narrowphase.py

* Fix removal of `BroadPhaseMode` IntEnum and revert to newton-sytle string literals

* WIP: Adapt geometry/unified.py to fix breaking changes to `newton.geometry` API

* First pass of API adjustments

* Patch more gaps (with respect to margin and gap renaming)

* GeoType.SDF was removed - reflect that in Kamino

* Introduce CoM position offsets w.r.t body frame and operations to convert between body CoM state and generic local body-fixed reference frames.

* Add caching of per-entity labels/names/keys in the Model subcontainers

* Remove SDF shape wrapper since it's now internal to mesh handling in CD pipelines

* Fix USD test assets

* Add Newton <--> Kamino joint type conversion operations and per-space default limit constants

* Add some cleanup to geometry and unified CD + UTs

* Add Newton <--> Kamino shape type conversion operations

* Apply new default joint coord limit constants to limits.py

* Adapt foubrar model builder and USD asset to produce the same result in sim example

* Purge "physical" goems and collapse all into a single group, and purge geometry "layers"

* Disable allocation per-joint wrenches by default and make them optional

* Make `Model` a dataclass

* Separate ModelData* containers into own `core/data.py` module

* Fix imports of ModelData

* Rename `Model` as `ModelKamino`

* Rename `ModelData` as `DataKamino`

* Rename `State` as `StateKamino`

* Rename `Control` as `ControlKamino`

* Rename `Limits` as `LimitsKamino`

* Rename `Contacts` as `ContactsKamino`

* Rename `ModelBuilder` as `ModelBuilderKamino`

* Make imports in test utilities relative

* Revise CD meta-data attributes and their computation in GeometryModel and ModelBuilderKamino

* Revise primitive CD pipeline

* Revise unified CD pipeline

* Revise CD front-end interfaces

* Fix UTs and relevant utils for interface changes to CD

* Change to `wp.DeviceLike` to account for upcoming deprecation of `Devicelike`

* Depracate legacy HDF5 data io (will be replaced in the future)

* Fix banned imports at module level

* Modify USD importer to detect articulations and order geoms and joints similarly to how the Newton `parse_usd` function does.

* Add conversion operation from `newton.Model` to `ModelKamino`

* Add data, state and control container conversions

* Add SolverKamino wrapper that fullfils newton integration interface

* Add newton integration examples

* Add SolverKamino to newton solver module imports

* WIP: fix problem with lambda_j being allocated for only kinematic constraints and failing on array copying

* Fix banned git import in benchmark

* Rename *Settings to *Config (#213)

* Rename SolverKaminoSettings -> SolverKaminoConfig

* Rename DualProblemSettings -> DualProblemConfig

* Rename CollisionDetectorSettings -> CollisionDetectorConfig

* Rename PADMMSettings -> PADMMConfig

* Rename ForwardKinematicsSolverSettings -> ForwardKinematicsSolverConfig

* Rename SimulatorSettings -> SimulatorConfig

* Add check for model compatibility in SolverKamino (#209)

* Fix device assignment in sparse CG test on CPU (#216)

* Replace Enum-type config attributes with Literal (#215)

* Replace warmstart mode config param with literal

* Replace contact warmstart mode config param with literal

* Replace rotation correction config param with literal

* Replace penalty update config param with literal

* Replace FK preconditioner option config param with literal

* Add post-init checks for dual/PADMM configs

* Rename FKPreconditionerOptions to FKPreconditionerType

* Remove WorldDescriptor from ModelKamino (#219)

* Add geom index offset array to model info

* Replace access to world description in model

* Remove world descriptor from model

* Fix computation of kinematics residual with sparse Jacobian (#220)

* Migrates `ModelKaminoSize` to it's own module to avoid circular dependency between core/model.py and core/state.py and rename it as `SizeKamino`.

* WIP: Fix SolverKamino wrapper

* Fix circular dependency in conversions.py

* Fix some broken unit tests and WIP to fix fourbar contact conversions and rendering

* Make some conversions @staticmethods instead, because they dont need common class attributes

* Fix declaration of custom state attributes and their conversion to/from newton and kamino

* WIP: Debug model conversion and newton sim examples

* Rename and cleanup start index array of per-world geoms

* Model conversion and newton sim examples now work.

* Make gravity conversion operation re-usable

* Migrates boxes_fourbar builder using newton.ModelBuilder to it's own module to prepare for migration.

* Use gravity conversion utility func in SolverKamino

* Add reusable joint-parameterization conversion utility

* Remove world-descriptor from model converter

* Rename helper converter that handles entity-local transforms

* Add some cleanup to DR Legs, ANYmal D and basic four-bar examples

* Fix module-level imports of additional kamino-specific development dependencies

* Fix module-level imports of additional kamino-specific development dependencies

* Fix erroneous merge conflict.

---------

Signed-off-by: Alain Denzler <adenzler@nvidia.com>
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Signed-off-by: JC <jumyungc@nvidia.com>
Signed-off-by: Milad Rakhsha <mrakhsha@nvidia.com>
Signed-off-by: Milad-Rakhsha-NV <167464435+Milad-Rakhsha-NV@users.noreply.github.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Miles Macklin <mmacklin@nvidia.com>
Signed-off-by: adenzler-nvidia <adenzler@nvidia.com>
Signed-off-by: jvonmuralt <jvonmuralt@nvidia.com>
Co-authored-by: Daniela Hase <116915287+daniela-hase@users.noreply.github.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>
Co-authored-by: Viktor Reutskyy <33062116+vreutskyy@users.noreply.github.com>
Co-authored-by: Eric Shi <97630937+shi-eric@users.noreply.github.com>
Co-authored-by: Anka Chen <AnkaChan@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: JC-nvidia <116605903+jumyungc@users.noreply.github.com>
Co-authored-by: Kenny Vilella <kvilella@nvidia.com>
Co-authored-by: nvtw <110816143+nvtw@users.noreply.github.com>
Co-authored-by: Milad-Rakhsha-NV <167464435+Milad-Rakhsha-NV@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Lennart Röstel <65088822+lenroe@users.noreply.github.com>
Co-authored-by: Eric Heiden <eheiden@nvidia.com>
Co-authored-by: jvonmuralt <jvonmuralt@nvidia.com>
Co-authored-by: camevor <camevor@nvidia.com>
Co-authored-by: mzamoramora-nvidia <mzamoramora@nvidia.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Roncone <alecive87@gmail.com>
Co-authored-by: gdaviet <57617656+gdaviet@users.noreply.github.com>
Co-authored-by: Miles Macklin <mmacklin@nvidia.com>
Co-authored-by: Gordon Yeoman <gyeomannvidia@users.noreply.github.com>
Co-authored-by: Lukasz Wawrzyniak <lwawrzyniak@nvidia.com>
Co-authored-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Co-authored-by: Lorenzo Terenzi <lorenzoterenzi96@gmail.com>
Co-authored-by: smollerNV <164020096+smollerNV@users.noreply.github.com>
Co-authored-by: twidmer <twidmer@nvidia.com>
Co-authored-by: Christian Schumacher <christian.schumacher@disney.com>
Co-authored-by: Guirec-Maloisel <25688871+Guirec-Maloisel@users.noreply.github.com>
vastsoun added a commit to vastsoun/newton that referenced this pull request Mar 4, 2026
* [Warp Raytrace] Added device parameter (newton-physics#1544)

* [Warp Raytrace] Added device parameter to previously overlooked call (newton-physics#1545)

* SolverMuJoCo: Fix tolerance clamping in update_solver_options_kernel (newton-physics#1546)

* Change default shape_ke to align with MuJoCo, parse geom solref from MJCF for contact stiffness/damping (newton-physics#1491)

Signed-off-by: Alain Denzler <adenzler@nvidia.com>

* Fix log_shapes broadcasting for length-1 warp arrays (newton-physics#1550)

* Fix XPBD restitution particle index (newton-physics#1557)

* Out-of-Bound memory read in example_diffsim_bear newton-physics#1386 (newton-physics#1533)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Add versioned documentation deployment to GitHub Pages (newton-physics#1560)

* Fix broken documentation links after versioned docs deployment (newton-physics#1566)

* VBD New Features (newton-physics#1479)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* Add banners to membership verification workflow steps (newton-physics#1569)

* Support cable junctions (newton-physics#1519)

Signed-off-by: JC <jumyungc@nvidia.com>

* Rename parameter I to inertia newton-physics#1543 (newton-physics#1551)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Fix example_robot_anymal_c_walk.py (newton-physics#1574)

* Change everywhere linesearch to iterative (newton-physics#1573)

* Remove standard collision pipeline (newton-physics#1538)

* USD Plumbing MJC solver attributes through resolver and custom attribute framework (newton-physics#1463)

Signed-off-by: Milad Rakhsha <mrakhsha@nvidia.com>
Signed-off-by: Milad-Rakhsha-NV <167464435+Milad-Rakhsha-NV@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>

* Fix child shape filtering (newton-physics#1559)

* Fix ViewerRerun ignoring hidden parameter in log_mesh and log_instances (newton-physics#1555)

* Make NxN and SAP broad phase respect filtered pairs (newton-physics#1554)

* Add --quiet flag to examples to suppress Warp messages (newton-physics#1585)

* Defer resolution of MESH_MAXHULLVERT default in importers (newton-physics#1587)

* Fix TypeError when finalizing SDF geometry with device kwarg (newton-physics#1586)

* Make MESH_MAXHULLVERT a static class attribute Mesh.MAX_HULL_VERTICES. (newton-physics#1598)

* Significant non-determinism in unified collision pipeline for anymal_c_walking example newton-physics#1505 (newton-physics#1588)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Add test for non-contiguous case (newton-physics#1549)

* Fix nightly Warp CI to resolve pre-release builds (newton-physics#1606)

* Verify default class and value handling (newton-physics#1556)

* SolverMuJoCo: Expand geom_margin to avoid OOB read with heterogeneous worlds (newton-physics#1607)

* Fix bug in control clear method (newton-physics#1602)

* Enable Use of Newton IK in Lab newton-physics#662 (newton-physics#1539)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Fix import  of non-articulated joints (newton-physics#1535)

* Deduplicate _process_joint_custom_attributes frequency handling (newton-physics#1584)

* Add CI check for stale API docs and fix local build warnings (newton-physics#1570)

* Update Pillow 12.0.0 to 12.1.1 (newton-physics#1612)

* Prepare handling of mimic constraints in Newton (newton-physics#1523)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Support floating,  base_joint and parent_body arguments for importers (newton-physics#1498)

* Fix contact buffer memory overestimation (newton-physics#1614)

* Configure banned-module-level-imports for ruff (newton-physics#1583)

* Explicit `Contacts` instantiation with `Model.contacts()` and `CollisionPipeline.contacts()` (newton-physics#1445)

* Fix the quadruped benchmark regression (newton-physics#1615)

* Change default ignore_inertial_definitions from True to False (newton-physics#1537)

* Finalize the Recording API (newton-physics#1600)

* SolverMuJoCo: Fix ccd_iterations default (newton-physics#1631)

* update gitignore to ignore Claude Code sandbox files (newton-physics#1628)

* Add mimic joint support to SolverMuJoCo (newton-physics#1627)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Add --no-cache-clear flag to test runner (newton-physics#1629)

* Update MuJoCo and MuJoCo Warp to 3.5.0 release (newton-physics#1633)

* Improve inertia parsing from USD (newton-physics#1605)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Remove standalone .typos.toml in favor of pyproject.toml config (newton-physics#1642)

* Heightfield support newton-physics#1189 (newton-physics#1547)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Example_robot_policy: Replace ValueError with clean error for missing PhysX policy (newton-physics#1636)

Co-authored-by: Viktor Reutskyy <33062116+vreutskyy@users.noreply.github.com>

* Avoid unnecessary inflation of the contact reduction voxel aabb (newton-physics#1650)

* Rename num_worlds to world_count (newton-physics#1634)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Support parsing autolimits from MJCF (newton-physics#1651)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Fix particle-shape restitution ignoring body velocity (newton-physics#1273) (newton-physics#1580)

* Add overflow warnings for narrow-phase collision buffers (newton-physics#1643)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Documentation: add units to model/state docstrings (newton-physics#1649)

* fix(viewer): add missing JointType.BALL support to contact line kernel (newton-physics#1640)

* Make terrain mesh visual-only in anymal C walking example (newton-physics#1660)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Fix initialization of collider state in MPM finite difference mode (newton-physics#1652)

* docs: document ModelBuilder.default_shape_cfg (newton-physics#1662)

* Finalize the collision API (newton-physics#1581)

* Remove hardcoded subnet ID from AWS workflow (newton-physics#1664)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Attempt to fix AWS config (newton-physics#1666)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Update AWS workflows to g7e.2xlarge with multi-AZ failover (newton-physics#1669)

* fix(viewer-usd): disambiguate log_points colors for N=3 warp arrays (newton-physics#1661)

* Viewer gl optimizations (newton-physics#1656)

Signed-off-by: Miles Macklin <mmacklin@nvidia.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* docs: add articulation workflow guidance and regression check (newton-physics#1663)

* fix(examples): propagate IK solution to model state in Franka example (newton-physics#1637)

* fix(deps,docs): bump nbconvert to 7.17.0 and fix ArticulationView doctest (newton-physics#1670)

* Cleanup and improve some example (newton-physics#1625)

Signed-off-by: adenzler-nvidia <adenzler@nvidia.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>

* Handle zero-mass bodies and flip ensure_nonstatic_links default (newton-physics#1635)

* Additional testing for ArticulationView (newton-physics#1527)

Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* Update warp-lang nightly to 1.12.0.dev20260217 (newton-physics#1677)

* Change default friction coefficients to match MuJoCo (newton-physics#1681)

* Refactor mesh creation functions (newton-physics#1654)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Parse joint frictionloss from MJCF (newton-physics#1680)

* Fix free joint body_pos and add ref/qpos0 support for MuJoCo solver (newton-physics#1645)

* Fix root shapes in ArticulationView with fixed base (newton-physics#1639)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Use model collision methods and remove `create_collision_pipeline` from examples (newton-physics#1648)

Co-authored-by: nvtw <110816143+nvtw@users.noreply.github.com>

* Fix XPBD apply_joint_forces ignoring child joint transform (newton-physics#1582)

* Adjust SDF API (newton-physics#1644)

Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* Optimize test suite runtime (~18% faster) (newton-physics#1689)

* Remove ensure_nonstatic_links option from importers (newton-physics#1682)

Signed-off-by: adenzler-nvidia <adenzler@nvidia.com>

* SolverMuJoCo: Add geom_margin support, align thickness default with MuJoCo and schemas (newton-physics#1653)

* refactor: privatize non-public solver internals (newton-physics#1683)

* Fix option parsing with multiple <option> elements from includes (newton-physics#1692)

* Bump warp-lang nightly and newton-usd-schemas (newton-physics#1693)

* Get rid of tkinter dependency (newton-physics#1676)

* Fix SDF example contact buffer overflow (newton-physics#1695)

* Fix implicit biastype for position/velocity actuator shortcuts (newton-physics#1678)

* Fix include processor to respect meshdir/texturedir (newton-physics#1685)

* Reduce cold-cache Warp compile time for geometry modules (newton-physics#1618)

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>

* Fix xyzw-to-wxyz quaternion conversion in body inertia kernel (newton-physics#1694)

* Rename key to label and add hierarchical labels (newton-physics#1592) (newton-physics#1632)

* Expose geometry SDF helpers on public API (newton-physics#1684)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Improve custom frequency handling from USD, parse MuJoCo actuators and tendons (newton-physics#1510)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Collapse fixed joints with non articulated bodies (newton-physics#1608)

* Fix renaming joint_key -> joint_label (newton-physics#1700)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Bump .python-version from 3.11 to 3.12 (newton-physics#1702)

* Replace CITATION.md with CITATION.cff (newton-physics#1706)

* Respect MJCF contype=conaffinity=0 via collision_group=0 (newton-physics#1703)

* Make ViewerUSD reuse existing USD layers for the same output path (newton-physics#1704)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Remove dead up-axis conversion from MuJoCo solver (newton-physics#1707)

* Skip IK cube stacking example test (newton-physics#1713)

* Fix global pairs (world=-1) not exported to MuJoCo spec (newton-physics#1705)

* Reduce the memory consumption of hydroelastic contacts (newton-physics#1609)

* Fix flakiness cube stacking (newton-physics#1714)

* Fix collision shapes not toggleable in viewer UI (newton-physics#1715)

* Fix softbody examples table layout in README (newton-physics#1716)

* Standardize sensor APIs: label matching, keyword args, and update() method naming (newton-physics#1665)

* Fix intermittent crash in parallel test runner from Manager proxy race (newton-physics#1721)

* Clean up inertia.py function arguments to match Mesh.create_* API (newton-physics#1719)

* Reduce default test runner verbosity (newton-physics#1723)

* Add menagerie comparison tests for SolverMuJoCo (newton-physics#1720)

Signed-off-by: Alain Denzler <adenzler@nvidia.com>
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Co-authored-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Co-authored-by: Viktor Reutskyy <33062116+vreutskyy@users.noreply.github.com>

* Add spatial tendon support for MuJoCo solver (newton-physics#1687)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Expose qfrc_actuator from mujoco (newton-physics#1698)

* Skip non-MODEL custom attributes in finalize validation (newton-physics#1734)

* Resolve inheritrange for position actuators in MJCF parser (newton-physics#1727)

* Support dampratio for position/velocity actuator shortcuts (newton-physics#1722)

* Limit concurrency to 1 (newton-physics#1736)

* Add a helper method for checking applied usd (newton-physics#1731)

* Enhance playback URL handling in ViewerViser (newton-physics#1742)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Removed RenderShapeType (newton-physics#1748)

* Override only MassAPI attributes that have been authored (newton-physics#1688)

* Integration of newton-actuators  (newton-physics#1342)

Signed-off-by: jvonmuralt <jvonmuralt@nvidia.com>

* Fix ArticulationView crash with fixed-joint-only articulations (newton-physics#1726)

* Improve retrieval of Jupyter base URL in ViewerViser (newton-physics#1750)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Disable dynamics testing for UR5e and Apollo tests to avoid CI flakiness (newton-physics#1755)

* Margin and Gap rename (newton-physics#1732)

* Vbd Demos Fixing (newton-physics#1740)

* Fix ViewerViser.log_lines method (newton-physics#1764)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Update warp-lang dependency to 1.12.0rc1 (newton-physics#1763)

* Fix fromto capsule/cylinder orientation in MJCF parser (newton-physics#1741)

* fix: multi-world particle BVH indexing (newton-physics#1641)

Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* Clean up unused and internal-only kwargs in SolverMuJoCo (newton-physics#1766)

* Parsing of the mimic joint and contact gap/margin from newton schemas (newton-physics#1690)

Signed-off-by: Milad Rakhsha <mrakhsha@nvidia.com>

* API Refactor v2 (newton-physics#1749)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Support explicit geom mass attributes in MJCF (newton-physics#1744)

* Bump flask and werkzeug in lockfile for security (newton-physics#1769)

Co-authored-by: Cursor <cursoragent@cursor.com>

* Split MJCF worldbody root bodies into separate articulations (newton-physics#1754)

* Expose VBD rigid contact forces for solver coupling (newton-physics#1745)

Signed-off-by: JC <jumyungc@nvidia.com>

* Add MJCF ellipsoid geom import and regression test (newton-physics#1772)

Co-authored-by: Cursor <cursoragent@cursor.com>

* Weld equality constraints parsed from mjcf are given Nan as the default value of torquescale. The correct default should be 1.0 (newton-physics#1760)

* Improve picking accuracy and stability (newton-physics#1712)

* Franka cloth demo improvement (newton-physics#1765)

* Support computing sensing object transforms & API cleanup (newton-physics#1759)

* Remove threading workaround (newton-physics#1751)

* [Warp Raytrace] Consolidated ray intersect functions, renamed Options to Config (newton-physics#1767)

* Improve README example gallery for PyPI compatibility (newton-physics#1776)

* Fix issue with mesh in rerun viewer (newton-physics#1768)

* Add PhysxMimicJointAPI parsing to USD importer (newton-physics#1735)

* Move some math functions to Warp (newton-physics#1717)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Add test to ensure MJCF xform argument is relative (newton-physics#1777)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Emit diaginertia instead of fullinertia for diagonal body inertia (newton-physics#1780)

* Change default joint armature from 0.01 to 0 (newton-physics#1782)

* Fix default kp/kv for position and velocity actuators (newton-physics#1786)

* Lock body inertia after explicit MJCF <inertial> element (newton-physics#1784)

* Fix for MJCF actuator custom attributes (newton-physics#1783)

* Bump version to 0.2.3

Prepare the package metadata for the v0.2.3 release tag.

* Fix ViewerRerun rendering of instances from hidden meshes (newton-physics#1788)

* API cleanup (newton-physics#1789)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* BODY actuator target name bypasses body name de-duplication in SolverMuJoCo (newton-physics#1729)

* Use default density for visual geoms in MJCF import (newton-physics#1781)

* Fix GL viewer crash on Wayland (newton-physics#1793)

* Make USD xform parameter control absolute articulation placement (newton-physics#1771)

* Fix CUDA context corruption in SDF implementation (newton-physics#1792)

* Bump mujoco-warp dependency to 3.5.0.2 (newton-physics#1779)

* Fix MuJoCo margin/gap conversion (newton-physics#1785)

* Bump version to 1.1.0.dev0 (newton-physics#1798)

* Missing unittest.main added back to test_import_mjcf.py.  Helps with F5 debugging in VS Code. (newton-physics#1796)

* Improve H1 example (newton-physics#1801)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Fix ViewerViser.set_camera() (newton-physics#1805)

* Rename examples to follow prefix-first naming convention (newton-physics#1802)

* Improve MuJoCo actuator domain randomization (newton-physics#1773)

* Restore in_cup test in hydro example (newton-physics#1775)

* Fix `newton.geometry` imports and change of Mesh maxhullverts global constant

* Adapt to having both margin and gap arrays for each geom/shape

* Fix for newton.geometry API changes in primitive/narrowphase.py

* Fix removal of `BroadPhaseMode` IntEnum and revert to newton-sytle string literals

* WIP: Adapt geometry/unified.py to fix breaking changes to `newton.geometry` API

* First pass of API adjustments

* Patch more gaps (with respect to margin and gap renaming)

* GeoType.SDF was removed - reflect that in Kamino

* Introduce CoM position offsets w.r.t body frame and operations to convert between body CoM state and generic local body-fixed reference frames.

* Add caching of per-entity labels/names/keys in the Model subcontainers

* Remove SDF shape wrapper since it's now internal to mesh handling in CD pipelines

* Fix USD test assets

* Add Newton <--> Kamino joint type conversion operations and per-space default limit constants

* Add some cleanup to geometry and unified CD + UTs

* Add Newton <--> Kamino shape type conversion operations

* Apply new default joint coord limit constants to limits.py

* Adapt foubrar model builder and USD asset to produce the same result in sim example

* Purge "physical" goems and collapse all into a single group, and purge geometry "layers"

* Disable allocation per-joint wrenches by default and make them optional

* Make `Model` a dataclass

* Separate ModelData* containers into own `core/data.py` module

* Fix imports of ModelData

* Rename `Model` as `ModelKamino`

* Rename `ModelData` as `DataKamino`

* Rename `State` as `StateKamino`

* Rename `Control` as `ControlKamino`

* Rename `Limits` as `LimitsKamino`

* Rename `Contacts` as `ContactsKamino`

* Rename `ModelBuilder` as `ModelBuilderKamino`

* Make imports in test utilities relative

* Revise CD meta-data attributes and their computation in GeometryModel and ModelBuilderKamino

* Revise primitive CD pipeline

* Revise unified CD pipeline

* Revise CD front-end interfaces

* Fix UTs and relevant utils for interface changes to CD

* Change to `wp.DeviceLike` to account for upcoming deprecation of `Devicelike`

* Depracate legacy HDF5 data io (will be replaced in the future)

* Fix banned imports at module level

* Modify USD importer to detect articulations and order geoms and joints similarly to how the Newton `parse_usd` function does.

* Add conversion operation from `newton.Model` to `ModelKamino`

* Add data, state and control container conversions

* Add SolverKamino wrapper that fullfils newton integration interface

* Add newton integration examples

* Add SolverKamino to newton solver module imports

* WIP: fix problem with lambda_j being allocated for only kinematic constraints and failing on array copying

* Fix banned git import in benchmark

* Rename *Settings to *Config (#213)

* Rename SolverKaminoSettings -> SolverKaminoConfig

* Rename DualProblemSettings -> DualProblemConfig

* Rename CollisionDetectorSettings -> CollisionDetectorConfig

* Rename PADMMSettings -> PADMMConfig

* Rename ForwardKinematicsSolverSettings -> ForwardKinematicsSolverConfig

* Rename SimulatorSettings -> SimulatorConfig

* Add check for model compatibility in SolverKamino (#209)

* Fix device assignment in sparse CG test on CPU (#216)

* Replace Enum-type config attributes with Literal (#215)

* Replace warmstart mode config param with literal

* Replace contact warmstart mode config param with literal

* Replace rotation correction config param with literal

* Replace penalty update config param with literal

* Replace FK preconditioner option config param with literal

* Add post-init checks for dual/PADMM configs

* Rename FKPreconditionerOptions to FKPreconditionerType

* Remove WorldDescriptor from ModelKamino (#219)

* Add geom index offset array to model info

* Replace access to world description in model

* Remove world descriptor from model

* Fix computation of kinematics residual with sparse Jacobian (#220)

* Migrates `ModelKaminoSize` to it's own module to avoid circular dependency between core/model.py and core/state.py and rename it as `SizeKamino`.

* WIP: Fix SolverKamino wrapper

* Fix circular dependency in conversions.py

* Fix some broken unit tests and WIP to fix fourbar contact conversions and rendering

* Make some conversions @staticmethods instead, because they dont need common class attributes

* Fix declaration of custom state attributes and their conversion to/from newton and kamino

* WIP: Debug model conversion and newton sim examples

* Rename and cleanup start index array of per-world geoms

* Model conversion and newton sim examples now work.

* Make gravity conversion operation re-usable

* Migrates boxes_fourbar builder using newton.ModelBuilder to it's own module to prepare for migration.

* Use gravity conversion utility func in SolverKamino

* Add reusable joint-parameterization conversion utility

* Remove world-descriptor from model converter

* Rename helper converter that handles entity-local transforms

* Add some cleanup to DR Legs, ANYmal D and basic four-bar examples

* Fix module-level imports of additional kamino-specific development dependencies

* Fix module-level imports of additional kamino-specific development dependencies

* Fix erroneous merge conflict.

---------

Signed-off-by: Alain Denzler <adenzler@nvidia.com>
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Signed-off-by: JC <jumyungc@nvidia.com>
Signed-off-by: Milad Rakhsha <mrakhsha@nvidia.com>
Signed-off-by: Milad-Rakhsha-NV <167464435+Milad-Rakhsha-NV@users.noreply.github.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Miles Macklin <mmacklin@nvidia.com>
Signed-off-by: adenzler-nvidia <adenzler@nvidia.com>
Signed-off-by: jvonmuralt <jvonmuralt@nvidia.com>
Co-authored-by: Daniela Hase <116915287+daniela-hase@users.noreply.github.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>
Co-authored-by: Viktor Reutskyy <33062116+vreutskyy@users.noreply.github.com>
Co-authored-by: Eric Shi <97630937+shi-eric@users.noreply.github.com>
Co-authored-by: Anka Chen <AnkaChan@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: JC-nvidia <116605903+jumyungc@users.noreply.github.com>
Co-authored-by: Kenny Vilella <kvilella@nvidia.com>
Co-authored-by: nvtw <110816143+nvtw@users.noreply.github.com>
Co-authored-by: Milad-Rakhsha-NV <167464435+Milad-Rakhsha-NV@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Lennart Röstel <65088822+lenroe@users.noreply.github.com>
Co-authored-by: Eric Heiden <eheiden@nvidia.com>
Co-authored-by: jvonmuralt <jvonmuralt@nvidia.com>
Co-authored-by: camevor <camevor@nvidia.com>
Co-authored-by: mzamoramora-nvidia <mzamoramora@nvidia.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Roncone <alecive87@gmail.com>
Co-authored-by: gdaviet <57617656+gdaviet@users.noreply.github.com>
Co-authored-by: Miles Macklin <mmacklin@nvidia.com>
Co-authored-by: Gordon Yeoman <gyeomannvidia@users.noreply.github.com>
Co-authored-by: Lukasz Wawrzyniak <lwawrzyniak@nvidia.com>
Co-authored-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Co-authored-by: Lorenzo Terenzi <lorenzoterenzi96@gmail.com>
Co-authored-by: smollerNV <164020096+smollerNV@users.noreply.github.com>
Co-authored-by: twidmer <twidmer@nvidia.com>
Co-authored-by: Christian Schumacher <christian.schumacher@disney.com>
Co-authored-by: Guirec-Maloisel <25688871+Guirec-Maloisel@users.noreply.github.com>
vastsoun added a commit to vastsoun/newton that referenced this pull request Mar 4, 2026
* [Warp Raytrace] Added device parameter (newton-physics#1544)

* [Warp Raytrace] Added device parameter to previously overlooked call (newton-physics#1545)

* SolverMuJoCo: Fix tolerance clamping in update_solver_options_kernel (newton-physics#1546)

* Change default shape_ke to align with MuJoCo, parse geom solref from MJCF for contact stiffness/damping (newton-physics#1491)

Signed-off-by: Alain Denzler <adenzler@nvidia.com>

* Fix log_shapes broadcasting for length-1 warp arrays (newton-physics#1550)

* Fix XPBD restitution particle index (newton-physics#1557)

* Out-of-Bound memory read in example_diffsim_bear newton-physics#1386 (newton-physics#1533)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Add versioned documentation deployment to GitHub Pages (newton-physics#1560)

* Fix broken documentation links after versioned docs deployment (newton-physics#1566)

* VBD New Features (newton-physics#1479)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* Add banners to membership verification workflow steps (newton-physics#1569)

* Support cable junctions (newton-physics#1519)

Signed-off-by: JC <jumyungc@nvidia.com>

* Rename parameter I to inertia newton-physics#1543 (newton-physics#1551)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Fix example_robot_anymal_c_walk.py (newton-physics#1574)

* Change everywhere linesearch to iterative (newton-physics#1573)

* Remove standard collision pipeline (newton-physics#1538)

* USD Plumbing MJC solver attributes through resolver and custom attribute framework (newton-physics#1463)

Signed-off-by: Milad Rakhsha <mrakhsha@nvidia.com>
Signed-off-by: Milad-Rakhsha-NV <167464435+Milad-Rakhsha-NV@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>

* Fix child shape filtering (newton-physics#1559)

* Fix ViewerRerun ignoring hidden parameter in log_mesh and log_instances (newton-physics#1555)

* Make NxN and SAP broad phase respect filtered pairs (newton-physics#1554)

* Add --quiet flag to examples to suppress Warp messages (newton-physics#1585)

* Defer resolution of MESH_MAXHULLVERT default in importers (newton-physics#1587)

* Fix TypeError when finalizing SDF geometry with device kwarg (newton-physics#1586)

* Make MESH_MAXHULLVERT a static class attribute Mesh.MAX_HULL_VERTICES. (newton-physics#1598)

* Significant non-determinism in unified collision pipeline for anymal_c_walking example newton-physics#1505 (newton-physics#1588)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Add test for non-contiguous case (newton-physics#1549)

* Fix nightly Warp CI to resolve pre-release builds (newton-physics#1606)

* Verify default class and value handling (newton-physics#1556)

* SolverMuJoCo: Expand geom_margin to avoid OOB read with heterogeneous worlds (newton-physics#1607)

* Fix bug in control clear method (newton-physics#1602)

* Enable Use of Newton IK in Lab newton-physics#662 (newton-physics#1539)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Fix import  of non-articulated joints (newton-physics#1535)

* Deduplicate _process_joint_custom_attributes frequency handling (newton-physics#1584)

* Add CI check for stale API docs and fix local build warnings (newton-physics#1570)

* Update Pillow 12.0.0 to 12.1.1 (newton-physics#1612)

* Prepare handling of mimic constraints in Newton (newton-physics#1523)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Support floating,  base_joint and parent_body arguments for importers (newton-physics#1498)

* Fix contact buffer memory overestimation (newton-physics#1614)

* Configure banned-module-level-imports for ruff (newton-physics#1583)

* Explicit `Contacts` instantiation with `Model.contacts()` and `CollisionPipeline.contacts()` (newton-physics#1445)

* Fix the quadruped benchmark regression (newton-physics#1615)

* Change default ignore_inertial_definitions from True to False (newton-physics#1537)

* Finalize the Recording API (newton-physics#1600)

* SolverMuJoCo: Fix ccd_iterations default (newton-physics#1631)

* update gitignore to ignore Claude Code sandbox files (newton-physics#1628)

* Add mimic joint support to SolverMuJoCo (newton-physics#1627)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Add --no-cache-clear flag to test runner (newton-physics#1629)

* Update MuJoCo and MuJoCo Warp to 3.5.0 release (newton-physics#1633)

* Improve inertia parsing from USD (newton-physics#1605)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Remove standalone .typos.toml in favor of pyproject.toml config (newton-physics#1642)

* Heightfield support newton-physics#1189 (newton-physics#1547)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Example_robot_policy: Replace ValueError with clean error for missing PhysX policy (newton-physics#1636)

Co-authored-by: Viktor Reutskyy <33062116+vreutskyy@users.noreply.github.com>

* Avoid unnecessary inflation of the contact reduction voxel aabb (newton-physics#1650)

* Rename num_worlds to world_count (newton-physics#1634)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Support parsing autolimits from MJCF (newton-physics#1651)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Fix particle-shape restitution ignoring body velocity (newton-physics#1273) (newton-physics#1580)

* Add overflow warnings for narrow-phase collision buffers (newton-physics#1643)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Documentation: add units to model/state docstrings (newton-physics#1649)

* fix(viewer): add missing JointType.BALL support to contact line kernel (newton-physics#1640)

* Make terrain mesh visual-only in anymal C walking example (newton-physics#1660)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Fix initialization of collider state in MPM finite difference mode (newton-physics#1652)

* docs: document ModelBuilder.default_shape_cfg (newton-physics#1662)

* Finalize the collision API (newton-physics#1581)

* Remove hardcoded subnet ID from AWS workflow (newton-physics#1664)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Attempt to fix AWS config (newton-physics#1666)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Update AWS workflows to g7e.2xlarge with multi-AZ failover (newton-physics#1669)

* fix(viewer-usd): disambiguate log_points colors for N=3 warp arrays (newton-physics#1661)

* Viewer gl optimizations (newton-physics#1656)

Signed-off-by: Miles Macklin <mmacklin@nvidia.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* docs: add articulation workflow guidance and regression check (newton-physics#1663)

* fix(examples): propagate IK solution to model state in Franka example (newton-physics#1637)

* fix(deps,docs): bump nbconvert to 7.17.0 and fix ArticulationView doctest (newton-physics#1670)

* Cleanup and improve some example (newton-physics#1625)

Signed-off-by: adenzler-nvidia <adenzler@nvidia.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>

* Handle zero-mass bodies and flip ensure_nonstatic_links default (newton-physics#1635)

* Additional testing for ArticulationView (newton-physics#1527)

Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* Update warp-lang nightly to 1.12.0.dev20260217 (newton-physics#1677)

* Change default friction coefficients to match MuJoCo (newton-physics#1681)

* Refactor mesh creation functions (newton-physics#1654)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Parse joint frictionloss from MJCF (newton-physics#1680)

* Fix free joint body_pos and add ref/qpos0 support for MuJoCo solver (newton-physics#1645)

* Fix root shapes in ArticulationView with fixed base (newton-physics#1639)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Use model collision methods and remove `create_collision_pipeline` from examples (newton-physics#1648)

Co-authored-by: nvtw <110816143+nvtw@users.noreply.github.com>

* Fix XPBD apply_joint_forces ignoring child joint transform (newton-physics#1582)

* Adjust SDF API (newton-physics#1644)

Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* Optimize test suite runtime (~18% faster) (newton-physics#1689)

* Remove ensure_nonstatic_links option from importers (newton-physics#1682)

Signed-off-by: adenzler-nvidia <adenzler@nvidia.com>

* SolverMuJoCo: Add geom_margin support, align thickness default with MuJoCo and schemas (newton-physics#1653)

* refactor: privatize non-public solver internals (newton-physics#1683)

* Fix option parsing with multiple <option> elements from includes (newton-physics#1692)

* Bump warp-lang nightly and newton-usd-schemas (newton-physics#1693)

* Get rid of tkinter dependency (newton-physics#1676)

* Fix SDF example contact buffer overflow (newton-physics#1695)

* Fix implicit biastype for position/velocity actuator shortcuts (newton-physics#1678)

* Fix include processor to respect meshdir/texturedir (newton-physics#1685)

* Reduce cold-cache Warp compile time for geometry modules (newton-physics#1618)

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>

* Fix xyzw-to-wxyz quaternion conversion in body inertia kernel (newton-physics#1694)

* Rename key to label and add hierarchical labels (newton-physics#1592) (newton-physics#1632)

* Expose geometry SDF helpers on public API (newton-physics#1684)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Improve custom frequency handling from USD, parse MuJoCo actuators and tendons (newton-physics#1510)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Collapse fixed joints with non articulated bodies (newton-physics#1608)

* Fix renaming joint_key -> joint_label (newton-physics#1700)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>

* Bump .python-version from 3.11 to 3.12 (newton-physics#1702)

* Replace CITATION.md with CITATION.cff (newton-physics#1706)

* Respect MJCF contype=conaffinity=0 via collision_group=0 (newton-physics#1703)

* Make ViewerUSD reuse existing USD layers for the same output path (newton-physics#1704)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Remove dead up-axis conversion from MuJoCo solver (newton-physics#1707)

* Skip IK cube stacking example test (newton-physics#1713)

* Fix global pairs (world=-1) not exported to MuJoCo spec (newton-physics#1705)

* Reduce the memory consumption of hydroelastic contacts (newton-physics#1609)

* Fix flakiness cube stacking (newton-physics#1714)

* Fix collision shapes not toggleable in viewer UI (newton-physics#1715)

* Fix softbody examples table layout in README (newton-physics#1716)

* Standardize sensor APIs: label matching, keyword args, and update() method naming (newton-physics#1665)

* Fix intermittent crash in parallel test runner from Manager proxy race (newton-physics#1721)

* Clean up inertia.py function arguments to match Mesh.create_* API (newton-physics#1719)

* Reduce default test runner verbosity (newton-physics#1723)

* Add menagerie comparison tests for SolverMuJoCo (newton-physics#1720)

Signed-off-by: Alain Denzler <adenzler@nvidia.com>
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Co-authored-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Co-authored-by: Viktor Reutskyy <33062116+vreutskyy@users.noreply.github.com>

* Add spatial tendon support for MuJoCo solver (newton-physics#1687)

Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>

* Expose qfrc_actuator from mujoco (newton-physics#1698)

* Skip non-MODEL custom attributes in finalize validation (newton-physics#1734)

* Resolve inheritrange for position actuators in MJCF parser (newton-physics#1727)

* Support dampratio for position/velocity actuator shortcuts (newton-physics#1722)

* Limit concurrency to 1 (newton-physics#1736)

* Add a helper method for checking applied usd (newton-physics#1731)

* Enhance playback URL handling in ViewerViser (newton-physics#1742)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Removed RenderShapeType (newton-physics#1748)

* Override only MassAPI attributes that have been authored (newton-physics#1688)

* Integration of newton-actuators  (newton-physics#1342)

Signed-off-by: jvonmuralt <jvonmuralt@nvidia.com>

* Fix ArticulationView crash with fixed-joint-only articulations (newton-physics#1726)

* Improve retrieval of Jupyter base URL in ViewerViser (newton-physics#1750)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Disable dynamics testing for UR5e and Apollo tests to avoid CI flakiness (newton-physics#1755)

* Margin and Gap rename (newton-physics#1732)

* Vbd Demos Fixing (newton-physics#1740)

* Fix ViewerViser.log_lines method (newton-physics#1764)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Update warp-lang dependency to 1.12.0rc1 (newton-physics#1763)

* Fix fromto capsule/cylinder orientation in MJCF parser (newton-physics#1741)

* fix: multi-world particle BVH indexing (newton-physics#1641)

Co-authored-by: Eric Heiden <eheiden@nvidia.com>

* Clean up unused and internal-only kwargs in SolverMuJoCo (newton-physics#1766)

* Parsing of the mimic joint and contact gap/margin from newton schemas (newton-physics#1690)

Signed-off-by: Milad Rakhsha <mrakhsha@nvidia.com>

* API Refactor v2 (newton-physics#1749)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Support explicit geom mass attributes in MJCF (newton-physics#1744)

* Bump flask and werkzeug in lockfile for security (newton-physics#1769)

Co-authored-by: Cursor <cursoragent@cursor.com>

* Split MJCF worldbody root bodies into separate articulations (newton-physics#1754)

* Expose VBD rigid contact forces for solver coupling (newton-physics#1745)

Signed-off-by: JC <jumyungc@nvidia.com>

* Add MJCF ellipsoid geom import and regression test (newton-physics#1772)

Co-authored-by: Cursor <cursoragent@cursor.com>

* Weld equality constraints parsed from mjcf are given Nan as the default value of torquescale. The correct default should be 1.0 (newton-physics#1760)

* Improve picking accuracy and stability (newton-physics#1712)

* Franka cloth demo improvement (newton-physics#1765)

* Support computing sensing object transforms & API cleanup (newton-physics#1759)

* Remove threading workaround (newton-physics#1751)

* [Warp Raytrace] Consolidated ray intersect functions, renamed Options to Config (newton-physics#1767)

* Improve README example gallery for PyPI compatibility (newton-physics#1776)

* Fix issue with mesh in rerun viewer (newton-physics#1768)

* Add PhysxMimicJointAPI parsing to USD importer (newton-physics#1735)

* Move some math functions to Warp (newton-physics#1717)

Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Add test to ensure MJCF xform argument is relative (newton-physics#1777)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Emit diaginertia instead of fullinertia for diagonal body inertia (newton-physics#1780)

* Change default joint armature from 0.01 to 0 (newton-physics#1782)

* Fix default kp/kv for position and velocity actuators (newton-physics#1786)

* Lock body inertia after explicit MJCF <inertial> element (newton-physics#1784)

* Fix for MJCF actuator custom attributes (newton-physics#1783)

* Bump version to 0.2.3

Prepare the package metadata for the v0.2.3 release tag.

* Fix ViewerRerun rendering of instances from hidden meshes (newton-physics#1788)

* API cleanup (newton-physics#1789)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* BODY actuator target name bypasses body name de-duplication in SolverMuJoCo (newton-physics#1729)

* Use default density for visual geoms in MJCF import (newton-physics#1781)

* Fix GL viewer crash on Wayland (newton-physics#1793)

* Make USD xform parameter control absolute articulation placement (newton-physics#1771)

* Fix CUDA context corruption in SDF implementation (newton-physics#1792)

* Bump mujoco-warp dependency to 3.5.0.2 (newton-physics#1779)

* Fix MuJoCo margin/gap conversion (newton-physics#1785)

* Bump version to 1.1.0.dev0 (newton-physics#1798)

* Missing unittest.main added back to test_import_mjcf.py.  Helps with F5 debugging in VS Code. (newton-physics#1796)

* Improve H1 example (newton-physics#1801)

Signed-off-by: Eric Heiden <eric-heiden@outlook.com>

* Fix ViewerViser.set_camera() (newton-physics#1805)

* Rename examples to follow prefix-first naming convention (newton-physics#1802)

* Improve MuJoCo actuator domain randomization (newton-physics#1773)

* Restore in_cup test in hydro example (newton-physics#1775)

* Fix `newton.geometry` imports and change of Mesh maxhullverts global constant

* Adapt to having both margin and gap arrays for each geom/shape

* Fix for newton.geometry API changes in primitive/narrowphase.py

* Fix removal of `BroadPhaseMode` IntEnum and revert to newton-sytle string literals

* WIP: Adapt geometry/unified.py to fix breaking changes to `newton.geometry` API

* First pass of API adjustments

* Patch more gaps (with respect to margin and gap renaming)

* GeoType.SDF was removed - reflect that in Kamino

* Introduce CoM position offsets w.r.t body frame and operations to convert between body CoM state and generic local body-fixed reference frames.

* Add caching of per-entity labels/names/keys in the Model subcontainers

* Remove SDF shape wrapper since it's now internal to mesh handling in CD pipelines

* Fix USD test assets

* Add Newton <--> Kamino joint type conversion operations and per-space default limit constants

* Add some cleanup to geometry and unified CD + UTs

* Add Newton <--> Kamino shape type conversion operations

* Apply new default joint coord limit constants to limits.py

* Adapt foubrar model builder and USD asset to produce the same result in sim example

* Purge "physical" goems and collapse all into a single group, and purge geometry "layers"

* Disable allocation per-joint wrenches by default and make them optional

* Make `Model` a dataclass

* Separate ModelData* containers into own `core/data.py` module

* Fix imports of ModelData

* Rename `Model` as `ModelKamino`

* Rename `ModelData` as `DataKamino`

* Rename `State` as `StateKamino`

* Rename `Control` as `ControlKamino`

* Rename `Limits` as `LimitsKamino`

* Rename `Contacts` as `ContactsKamino`

* Rename `ModelBuilder` as `ModelBuilderKamino`

* Make imports in test utilities relative

* Revise CD meta-data attributes and their computation in GeometryModel and ModelBuilderKamino

* Revise primitive CD pipeline

* Revise unified CD pipeline

* Revise CD front-end interfaces

* Fix UTs and relevant utils for interface changes to CD

* Change to `wp.DeviceLike` to account for upcoming deprecation of `Devicelike`

* Depracate legacy HDF5 data io (will be replaced in the future)

* Fix banned imports at module level

* Modify USD importer to detect articulations and order geoms and joints similarly to how the Newton `parse_usd` function does.

* Add conversion operation from `newton.Model` to `ModelKamino`

* Add data, state and control container conversions

* Add SolverKamino wrapper that fullfils newton integration interface

* Add newton integration examples

* Add SolverKamino to newton solver module imports

* WIP: fix problem with lambda_j being allocated for only kinematic constraints and failing on array copying

* Fix banned git import in benchmark

* Rename *Settings to *Config (#213)

* Rename SolverKaminoSettings -> SolverKaminoConfig

* Rename DualProblemSettings -> DualProblemConfig

* Rename CollisionDetectorSettings -> CollisionDetectorConfig

* Rename PADMMSettings -> PADMMConfig

* Rename ForwardKinematicsSolverSettings -> ForwardKinematicsSolverConfig

* Rename SimulatorSettings -> SimulatorConfig

* Add check for model compatibility in SolverKamino (#209)

* Fix device assignment in sparse CG test on CPU (#216)

* Replace Enum-type config attributes with Literal (#215)

* Replace warmstart mode config param with literal

* Replace contact warmstart mode config param with literal

* Replace rotation correction config param with literal

* Replace penalty update config param with literal

* Replace FK preconditioner option config param with literal

* Add post-init checks for dual/PADMM configs

* Rename FKPreconditionerOptions to FKPreconditionerType

* Remove WorldDescriptor from ModelKamino (#219)

* Add geom index offset array to model info

* Replace access to world description in model

* Remove world descriptor from model

* Fix computation of kinematics residual with sparse Jacobian (#220)

* Migrates `ModelKaminoSize` to it's own module to avoid circular dependency between core/model.py and core/state.py and rename it as `SizeKamino`.

* WIP: Fix SolverKamino wrapper

* Fix circular dependency in conversions.py

* Fix some broken unit tests and WIP to fix fourbar contact conversions and rendering

* Make some conversions @staticmethods instead, because they dont need common class attributes

* Fix declaration of custom state attributes and their conversion to/from newton and kamino

* WIP: Debug model conversion and newton sim examples

* Rename and cleanup start index array of per-world geoms

* Model conversion and newton sim examples now work.

* Make gravity conversion operation re-usable

* Migrates boxes_fourbar builder using newton.ModelBuilder to it's own module to prepare for migration.

* Use gravity conversion utility func in SolverKamino

* Add reusable joint-parameterization conversion utility

* Remove world-descriptor from model converter

* Rename helper converter that handles entity-local transforms

* Add some cleanup to DR Legs, ANYmal D and basic four-bar examples

* Fix module-level imports of additional kamino-specific development dependencies

* Fix module-level imports of additional kamino-specific development dependencies

* Fix erroneous merge conflict.

---------

Signed-off-by: Alain Denzler <adenzler@nvidia.com>
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Signed-off-by: JC <jumyungc@nvidia.com>
Signed-off-by: Milad Rakhsha <mrakhsha@nvidia.com>
Signed-off-by: Milad-Rakhsha-NV <167464435+Milad-Rakhsha-NV@users.noreply.github.com>
Signed-off-by: Eric Heiden <eric-heiden@outlook.com>
Signed-off-by: Eric Heiden <eheiden@nvidia.com>
Signed-off-by: Miles Macklin <mmacklin@nvidia.com>
Signed-off-by: adenzler-nvidia <adenzler@nvidia.com>
Signed-off-by: jvonmuralt <jvonmuralt@nvidia.com>
Co-authored-by: Daniela Hase <116915287+daniela-hase@users.noreply.github.com>
Co-authored-by: adenzler-nvidia <adenzler@nvidia.com>
Co-authored-by: Viktor Reutskyy <33062116+vreutskyy@users.noreply.github.com>
Co-authored-by: Eric Shi <97630937+shi-eric@users.noreply.github.com>
Co-authored-by: Anka Chen <AnkaChan@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: JC-nvidia <116605903+jumyungc@users.noreply.github.com>
Co-authored-by: Kenny Vilella <kvilella@nvidia.com>
Co-authored-by: nvtw <110816143+nvtw@users.noreply.github.com>
Co-authored-by: Milad-Rakhsha-NV <167464435+Milad-Rakhsha-NV@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Lennart Röstel <65088822+lenroe@users.noreply.github.com>
Co-authored-by: Eric Heiden <eheiden@nvidia.com>
Co-authored-by: jvonmuralt <jvonmuralt@nvidia.com>
Co-authored-by: camevor <camevor@nvidia.com>
Co-authored-by: mzamoramora-nvidia <mzamoramora@nvidia.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Roncone <alecive87@gmail.com>
Co-authored-by: gdaviet <57617656+gdaviet@users.noreply.github.com>
Co-authored-by: Miles Macklin <mmacklin@nvidia.com>
Co-authored-by: Gordon Yeoman <gyeomannvidia@users.noreply.github.com>
Co-authored-by: Lukasz Wawrzyniak <lwawrzyniak@nvidia.com>
Co-authored-by: Eric Heiden <eric-heiden@outlook.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Co-authored-by: Lorenzo Terenzi <lorenzoterenzi96@gmail.com>
Co-authored-by: smollerNV <164020096+smollerNV@users.noreply.github.com>
Co-authored-by: twidmer <twidmer@nvidia.com>
Co-authored-by: Christian Schumacher <christian.schumacher@disney.com>
Co-authored-by: Guirec-Maloisel <25688871+Guirec-Maloisel@users.noreply.github.com>
mmacklin pushed a commit to mmacklin/newton that referenced this pull request Apr 7, 2026
Signed-off-by: Viktor Reutskyy <vreutskyy@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add eval_mass_matrix() function Add eval_jacobian() function Enable Use of Newton IK in Lab

2 participants