Skip to content

Commit 2daf405

Browse files
committed
release: v1.0.0-beta — cross-platform parity is testable
Bump pyproject version 0.1.17 → 1.0.0b0 (PEP 440 form of v1.0.0-beta; follows the v1.0.0-alpha lineage) and add CHANGELOG.md + RELEASE_NOTES_NEXT.md covering the downstream content + parity work landed since v1.0.0-alpha. Highlights (full list in CHANGELOG.md): - 60 RobotCfg validated × 4 checks; 9 real bugs xfail-documented - mjlab 1:1 obs/reward: height_scan, rough terrain, IMU velocimeter (ω × r), tracking-g1 motion obs, lift_cube_yam ee_to_cube - IL+RL fusion bridge end-to-end pipeline (roboverse_learn/fusion/) - RoboTwin v2 passthrough — 50 native gym envs (1:1 by construction) - get_started/0 handles missing cameras gracefully - AGENTS.md/CLAUDE.md repo-level dev rules Pairs with MetaSim v0.2.0. Backward-compatible.
1 parent ad7d644 commit 2daf405

3 files changed

Lines changed: 171 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# Changelog
2+
3+
All notable changes to RoboVerse are documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
RoboVerse is the downstream content-pack + research layer on top of the
9+
[MetaSim](https://github.com/RoboVerseOrg/MetaSim) core. See
10+
`MetaSim/CHANGELOG.md` for the core-framework changes that ship with this
11+
release.
12+
13+
## [Unreleased]
14+
15+
Nothing yet — open a PR to add entries here.
16+
17+
## [1.0.0-beta] - 2026-05-31
18+
19+
The headline of this release is **cross-platform parity is now testable and
20+
load-bearing**. Every shipped `RobotCfg`, every contracted handler method,
21+
and every benchmark `reset(seed=N)` is exercised across the supported
22+
backends and either passes or is xfail-documented with a specific reason.
23+
24+
The release is forward- and backward-compatible.
25+
26+
### Added
27+
28+
- **`tests/test_roboverse_robot_cfg_validation.py`** — validates every
29+
`RobotCfg` shipped in `roboverse_pack`: instantiation, non-empty `name`,
30+
default joint positions inside `joint_limits` ranges. 60 cfgs × 4 checks,
31+
9 real downstream bugs surfaced and xfail-documented:
32+
- `AlohaAgilex`, `G1Tracking` — orphan joints in `default_joint_positions`
33+
- `YamCfg`, `ArxL5Cfg`, `Vega`, `SoArm100`, `Koch`, `Go2`, `AllegroHand`
34+
defaults outside `joint_limits` ranges
35+
- **IL + RL fusion bridge** (`roboverse_learn/fusion/`) — RL-trained policy
36+
→ demo collection (rollout → `save_demo``data2zarr` unchanged) +
37+
IL-to-RL BC warmstart. End-to-end pipeline orchestrator
38+
(`rl-train → collect → to-zarr → il-train`). 6/6 tests; validated against
39+
a real cartpole checkpoint and real mujoco/EGL launch. Fails fast on
40+
scene-MJCF tasks where robot is not a `RobotCfg`.
41+
- **mjlab 1:1 obs/reward parity** — extensive byte-level alignment work:
42+
- `TerrainGridScanSensor` + `height_scan` obs wired into
43+
`velocity_rough_go1` / `velocity_rough_g1` (1:1 building block).
44+
- Continuous rough terrain wired into both velocity-rough quadruped
45+
tasks.
46+
- `tracking-g1` motion-tracking obs ports `motion_anchor` + `robot_body`
47+
1:1.
48+
- `lift_cube_yam` regains the missing `ee_to_cube` + `cube_to_goal` obs.
49+
- `velocity_rough` height_scan is now correctly scaled by
50+
`1 / max_distance` (matches mjlab); clip-then-scale order on the obs
51+
term matches mjlab's `noise → clip → scale`.
52+
- go1 / g1 `base_lin_vel` obs reads the IMU velocimeter at the offset
53+
site (adds the `ω × r` cross-term — fixes a real obs gap that diverged
54+
under turning).
55+
- cross-sim cartpole eval pipeline repaired (actor build, device,
56+
episode metric).
57+
- **RoboTwin v2 passthrough** — 50 RoboTwin tasks registered as native gym
58+
envs (`RoboVerse/RoboTwin-<task>-v0`), 1:1 by construction, mirrors the
59+
ManiSkill passthrough pattern.
60+
- **`AGENTS.md` / `CLAUDE.md`** — repo-level dev rules for AI agents
61+
(double quote, line-length 120, py38 target, lazy imports OK,
62+
parity-is-load-bearing, multi-repo discipline, commit-as-user).
63+
64+
### Fixed
65+
66+
- **`get_started/0_static_scene.py`** — gracefully skips the cameras-empty
67+
case instead of crashing on first-time setup.
68+
- **mjlab tooling paths** — lint-clean across mjlab/maniskill tasks;
69+
tooling paths made portable (no hardcoded `/home/ghr/...`).
70+
- **mjlab MJCF asset resolution** — assets pulled from
71+
`RoboVerseOrg/roboverse_data` on Hugging Face instead of hardcoded local
72+
paths (fresh checkout no longer breaks). Dual-mode locator
73+
`_locator.mjlab_asset` = clone-or-HF.
74+
- **mjlab go1 Newton 1:1** — go1 RL now stands on Newton (PD actuators +
75+
init pose + action order alignment).
76+
77+
### Documentation
78+
79+
- `ROADMAP.md` — P0/P1 cross-platform infra items marked fixed; P2/P3
80+
items refreshed.
81+
- mjlab / maniskill / robotwin integration pages wired into the docs
82+
toctree.
83+
84+
### Tests
85+
86+
- 60 RoboVerse `RobotCfg` configs validated × 4 checks = 240 statically
87+
exercised; 9 real bugs xfail-documented.
88+
- Cross-4-backend sweep against MetaSim core in the `roboverse` conda env:
89+
mujoco + sapien3 + newton + passthroughs — 323 passed, 0 regressions.
90+
91+
### Migration
92+
93+
No code changes are required for existing users.
94+
95+
If you maintain an out-of-tree `RobotCfg`, the new validation test will
96+
exercise it as soon as it is imported through `roboverse_pack` — fix any
97+
flagged `default_joint_positions` mismatches before they trip in CI.
98+
99+
---
100+
101+
[Unreleased]: https://github.com/RoboVerseOrg/RoboVerse/compare/v1.0.0-beta...HEAD
102+
[1.0.0-beta]: https://github.com/RoboVerseOrg/RoboVerse/compare/v1.0.0-alpha...v1.0.0-beta

RELEASE_NOTES_NEXT.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# RoboVerse — next release (paste-ready notes)
2+
3+
**Suggested tag**: `v1.0.0-beta` (follows the `v1.0.0-alpha` lineage; the
4+
"beta" gate is the cross-platform-parity work landing in this release).
5+
6+
**Usage**: rename `[Unreleased]``[1.0.0-beta] - 2026-05-31` in
7+
`CHANGELOG.md`, then:
8+
9+
```bash
10+
git tag -a v1.0.0-beta -m "RoboVerse v1.0.0-beta — cross-platform parity is testable"
11+
git push origin v1.0.0-beta
12+
gh release create v1.0.0-beta --prerelease \
13+
--title "RoboVerse v1.0.0-beta — cross-platform parity is testable" \
14+
--notes-file RELEASE_NOTES_NEXT.md
15+
```
16+
17+
This release should be cut alongside **MetaSim v0.2.0** (see
18+
`MetaSim/RELEASE_NOTES_NEXT.md`).
19+
20+
---
21+
22+
## Cross-platform parity is now load-bearing
23+
24+
Every shipped `RobotCfg`, every contracted handler method, and every
25+
benchmark `reset(seed=N)` is exercised across the supported backends and
26+
either passes or is xfail-documented with a specific reason. The release is
27+
forward- and backward-compatible.
28+
29+
### Highlights
30+
31+
- **60 `RobotCfg`s validated**. `tests/test_roboverse_robot_cfg_validation.py`
32+
exercises every shipped robot for instantiation, non-empty name, and
33+
defaults-inside-limits. 9 real downstream bugs surfaced:
34+
- `AlohaAgilex`, `G1Tracking` — orphan joints in `default_joint_positions`
35+
- `YamCfg`, `ArxL5Cfg`, `Vega`, `SoArm100`, `Koch`, `Go2`, `AllegroHand`
36+
defaults outside `joint_limits` ranges
37+
- **mjlab 1:1 obs/reward parity** got measurably tighter. `velocity_rough_go1`
38+
/ `velocity_rough_g1` now ship `height_scan` obs (scale `1/max_distance`,
39+
clip-then-scale order matches mjlab), continuous rough terrain, and
40+
`tracking-g1` motion-tracking obs. go1/g1 `base_lin_vel` reads the IMU
41+
velocimeter at the offset site (adds `ω × r` cross-term — closes a real
42+
obs gap that diverged under turning).
43+
- **IL + RL fusion bridge** (`roboverse_learn/fusion/`) wires RL training →
44+
demo collection → IL warmstart end-to-end. 6/6 tests, validated against a
45+
real cartpole checkpoint and real mujoco/EGL launch.
46+
- **RoboTwin v2 passthrough** — 50 native gym envs registered, 1:1 by
47+
construction (same pattern as the existing ManiSkill passthrough).
48+
- **`get_started/0_static_scene.py`** no longer crashes on first-time setup
49+
when no cameras are configured.
50+
- **AGENTS.md / CLAUDE.md** lands: repo-level dev rules for AI agents
51+
(parity is load-bearing, multi-repo discipline, commit-as-user).
52+
53+
### Migration
54+
55+
No required changes. If you maintain an out-of-tree `RobotCfg`, the new
56+
validation test will exercise it as soon as it is imported through
57+
`roboverse_pack` — fix any flagged `default_joint_positions` mismatches
58+
before they trip in CI.
59+
60+
### Verification
61+
62+
**323 tests pass** in the cross-4-backend sweep
63+
(mujoco + sapien3 + newton + passthroughs) in the `roboverse` conda env,
64+
zero regressions.
65+
66+
### Full changelog
67+
68+
See [`CHANGELOG.md`](./CHANGELOG.md) for the complete commit-by-commit list.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "roboverse-py"
7-
version = "0.1.17"
7+
version = "1.0.0b0"
88
description = "RoboVerse content, learning, and examples built on MetaSim"
99
requires-python = ">=3.8"
1010
license = { file = "LICENSE" }

0 commit comments

Comments
 (0)