Skip to content

Commit a628ceb

Browse files
committed
Merge remote-tracking branch 'upstream/main' into jumyungc/refine-rod-api
# Conflicts: # newton/_src/utils/import_usd_deformable_cable.py
2 parents d988e88 + 6ba9fd1 commit a628ceb

155 files changed

Lines changed: 16227 additions & 3039 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CONTRIBUTING.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ Newton is a project of the Linux Foundation and aims to be governed in a transpa
66

77
Please refer to [the contribution guidelines](https://github.com/newton-physics/newton-governance/blob/main/CONTRIBUTING.md) in the `newton-governance` repository for general information, project membership, and legal requirements for making contributions to Newton.
88

9+
## Corporate Contributions and EasyCLA
10+
11+
If you contribute as part of your employment, your organization must be set up in LFX EasyCLA for Newton and complete a Corporate Contributor License Agreement (CCLA). Opening a pull request against an EasyCLA-enabled Newton repository triggers the EasyCLA check. If authorization is required, the check displays the prompt and link for starting or completing the appropriate CLA workflow.
12+
13+
If your organization is not listed, the EasyCLA workflow lets you add it and identify the representative authorized to coordinate the CCLA signing process. See [Contributor License Agreements](https://github.com/newton-physics/newton-governance/blob/main/CONTRIBUTING.md#contributor-license-agreements) for the full process.
14+
915
# Contributing to Newton
1016

1117
Newton welcomes contributions from the community. In order to avoid any surprises and to increase the chance of contributions being merged, we encourage contributors to communicate their plans proactively by opening a GitHub Issue or starting a Discussion in the corresponding repository. Keep each pull request focused on a single feature or bug fix, and write clear, concise commit messages.

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,11 +275,19 @@ If you run the examples from a source checkout with uv, use
275275
<img width="320" src="https://raw.githubusercontent.com/newton-physics/newton/main/docs/images/examples/example_controller_joint_impedance_heterogeneous.jpg" alt="Joint Impedance Heterogeneous">
276276
</a>
277277
</td>
278+
<td align="center" width="33%">
279+
<a href="https://github.com/newton-physics/newton/blob/main/newton/examples/controllers/example_controller_operational_space_hybrid_force_motion.py">
280+
<img width="320" src="https://raw.githubusercontent.com/newton-physics/newton/main/docs/images/examples/example_controller_operational_space_hybrid_force_motion.jpg" alt="Operational Space Hybrid Force/Motion">
281+
</a>
282+
</td>
278283
</tr>
279284
<tr>
280285
<td align="center" width="33%">
281286
<code>python -m newton.examples controller_joint_impedance_heterogeneous</code>
282287
</td>
288+
<td align="center" width="33%">
289+
<code>python -m newton.examples controller_operational_space_hybrid_force_motion</code>
290+
</td>
283291
</tr>
284292
<tr>
285293
<td colspan="3"><h3>Cable Examples</h3></td>

asv.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"default_benchmark_timeout": 600,
1616
"build_command": ["python -m build --wheel -o {build_cache_dir} {build_dir}"],
1717
"install_command": [
18-
"in-dir={env_dir} python -m pip install warp-lang==1.17.0.dev20260807 mujoco==3.11.0 mujoco-warp==3.11.0 --extra-index-url=https://pypi.nvidia.com/",
18+
"in-dir={env_dir} python -m pip install warp-lang==1.17.0.dev20260807 mujoco==3.12.0 mujoco-warp==3.12.0 --extra-index-url=https://pypi.nvidia.com/",
1919
"in-dir={env_dir} python -m pip install {wheel_file}[examples] --extra-index-url=https://pypi.nvidia.com/",
2020
"python -m pip install torch==2.10.0+cu130 --index-url https://download.pytorch.org/whl/cu130",
2121
"python -m pip install 'asv_runner<0.3.0'"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Deprecate the `newton.actuators.Controller*` class family in favor of `DriveBase`, `DrivePD`, `DrivePID`, `DriveNeuralMLP`, and `DriveNeuralLSTM`, and deprecate the `Clamping` base class in favor of `ClampingBase`. Migrate actuator construction and inspection from `controller`, `controller_class`, `controller_state`, and `controller_kwargs` to `drive`, `drive_class`, `drive_state`, and `drive_kwargs`, and use `ComponentKind.DRIVE` instead of `ComponentKind.CONTROLLER`. The former names remain functional with `DeprecationWarning` during the Newton 1.6 deprecation window.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Scale contact normals, mode disks, and force arrows relative to the smaller contacting shape, preventing oversized glyphs in global-only and mixed-scale scenes.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Add `ControllerOperationalSpace`, a model-based operational-space (task-space)
2+
controller supporting simultaneous motion and wrench (hybrid force/motion)
3+
control per task axis, with optional inertia decoupling and null-space
4+
posture control for redundant robots. Add
5+
`ControllerOperationalSpaceModelFree`, taking the tool pose/twist, Jacobian,
6+
mass matrix, and gravity term as inputs instead of computing them from a
7+
`Model`. Add `controller_operational_space_hybrid_force_motion`, an example
8+
demonstrating `ControllerOperationalSpace` on two heterogeneous robots (a
9+
redundant Franka Panda and a non-redundant UR10) pressing into tables with
10+
interactively steered position and force targets.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Upgrade `mujoco` and `mujoco-warp` to 3.12.0. Reinstall the `sim` extra when upgrading from MuJoCo 3.11.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Detect immovable bodies in the Newton-to-MuJoCo contact converter from the degrees of freedom of a body's weld group instead of testing `body_weldid == 0`. MuJoCo 3.12 gives mocap bodies their own weld id, so contacts between two immovable bodies were no longer filtered when either side was an articulated fixed root, which Newton maps to a MuJoCo mocap body.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Correct the `USER` ordinals in `SolverMuJoCo`'s actuator enums, which collided with MuJoCo's `DCMOTOR`. Authoring `gaintype="user"`, `biastype="user"`, or `dyntype="user"` in MJCF or USD produced a DC motor actuator: `gaintype` and `dyntype` failed model compilation, while `biastype` compiled with DC motor bias dynamics. The enums now list every MuJoCo actuator type, including the ones Newton does not support, so Newton's ordinals track MuJoCo's. An unrecognized `dyntype`, `gaintype`, or `biastype` name now warns instead of silently becoming whichever type occupies ordinal 0; `trntype` warns on the MJCF path.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Expose ``njmax_nnz`` in ``SolverMuJoCo`` to control sparse Jacobian nonzero capacity per world; leave it as ``None`` to use the automatic model-derived estimate.

0 commit comments

Comments
 (0)