CoolFace
Datasetpublic

alfayoung/robomme_1cuben4_chunks_v2

RoboMME 1CubeN4 Canonical Chunks V2 363 synthetic shell-game episodes covering all three initial hiding positions and every ordered swap sequence of length 0 through 4, including immediate undo. The first demo frame exposes the red block using the original scripted cup removal. Cups return at raw frame 49; the arm stays still throughout the demo. Execution physically grasps and reveals the correct cup in 48 control steps. Text Embedding Correction (2026-09-19) The… See the full description on the dataset page: https://huggingface.co/datasets/alfayoung/robomme_1cuben4_chunks_v2.

sourceHugging Faceapache-2.0updated 5d agoView on Hugging Face
0likes151downloads
Dataset Card

RoboMME 1CubeN4 Canonical Chunks V2

363 synthetic shell-game episodes covering all three initial hiding positions and every ordered swap sequence of length 0 through 4, including immediate undo. The first demo frame exposes the red block using the original scripted cup removal. Cups return at raw frame 49; the arm stays still throughout the demo. Execution physically grasps and reveals the correct cup in 48 control steps.

Text Embedding Correction (2026-09-19)

The original v2 revision (6845149fdfa547dd7a552601b9f1094eae58aa0d) saved nonzero UMT5 hidden states for tokenizer padding, while inference zeroed those rows. This revision zeros only the stored padding in all 726 latent files and in empty_emb.pt. The 10 instruction-token rows (one EOS row for the empty prompt), all video latents, actions, cases, and splits are unchanged. See meta/text_padding_fix.json for the field-by-field audit and hashes.

Older checkpoints trained on the original dense-padded v2 data still require dense-padded text embeddings at serving time. The pre-fix Hugging Face revision above remains usable for reproducing that training distribution; this corrected revision is intended for new training. In the local storage layout, unchanged data/ parquet files are shared with the preserved dense-v2 backup; on the Hub, the original parquet files remain part of this same repository.

Train and Validation

The split is 290 training / 73 validation episodes, copied byte-for-byte from alfayoung/robomme_1cuben_allcases4_phase4. Every episode ID retains the same (hide_idx, swap_pairs) identity. There is no overlap, no resampling, and no separate test split.

Number of swapsTrain episodesValidation episodes
030
172
2216
36516
419449

The original assignment places all three zero-swap episodes in training. The two authoritative manifests are:

  • —splits/1cuben4_phase4_train.json
  • —splits/1cuben4_phase4_val.json

Their val_per_stratum field describes the original dataset's timing; v2 timing statistics and source hashes are in split_verification.json. Hugging Face's train and validation views use explicit parquet file lists from these manifests. Each parquet row is one raw frame; episode IDs are unchanged.

Download and Use

python
from huggingface_hub import snapshot_download

root = snapshot_download(repo_id="alfayoung/robomme_1cuben4_chunks_v2", repo_type="dataset")
python
from datasets import load_dataset

train = load_dataset("alfayoung/robomme_1cuben4_chunks_v2", split="train", streaming=True)
validation = load_dataset("alfayoung/robomme_1cuben4_chunks_v2", split="validation", streaming=True)

For the lingbot-va latent training loader, select the corresponding episode list:

python
import json
from pathlib import Path

split = json.loads((Path(root) / "splits/1cuben4_phase4_train.json").read_text())
config.episode_subset = split["episodes"]
config.empty_emb_path = str(Path(root) / "empty_emb.pt")

meta/info.json retains LeRobot's full contiguous storage range (0:363). Use split_manifests / episode_subset for the noncontiguous train/validation partition; the storage range alone does not apply the holdout.

Timing and VAE Resets

OperationLatent framesReal control steps
Scripted opening448 hold commands
Cup restoration464 hold commands
Each scripted swap464 hold commands
Robot execution reveal448 physical commands

Demo length is 4(N+2) latents and total length is 4(N+3) latents. The first latent of both demo and execution is a fresh VAE reset with 16 masked zero action slots. The reset images differ: the demo starts exposed and execution starts covered. Images are sampled at stride 4 separately within each phase. The simulator runs at 20 Hz. Raw episode length is 162+64N, with exec_start_idx=113+64N; each phase includes its initial and endpoint observations.

Contents and Verification

Included: 363 LeRobot parquet episodes (140,598 raw frames), 726 front/wrist VAE latent files, text embeddings, complete metadata, split manifests, canonical operation recordings, generation source snapshots, and execution replay evidence.

Repeated occurrences of each semantic operation have exactly identical raw images and actions. Demo arm states and actions are constant. All 363/363 exported execution sequences passed a fresh simulator replay: success by step 39, still grasped at step 48, no wrong-cup lifts. This is an oracle dataset validation result, not learned-model performance.

Both independent VAE resets and all episodes passed the actual training loader. Detailed reports: validation_report.json, replay_report.json, training_validation.json, and meta/provenance.json.

Generation instructions and implementation details: GENERATION.md. The canonical demo uses scripted cup motion and fixed simulator states; execution replay applies only the recorded physical commands without pose overrides.

Provenance

  • —Data-construction base: 43834257b703781d3aee20eb12de81b797810239.
  • —RoboMME benchmark: 789f7939b431a918d295d7298e3f45a17a945c8f.
  • —Original split revision: 553c424a0308b52b8024e7d4e6223a75a2d2a35c.
  • —Exact generation and split-preparation source hashes are recorded in the metadata.
  • —License: Apache-2.0, consistent with the original dataset.