@@ -37,7 +37,7 @@ task's MJCF and meshes from HF on demand and runs it; verified bitwise on all 13
3737| MetaSim MuJoCo migration | 6/6 dims: state-set Δ=0, ** engine Δ=0** | ` scripts/migrate_liberoplus_metasim.py ` |
3838| OSC_POSE port | ** bitwise** — per-state joint-torque Δ = 5.55e-15 N·m | ` scripts/osc/ ` |
3939| BC policy (closed-loop) | clean 100 % / light 0 % / camera 50 % / noise 75 %; passthrough==native Δ=0 | ` scripts/policy/ ` |
40- | ** Native tasks (no libero/robosuite)** | ** 130 / 130** base tasks: ported BDDL checker bitwise (0 mismatch vs ` env._check_success ` ), render bitwise (state-replay) | ` roboverse_pack/tasks/libero_native/ ` |
40+ | ** Native tasks (no libero/robosuite)** | ** 130 / 130** base tasks: ported BDDL checker bitwise (0 mismatch vs ` env._check_success ` ), render bitwise (state-replay); ** discoverable via ` get_task_class("libero_native/...") ` ** | ` roboverse_pack/tasks/libero_native/ ` |
4141| ** Vendored assets (library-deletable)** | 130 portable MJCF + ** 193 deduped assets / 265 MB** on HF; fresh-machine model fields ** 130/130** exact (max\| Δ\| =0), checker ** 130/130** | ` RoboVerseOrg/roboverse_data ` ` libero/ ` |
4242
4343MetaSim core changes: ** 0** (the passthrough reuses the unmodified upstream env;
@@ -97,6 +97,22 @@ task.render() # agentview RGB (geom-group matched to robosuite)
9797task.step(action, grip) # one OSC_POSE policy step (inlined controller)
9898```
9999
100+ All 130 base tasks are also ** registered** , so they are discoverable through the
101+ task registry exactly like the other RoboVerse tasks — and resolve and run even
102+ with ` libero ` / ` robosuite ` uninstalled:
103+
104+ ``` python
105+ from metasim.task.registry import get_task_class
106+
107+ Task = get_task_class(" libero_native/libero_object/pick_up_the_alphabet_soup_and_place_it_in_the_basket" )
108+ env = Task() # loads the vendored scene; no libero
109+ obs = env.reset() # deterministic seed=0 BDDL reset state
110+ obs, reward, success, time_out, _ = env.step([0 , 0 , - 0.1 , 0 , 0 , 0 , - 1 ]) # OSC delta + gripper
111+ ```
112+
113+ Registration is cheap (the task list is shipped; the scene/assets load lazily on
114+ first instantiation), and ` success ` uses the ** bitwise** ported BDDL checker.
115+
100116What was ported, and how it stays 1:1:
101117
102118- ** BDDL success checker** (` checker.py ` ) — every goal predicate reduced to a
0 commit comments