Conversation
…ed-pr-7609-7637-7640
…7640' into maximiliank/combined-pr-7609-7637-7640
|
run-ci |
|
run-ci |
|
There was a problem hiding this comment.
Isaac Lab Review Bot
Adds four Newton MPM tuning demos, integrated solver and coupling guidance, smoke registrations, and additive proxy-feedback relaxation settings. Two documentation/default issues should be corrected: the surface demo defaults to an optional RTX path, and the public relaxation docstring is ambiguous about staggered-mode behavior.
- Design and architecture: The self-contained tuning demos and dedicated solver-tuning guide fit the existing organization. However,
surface_reconstruction.pydefaults tonewton_rtx, making its no-argument invocation depend on the optionalovrtxextra even though Newton GL supports the demo without that extra; default tonewton_gland retain RTX as an explicit choice. - API: The four
CouplerProxyMappingCfgfields are additive and covered by configuration plumbing tests and release documentation. Theproxy_relaxationdocstring incorrectly narrows its description to lagged feedback while the new G1 demo applies it with staggered mode and the guide describes it across both modes. The public API documentation should state explicitly which transfer modes honor relaxation, including whether zero suppresses staggered feedback. - Implementation: The demo wiring, documentation integration, readiness markers, deterministic particle generation, and proxy configuration paths were traced. The actionable implementation concern is the surface reconstruction demo's optional-dependency default; otherwise the identified issue is API-contract clarity rather than a demonstrated solver implementation failure.
Minor fixes needed. Posted 2 actionable findings inline.
Automated review; human maintainers own approval decisions.
| parser.add_argument("--max_steps", type=int, default=-1, help="Stop after this many steps; negative runs forever.") | ||
| parser.add_argument("--disable_cuda_graph", action="store_true", help="Disable CUDA graph capture for debugging.") | ||
| add_launcher_args(parser) | ||
| parser.set_defaults(visualizer=["newton_rtx"]) |
There was a problem hiding this comment.
🔵 Suggestion · Implementation — Default visualizer requires optional ovrtx extra
This demo defaults to newton_rtx, whose own docstring shows it must be launched with --extra ovrtx, so a bare uv run python scripts/demos/mpm/tuning/surface_reconstruction.py depends on an optional extra. Sibling demos such as teapot_fill.py default to newton_gl and require the extra only for explicit RTX runs; defaulting to newton_gl would keep the no-argument invocation runnable in the base environment.
| mass_scale: float = 1.0 | ||
| """Scale applied to proxy body mass/inertia and particle mass in the destination view.""" | ||
|
|
||
| proxy_relaxation: float = 1.0 |
There was a problem hiding this comment.
🔵 Suggestion · Api — Clarify relaxation scope across proxy modes
The docstring scopes this factor to "lagged proxy-feedback forces", but g1_coupling.py defaults to --proxy_mode staggered and relies on proxy_relaxation=0.0 to realize one-way coupling, and coupled_solvers.rst states both transfer modes can return forces. Readers cannot tell whether zero relaxation suppresses feedback under staggered. State explicitly which modes the factor applies to.
|
run-ci |
Description
Add a focused MPM solver guide and four controlled, packaged Newton MPM examples: material comparisons, nearly rigid MPM versus MJWarp, G1 particle coupling, and surface reconstruction. The guide separates constitutive tuning, numerical resolution, coupling, particle initialization, and visualization, with the reviewed recordings beside the relevant guidance.
Depends on #7944. This branch incorporates the current head of that PR and must land after it. The tuning programs live under
examples/mpm/tuning/, are staged in the released wheel, and have stableisaaclab examplenames. The existing granular and two-way examples and the snowball and teapot demos use #7944's relocated paths and CLI commands. Refresh this branch on the finaldevelopafter #7944 merges, especially if it is squash-merged, so this PR's final diff contains only its own changes.Organization and scope
isaaclab example mpm-material-tuning,mpm-rigid-equivalence,mpm-g1-coupling, andmpm-surface-reconstruction. The G1 example uses the existingrsl-rlextra for its published policy.docs/source/concepts/solver-tuning/tune_mpm.rstalongside the other solver guides, with core MPM scenes, G1 coupling, and surface reconstruction documented in their relevant concept pages.CouplerProxyMappingCfgand explain true one-way coupling.Published media
The documentation embeds 18 reviewed MPM recordings from
https://download.isaacsim.omniverse.nvidia.com/isaaclab/videos/. Encoded media remain outside Git.Validation
isaaclab/_examples/mpm/tuning/.isaaclab example mpm-material-tuningfor two headless Newton steps through the packaged CLI;isaaclab example listand example help also worked.developflags already-consumed fragments in the stacked history; the PR's GitHub changelog and pre-commit checks pass.Type of change
Release backport
developScreenshots
The documentation embeds the published MP4 comparisons directly from the Isaac Lab media host.
Checklist
CONTRIBUTORS.md