#### NOTE
This is a **Hugging Face dataset**. For large datasets, ensure `huggingface_hub>=1.1.3` to avoid rate limits. Learn more in the <a href="https://docs.voxel51.com/integrations/huggingface.html#loading-datasets-from-the-hub" target="_blank">Hugging Face integration docs</a>.

<a href="https://huggingface.co/datasets/Voxel51/community_v3_10per_embodiment" target="_blank">![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Dataset-yellow)</a>

# LeRobot Community Dataset v3 — Cross-Embodiment Starter

![image/png](https://huggingface.co/datasets/Voxel51/community_v3_10per_embodiment/resolve/main/lerobot_cv3_emb_panel.gif)

A curated cross-embodiment starter subset drawn from [lerobot/community_dataset_v3](https://huggingface.co/datasets/lerobot/community_dataset_v3): **497 episodes across 50 unique robot embodiments**, with up to 10 episodes from each embodiment.

## Usage

### Load in FiftyOne

```python
import fiftyone as fo
import fiftyone.utils.huggingface as fouh

dataset = fouh.load_from_hub("Voxel51/community_v3_10per_embodiment")
print(dataset)

# Filter by embodiment
so100_view = dataset.match(fo.ViewField("robot_type") == "so100")
```

### Browse by robot type

```python
session = fo.launch_app(dataset)

# In App: filter sidebar by robot_type field to explore embodiments
```

## Overview

| Metric                | Value                                                  |
|-----------------------|--------------------------------------------------------|
| **Total Episodes**    | 497                                                    |
| **Robot Embodiments** | 50                                                     |
| **FPS values**        | 10, 15, 20, 25, 30, 50                                 |
| **Duration range**    | 0.02 – 148.6 seconds                                   |
| **Source dataset**    | lerobot/community_dataset_v3 (v3.0)                    |
| **Format**            | FiftyOne dataset (multimodal, LeRobotEpisodeReference) |

## Robot Types Covered (50 embodiments)

| Robot Type              |   Episodes | Source Dataset                                                   |
|-------------------------|------------|------------------------------------------------------------------|
| Unitree_G1_Dex3         |         10 | kuehnrobin/g1_stack_cube_left                                    |
| Unitree_G1_Gripper      |         10 | unitreerobotics/G1_MountCameraRedGripper_Dataset                 |
| Unitree_G1_Inspire      |         10 | eastflag/g1_can_twohand                                          |
| Unitree_G1_inspire      |          7 | ccccccww/test1 (only 7 available total)                          |
| Unitree_Z1_Dual         |         10 | unitreerobotics/Z1_DualArmStackBox_Dataset                       |
| Unitree_Z1_Single       |         10 | unitreerobotics/Z1_StackBox_Dataset                              |
| agilex                  |         10 | Pi-robot/place_white_bottle                                      |
| aiworker                |         10 | noisyduck/ffw_bg2_rev4_ai_worker_demo_250714_2                   |
| aloha                   |         10 | HuaihaiLyu/test_shorts                                           |
| aloha_solo              |         10 | AshtinDonuts/aloha_test6                                         |
| arx5                    |         10 | villekuosmanen/pick_coffee_capsule_under_dome                    |
| arx5_bimanual           |         10 | villekuosmanen/move_glass_cups                                   |
| bi_so100_follower       |         10 | LeRobot-worldwide-hackathon/46-3580-bi_so100_pour_water_real     |
| bi_xarm6_follower       |         10 | kumarhans/ethernetGrab8                                          |
| ffw                     |         10 | lcwoo/ffw_test                                                   |
| g1                      |         10 | hainh22/pick_cube_train                                          |
| koch                    |         10 | Dongkkka/blue_pen_pick_and_place                                 |
| koch_follower           |         10 | aidinism/arm-record-14                                           |
| mcx                     |         10 | relaxedandcalm/ds_move_the_motor                                 |
| moss                    |         10 | Beegbrain/moss_stack_cubes                                       |
| multi_robot             |         10 | arclabmit/lx7r_knockover_test_dataset                            |
| mycobot320              |         10 | GreenIsGood/pick_scan_and_place_warehouse_boxes_05_06_01_smthng  |
| panda_follower          |         10 | konstantinZ/pickup-single-cotton-V2                              |
| piper                   |         10 | hangwu/piper_joint_ep_20250421_realsense                         |
| piper_follower          |         10 | CnLori/so101_piper                                               |
| rx200                   |         10 | underctrl/toy_pickup_and_place                                   |
| sam_bimanual            |         10 | girardijp/sam_fold_cloth_single                                  |
| sam_two                 |         10 | 1g0rrr/demo2_upart_peeloff                                       |
| so100                   |         10 | Gano007/so100_lolo                                               |
| so100-blue              |         10 | Chojins/chess_game_001_blue_stereo_flip                          |
| so100-red               |         10 | Chojins/chess_game_001_red_stereo                                |
| so100MovellaDot         |         10 | sergiov2000/so100_movella_pick_ball_C3 (5) + D3 (5)              |
| so100_bimanual          |         10 | Claessens14/playing_with_fold_april21_ego_single_fold_v1         |
| so100_follower          |         10 | triton7777/cube_to_bowl_so100                                    |
| so100_follower_bimanual |         10 | LeRobot-worldwide-hackathon/160-LegoBot-lego_pixelart_stage_2_v2 |
| so100_with_koch         |         10 | rgarreta/so100_dataset1                                          |
| so101                   |         10 | hawnsoung/so101_test_coff_5                                      |
| so101_follower          |         10 | MostafaOthman/pickplace_sweetsjp_smallcandy                      |
| stretch                 |         10 | Suzumiya894/stretch_test                                         |
| stretch3                |         10 | Suzumiya894/stretch_smolvla_dataset                              |
| trossen_ai_mobile       |         10 | mrrl-emcnei/trossen_dataset0                                     |
| trossen_ai_solo         |         10 | minjunkevink/trossen_objects_pick_place                          |
| trossen_ai_stationary   |         10 | ANRedlich/trossen_ai_stationary_test_08                          |
| unknown                 |         10 | easonjcc/rm_test_02                                              |
| ur5e_gello              |         10 | Arururu12/UR5e_Gello_Cube_bin_v2                                 |
| widowx                  |         10 | jesbu1/usc_widowx_combined_play_data                             |
| xarm                    |         10 | Anas0711/orange_bobo_pose_action_state_june3_1130am              |
| xarm6                   |         10 | kumarhans/glue_stick                                             |
| xarm_end_effector       |         10 | lukicdarkoo/pick_plazma                                          |
| xarm_lite6              |         10 | ReubenLim/xarm_lite6_gripper_cube_in_box                         |

## Dataset Structure

Each sample in this FiftyOne dataset is one episode, with:

| Field                      | Type                    | Description                                                                                                                                                                                                                                                                            |
|----------------------------|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `robot_type`               | string                  | Embodiment identifier (50 unique values)                                                                                                                                                                                                                                               |
| `task`                     | string                  | Task description                                                                                                                                                                                                                                                                       |
| `tasks`                    | list[string]            | All task descriptions for episode                                                                                                                                                                                                                                                      |
| `episode_index`            | int                     | Episode index within the source dataset                                                                                                                                                                                                                                                |
| `length`                   | int                     | Number of frames                                                                                                                                                                                                                                                                       |
| `duration`                 | float                   | Duration in seconds                                                                                                                                                                                                                                                                    |
| `fps`                      | float                   | Recording frame rate                                                                                                                                                                                                                                                                   |
| `media_reference`          | LeRobotEpisodeReference | Reference to video clips                                                                                                                                                                                                                                                               |
| `dataset_name`             | string                  | Source contributor dataset (`<contributor>/<dataset>`)                                                                                                                                                                                                                                 |
| `qwen3vl_embedding`        | vector (2048)           | Qwen3-VL-Embedding-2B video embedding (via [qwen3vl_embeddings](https://github.com/harpreetsahota204/qwen3vl_embeddings)): up to 32 evenly spaced frames from the episode’s time window, last-token pooled and L2-normalised, in the same space as text embeddings from the same model |
| `qwen3vl_embedding_camera` | string                  | Camera stream used for `qwen3vl_embedding`                                                                                                                                                                                                                                             |
| `uniqueness`               | float                   | FiftyOne Brain uniqueness, computed from `qwen3vl_embedding`                                                                                                                                                                                                                           |
| `representativeness`       | float                   | FiftyOne Brain representativeness, computed from `qwen3vl_embedding`                                                                                                                                                                                                                   |

`qwen3vl_embedding` is a video embedding: each vector is computed from a clip spanning the episode, never from a single frame. The brain runs `qwen3vl_embedding_sim` (similarity index) and `qwen3vl_embedding_umap` (2D UMAP) are both built on it, and the similarity index accepts text queries as well as episodes. For text queries, register the model source first:

```python
import fiftyone.zoo as foz

foz.register_zoo_model_source(
    "https://github.com/harpreetsahota204/qwen3vl_embeddings",
    overwrite=True,
)

view = dataset.sort_by_similarity(
    "folding a cloth", k=10, brain_key="qwen3vl_embedding_sim"
)
```

## Parsing Decisions

- **Episode selection**: shard-0 episodes (first N from `data/chunk-000/file-000.parquet` and corresponding video `chunk-000/file-000.mp4`) for each source dataset. This gives the cheapest complete subset without splitting episodes across shards.
- **Cap**: 10 episodes per embodiment, or all available if fewer than 10 exist.
- **`Unitree_G1_inspire`**: Kept separate from `Unitree_G1_Inspire`; only 7 episodes existed in total across all contributing datasets — all 7 are included.
- **`so100MovellaDot`**: No single source dataset had ≥10 episodes (max 5 per dataset). Combined 5 episodes from `sergiov2000/so100_movella_pick_ball_C3` and 5 from `so100_movella_pick_ball_D3` to reach 10.
- **Schema heterogeneity**: The 50 embodiments use different camera setups, action dimensions, and FPS values. This FiftyOne dataset stores each sample document-style with only common fields (`robot_type`, `task`, `duration`, `fps`, `length`, `episode_index`). Camera-specific features are accessible via `media_reference` pointing to the source video clips.
- **No v2.x conversion**: All 51 source sub-datasets were already at codebase_version v3.0 — no conversion needed.
- **No media re-encoding**: Source video files are referenced as-is. Codecs may vary by embodiment (H.264, H.265, etc.).
- **`episode_index` values**: Preserved from source datasets. Two `so100MovellaDot` sources both have indices 0–4; this is intentional — the `media_reference` key distinguishes them.

## Source

All data originates from [lerobot/community_dataset_v3](https://huggingface.co/datasets/lerobot/community_dataset_v3), a crowdsourced collection from 235 community contributors worldwide. Please acknowledge the original contributors when using this dataset.

## License

Apache 2.0 (same as source dataset). Individual datasets may have additional attribution requirements — see [lerobot/community_dataset_v3](https://huggingface.co/datasets/lerobot/community_dataset_v3) for contributor details.
