Skip to content

feat(isaacsim): forward the PhysX GPU contact buffer knobs on EnvCfg - #1636

Merged
TATP-233 merged 1 commit into
Motphys:mainfrom
lemon-star608:feat/isaacsim-gpu-buffer-knobs
Sep 23, 2026
Merged

TATP-233 merged 1 commit into
Motphys:mainfrom
lemon-star608:feat/isaacsim-gpu-buffer-knobs

Conversation

@lemon-star608

Copy link
Copy Markdown
Collaborator

Pairs with unilabsim/unisim#294 (closes unilabsim/unisim#292).

What

  • Adds isaacsim_gpu_max_rigid_contact_count / isaacsim_gpu_max_rigid_patch_count (Optional[int], default None) to EnvCfg with the same fail-fast validation as the other solver knobs (positive integers, bool rejected).
  • Forwards both through env_backend_kwargs to the UniSim factory — conditionally, only when set: unisim-core releases without feat(isaacsim): PhysxSolverConfig 缺 GPU 接触缓存容量旋钮,大规模 mapped 场景接触期崩盘 unilabsim/unisim#292 do not pop these keys, so forwarding None would leak them into other backends' constructors; setting them against an older unisim-core fails closed at the factory with an unexpected-kwarg TypeError.

Why

The SimToolReal migration line (isaacsim backend, N=12288) collapsed at ep~150 because the new channel ran on IsaacLab's default GPU contact/patch buffers (2^23 / 5·2^15) while the original repository pins 2^24/2^23 ("Lab defaults overflow: Patch buffer overflow detected kills training"). The unisim-side knobs land in unilabsim/unisim#294; this PR is the EnvCfg surface.

Tests

  • uv run pytest tests/base -q: 500 passed, 35 skipped (includes the extended test_isaacsim_backend.py validation/forwarding cases).
  • make check green (mypy clean, pyright 0 errors, ruff clean).
  • End-to-end 12288-env training validation on the SimToolReal line with both repos' branches: past ep344 with done_fall ~0.35-0.40 (pre-fix baseline: 0.99 collapse at ep150) and episode_lengths sustained ~440-505; full curve table in feat(isaacsim): expose PhysX GPU rigid contact/patch buffer knobs unilabsim/unisim#294.

Add isaacsim_gpu_max_rigid_contact_count / isaacsim_gpu_max_rigid_patch_count
to EnvCfg with the same fail-fast validation as the other solver knobs, and
forward them to UniSim's factory (unilabsim/unisim#292). The keys are omitted
when unset so unisim-core releases without the new knobs never see unknown
kwargs; setting them against an older unisim-core fails closed at the
factory.
@TATP-233
TATP-233 merged commit 838cc03 into Motphys:main Sep 23, 2026
8 checks passed
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.

feat(isaacsim): PhysxSolverConfig 缺 GPU 接触缓存容量旋钮,大规模 mapped 场景接触期崩盘

2 participants