Skip to content

[Newton] Add GPU H2 tablecloth speed-comparison example - #7185

Merged
maxkra15 merged 53 commits into
isaac-sim:developfrom
maxkra15:max/newton-tablecloth-demos
Oct 13, 2026
Merged

maxkra15 merged 53 commits into
isaac-sim:developfrom
maxkra15:max/newton-tablecloth-demos

Conversation

@maxkra15

@maxkra15 maxkra15 commented Aug 19, 2026 •

Copy link
Copy Markdown
Contributor

Description

Add an experimental Isaac Lab example: five fixed-base H2 Plus robots with native SHARPA hands perform contact-only tablecloth pulls at 4, 2, 1.5, 0.75 and 0.5 m/s. The three faster trials keep the dishes on their tables; both slow trials drop them.

uv run isaaclab example tablecloth --device cuda:0
# One trial without rendering:
uv run isaaclab example tablecloth --device cuda:0 --speeds 4.0 --viz none

InteractiveScene owns the side-by-side worlds, default ground plane, table visuals and primitive tableware colliders. Warp and Newton IK script approach, insertion, finger closure, withdrawal, lift and pull. Physics, actuators, IK, interpolation and grasp monitoring are GPU graph-captured. No cloth attachments or added fingertip pads are used.

Addressed the remaining review comments by keeping the scenario in one examples/tablecloth.py: standard articulation/cloth configs, private asset preparation and controller, and public articulation selection/native views instead of custom index resolution. The Contrib modules and dependency are removed. The seven-file feature diff has one 1,384-line Python example, down from 1,563 lines across three files. No RL task, custom recorder, new dependency, backend tests or generic solver changes remain. Shared VBD fixes landed in #8360. This branch includes upstream develop at 32fea6be38e3dafd3a157883780198e0bb3fc1a3.

The manufacturer USD is pinned to b6a8942b0803b6c137e58cef12beb4b03e4a2fa7 and retrieved through Isaac Lab's asset cache. Documentation is one compact example card, not a new page.

Screenshot and videos

Five H2 Plus / SHARPA tablecloth trials

Retained headless Kit recordings at 1080p/60 fps. Playback speed is not simulation throughput; Catmull–Clark only smooths rendering. These show the previously qualified physical configuration, retained unchanged by the refactor.

Five-speed overview:

tablecloth_h2_overview_1080p60.mp4

Wider side view of the fastest robot:

tablecloth_h2_wider_side_1080p60.mp4

Validation

Head: 37e1a5bd8f1da6dc1cf648f842348530fe975284. Pinned Newton 1.7.0.dev0 and Warp 1.17.0, NVIDIA L40.

  • Fresh complete five-world production run: 344 physics frames plus initialization, all states finite, full physics/actuator graph captured, all ten physical grips retained through the full pull. Minimum material travel 44.89 cm; worst sampled gap 1.35 mm. All three dishes remain on each of the three faster tables; all three fall from each slow table. Recorded source hashes match this head. Independent raw-trajectory checks confirm the outcomes. The run took 18.8 minutes including startup and diagnostic recording.
  • Actual five-world initialization, controller outputs for all 345 recorded observations, and all 64 interpolation ticks match the previous implementation exactly. Native control views alias the real strided target storage.
  • Captured two-world/two-frame CUDA startup completed with finite states. The temporary GPU diagnostic recorder is outside this PR; it adds no per-frame host state reads.
  • 16 existing launcher contract checks passed; no new test file. CI retains the existing bounded startup matrix entry, not a complete manipulation test.
  • Full repository hooks, changelog validation, git diff --check, and a clean warning-as-error Sphinx HTML build passed.

Limitations

Calibrated fixed-base manipulation, not humanoid balance or a general grasp planner. The 64 physics ticks per 60 Hz control frame favor contact accuracy over real-time throughput. Direct compliant-ALM drives do not enforce native hardware torque limits or armature; whole-robot self-collision avoidance is not provided. Asset/contact changes require revalidation. One deterministic full run is not a robustness guarantee under perturbations. Existing upstream asset/runtime warnings remain.

Checklist

  • Followed contribution, coding-style and test-audit guidance.
  • Addressed the scenario-locality and public-index-selection review comments.
  • Validated GPU motion; retained bounded launch coverage without additional tests.
  • Ran hooks, changelog validation and a clean docs build.
  • Added the core package fragment/minor marker and a small actual JPEG.
  • Existing entry in CONTRIBUTORS.md.

