Datasets:
The dataset viewer is not available for this split.
Error code: StreamingRowsError
Exception: CastError
Message: Couldn't cast
schema_version: int64
fps: int64
frame_start: int64
frame_end: int64
sim_to_world: struct<yaw_deg: double, origin: list<item: double>>
child 0, yaw_deg: double
child 1, origin: list<item: double>
child 0, item: double
table: struct<scale: double, origin: list<item: double>, surface_z: double, field: list<item: double>>
child 0, scale: double
child 1, origin: list<item: double>
child 0, item: double
child 2, surface_z: double
child 3, field: list<item: double>
child 0, item: double
physics: struct<schema_version: int64, simulator: string, fps: int64, frame_start: int64, frame_end: int64, d (... 824 chars omitted)
child 0, schema_version: int64
child 1, simulator: string
child 2, fps: int64
child 3, frame_start: int64
child 4, frame_end: int64
child 5, duration_sec: double
child 6, substeps_per_frame: int64
child 7, physics_dt: double
child 8, geometry: struct<table_len: double, table_width: double, mallet_radius: double, mallet_height: double, start_x (... 43 chars omitted)
child 0, table_len: double
child 1, table_width: double
child 2, mallet_radius: double
child 3, mallet_height: double
child 4, start_x: double
child 5, spacing: double
child 6, relay_y: double
child 9, objects: struct<mallet_masses: list<item: double>, mallet_restitutions: list<item: double>, mallet_frictions: (... 165 chars omitted)
child 0, mallet_masses: list<item: double>
child 0, item: double
...
child 1, to: string
child 80, mass (purple_ball): struct<from: double, to: double>
child 0, from: double
child 1, to: double
child 81, mass (yellow_ball): struct<from: double, to: double>
child 0, from: double
child 1, to: double
child 82, friction (purple_ball): struct<from: double, to: double>
child 0, from: double
child 1, to: double
child 83, purple_ball: struct<from: string, to: string>
child 0, from: string
child 1, to: string
child 16, edit_summary: string
child 17, ground_truth: string
child 18, thumbnail: string
counts: struct<scenes: int64, sources: int64, edits: int64, by_property: struct<friction: int64, initial_vel (... 174 chars omitted)
child 0, scenes: int64
child 1, sources: int64
child 2, edits: int64
child 3, by_property: struct<friction: int64, initial_velocity: int64, mass: int64, presence: int64, restitution: int64>
child 0, friction: int64
child 1, initial_velocity: int64
child 2, mass: int64
child 3, presence: int64
child 4, restitution: int64
child 4, by_kind: struct<SET: int64, DELETE: int64, ADD: int64>
child 0, SET: int64
child 1, DELETE: int64
child 2, ADD: int64
child 5, by_timing: struct<partway: int64, whole_clip: int64>
child 0, partway: int64
child 1, whole_clip: int64
benchmark_name: string
to
{'schema_version': Value('int64'), 'benchmark_name': Value('string'), 'prompts_schema': {'flavors': List(Value('string')), 'notes': Value('string')}, 'properties_vocab': List(Value('string')), 'scenes': List(Value('string')), 'counts': {'scenes': Value('int64'), 'sources': Value('int64'), 'edits': Value('int64'), 'by_property': {'friction': Value('int64'), 'initial_velocity': Value('int64'), 'mass': Value('int64'), 'presence': Value('int64'), 'restitution': Value('int64')}, 'by_kind': {'SET': Value('int64'), 'DELETE': Value('int64'), 'ADD': Value('int64')}, 'by_timing': {'partway': Value('int64'), 'whole_clip': Value('int64')}}, 'sources': List({'global_id': Value('string'), 'scene': Value('string'), 'case_id': Value('string'), 'video': Value('string'), 'duration_sec': Value('float64'), 'prompts': {'vague': {'zh': Value('string'), 'en': Value('string')}, 'quantitative': {'zh': Value('string'), 'en': Value('string')}}, 'editable_objects': List({'object_id': Value('string'), 'zh': Value('string'), 'en': Value('string'), 'properties': List(Value('string')), 'can_delete': Value('bool')})}), 'edits': List({'global_id': Value('string'), 'scene': Value('string'), 'case_id': Value('string'), 'source_case_id': Value('string'), 'source_video': Value('string'), 'edited_video': Value('string'), 'duration_sec': Value('float64'), 'prompts': {'vague': {'zh': Value('string'), 'en': Value('string')}, 'quantitative': {'zh': Value('string'), 'en': Value('string')}}, 'edit_dsl': Value('string'),
...
from': Value('string'), 'to': Value('string')}, 'mass (red_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (blue_marble)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (rolling_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'initial_velocity (rolling_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'restitution (rolling_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (small_marble)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (big_marble)': {'from': Value('float64'), 'to': Value('float64')}, 'initial_velocity (big_marble)': {'from': Value('float64'), 'to': Value('float64')}, 'restitution (small_marble)': {'from': Value('float64'), 'to': Value('float64')}, 'small_marble': {'from': Value('string'), 'to': Value('string')}, 'initial_velocity (toy_car)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (toy_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'restitution (toy_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'toy_ball': {'from': Value('string'), 'to': Value('string')}, 'mass (purple_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (yellow_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'friction (purple_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'purple_ball': {'from': Value('string'), 'to': Value('string')}}, 'edit_summary': Value('string'), 'ground_truth': Value('string'), 'thumbnail': Value('string')})}
because column names don't match
Traceback: Traceback (most recent call last):
File "/src/services/worker/src/worker/utils.py", line 147, in get_rows_or_raise
return get_rows(
dataset=dataset,
...<4 lines>...
column_names=column_names,
)
File "/src/libs/libcommon/src/libcommon/utils.py", line 272, in decorator
return func(*args, **kwargs)
File "/src/services/worker/src/worker/utils.py", line 127, in get_rows
rows_plus_one = list(itertools.islice(safe_iter(ds, dataset=dataset), rows_max_number + 1))
File "/src/services/worker/src/worker/utils.py", line 483, in safe_iter
yield from ds.decode(False) if ds.features else ds
File "/usr/local/lib/python3.14/site-packages/datasets/iterable_dataset.py", line 2840, in __iter__
for key, example in ex_iterable:
^^^^^^^^^^^
File "/usr/local/lib/python3.14/site-packages/datasets/iterable_dataset.py", line 2373, in __iter__
for key, pa_table in self._iter_arrow():
~~~~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.14/site-packages/datasets/iterable_dataset.py", line 2398, in _iter_arrow
for key, pa_table in self.ex_iterable._iter_arrow():
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.14/site-packages/datasets/iterable_dataset.py", line 536, in _iter_arrow
for key, pa_table in iterator:
^^^^^^^^
File "/usr/local/lib/python3.14/site-packages/datasets/iterable_dataset.py", line 419, in _iter_arrow
for key, pa_table in self.generate_tables_fn(**gen_kwags):
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/usr/local/lib/python3.14/site-packages/datasets/packaged_modules/json/json.py", line 343, in _generate_tables
self._cast_table(pa_table, json_field_paths=json_field_paths),
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.14/site-packages/datasets/packaged_modules/json/json.py", line 132, in _cast_table
pa_table = table_cast(pa_table, self.info.features.arrow_schema)
File "/usr/local/lib/python3.14/site-packages/datasets/table.py", line 2378, in table_cast
return cast_table_to_schema(table, schema)
File "/usr/local/lib/python3.14/site-packages/datasets/table.py", line 2306, in cast_table_to_schema
raise CastError(
...<3 lines>...
)
datasets.table.CastError: Couldn't cast
schema_version: int64
fps: int64
frame_start: int64
frame_end: int64
sim_to_world: struct<yaw_deg: double, origin: list<item: double>>
child 0, yaw_deg: double
child 1, origin: list<item: double>
child 0, item: double
table: struct<scale: double, origin: list<item: double>, surface_z: double, field: list<item: double>>
child 0, scale: double
child 1, origin: list<item: double>
child 0, item: double
child 2, surface_z: double
child 3, field: list<item: double>
child 0, item: double
physics: struct<schema_version: int64, simulator: string, fps: int64, frame_start: int64, frame_end: int64, d (... 824 chars omitted)
child 0, schema_version: int64
child 1, simulator: string
child 2, fps: int64
child 3, frame_start: int64
child 4, frame_end: int64
child 5, duration_sec: double
child 6, substeps_per_frame: int64
child 7, physics_dt: double
child 8, geometry: struct<table_len: double, table_width: double, mallet_radius: double, mallet_height: double, start_x (... 43 chars omitted)
child 0, table_len: double
child 1, table_width: double
child 2, mallet_radius: double
child 3, mallet_height: double
child 4, start_x: double
child 5, spacing: double
child 6, relay_y: double
child 9, objects: struct<mallet_masses: list<item: double>, mallet_restitutions: list<item: double>, mallet_frictions: (... 165 chars omitted)
child 0, mallet_masses: list<item: double>
child 0, item: double
...
child 1, to: string
child 80, mass (purple_ball): struct<from: double, to: double>
child 0, from: double
child 1, to: double
child 81, mass (yellow_ball): struct<from: double, to: double>
child 0, from: double
child 1, to: double
child 82, friction (purple_ball): struct<from: double, to: double>
child 0, from: double
child 1, to: double
child 83, purple_ball: struct<from: string, to: string>
child 0, from: string
child 1, to: string
child 16, edit_summary: string
child 17, ground_truth: string
child 18, thumbnail: string
counts: struct<scenes: int64, sources: int64, edits: int64, by_property: struct<friction: int64, initial_vel (... 174 chars omitted)
child 0, scenes: int64
child 1, sources: int64
child 2, edits: int64
child 3, by_property: struct<friction: int64, initial_velocity: int64, mass: int64, presence: int64, restitution: int64>
child 0, friction: int64
child 1, initial_velocity: int64
child 2, mass: int64
child 3, presence: int64
child 4, restitution: int64
child 4, by_kind: struct<SET: int64, DELETE: int64, ADD: int64>
child 0, SET: int64
child 1, DELETE: int64
child 2, ADD: int64
child 5, by_timing: struct<partway: int64, whole_clip: int64>
child 0, partway: int64
child 1, whole_clip: int64
benchmark_name: string
to
{'schema_version': Value('int64'), 'benchmark_name': Value('string'), 'prompts_schema': {'flavors': List(Value('string')), 'notes': Value('string')}, 'properties_vocab': List(Value('string')), 'scenes': List(Value('string')), 'counts': {'scenes': Value('int64'), 'sources': Value('int64'), 'edits': Value('int64'), 'by_property': {'friction': Value('int64'), 'initial_velocity': Value('int64'), 'mass': Value('int64'), 'presence': Value('int64'), 'restitution': Value('int64')}, 'by_kind': {'SET': Value('int64'), 'DELETE': Value('int64'), 'ADD': Value('int64')}, 'by_timing': {'partway': Value('int64'), 'whole_clip': Value('int64')}}, 'sources': List({'global_id': Value('string'), 'scene': Value('string'), 'case_id': Value('string'), 'video': Value('string'), 'duration_sec': Value('float64'), 'prompts': {'vague': {'zh': Value('string'), 'en': Value('string')}, 'quantitative': {'zh': Value('string'), 'en': Value('string')}}, 'editable_objects': List({'object_id': Value('string'), 'zh': Value('string'), 'en': Value('string'), 'properties': List(Value('string')), 'can_delete': Value('bool')})}), 'edits': List({'global_id': Value('string'), 'scene': Value('string'), 'case_id': Value('string'), 'source_case_id': Value('string'), 'source_video': Value('string'), 'edited_video': Value('string'), 'duration_sec': Value('float64'), 'prompts': {'vague': {'zh': Value('string'), 'en': Value('string')}, 'quantitative': {'zh': Value('string'), 'en': Value('string')}}, 'edit_dsl': Value('string'),
...
from': Value('string'), 'to': Value('string')}, 'mass (red_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (blue_marble)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (rolling_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'initial_velocity (rolling_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'restitution (rolling_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (small_marble)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (big_marble)': {'from': Value('float64'), 'to': Value('float64')}, 'initial_velocity (big_marble)': {'from': Value('float64'), 'to': Value('float64')}, 'restitution (small_marble)': {'from': Value('float64'), 'to': Value('float64')}, 'small_marble': {'from': Value('string'), 'to': Value('string')}, 'initial_velocity (toy_car)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (toy_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'restitution (toy_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'toy_ball': {'from': Value('string'), 'to': Value('string')}, 'mass (purple_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'mass (yellow_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'friction (purple_ball)': {'from': Value('float64'), 'to': Value('float64')}, 'purple_ball': {'from': Value('string'), 'to': Value('string')}}, 'edit_summary': Value('string'), 'ground_truth': Value('string'), 'thumbnail': Value('string')})}
because column names don't matchNeed help to make the dataset viewer work? Make sure to review how to configure the dataset viewer, and open a discussion for direct support.
pcve_benchmark_v1
Physics-Consistent Video Editing benchmark. 20 scenes, 20 source videos, 129 edit tasks.
Layout
benchmark_manifest.json: flat index of every source + edit; the authoritative record. Every field the evaluator needs (prompts, physics_diff, edit_summary, video/gt paths) is inlined here.scenes/{scene}/cases/{case_id}/:video.mp4-- the source (in the baseline case) or edited render.prompts.json-- redundant with the top-level manifest; kept per-case so an evaluator that iterates directories has everything local.ground_truth_transforms.json-- per-frame world matrices, linear/angular velocities and any object-specific quality metrics the physics sim produced. Use these for physics-consistency metrics; skip them if you are only doing pixel/perceptual eval.
thumbnails/{scene}/{case_id}.jpg: mid-frame preview per case.splits/all.txt: every edit'sglobal_id, one per line.splits/by_property/: same, bucketed by the edited property (mass / friction / restitution / initial_velocity / presence for DELETE and ADD edits, which both move an object along the present/absent axis).splits/by_timing/: same, bucketed by when the edit takes effect --whole_clip.txtfor edits that hold from the first frame, andpartway.txtfor edits that land atapplies_from_frame, where the frames before it are supposed to match the source video exactly.
Prompts
Each edit has 4 flavors under prompts:
vague.zh/vague.en: direction-only ("调大一点" / "Decrease X").quantitative.zh/quantitative.en: includesfromandtonumbers.
Every prompt opens by saying when the edit takes effect, because that is
part of the instruction: "From frame 1 onwards" / "From the start of the
clip" for the whole-clip edits, and "From frame 22 onwards" / "Early in
the clip" for one that lands partway through. applies_from_frame in the
manifest is the same fact in machine-readable form.
Task
Given (source_video, prompt), generate a video that matches
edited_video. Compare against ground_truth_transforms.json for
per-frame object trajectories, or against edited_video for pixel /
perceptual metrics.
Counts
- Edits by kind: {'ADD': 7, 'DELETE': 30, 'SET': 92}
- Edits by timing: {'partway': 15, 'whole_clip': 117}
- Edits by property: {'friction': 21, 'initial_velocity': 26, 'mass': 32, 'presence': 40, 'restitution': 13}
- Downloads last month
- 145