release: consolidate SuperDex integration and bump UniLab - #1545
Merged
Conversation
feat(superdex): integrate FR3 and Go2 research task owners
…lease/superdex-1.1.1
… into release/superdex-1.1.1
This was referenced Sep 9, 2026
Collaborator
Author
Scale the superdex owner to a real training recipe (1024 envs, 400 iterations), pin the twist command to a fixed 0.5 m/s forward target, and rebalance tracking/action-rate weights for SuperDex contact physics.
Wire env.superdex_execution_mode ('batch' default, 'serial' for native
SuperDex debugger sessions) from EnvCfg through env_backend_kwargs into
unisim's create_backend. The default stays absent from the adapter kwargs
so unisim-core releases that predate the option keep working; 'serial'
requires the adapter side of unilabsim/unisim#55.
Also drop the stale '1 stays serial' note on superdex_num_workers: a
single executor worker is still batched execution, not the serial mode.
…ingle-env execution eval --sim superdex --render-mode interactive stays on the train-script play path but renders through the native Polyscope viewer, which shares the scene's thread with stepping. The owner layer injects superdex_execution_mode=serial for interactive play (mirroring the isaacsim render-intent precedent), and the CLI forces training.play_env_num=1 unless the user set it explicitly, matching the unisim side that fails closed for batch mode or multi-env interactive playback (unilabsim/unisim#55).
# Conflicts: # docs/sphinx/source/zh_CN/5-reference/5-support_matrix.md # pyproject.toml # tests/tasks/test_migration_matrix.py
# Conflicts: # docs/sphinx/source/adr/ADR-0000-index.md # docs/sphinx/source/adr/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Consolidates the SuperDex integration (supersedes #1542, #1544) into one release PR. Since the last update, three things landed on top:
superdex-physics-uni/superdex-robotics-uniwheels, cp312 + cp313) instead of a local source build —unisimmain switched its optional dependency.unisimgained a SuperDex serial execution mode (bug(superdex): SceneBatchExecutor violates DebugDraw scene-thread affinity unilabsim/unisim#55) so the native SuperDex viewer/debugger can attach to a single scene; UniLab wires it throughEnvCfg.superdex_execution_mode.training.play_render_mode=interactive) now uses the native SuperDex viewer for the superdex backend, automatically forcing serial execution and a single env (training.play_env_num=1), matching the existing per-backend interactive precedents (isaacsim/mujoco).What changed (this branch vs main, latest commits)
7eb9e338d350ecb2EnvCfg.superdex_execution_mode(batchdefault,serialopt-in); only forwarded to unisim when non-default so older pinned unisim keeps working225cde5bserialmode +play_env_num=1; CLI gate wording updated to Python 3.12/3.13; docs (en/zh_CN)Required companion changes (already on
unisimmain, no version bump):11bc685superdex-physics-uni/superdex-robotics-uniwheels; fix ±inf force-range MJCF export328ac9fexecution_mode="batch"/"serial"; serial runs scenes on the env thread; batch refuses to run while the native debug server has a connectiond9a03dcsuperdex.physics.viewer.Viewer(Polyscope), fail-closed unless serial +num_envs == 1Validation
make checkgreen on both repos (unisim: 252 passed; UniLab: ruff/mypy/pytest clean for the touched suites —test_cli.py,test_training_helpers.pysuperdex cases,test_superdex_backend_options.py).logs/rsl_rl_ppo/Go2JoystickFlat/2026-09-09_15-39-02_superdex): composedplay_only + play_render_mode=interactive + play_env_num=1config, asserted the owner injectsserial, ranplay_rsl_rlthrough checkpoint load, policy rollout, native viewer startup ("Starting interactive visualization..."), and clean return.Known limitations (pre-existing, not introduced here)
main'srun_playbackstill passesextra_data_getter; unisim renamed itdebug_overlay_getterin feat: adapt TD3 fixes from dev/go2joystickflatterrain-td3 #53. The eval play path needs that drift resolved (or this branch rebased onto a unisim-consuming main) before the stockevalCLI works end-to-end. UniLabuv.lockstill pins an older unisim rev.test_on_frame_paints_video_framesfailure rides in from upstream main.