@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Aug 19, 2026
@kellyguo11 kellyguo11 moved this to In progress in Isaac Lab Sep 1, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor

do you want to land this on develop?

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 14, 2026
@maxkra15 maxkra15 changed the title Add Newton VBD tablecloth demos Add Newton VBD tablecloth comparison Sep 14, 2026
…n-tablecloth-demos

# Conflicts:
#	source/isaaclab_newton/isaaclab_newton/physics/vbd_manager.py
#	source/isaaclab_newton/test/physics/test_vbd_core.py
@maxkra15

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 28, 2026
@maxkra15 maxkra15 changed the title Add Newton VBD tablecloth comparison Add Newton VBD tablecloth examples Sep 30, 2026
@maxkra15

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 30, 2026
@maxkra15

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Oct 12, 2026
@maxkra15

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Oct 12, 2026
AntoineRichard pushed a commit that referenced this pull request Oct 12, 2026
## Summary

Extract the reusable Newton fixes from #7185, as requested in review. No
tablecloth environment, asset, example, or video recorder is included.

- Include active cloth bending constraints in VBD graph coloring.
- Expose structural `rigid_joint_linear_ke` and
`rigid_joint_angular_ke`, independently of actuator gains; defaults
retain Newton's `1e5` values.
- Expose `friction_epsilon` with the native default `1e-2`, documented
in m/s.
- Publish generalized joint state after each standalone VBD physics
tick. `update_joint_state=False` opts out. Coupled solvers and
externally integrated rigid bodies retain their existing state
ownership.
- Respect a configured nested articulation root when constructing the
Newton IK prototype view.

Publication is a device-side Warp operation included in the physics CUDA
graph, without CPU state reads.

## Validation

Merged upstream `develop` at `cfa9e35c2a756849f3fea4bde9eac947f85a8300`.
Current-head tests use pinned Newton `1.7.0.dev0`
(`5ea82eef6f7911388025a8df6ccdb172e2fed286`) and Warp `1.17.0` on an
NVIDIA L40:

- `test_vbd_core.py`: **9 passed** — bending, native defaults, explicit
stiffness/friction settings, and analytic gravity/torque equilibrium.
- `test_rigid_object.py -k vbd_root`: **3 passed** — public-state
publication, opt-out, and externally owned state.
- `test_newton_ik_solver.py`: **5 passed**.
- `test_coupler_runtime.py`: **4 passed** — includes comparison against
native coupled stepping to protect generalized-state ownership.
- `test_coupler.py`: **73 passed**.
- Each file ran in its own process with `uv run --frozen --no-sync
python -m pytest -q`. Existing upstream deprecation warnings remain.
- Local regression mutations fail without the coupled-state guard,
linear/angular gain forwarding, friction forwarding, or native default
preservation. The duplicated stiffness simulation was consolidated while
retaining independent default/configuration and physical-equilibrium
checks.
- `ISAACLAB_CHANGELOG_BASE_REF=cfa9e35c2a756849f3fea4bde9eac947f85a8300
UV_FROZEN=1 uv run --no-sync isaaclab -f`: passed.
- `uv run --frozen --no-sync make -C docs current-docs`: clean
warning-as-error build passed.

## Type of change

- Bug fix
- Non-breaking configuration additions
- Documentation update

## Checklist

- [x] Read the contribution guidelines and used the existing package
conventions.
- [x] Added focused regression coverage and ran formatting/lint checks.
- [x] Added package changelog fragments and a minor-version marker for
configuration additions.
- [x] Updated the VBD tuning guide and built the documentation.
@maxkra15

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Oct 12, 2026
@maxkra15

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Oct 12, 2026
Comment thread source/isaaclab_contrib/isaaclab_contrib/assets/tablecloth.py Outdated
Comment thread source/isaaclab_contrib/isaaclab_contrib/controllers/tablecloth.py Outdated
Comment thread source/isaaclab_contrib/isaaclab_contrib/controllers/tablecloth.py Outdated
@maxkra15

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Oct 12, 2026
@maxkra15
maxkra15 merged commit 9fb7d05 into isaac-sim:develop Oct 13, 2026
59 checks passed
@github-project-automation github-project-automation Bot moved this from In progress to Done in Isaac Lab Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants