--- license: gemma library_name: transformers base_model: - Dexmal/DM05 datasets: - RoboChallenge/Table30v2 tags: - robotics - vision-language-action - dm05 - opendm - robochallenge - w1 - dos-w1 --- # DM05-W1 (RoboChallenge) ![DM0.5](https://raw.githubusercontent.com/dexmal/opendm/main/docs/image/header.png)

Tech Blog GitHub Table30v2 Dataset MaaS

OpenDM-format BF16 checkpoint for **DOS W1** on RoboChallenge Table 30 v2. Use with [OpenDM](https://github.com/dexmal/opendm) `third_party/robochallenge_inference` (`configs/generalist/w1.yaml`). See the [DM05 RoboChallenge Table 30 v2 Inference Guide](https://github.com/dexmal/opendm/blob/main/docs/en/dm05_robochallenge.md). Weights: BF16 `model.safetensors`. ## Model Card | Field | Value | | --- | --- | | Config | `generalist/w1` | | Env vars | `W1_CHECKPOINT` / `W1_NORM_STATS` | | OpenDM `robot_type` | `DOS W1` | | Control | Joint relative | | Cameras | Head / Left wrist / Right wrist | | Platform cams | `cam_high` → image_0, `cam_left_wrist` → image_1, `cam_right_wrist` → image_2 | | Native state / action stats | 14 / 14 (**state + action** quantile `norm_stats.json`) | | Defaults | `action_horizon=25`, `is_history=false` | ## Table30 Tasks `fold_the_clothes`, `hold_the_tray_with_both_hands`, `place_objects_into_desk_drawer`, `put_in_pen_container`, `put_the_shoes_back`, `stack_bowls`, `sweep_the_trash`, `tidy_up_the_makeup_table`, `tie_a_knot`, `untie_the_shoelaces` Per-task horizon overrides: `third_party/robochallenge_inference/configs/generalist/w1.yaml` → `task_overrides` (several tasks use `30`). Gripper post-process: `third_party/robochallenge_inference/policies/output_tricks.py` → `apply_w1_gripper_trick`. ## Use with OpenDM RoboChallenge Inference The RoboChallenge client now lives in OpenDM at `third_party/robochallenge_inference` (`configs/generalist/w1.yaml`). See the [DM05 RoboChallenge Table 30 v2 Inference Guide](https://github.com/dexmal/opendm/blob/main/docs/en/dm05_robochallenge.md). ```bash # From the OpenDM repository root. export OPENDM_ROOT=/path/to/opendm pip install -e ".[fast-infer]" cd third_party/robochallenge_inference export W1_CHECKPOINT=/path/to/DM05-W1 export W1_NORM_STATS=${W1_CHECKPOINT}/norm_stats.json pip install -r requirements.txt python execute.py --config-name generalist/w1 \ user_id=YOUR_USER_ID \ submission_id=YOUR_SUBMISSION_ID ``` Override without env vars: ```bash python execute.py --config-name generalist/w1 \ checkpoint=/path/to/DM05-W1 \ norm_stats=/path/to/DM05-W1/norm_stats.json \ user_id=YOUR_USER_ID \ submission_id=YOUR_SUBMISSION_ID ``` If `W1_NORM_STATS` is unset, the client falls back to `${W1_CHECKPOINT}/norm_stats.json`. ## Runtime Profile From `third_party/robochallenge_inference/configs/default.yaml` → `robot_profiles.w1`: - `action_type=joint`, `action_mode=relative` - `is_history=false`, `add_state=true`, `speed=0.5` - attn implementations: `auto` ## Files ```text . ├── config.json ├── model.safetensors ├── norm_stats.json # includes state + action ├── tokenizer.json ├── tokenizer_config.json ├── processor_config.json ├── chat_template.jinja ├── generation_config.json └── README.md ``` ## Citation ```bibtex @misc{dm05, title = {{DM0.5}: An Open-World Foundation Model for General-Purpose Embodied Intelligence}, author = {{Dexmal Team}}, month = {July}, year = {2026}, url = {https://www.dexmal.com/blog/dm0.5/index_en.html} } ```