feat: make viser a required dependency and support viser playback on all playback-capable backends - #1638
Merged
Conversation
…all playback-capable backends - move viser/trimesh into core dependencies (drop the viser extra) - extract the viser viewer loop into visualization/viser_playback.py so train post-playback (training.play_render_mode=viser) and eval share it - cli: route eval --render-mode viser to play_viser.py for any backend with physics-state playback (mujoco/mjwarp/newton/drake/superdex); fail closed with a targeted message for motrix/genesis/isaacgym/isaacsim, which need upstream unisim capability work (unilabsim/unisim#302) - viser scene: filter geom groups to MuJoCo's default visible set (0-2) so group-3 collision markers stay hidden; visible_geom_groups overrides it - update docs (en/zh_CN) and tests
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.
Summary
viser>=1.0.26、trimesh>=3.21.7进入核心 dependencies,viserextra 移除),删除所有VISER_AVAILABLE守卫与安装提示预检。src/unilab/visualization/viser_playback.py,eval(play_viser.py)与 train(三个训练脚本支持training.play_render_mode=viser)共用。--render-mode viser不再限定 mujoco/mjwarp,凡声明 physics-state playback 的后端(mujoco/mjwarp/newton/drake/superdex)都路由到 viser viewer;motrix/genesis/isaacgym/isaacsim 因上游 unisim 未实现该契约而 fail-closed 并给出指向原生渲染的提示。visible_geom_groups参数可覆盖。Linked Work
mainValidation
make test-allpassed on the final local head before this PR was created or updated(见下方说明)Commands actually run:
说明:
make test-all中唯一失败项tests/scripts/test_check_docs.py::test_documentation_files_match_current_repo_contracts在干净main(bec5495c)上同样失败,3 条错误均位于scripts/benchmark/outputs/,与本 PR 无关;本 PR 改动的文档未引入新的契约违规。Remote CI route:
main: current-head CI 全过 — https://github.com/Motphys/UniLab/actions/runs/35874747012 (mypy / pyright / ruff-lint / ruff-format / test (ubuntu-slim) / benchmark-smoke pass) 与 https://github.com/Motphys/UniLab/actions/runs/35874747087 (Build Sphinx pass)Impact
viser模式不录制视频)Artifacts
Checklist
VISER_UNSUPPORTED_SIMS移除 motrix;uv.rocm.lock需在 ROCm 机器上经make sync-rocm重新生成)