[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-79957":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":11,"openIssues":12,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":14,"stars7d":14,"stars30d":15,"stars90d":13,"forks30d":13,"starsTrendScore":16,"compositeScore":17,"rankGlobal":8,"rankLanguage":8,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":8,"pushedAt":8,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":13,"starSnapshotCount":13,"syncStatus":12,"lastSyncTime":25,"discoverSource":26},79957,"dexjoco","brave-eai\u002Fdexjoco","brave-eai",null,"Python",99,3,2,0,10,21,30,1.81,"MIT License",false,"main",[],"2026-06-12 02:03:56","\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fpics\u002Fdexjoco_logo.jpg\" alt=\"dexjoco logo\" height=\"110\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.16257\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2605.16257-b31b1b?style=flat-square\" alt=\"arXiv\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdexjoco.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub-Page-FF6B00?style=flat-square&logo=github&logoColor=white\" alt=\"Project Homepage\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FDexJoCo\u002FDexJoCo-Datasets-LeRobot\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🤗%20HF-Dataset-FFD21E?style=flat-square\" alt=\"HF Dataset\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002FDexJoCo\u002FDexJoCo-Pi05\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🤗%20HF-Model-FFD21E?style=flat-square\" alt=\"HF Models\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fpapers\u002F2605.16257\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🤗%20HF-Paper-FFD21E?style=flat-square\" alt=\"HF Paper\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-green?style=flat-square\" alt=\"License\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\nDexJoCo is a MuJoCo-based simulation benchmark and toolkit for task-oriented\ndexterous manipulation. It provides **11 functionally grounded tasks** covering\n🛠️ **tool use**, 🤝 **bimanual coordination**, ⏱️ **long-horizon execution**,\nand ⚙️ **reasoning**, together with a low-cost teleoperation data collection\nsystem, replayable demonstrations, domain randomization, and OpenPI π0.5 policy\ntraining\u002Fevaluation support.\n\n\u003Ctable width=\"100%\">\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"20%\">\n      \u003Cimg src=\"docs\u002Fpics\u002Fphotograph_4.png\" alt=\"Bimanual photograph\" width=\"100%\">\n      \u003Cbr>\u003Csub>Bimanual photograph\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"20%\">\n      \u003Cimg src=\"docs\u002Fpics\u002Fipad_2.png\" alt=\"Bimanual unlock iPad\" width=\"100%\">\n      \u003Cbr>\u003Csub>Bimanual unlock iPad\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"20%\">\n      \u003Cimg src=\"docs\u002Fpics\u002Fassembly_3.png\" alt=\"Bimanual assembly\" width=\"100%\">\n      \u003Cbr>\u003Csub>Bimanual assembly\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"20%\">\n      \u003Cimg src=\"docs\u002Fpics\u002Fhanoi_3.png\" alt=\"Bimanual hanoi\" width=\"100%\">\n      \u003Cbr>\u003Csub>Bimanual hanoi\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"20%\">\n      \u003Cimg src=\"docs\u002Fpics\u002Fmicrowave_2.png\" alt=\"Bimanual microwave\" width=\"100%\">\n      \u003Cbr>\u003Csub>Bimanual microwave\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Ctable width=\"100%\">\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"16.66%\">\n      \u003Cimg src=\"docs\u002Fpics\u002Fwater_plant_4.png\" alt=\"Water plant\" width=\"100%\">\n      \u003Cbr>\u003Csub>Water plant\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"16.66%\">\n      \u003Cimg src=\"docs\u002Fpics\u002Fhammer_3.png\" alt=\"Hammer nail\" width=\"100%\">\n      \u003Cbr>\u003Csub>Hammer nail\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"16.66%\">\n      \u003Cimg src=\"docs\u002Fpics\u002Fglass_1.png\" alt=\"Fold glasses\" width=\"100%\">\n      \u003Cbr>\u003Csub>Fold glasses\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"16.66%\">\n      \u003Cimg src=\"docs\u002Fpics\u002Ftongs_3.png\" alt=\"Pinch tongs\" width=\"100%\">\n      \u003Cbr>\u003Csub>Pinch tongs\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"16.66%\">\n      \u003Cimg src=\"docs\u002Fpics\u002Fbucket_4.png\" alt=\"Pick bucket\" width=\"100%\">\n      \u003Cbr>\u003Csub>Pick bucket\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"16.66%\">\n      \u003Cimg src=\"docs\u002Fpics\u002Fmouse_3.png\" alt=\"Click mouse\" width=\"100%\">\n      \u003Cbr>\u003Csub>Click mouse\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Table of Contents\n\n- [Installation](#-installation)\n- [Policy Evaluation](#-policy-evaluation)\n- [Custom Policy Integration](#-custom-policy-integration)\n- [Data Collection](#-data-collection)\n- [Demonstration Replay](#-demonstration-replay)\n- [Data Format](#data-format)\n- [Data Conversion](#data-conversion)\n- [Policy Training](#policy-training)\n- [Headless Rendering](#headless-rendering)\n- [License](#-license)\n- [Citation](#-citation)\n\n## 🚀 Installation\n\nCreate and activate the DexJoCo environment:\n\n```bash\nconda env create -f environment-dexjoco.yaml\nconda activate dexjoco\n```\n\nOpenPI training and serving environment\n\n```bash\ncd openpi\nbash install.bash\nconda activate openpi\n```\n\n## 🤖 Policy Evaluation\n\nDownload model checkpoints from\n[DexJoCo-Pi05](https:\u002F\u002Fhuggingface.co\u002FDexJoCo\u002FDexJoCo-Pi05) or train them\nyourself before evaluation.\n\nStart an OpenPI policy server from the `openpi` environment:\n\n```bash\ncd openpi\nconda activate openpi\npython scripts\u002Fserve_policy.py --port=8000 policy:checkpoint \\\n  --policy.config water_plant \\\n  --policy.dir ..\u002Fcheckpoints\u002Fpi05_ckpts\u002Fwater_plant\u002F\u003Cexp_name>\u002F\u003Cstep>\n```\n\nRun evaluation from the repository root in the `dexjoco` environment:\n\n```bash\nconda activate dexjoco\ndexjoco-openpi-eval \\\n  --config=.\u002Fconfigs\u002Frand_obj\u002Fwater_plant.yaml \\\n  --seed=0 \\\n  --port=8000\n```\n\nFor `rand_full` evaluation, use a config under `configs\u002Frand_full\u002F` and pass\n`--rand-full`:\n\n```bash\ndexjoco-openpi-eval \\\n  --config=.\u002Fconfigs\u002Frand_full\u002Fwater_plant.yaml \\\n  --seed=0 \\\n  --port=8000 \\\n  --rand-full\n```\n\nConvenience launch templates are available at\n[`scripts\u002Fserve_pi05.bash`](scripts\u002Fserve_pi05.bash) and\n[`scripts\u002Fevaluate_pi05.bash`](scripts\u002Fevaluate_pi05.bash).\n\n`dexjoco-openpi-eval` options:\n\n| Option                            | Default        | Description                                                        |\n| --------------------------------- | -------------- | ------------------------------------------------------------------ |\n| `--config PATH`                   | Required       | Evaluation YAML under `configs\u002Frand_obj\u002F` or `configs\u002Frand_full\u002F`. |\n| `--seed INT`                      | `0`            | Random seed for NumPy and Python random state.                     |\n| `--rand-full`                     | `False`        | Enables the `rand_full` evaluation regime.                         |\n| `--randomize-dynamics`            | `False`        | Enables dynamics randomization.                                    |\n| `--port INT`                      | `8000`         | OpenPI websocket policy server port.                               |\n| `--output PATH`                   | Auto-generated | Output directory for videos and success-rate marker files.         |\n| `--render-mode {rgb_array,human}` | `rgb_array`    | DexJoCo rendering mode. `rgb_array` is headless.                   |\n| `--episodes INT`                  | `50`           | Number of evaluation episodes to run.                              |\n\nSee\n[`dexjoco\u002Fdexjoco_openpi_client\u002Feval_dexjoco_openpi.py`](dexjoco\u002Fdexjoco_openpi_client\u002Feval_dexjoco_openpi.py)\nfor the complete option set.\n\n## 🔌 Custom Policy Integration\n\nDexJoCo supports custom policy evaluation through the same environment contract\nused by the OpenPI client. Observations are collected from the simulator and\npassed to a policy for action inference. The resulting actions are executed in\nthe environment.\n\nCustom integrations should follow the protocol described in\n[`docs\u002Fcustom_policy_integration.md`](docs\u002Fcustom_policy_integration.md),\nincluding:\n\n- observation fields for camera images, proprioceptive state, and prompts\n- action layout conversion from rotation-vector policy actions to quaternion\n  environment actions\n- chunked action execution and replanning for latency-tolerant inference\n- optional multi-frame observation history\n- LeRobot-style `async_inference` integration patterns\n\n## 📦 Data Collection\n\nPlease refer to the [`teleoperation\u002F`](teleoperation\u002F) directory for the\nhardware and software configuration required for teleoperation:\n\n| Component                   | Documentation                                                                                        |\n| --------------------------- | ---------------------------------------------------------------------------------------------------- |\n| teleoperation overview      | [`teleoperation\u002FREADME.md`](teleoperation\u002FREADME.md)                                                 |\n| hardware setup              | [`teleoperation\u002FTeleoperation_System_Tutorial.pdf`](teleoperation\u002FTeleoperation_System_Tutorial.pdf) |\n| Vive tracker bridge         | [`teleoperation\u002Fvive_bridge`](teleoperation\u002Fvive_bridge)                                             |\n| Rokoko hand-keypoint bridge | [`teleoperation\u002Frokoko`](teleoperation\u002Frokoko)                                                       |\n| GeoRT hand retargeting      | [`teleoperation\u002FGeoRT`](teleoperation\u002FGeoRT)                                                         |\n\nSupported tasks:\n\n| Task           | Setup      | Task Name                 |\n| -------------- | ---------- | ------------------------- |\n| Unlock iPad    | Bimanual   | `bimanual_unlock_ipad`    |\n| Hanoi          | Bimanual   | `bimanual_hanoi`          |\n| Assembly       | Bimanual   | `bimanual_assembly`       |\n| Microwave cook | Bimanual   | `bimanual_microwave_cook` |\n| Photograph     | Bimanual   | `bimanual_photograph`     |\n| Hammer nail    | Single-arm | `hammer_nail`             |\n| Click mouse    | Single-arm | `click_mouse`             |\n| Pick bucket    | Single-arm | `pick_bucket`             |\n| Pinch tongs    | Single-arm | `pinch_tongs`             |\n| Fold glasses   | Single-arm | `fold_glasses`            |\n| Water plant    | Single-arm | `water_plant`             |\n\nTODO: how to add new tasks?\n\nStart demonstration recording from the repository root with\n[`scripts\u002Frecord_demos_zarr.py`](scripts\u002Frecord_demos_zarr.py):\n\n```bash\nconda activate dexjoco\npython scripts\u002Frecord_demos_zarr.py \\\n  --exp_name=water_plant \\\n  --successes_needed=20 \\\n  --randomize=True \\\n  --out_dir=.\u002Fdemos\n```\n\nThe script opens the selected DexJoCo task, records successful teleoperation\nepisodes, and writes each success as a replayable Zarr episode with camera\nvideos.\n\nCommon `record_demos_zarr.py` options:\n\n| Flag                 | Purpose                                                                       |\n| -------------------- | ----------------------------------------------------------------------------- |\n| `--exp_name`         | Selects one of the task names.                                                |\n| `--successes_needed` | Stops collection after the requested number of successful demos.              |\n| `--randomize`        | Enables the `rand_full` visual randomization regime used for data collection. |\n| `--show_sim_cameras` | Displays camera streams during interactive collection.                        |\n| `--save_depth`       | Saves depth arrays and depth videos alongside RGB videos.                     |\n| `--out_dir`          | Selects the output directory for collected demos.                             |\n\n[`scripts\u002Frecord_demos_zarr.py`](scripts\u002Frecord_demos_zarr.py) supports\n`--camera_screen_effect` to display a camera viewfinder overlay, defaults to\n`False`.\n\n## 🎬 Demonstration Replay\n\nRaw DexJoCo datasets for replay are available from\n[`DexJoCo\u002FDexJoCo-Datasets-Raw`](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FDexJoCo\u002FDexJoCo-Datasets-Raw).\n\nReplay recorded demonstrations with\n[`scripts\u002Freplay_demos_zarr.py`](scripts\u002Freplay_demos_zarr.py):\n\n```bash\nconda activate dexjoco\npython scripts\u002Freplay_demos_zarr.py \\\n  --exp_name=water_plant \\\n  --input_dir=.\u002Fdemos \\\n  --out_dir=.\u002Freplay_output \\\n  --randomize=True \\\n  --restore_state=True\n```\n\nReplay runs through the policy interface, can restore recorded initial object\nposes and table height, and can generate `rand_full` visual variants through\ncamera, lighting, and table texture randomization.\n\nCommon `replay_demos_zarr.py` options:\n\n| Flag           | Default           | Purpose                                                                                                 |\n| -------------- | ----------------- | ------------------------------------------------------------------------------------------------------- |\n| `--exp_name`   | `water_plant`     | Selects the task used to replay the demonstrations.                                                     |\n| `--input_dir`  | `.\u002F`              | Directory containing recorded demo folders with `replay.zarr`.                                          |\n| `--out_dir`    | `.\u002Freplay_output` | Output directory for replayed Zarr episodes and videos.                                                 |\n| `--randomize`  | `True`            | Enables replay-time `rand_full` visual randomization with preset camera, lighting, and texture changes. |\n| `--seed`       | `0`               | Base replay seed; the demo index is added for each input demo.                                          |\n| `--save_depth` | `False`           | Saves depth arrays and depth videos alongside RGB replay videos.                                        |\n\nSee [`scripts\u002Freplay_demos_zarr.py`](scripts\u002Freplay_demos_zarr.py) for the\ncomplete option set.\n\n[`scripts\u002Freplay_demos_zarr.py`](scripts\u002Freplay_demos_zarr.py) supports\n`--camera_screen_effect` to display a camera viewfinder overlay, defaults to\n`False`.\n\n\u003Ca id=\"data-format\">\u003C\u002Fa>\n\n## 🗂️ Data Format\n\nEach successful demonstration is written as:\n\n```text\n\u003Cout_dir>\u002F\u003Cexp_name>_demo_\u003Cindex>_\u003Ctimestamp>\u002F\n  replay.zarr\u002F\n  videos\u002F\u003Ccamera_key>.mp4\n  videos\u002F\u003Ccamera_key>_depth.npz\n  videos\u002F\u003Ccamera_key>_depth.mp4\n```\n\nDepth outputs are present when `--save_depth=True`.\n\nThe Zarr replay buffer stores low-dimensional episode data:\n\n| Field           | Description                                                                                     |\n| --------------- | ----------------------------------------------------------------------------------------------- |\n| `action`        | Recorded policy or teleoperation actions.                                                       |\n| `action_rotvec` | Action representation with orientation stored as rotation vectors when conversion is available. |\n| `timestamp`     | Per-step timestamps derived from `--data_fps`.                                                  |\n| `state`         | Proprioceptive and task state used by replay and state restoration when available.              |\n\n### Policy Training Action and State Layout\n\nFor bimanual demonstrations, the recorded action layout is:\n\n```text\n[r_pose7, r_hand16, l_pose7, l_hand16]\n```\n\nThe policy-mode DexJoCo environment expects the flat action layout:\n\n```text\n[r_pose7, l_pose7, r_hand16, l_hand16]\n```\n\nDuring OpenPI evaluation,\n[`dexjoco\u002Fdexjoco_openpi_client\u002Fdexjoco_openpi_env.py`](dexjoco\u002Fdexjoco_openpi_client\u002Fdexjoco_openpi_env.py)\nhandles the action order conversion automatically. It also converts\nrotation-vector actions into the quaternion pose representation used by the\nDexJoCo environment.\n\nOpenPI training uses `action_rotvec` as the action target. The raw `action`\nfield stores quaternion poses with 23 dimensions for single-arm tasks and 46\ndimensions for bimanual tasks. `action_rotvec` stores the action layout with 22\ndimensions for single-arm tasks and 44 dimensions for bimanual tasks.\n\nThe recorded `state` field includes privileged environment state for replay,\nsuch as object poses and table height. Policy training should use only robot\nproprioception:\n\n| Setup      | Policy State                                                              |\n| ---------- | ------------------------------------------------------------------------- |\n| Single-arm | First 23 dimensions: TCP pose and hand joints                             |\n| Bimanual   | First 46 dimensions: right TCP pose, left TCP pose, right hand, left hand |\n\nPrivileged environment fields should be filtered out before training policy\nmodels.\n\n\u003Ca id=\"data-conversion\">\u003C\u002Fa>\n\n## 🔄 Data Conversion\n\nUse [`dexjoco-data-converter\u002F`](dexjoco-data-converter\u002F) to convert raw DexJoCo\ndatasets into LeRobot datasets or Zarr replay buffers.\n\n```bash\nbash dexjoco-data-converter\u002Finstall.bash\nconda activate dexjoco-dc\n\ndexjoco-dc-single-lerobot \\\n  --input .\u002Fdatasets\u002Fraw\u002Fdexjoco_raw_datasets\u002Fwater_plant \\\n  --output .\u002Fconverted_datasets\u002Flerobot\u002Fsingle\u002Fwater_plant \\\n  --language-instruction \"Grasp the watering can and apply water to the plant.\" \\\n  --selected-data-yaml \"{action: action_rotvec, state: state, cameras: {front: front, wrist: wrist}}\" \\\n  --slice-yaml \"{state: [null, 23]}\"\n```\n\nSee [`dexjoco-data-converter\u002FREADME.md`](dexjoco-data-converter\u002FREADME.md) for\nbatch conversion, multi-task merge and configuration files.\n\n\u003Ca id=\"policy-training\">\u003C\u002Fa>\n\n## ⚙️ Policy Training\n\nDexJoCo LeRobot datasets are available from\n[`DexJoCo\u002FDexJoCo-Datasets-LeRobot`](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FDexJoCo\u002FDexJoCo-Datasets-LeRobot).\n\nOpenPI π0.5 training support lives under [`openpi\u002F`](openpi). The OpenPI setup\ncovers two DexJoCo data regimes:\n\n| Regime      | Randomization                                                                  |\n| ----------- | ------------------------------------------------------------------------------ |\n| `rand_obj`  | Object placement and table height randomization                                |\n| `rand_full` | `rand_obj` plus third-person camera, lighting, and table texture randomization |\n\nTraining workflow:\n\n1. Install the OpenPI environment with\n   [`openpi\u002Finstall.bash`](openpi\u002Finstall.bash).\n2. Place checkpoints and LeRobot datasets according to\n   [`openpi\u002Fconfig.yaml`](openpi\u002Fconfig.yaml).\n3. Convert the π0.5 base checkpoint for 44-dimensional bimanual actions with\n   [`openpi\u002Fscripts\u002Fconvert_to_action_dim_44_model.py`](openpi\u002Fscripts\u002Fconvert_to_action_dim_44_model.py)\n   when training bimanual tasks.\n4. Compute normalization statistics with\n   [`openpi\u002Fscripts\u002Fcompute_norm_stats.py`](openpi\u002Fscripts\u002Fcompute_norm_stats.py)\n   or\n   [`openpi\u002Fscripts\u002Fcompute_norm_stats.bash`](openpi\u002Fscripts\u002Fcompute_norm_stats.bash).\n5. Launch multiple tmux training jobs with\n   [`openpi\u002Fscripts\u002Flaunch_tmux_train.py`](openpi\u002Fscripts\u002Flaunch_tmux_train.py),\n   or train a single policy with\n   [`openpi\u002Fscripts\u002Ftrain.py`](openpi\u002Fscripts\u002Ftrain.py).\n\nSee [`openpi\u002FREADME.md`](openpi\u002FREADME.md) for command examples and checkpoint\nlayout details.\n\n\u003Ca id=\"headless-rendering\">\u003C\u002Fa>\n\n## 🖥️ Headless Rendering\n\nHeadless environments use `policy_mode=True` and `render_mode=\"rgb_array\"`:\n\n```python\nTaskConfig.get_environment(\n    policy_mode=True,\n    render_mode=\"rgb_array\",\n    ...\n)\n```\n\n`policy_mode=True` exposes the policy action interface and disables the\nteleoperation wrapper. `render_mode=\"rgb_array\"` selects offscreen rendering for\npolicy evaluation and automated environment usage.\n\nInteractive teleoperation collection uses `policy_mode=False` and the MuJoCo\nviewer, so it does not require the headless configuration.\n\n## 📄 License\n\nDexJoCo-owned code in this repository is released under the\n[`MIT License`](LICENSE).\n\nBundled third-party components and assets retain their separate license terms:\n\n| Component                                                                | License Scope                                                        |\n| ------------------------------------------------------------------------ | -------------------------------------------------------------------- |\n| [`teleoperation\u002FGeoRT`](teleoperation\u002FGeoRT)                             | Upstream non-commercial GeoRT license                                |\n| [`franka_emika_panda`](dexjoco\u002Fdexjoco\u002Fsim\u002Fenvs\u002Fxmls\u002Ffranka_emika_panda) | Apache-2.0                                                           |\n| [`wonik_allegro`](dexjoco\u002Fdexjoco\u002Fsim\u002Fenvs\u002Fxmls\u002Fwonik_allegro)           | BSD-2-Clause                                                         |\n| [`openpi\u002F`](openpi)                                                      | Apache License, Version 2.0, plus Gemma model terms where applicable |\n\n## 📚 Citation\n\n```bibtex\n@misc{wang2026dexjocobenchmarktoolkittaskoriented,\n      title={DexJoCo: A Benchmark and Toolkit for Task-Oriented Dexterous Manipulation on MuJoCo},\n      author={Hanwen Wang and Weizhi Zhao and Xiangyu Wang and Siyuan Huang and He Lin and Boyuan Zheng and Rongtao Xu and Gang Wang and Yao Mu and He Wang and Lue Fan and Hongsheng Li and Zhaoxiang Zhang and Tieniu Tan},\n      year={2026},\n      eprint={2605.16257},\n      archivePrefix={arXiv},\n      primaryClass={cs.RO},\n      url={https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.16257},\n}\n```\n","DexJoCo 是一个基于 MuJoCo 的仿真基准和工具包，专注于任务导向的灵巧操作。它提供了11个功能性的任务，涵盖工具使用、双臂协调、长时间执行以及推理，并配备低成本遥操作数据收集系统、可重放演示、域随机化及OpenPI π0.5策略训练\u002F评估支持。该项目适用于需要高精度机器人控制与复杂任务执行的研究场景，如自动化装配线上的精细操作或服务机器人在家庭环境中的应用。采用Python开发，遵循MIT许可协议开放源代码。","2026-06-11 03:58:41","CREATED_QUERY"]