Written for Piotr Sokolski at Third Dimension. The dataset read here is lerobot/metaworld_mt50. It is not Third Dimension's data, and it is on this page because Meta-World MT50, a simulated corpus of 49 distinct task layouts, which is the readable version of the question about how much a corpus weights a small number of layouts.
2,500 episodes across 49 distinct task layouts, and the largest holds 100 episodes, 4.0% of the corpus. This is what an evenly weighted layout distribution looks like when you measure it rather than assume it. Episode length runs from 14 frames to 500, with the modal length covering only 2.4%.
Read from lerobot/metaworld_mt50. Where a figure came from the release metadata rather than the frames, the mode line below says so.
| property | value |
|---|---|
| episodes | 2,500 |
| frames | 204,806 |
| frame rate | 80 fps |
| robot | metaworld |
| action dimensions | 4 |
| cameras | |
| distinct task strings | 49 |
| episode length, shortest | 14 frames |
| episode length, median | 72 frames |
| episode length, longest | 500 frames |
Measurement mode, meta only, frame data is 45.9 GB and was not downloaded.
A trailing hold is the number of frames at the end of an episode during which the commanded action does not change by more than 1e-4 on any component. Seconds come from the frame rate each release declares. Every corpus below was read the same way by the same code.
| public corpus | how it was produced | episodes | any trailing hold | ten frames or more | longest |
|---|---|---|---|---|---|
| lerobot/aloha_sim_insertion_scripted | scripted sim | 50 | 100.0% | 86.0% | 21 frames , 0.42s |
| RajatDandekar/so101_bimanual_napkin_fold | real bimanual teleop | 65 | 95.4% | 75.4% | 130 frames , 4.33s |
| weblucas/sponge_ball_2_yellow_tray_lerobot | real single arm teleop | 30 | 26.7% | 6.7% | 21 frames , 0.70s |
| lerobot/aloha_sim_insertion_human | sim human teleop | 50 | 6.0% | 0.0% | 1 frames , 0.02s |
| lerobot/ucsd_pick_and_place_dataset | sim, fixed window | 1,355 | 0.1% | 0.0% | 2 frames , 0.40s |
| RajatDandekar/eval_so101_pi0_bimanual_napkin_fold | policy rollouts | 6 | 0.0% | 0.0% | 0 frames , 0.00s |
The ordering is the finding. A script stops commanding when it is done and the last rows repeat. A person keeps making small corrections, so a short take ends clean while a long bimanual take ends with the operator holding the fold in place. A policy rollout ends the moment the episode is cut. If somebody quotes you a single defect rate for idle frames across a mixed corpus, that number is averaging four different things.
Each corpus is a meta directory plus one or more parquet files. Read data/chunk-000/file-000.parquet, group rows by the episode ranges in meta/episodes, and count trailing rows where the action vector does not change. No credentials and no download beyond the frame data itself.
Thirty eight public robot datasets, one at a time. Each report measures one property across every episode, removes the part that scores worst, and retrains on what is left. The corpus figures and the cuts are computed from the releases. The lift column on the results page is read from each report's fine tune table rather than from a training run, and that page says so.
The one result measured on physical hardware is Stera-10M. Two arms on a four arm SO-ARM101 bench, identical per task fine tunes, 127 unpaired rollouts per cell, and the only difference between the arms is whether the human video pre-training stage happened.
Everything above is a public release. The same four steps run on your data, and the first three cost nothing.
A few hundred episodes under whatever terms you want is enough for the first three.