futurefantasy commited on
Commit
039bd91
·
verified ·
1 Parent(s): 4bde30c

Simplify release examples and trim README content

Browse files
README.md CHANGED
@@ -1,7 +1,6 @@
1
  ---
2
  library_name: transformers
3
  pipeline_tag: image-text-to-text
4
- base_model: Qwen/Qwen3-VL-30B-A3B-Instruct
5
  tags:
6
  - robotics
7
  - video-understanding
@@ -13,20 +12,13 @@ tags:
13
 
14
  VLAC-Cut is a video-language progress estimation model for robotic manipulation. Given a task description and a video, it predicts time-progress keypoints that can be aligned into a progress curve.
15
 
16
- This release contains the inference-ready model weights, tokenizer and processor files, three bundled demo episodes, reference prediction outputs, and minimal local inference utilities.
17
-
18
- ## Model
19
-
20
- - Base model: `Qwen/Qwen3-VL-30B-A3B-Instruct`
21
- - Architecture: `Qwen3VLMoeForConditionalGeneration`
22
- - Recommended VLAC model type in local evaluation scripts: `qwen3_moe_vl`
23
- - Bundled quick start defaults to the `chunk_all` prompt and `2 Hz` video sampling
24
 
25
  ## Highlights
26
 
27
  - Progress estimation for long-horizon manipulation videos
28
  - Rollback and regression recognition in non-expert trajectories
29
- - Bundled demos for both expert and non-expert episodes
30
 
31
  ## Use with Transformers
32
 
@@ -71,6 +63,6 @@ python quick_start/render_prediction_video.py \
71
  --input-jsonl quick_start/outputs/video.jsonl
72
  ```
73
 
74
- Bundled videos under `examples/` can be used with the same interface by passing the video path and prompt text directly.
75
 
76
  More detailed usage is provided in `quick_start/README.md`.
 
1
  ---
2
  library_name: transformers
3
  pipeline_tag: image-text-to-text
 
4
  tags:
5
  - robotics
6
  - video-understanding
 
12
 
13
  VLAC-Cut is a video-language progress estimation model for robotic manipulation. Given a task description and a video, it predicts time-progress keypoints that can be aligned into a progress curve.
14
 
15
+ This release contains the inference-ready model weights, tokenizer and processor files, three example videos, reference prediction outputs, and minimal local inference utilities.
 
 
 
 
 
 
 
16
 
17
  ## Highlights
18
 
19
  - Progress estimation for long-horizon manipulation videos
20
  - Rollback and regression recognition in non-expert trajectories
21
+ - Example videos from both expert and non-expert trajectories
22
 
23
  ## Use with Transformers
24
 
 
63
  --input-jsonl quick_start/outputs/video.jsonl
64
  ```
65
 
66
+ Videos under `examples/` can be used with the same interface by passing the video path and prompt text directly.
67
 
68
  More detailed usage is provided in `quick_start/README.md`.
examples/example_01/metadata.json DELETED
@@ -1,316 +0,0 @@
1
- {
2
- "example_id": "example_01",
3
- "bucket": "test_nonexpert_seen",
4
- "global_episode_id": "ARX-data/human-data-1204-2cameras/20251130-162433-bad-purple cube-shaped building block/videos/chunk-000/observation.images.front/episode_000007",
5
- "main_path": "ARX-data/human-data-1204-2cameras/20251130-162433-bad-purple cube-shaped building block/videos/chunk-000/observation.images.front/episode_000007",
6
- "task_instruction": "抓取紫色方块使其从方形洞口落入积木桶中",
7
- "task_description": "抓取紫色方块使其从方形洞口落入积木桶中:\n爪夹开始移动:0%\n爪夹接近紫色方块:20%\n爪夹抓紧紫色方块:40%\n爪夹抓紧紫色方块接近方形洞口:60%\n爪夹将紫色方块对准方形洞口:80%\n紫色方块从方形洞口落入积木桶中,爪夹移开:100%",
8
- "fps": 30.0,
9
- "is_expert": false,
10
- "num_frames": 258,
11
- "final_gt_progress": -10.0,
12
- "video_path": "examples/example_01/episode.mp4",
13
- "benchmark_progress_type": "dense_kinematic_progress",
14
- "benchmark_dense_progress": [
15
- 0.0,
16
- 0.0,
17
- 0.0,
18
- 0.0,
19
- 0.0,
20
- 0.0,
21
- 0.0,
22
- 0.0,
23
- 0.0,
24
- 0.0,
25
- 0.0,
26
- 0.0,
27
- 0.0,
28
- 0.0,
29
- 0.0,
30
- 0.0,
31
- 0.0,
32
- 0.0,
33
- 0.0,
34
- 0.0,
35
- 0.0,
36
- 0.0,
37
- 0.0,
38
- 0.0,
39
- 0.0,
40
- 0.0,
41
- 0.0,
42
- 0.0,
43
- 0.0,
44
- 0.0,
45
- 0.0,
46
- 0.0,
47
- 0.0,
48
- 0.0,
49
- 0.0,
50
- 0.0,
51
- 0.0,
52
- 0.0,
53
- 0.0,
54
- 0.0,
55
- 0.0,
56
- 0.0,
57
- 0.0,
58
- 0.0,
59
- 0.0,
60
- 0.0,
61
- 0.0,
62
- 0.0,
63
- 0.0,
64
- 0.0,
65
- 0.2,
66
- 0.4,
67
- 0.6,
68
- 0.8,
69
- 1.0,
70
- 1.2,
71
- 1.4,
72
- 1.6,
73
- 1.8,
74
- 2.0,
75
- 2.2,
76
- 2.4,
77
- 2.6,
78
- 2.8,
79
- 3.0,
80
- 3.2,
81
- 3.4,
82
- 3.6,
83
- 3.8,
84
- 4.0,
85
- 4.2,
86
- 4.4,
87
- 4.6,
88
- 4.8,
89
- 5.0,
90
- 5.4,
91
- 5.8,
92
- 6.2,
93
- 6.5,
94
- 6.9,
95
- 7.3,
96
- 7.7,
97
- 8.1,
98
- 8.5,
99
- 8.8,
100
- 9.2,
101
- 9.6,
102
- 10.0,
103
- 10.1,
104
- 10.2,
105
- 10.3,
106
- 10.4,
107
- 10.5,
108
- 10.6,
109
- 10.7,
110
- 10.9,
111
- 11.0,
112
- 11.1,
113
- 11.2,
114
- 11.3,
115
- 11.4,
116
- 11.5,
117
- 11.6,
118
- 11.7,
119
- 11.8,
120
- 11.9,
121
- 12.0,
122
- 12.1,
123
- 12.2,
124
- 12.3,
125
- 12.4,
126
- 12.6,
127
- 12.7,
128
- 12.8,
129
- 12.9,
130
- 13.0,
131
- 13.1,
132
- 13.2,
133
- 13.3,
134
- 13.4,
135
- 13.5,
136
- 13.6,
137
- 13.7,
138
- 13.8,
139
- 13.9,
140
- 14.0,
141
- 14.1,
142
- 14.3,
143
- 14.4,
144
- 14.5,
145
- 14.6,
146
- 14.7,
147
- 14.8,
148
- 14.9,
149
- 15.0,
150
- 14.9,
151
- 14.9,
152
- 14.8,
153
- 14.8,
154
- 14.7,
155
- 14.7,
156
- 14.6,
157
- 14.6,
158
- 14.5,
159
- 14.5,
160
- 14.4,
161
- 14.4,
162
- 14.3,
163
- 14.3,
164
- 14.2,
165
- 14.2,
166
- 14.1,
167
- 14.1,
168
- 14.0,
169
- 14.0,
170
- 13.9,
171
- 13.9,
172
- 13.8,
173
- 13.8,
174
- 13.7,
175
- 13.7,
176
- 13.6,
177
- 13.6,
178
- 13.5,
179
- 13.5,
180
- 13.4,
181
- 13.4,
182
- 13.3,
183
- 13.3,
184
- 13.2,
185
- 13.2,
186
- 13.1,
187
- 13.1,
188
- 13.0,
189
- 10.8,
190
- 8.7,
191
- 6.5,
192
- 4.4,
193
- 2.2,
194
- 0.1,
195
- -2.1,
196
- -4.2,
197
- -6.4,
198
- -8.5,
199
- -10.7,
200
- -12.8,
201
- -15.0,
202
- -15.4,
203
- -15.9,
204
- -16.3,
205
- -16.8,
206
- -17.2,
207
- -17.6,
208
- -18.1,
209
- -18.5,
210
- -19.0,
211
- -19.4,
212
- -19.9,
213
- -20.3,
214
- -20.7,
215
- -21.2,
216
- -21.6,
217
- -22.1,
218
- -22.5,
219
- -22.9,
220
- -23.4,
221
- -23.8,
222
- -24.3,
223
- -24.7,
224
- -25.1,
225
- -25.6,
226
- -26.0,
227
- -26.5,
228
- -26.9,
229
- -27.4,
230
- -27.8,
231
- -28.2,
232
- -28.7,
233
- -29.1,
234
- -29.6,
235
- -30.0,
236
- -29.5,
237
- -28.9,
238
- -28.4,
239
- -27.9,
240
- -27.4,
241
- -26.8,
242
- -26.3,
243
- -25.8,
244
- -25.3,
245
- -24.7,
246
- -24.2,
247
- -23.7,
248
- -23.2,
249
- -22.6,
250
- -22.1,
251
- -21.6,
252
- -21.1,
253
- -20.5,
254
- -20.0,
255
- -19.4,
256
- -18.9,
257
- -18.3,
258
- -17.8,
259
- -17.2,
260
- -16.7,
261
- -16.1,
262
- -15.6,
263
- -15.0,
264
- -14.4,
265
- -13.9,
266
- -13.3,
267
- -12.8,
268
- -12.2,
269
- -11.7,
270
- -11.1,
271
- -10.6,
272
- -10.0
273
- ],
274
- "benchmark_semantic_anchors": [
275
- {
276
- "frame": 49,
277
- "progress": 0.0
278
- },
279
- {
280
- "frame": 74,
281
- "progress": 5.0
282
- },
283
- {
284
- "frame": 87,
285
- "progress": 10.0
286
- },
287
- {
288
- "frame": 134,
289
- "progress": 15.0
290
- },
291
- {
292
- "frame": 173,
293
- "progress": 13.0
294
- },
295
- {
296
- "frame": 186,
297
- "progress": -15.0
298
- },
299
- {
300
- "frame": 220,
301
- "progress": -30.0
302
- },
303
- {
304
- "frame": 239,
305
- "progress": -20.0
306
- },
307
- {
308
- "frame": 257,
309
- "progress": -10.0
310
- }
311
- ],
312
- "benchmark_progress_source": {
313
- "bucket": "test_nonexpert_seen",
314
- "global_episode_id": "ARX-data/human-data-1204-2cameras/20251130-162433-bad-purple cube-shaped building block/videos/chunk-000/observation.images.front/episode_000007"
315
- }
316
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
examples/example_02/metadata.json DELETED
@@ -1,335 +0,0 @@
1
- {
2
- "example_id": "example_02",
3
- "bucket": "test_nonexpert_unseen",
4
- "global_episode_id": "ARX-data/human-data-1204-2cameras/20251128-183101-bad-onion-express-box/videos/chunk-000/observation.images.front/episode_000000",
5
- "main_path": "ARX-data/human-data-1204-2cameras/20251128-183101-bad-onion-express-box/videos/chunk-000/observation.images.front/episode_000000",
6
- "task_instruction": "把洋葱放进快递箱里。",
7
- "task_description": "把洋葱放进快递箱里。\n开始移动:0%\n爪夹靠近洋葱:20%\n爪夹抓取洋葱:40%\n爪夹抓住洋葱接近快递箱:60%\n爪夹将洋葱放入快递箱:80%\n爪夹松开,洋葱落入快递箱:100%",
8
- "fps": 30.0,
9
- "is_expert": false,
10
- "num_frames": 289,
11
- "final_gt_progress": -10.0,
12
- "video_path": "examples/example_02/episode.mp4",
13
- "benchmark_progress_type": "dense_kinematic_progress",
14
- "benchmark_dense_progress": [
15
- 0.0,
16
- 0.1,
17
- 0.3,
18
- 0.4,
19
- 0.6,
20
- 0.7,
21
- 0.9,
22
- 1.0,
23
- 1.1,
24
- 1.3,
25
- 1.4,
26
- 1.6,
27
- 1.7,
28
- 1.9,
29
- 2.0,
30
- 2.1,
31
- 2.3,
32
- 2.4,
33
- 2.6,
34
- 2.7,
35
- 2.9,
36
- 3.0,
37
- 3.1,
38
- 3.3,
39
- 3.4,
40
- 3.6,
41
- 3.7,
42
- 3.9,
43
- 4.0,
44
- 4.1,
45
- 4.3,
46
- 4.4,
47
- 4.6,
48
- 4.7,
49
- 4.9,
50
- 5.0,
51
- 5.1,
52
- 5.3,
53
- 5.4,
54
- 5.6,
55
- 5.7,
56
- 5.9,
57
- 6.0,
58
- 6.1,
59
- 6.3,
60
- 6.4,
61
- 6.6,
62
- 6.7,
63
- 6.9,
64
- 7.0,
65
- 7.1,
66
- 7.3,
67
- 7.4,
68
- 7.6,
69
- 7.7,
70
- 7.9,
71
- 8.0,
72
- 8.1,
73
- 8.3,
74
- 8.4,
75
- 8.6,
76
- 8.7,
77
- 8.9,
78
- 9.0,
79
- 9.1,
80
- 9.3,
81
- 9.4,
82
- 9.6,
83
- 9.7,
84
- 9.9,
85
- 10.0,
86
- 10.1,
87
- 10.3,
88
- 10.4,
89
- 10.5,
90
- 10.7,
91
- 10.8,
92
- 10.9,
93
- 11.1,
94
- 11.2,
95
- 11.3,
96
- 11.5,
97
- 11.6,
98
- 11.7,
99
- 11.9,
100
- 12.0,
101
- 12.1,
102
- 12.3,
103
- 12.4,
104
- 12.5,
105
- 12.7,
106
- 12.8,
107
- 12.9,
108
- 13.1,
109
- 13.2,
110
- 13.3,
111
- 13.5,
112
- 13.6,
113
- 13.7,
114
- 13.9,
115
- 14.0,
116
- 14.1,
117
- 14.3,
118
- 14.4,
119
- 14.5,
120
- 14.7,
121
- 14.8,
122
- 14.9,
123
- 15.1,
124
- 15.2,
125
- 15.3,
126
- 15.5,
127
- 15.6,
128
- 15.7,
129
- 15.9,
130
- 16.0,
131
- 16.1,
132
- 16.3,
133
- 16.4,
134
- 16.5,
135
- 16.7,
136
- 16.8,
137
- 16.9,
138
- 17.1,
139
- 17.2,
140
- 17.3,
141
- 17.5,
142
- 17.6,
143
- 17.7,
144
- 17.9,
145
- 18.0,
146
- 17.6,
147
- 17.2,
148
- 16.8,
149
- 16.4,
150
- 16.0,
151
- 15.6,
152
- 15.2,
153
- 14.8,
154
- 14.3,
155
- 13.9,
156
- 13.5,
157
- 13.1,
158
- 12.7,
159
- 12.3,
160
- 11.9,
161
- 11.5,
162
- 11.1,
163
- 10.7,
164
- 10.3,
165
- 9.9,
166
- 9.5,
167
- 9.1,
168
- 8.7,
169
- 8.2,
170
- 7.8,
171
- 7.4,
172
- 7.0,
173
- 6.6,
174
- 6.2,
175
- 5.8,
176
- 5.4,
177
- 5.0,
178
- 4.9,
179
- 4.7,
180
- 4.6,
181
- 4.5,
182
- 4.4,
183
- 4.2,
184
- 4.1,
185
- 4.0,
186
- 3.8,
187
- 3.7,
188
- 3.6,
189
- 3.5,
190
- 3.3,
191
- 3.2,
192
- 3.1,
193
- 2.9,
194
- 2.8,
195
- 2.7,
196
- 2.6,
197
- 2.4,
198
- 2.3,
199
- 2.2,
200
- 2.1,
201
- 1.9,
202
- 1.8,
203
- 1.7,
204
- 1.5,
205
- 1.4,
206
- 1.3,
207
- 1.2,
208
- 1.0,
209
- 0.9,
210
- 0.8,
211
- 0.6,
212
- 0.5,
213
- 0.4,
214
- 0.3,
215
- 0.1,
216
- 0.0,
217
- -0.1,
218
- -0.3,
219
- -0.4,
220
- -0.5,
221
- -0.6,
222
- -0.8,
223
- -0.9,
224
- -1.0,
225
- -1.2,
226
- -1.3,
227
- -1.4,
228
- -1.5,
229
- -1.7,
230
- -1.8,
231
- -1.9,
232
- -2.1,
233
- -2.2,
234
- -2.3,
235
- -2.4,
236
- -2.6,
237
- -2.7,
238
- -2.8,
239
- -2.9,
240
- -3.1,
241
- -3.2,
242
- -3.3,
243
- -3.5,
244
- -3.6,
245
- -3.7,
246
- -3.8,
247
- -4.0,
248
- -4.1,
249
- -4.2,
250
- -4.4,
251
- -4.5,
252
- -4.6,
253
- -4.7,
254
- -4.9,
255
- -5.0,
256
- -5.2,
257
- -5.3,
258
- -5.5,
259
- -5.6,
260
- -5.8,
261
- -5.9,
262
- -6.1,
263
- -6.2,
264
- -6.4,
265
- -6.6,
266
- -6.7,
267
- -6.9,
268
- -7.0,
269
- -7.2,
270
- -7.3,
271
- -7.5,
272
- -7.7,
273
- -7.8,
274
- -8.0,
275
- -8.1,
276
- -8.3,
277
- -8.4,
278
- -8.6,
279
- -8.8,
280
- -8.9,
281
- -9.1,
282
- -9.2,
283
- -9.4,
284
- -9.5,
285
- -9.7,
286
- -9.8,
287
- -10.0,
288
- -10.0,
289
- -10.0,
290
- -10.0,
291
- -10.0,
292
- -10.0,
293
- -10.0,
294
- -10.0,
295
- -10.0,
296
- -10.0,
297
- -10.0,
298
- -10.0,
299
- -10.0,
300
- -10.0,
301
- -10.0,
302
- -10.0,
303
- -10.0
304
- ],
305
- "benchmark_semantic_anchors": [
306
- {
307
- "frame": 0,
308
- "progress": 0.0
309
- },
310
- {
311
- "frame": 70,
312
- "progress": 10.0
313
- },
314
- {
315
- "frame": 130,
316
- "progress": 18.0
317
- },
318
- {
319
- "frame": 162,
320
- "progress": 5.0
321
- },
322
- {
323
- "frame": 240,
324
- "progress": -5.0
325
- },
326
- {
327
- "frame": 272,
328
- "progress": -10.0
329
- }
330
- ],
331
- "benchmark_progress_source": {
332
- "bucket": "test_nonexpert_unseen",
333
- "global_episode_id": "ARX-data/human-data-1204-2cameras/20251128-183101-bad-onion-express-box/videos/chunk-000/observation.images.front/episode_000000"
334
- }
335
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
examples/example_03/metadata.json DELETED
@@ -1,20 +0,0 @@
1
- {
2
- "example_id": "example_03",
3
- "bucket": "test_expert_seen",
4
- "global_episode_id": "ARX-data/human-data-0114/20260112-yuanshuaijun/20260111-204118-put-triangular-beaker-onto-tripod-good2/videos/chunk-000/observation.images.front/episode_000002",
5
- "main_path": "ARX-data/human-data-0114/20260112-yuanshuaijun/20260111-204118-put-triangular-beaker-onto-tripod-good2/videos/chunk-000/observation.images.front/episode_000002",
6
- "task_instruction": "将三角烧杯放在三脚架上。",
7
- "task_description": "将三角烧杯放在三脚架上。\n爪夹准备移动:0%\n爪夹开始移动:10%\n爪夹靠近三角烧杯:20%\n爪夹抓取三角烧杯:40%\n爪夹合拢并靠近三脚架:60%\n爪夹移动到三脚架的正上方:80%\n爪夹松开,三角烧杯落在三脚架上:100%",
8
- "fps": 30.0,
9
- "is_expert": true,
10
- "num_frames": 172,
11
- "final_gt_progress": 100.0,
12
- "video_path": "examples/example_03/episode.mp4",
13
- "benchmark_progress_type": "dense_kinematic_progress",
14
- "benchmark_dense_progress": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.2, 2.5, 3.8, 5.0, 6.2, 7.5, 8.8, 10.0, 10.7, 11.4, 12.1, 12.9, 13.6, 14.3, 15.0, 15.7, 16.4, 17.1, 17.9, 18.6, 19.3, 20.0, 20.5, 21.0, 21.5, 22.0, 22.5, 23.0, 23.5, 24.0, 24.5, 25.0, 25.5, 26.0, 26.5, 27.0, 27.5, 28.0, 28.5, 29.0, 29.5, 30.0, 30.6, 31.1, 31.7, 32.2, 32.8, 33.3, 33.9, 34.4, 35.0, 35.6, 36.1, 36.7, 37.2, 37.8, 38.3, 38.9, 39.4, 40.0, 40.5, 41.0, 41.4, 41.9, 42.4, 42.9, 43.3, 43.8, 44.3, 44.8, 45.2, 45.7, 46.2, 46.7, 47.1, 47.6, 48.1, 48.6, 49.0, 49.5, 50.0, 50.4, 50.8, 51.2, 51.7, 52.1, 52.5, 52.9, 53.3, 53.8, 54.2, 54.6, 55.0, 55.4, 55.8, 56.2, 56.7, 57.1, 57.5, 57.9, 58.3, 58.8, 59.2, 59.6, 60.0, 61.1, 62.1, 63.2, 64.2, 65.3, 66.3, 67.4, 68.4, 69.5, 70.5, 71.6, 72.6, 73.7, 74.7, 75.8, 76.8, 77.9, 78.9, 80.0, 80.7, 81.5, 82.2, 83.0, 83.7, 84.4, 85.2, 85.9, 86.7, 87.4, 88.1, 88.9, 89.6, 90.4, 91.1, 91.9, 92.6, 93.3, 94.1, 94.8, 95.6, 96.3, 97.0, 97.8, 98.5, 99.3, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0],
15
- "benchmark_semantic_anchors": [{"frame": 8, "progress": 0.0}, {"frame": 16, "progress": 10.0}, {"frame": 30, "progress": 20.0}, {"frame": 50, "progress": 30.0}, {"frame": 68, "progress": 40.0}, {"frame": 89, "progress": 50.0}, {"frame": 113, "progress": 60.0}, {"frame": 132, "progress": 80.0}, {"frame": 159, "progress": 100.0}],
16
- "benchmark_progress_source": {
17
- "bucket": "test_expert_seen",
18
- "global_episode_id": "ARX-data/human-data-0114/20260112-yuanshuaijun/20260111-204118-put-triangular-beaker-onto-tripod-good2/videos/chunk-000/observation.images.front/episode_000002"
19
- }
20
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
examples/examples_manifest.json DELETED
@@ -1,25 +0,0 @@
1
- {
2
- "examples": [
3
- {
4
- "example_id": "example_01",
5
- "bucket": "test_nonexpert_seen",
6
- "task_instruction": "抓取紫色方块使其从方形洞口落入积木桶中",
7
- "video_path": "examples/example_01/episode.mp4",
8
- "metadata_path": "examples/example_01/metadata.json"
9
- },
10
- {
11
- "example_id": "example_02",
12
- "bucket": "test_nonexpert_unseen",
13
- "task_instruction": "把洋葱放进快递箱里。",
14
- "video_path": "examples/example_02/episode.mp4",
15
- "metadata_path": "examples/example_02/metadata.json"
16
- },
17
- {
18
- "example_id": "example_03",
19
- "bucket": "test_expert_seen",
20
- "task_instruction": "将三角烧杯放在三脚架上。",
21
- "video_path": "examples/example_03/episode.mp4",
22
- "metadata_path": "examples/example_03/metadata.json"
23
- }
24
- ]
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
examples/reference_outputs/example_01.jsonl CHANGED
@@ -1 +1 @@
1
- {"example_id": "example_01", "bucket": "test_nonexpert_seen", "global_episode_id": "ARX-data/human-data-1204-2cameras/20251130-162433-bad-purple cube-shaped building block/videos/chunk-000/observation.images.front/episode_000007", "task_instruction": "抓取紫色方块使其从方形洞口落入积木桶中", "task_description": "抓取紫色方块使其从方形洞口落入积木桶中:\n爪夹开始移动:0%\n爪夹接近紫色方块:20%\n爪夹抓紧紫色方块:40%\n爪夹抓紧紫色方块接近方形洞口:60%\n爪夹将紫色方块对准方形洞口:80%\n紫色方块从方形洞口落入积木桶中,爪夹移开:100%", "prompt_variant": "chunk_all", "input_sample_hz": 2.0, "input_frame_indices_2hz": [0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255], "input_timestamps_sec_2hz": [0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5], "input_frame_count_2hz": 18, "decoded_video_stats": {"decoded_frame_count": 258.0, "decoded_avg_fps": 30.0}, "prompt": "任务描述和具体规划: 抓取紫色方块使其从方形洞口落入积木桶中\n爪夹开始移动:0%\n爪夹接近紫色方块:20%\n爪夹抓紧紫色方块:40%\n爪夹抓紧紫色方块接近方形洞口:60%\n爪夹将紫色方块对准方形洞口:80%\n紫色方块从方形洞口落入积木桶中,爪夹移开:100%\n\n请根据任务描述和具体规划,找到并逐点生成视频中的关键动作点和相应的进度标注。输出格式要求:每个关键点一行,格式为:\n时间: X.Xs, 进度: Y%\n\n请严格按照上述格式输出,不要输出额外说明。", "response": "时间: 1.3s, 进度: 0%\n时间: 2.7s, 进度: 10%\n时间: 3.7s, 进度: 15%\n时间: 5.5s, 进度: 10%\n时间: 6.3s, 进度: -15%\n时间: 7.1s, 进度: -25%\n时间: 8.0s, 进度: -15%", "pred_curve_parse_ok": true, "pred_curve_point_times_sec": [1.3, 2.7, 3.7, 5.5, 6.3, 7.1, 8.0], "pred_curve_point_progress": [0.0, 10.0, 15.0, 10.0, -15.0, -25.0, -15.0], "video_path": "examples/example_01/episode.mp4", "preview_video_path": "examples/reference_outputs/example_01_pred_progress.mp4"}
 
1
+ {"task_instruction": "抓取紫色方块使其从方形洞口落入积木桶中", "task_plan": "爪夹开始移动:0%\n爪夹接近紫色方块:20%\n爪夹抓紧紫色方块:40%\n爪夹抓紧紫色方块接近方形洞口:60%\n爪夹将紫色方块对准方形洞口:80%\n紫色方块从方形洞口落入积木桶中,爪夹移开:100%", "video_path": "examples/example_01/episode.mp4", "prompt_source": "task_instruction_plus_plan", "prompt_variant": "chunk_all", "input_sample_hz": 2.0, "input_frame_indices": [0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255], "input_timestamps_sec": [0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5], "input_frame_count": 18, "decoded_video_stats": {"decoded_frame_count": 258.0, "decoded_avg_fps": 30.0, "decoded_duration_sec": 8.566667}, "prompt": "任务描述和具体规划: 抓取紫色方块使其从方形洞口落入积木桶中\n爪夹开始移动:0%\n爪夹接近紫色方块:20%\n爪夹抓紧紫色方块:40%\n爪夹抓紧紫色方块接近方形洞口:60%\n爪夹将紫色方块对准方形洞口:80%\n紫色方块从方形洞口落入积木桶中,爪夹移开:100%\n\n请根据任务描述和具体规划,找到并逐点生成视频中的关键动作点和相应的进度标注。输出格式要求:每个关键点一行,格式为:\n时间: X.Xs, 进度: Y%\n\n请严格按照上述格式输出,不要输出额外说明。", "response": "时间: 1.3s, 进度: 0%\n时间: 2.7s, 进度: 10%\n时间: 3.7s, 进度: 15%\n时间: 5.5s, 进度: 10%\n时间: 6.3s, 进度: -15%\n时间: 7.1s, 进度: -25%\n时间: 8.0s, 进度: -15%", "pred_curve_parse_ok": true, "pred_curve_point_times_sec": [1.3, 2.7, 3.7, 5.5, 6.3, 7.1, 8.0], "pred_curve_point_progress": [0.0, 10.0, 15.0, 10.0, -15.0, -25.0, -15.0], "preview_video_path": "examples/reference_outputs/example_01_pred_progress.mp4"}
examples/reference_outputs/example_02.jsonl CHANGED
@@ -1 +1 @@
1
- {"example_id": "example_02", "bucket": "test_nonexpert_unseen", "global_episode_id": "ARX-data/human-data-1204-2cameras/20251128-183101-bad-onion-express-box/videos/chunk-000/observation.images.front/episode_000000", "task_instruction": "把洋葱放进快递箱里。", "task_description": "把洋葱放进快递箱里。\n开始移动:0%\n爪夹靠近洋葱:20%\n爪夹抓取洋葱:40%\n爪夹抓住洋葱接近快递箱:60%\n爪夹将洋葱放入快递箱:80%\n爪夹松开,洋葱落入快递箱:100%", "prompt_variant": "chunk_all", "input_sample_hz": 2.0, "input_frame_indices_2hz": [0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285], "input_timestamps_sec_2hz": [0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5], "input_frame_count_2hz": 20, "decoded_video_stats": {"decoded_frame_count": 289.0, "decoded_avg_fps": 30.0}, "prompt": "任务描述和具体规划: 把洋葱放进快递箱里。\n开始移动:0%\n爪夹靠近洋葱:20%\n爪夹抓取洋葱:40%\n爪夹抓住洋葱接近快递箱:60%\n爪夹将洋葱放入快递箱:80%\n爪夹松开,洋葱落入快递箱:100%\n\n请根据任务描述和具体规划,找到并逐点生成视频中的关键动作点和相应的进度标注。输出格式要求:每个关键点一行,格式为:\n时间: X.Xs, 进度: Y%\n\n请严格按照上述格式输出,不要输出额外说明。", "response": "时间: 0.0s, 进度: 0%\n时间: 2.3s, 进度: 5%\n时间: 3.3s, 进度: 8%\n时间: 4.3s, 进度: 10%\n时间: 5.1s, 进度: -5%\n时间: 6.1s, 进度: -8%\n时间: 7.1s, 进度: -2%\n时间: 8.3s, 进度: 2%\n时间: 9.5s, 进度: 4%", "pred_curve_parse_ok": true, "pred_curve_point_times_sec": [0.0, 2.3, 3.3, 4.3, 5.1, 6.1, 7.1, 8.3, 9.5], "pred_curve_point_progress": [0.0, 5.0, 8.0, 10.0, -5.0, -8.0, -2.0, 2.0, 4.0], "video_path": "examples/example_02/episode.mp4", "preview_video_path": "examples/reference_outputs/example_02_pred_progress.mp4"}
 
1
+ {"task_instruction": "把洋葱放进快递箱里。", "task_plan": "开始移动:0%\n爪夹靠近洋葱:20%\n爪夹抓取洋葱:40%\n爪夹抓住洋葱接近快递箱:60%\n爪夹将洋葱放入快递箱:80%\n爪夹松开,洋葱落入快递箱:100%", "video_path": "examples/example_02/episode.mp4", "prompt_source": "task_instruction_plus_plan", "prompt_variant": "chunk_all", "input_sample_hz": 2.0, "input_frame_indices": [0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285], "input_timestamps_sec": [0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5], "input_frame_count": 20, "decoded_video_stats": {"decoded_frame_count": 289.0, "decoded_avg_fps": 30.0, "decoded_duration_sec": 9.6}, "prompt": "任务描述和具体规划: 把洋葱放进快递箱里。\n开始移动:0%\n爪夹靠近洋葱:20%\n爪夹抓取洋葱:40%\n爪夹抓住洋葱接近快递箱:60%\n爪夹将洋葱放入快递箱:80%\n爪夹松开,洋葱落入快递箱:100%\n\n请根据任务描述和具体规划,找到并逐点生成视频中的关键动作点和相应的进度标注。输出格式要求:每个关键点一行,格式为:\n时间: X.Xs, 进度: Y%\n\n请严格按照上述格式输出,不要输出额外说明。", "response": "时间: 0.0s, 进度: 0%\n时间: 2.3s, 进度: 5%\n时间: 3.3s, 进度: 8%\n时间: 4.3s, 进度: 10%\n时间: 5.1s, 进度: -5%\n时间: 6.1s, 进度: -8%\n时间: 7.1s, 进度: -2%\n时间: 8.3s, 进度: 2%\n时间: 9.5s, 进度: 4%", "pred_curve_parse_ok": true, "pred_curve_point_times_sec": [0.0, 2.3, 3.3, 4.3, 5.1, 6.1, 7.1, 8.3, 9.5], "pred_curve_point_progress": [0.0, 5.0, 8.0, 10.0, -5.0, -8.0, -2.0, 2.0, 4.0], "preview_video_path": "examples/reference_outputs/example_02_pred_progress.mp4"}
examples/reference_outputs/example_03.jsonl CHANGED
@@ -1 +1 @@
1
- {"example_id": "example_03", "bucket": "test_expert_seen", "global_episode_id": "ARX-data/human-data-0114/20260112-yuanshuaijun/20260111-204118-put-triangular-beaker-onto-tripod-good2/videos/chunk-000/observation.images.front/episode_000002", "task_instruction": "将三角烧杯放在三脚架上。", "task_description": "将三角烧杯放在三脚架上。\n爪夹准备移动:0%\n爪夹开始移动:10%\n爪夹靠近三角烧杯:20%\n爪夹抓取三角烧杯:40%\n爪夹合拢并靠近三脚架:60%\n爪夹移动到三脚架的正上方:80%\n爪夹松开,三角烧杯落在三脚架上:100%", "prompt_variant": "chunk_all", "input_sample_hz": 2.0, "input_frame_indices_2hz": [0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165], "input_timestamps_sec_2hz": [0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5], "input_frame_count_2hz": 12, "decoded_video_stats": {"decoded_frame_count": 172.0, "decoded_avg_fps": 30.0}, "prompt": "任务描述和具体规划: 将三角烧杯放在三脚架上。\n爪夹准备移动:0%\n爪夹开始移动:10%\n爪夹靠近三角烧杯:20%\n爪夹抓取三角烧杯:40%\n爪夹合拢并靠近三脚架:60%\n爪夹移动到三脚架的正上方:80%\n爪夹松开,三角烧杯落在三脚架上:100%\n\n请根据任务描述和具体规划,找到并逐点生成视频中的关键动作点和相应的进度标注。输出格式要求:每个关键点一行,格式为:\n时间: X.Xs, 进度: Y%\n\n请严格按照上述格式输出,不要输出额外说明。", "response": "时间: 0.1s, 进度: 0%\n时间: 0.6s, 进度: 10%\n时间: 1.1s, 进度: 20%\n时间: 1.6s, 进度: 30%\n时间: 2.3s, 进度: 40%\n时间: 3.4s, 进度: 60%\n时间: 4.1s, 进度: 80%\n时间: 5.3s, 进度: 100%", "pred_curve_parse_ok": true, "pred_curve_point_times_sec": [0.1, 0.6, 1.1, 1.6, 2.3, 3.4, 4.1, 5.3], "pred_curve_point_progress": [0.0, 10.0, 20.0, 30.0, 40.0, 60.0, 80.0, 100.0], "video_path": "examples/example_03/episode.mp4", "preview_video_path": "examples/reference_outputs/example_03_pred_progress.mp4"}
 
1
+ {"task_instruction": "将三角烧杯放在三脚架上。", "task_plan": "爪夹准备移动:0%\n爪夹开始移动:10%\n爪夹靠近三角烧杯:20%\n爪夹抓取三角烧杯:40%\n爪夹合拢并靠近三脚架:60%\n爪夹移动到三脚架的正上方:80%\n爪夹松开,三角烧杯落在三脚架上:100%", "video_path": "examples/example_03/episode.mp4", "prompt_source": "task_instruction_plus_plan", "prompt_variant": "chunk_all", "input_sample_hz": 2.0, "input_frame_indices": [0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165], "input_timestamps_sec": [0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5], "input_frame_count": 12, "decoded_video_stats": {"decoded_frame_count": 172.0, "decoded_avg_fps": 30.0, "decoded_duration_sec": 5.7}, "prompt": "任务描述和具体规划: 将三角烧杯放在三脚架上。\n爪夹准备移动:0%\n爪夹开始移动:10%\n爪夹靠近三角烧杯:20%\n爪夹抓取三角烧杯:40%\n爪夹合拢并靠近三脚架:60%\n爪夹移动到三脚架的正上方:80%\n爪夹松开,三角烧杯落在三脚架上:100%\n\n请根据任务描述和具体规划,找到并逐点生成视频中的关键动作点和相应的进度标注。输出格式要求:每个关键点一行,格式为:\n时间: X.Xs, 进度: Y%\n\n请严格按照上述格式输出,不要输出额外说明。", "response": "时间: 0.1s, 进度: 0%\n时间: 0.6s, 进度: 10%\n时间: 1.1s, 进度: 20%\n时间: 1.6s, 进度: 30%\n时间: 2.3s, 进度: 40%\n时间: 3.4s, 进度: 60%\n时间: 4.1s, 进度: 80%\n时间: 5.3s, 进度: 100%", "pred_curve_parse_ok": true, "pred_curve_point_times_sec": [0.1, 0.6, 1.1, 1.6, 2.3, 3.4, 4.1, 5.3], "pred_curve_point_progress": [0.0, 10.0, 20.0, 30.0, 40.0, 60.0, 80.0, 100.0], "preview_video_path": "examples/reference_outputs/example_03_pred_progress.mp4"}
quick_start/README.md CHANGED
@@ -2,8 +2,8 @@
2
 
3
  This quick start has two steps:
4
 
5
- 1. Run progress inference on a video and write one JSONL output.
6
- 2. Render a prediction-only preview video from that JSONL output.
7
 
8
  ## Requirements
9
 
@@ -48,7 +48,7 @@ python quick_start/render_prediction_video.py \
48
  --output-video quick_start/outputs/video_pred_progress.mp4
49
  ```
50
 
51
- ## Bundled Examples
52
 
53
  `example_01`
54
 
 
2
 
3
  This quick start has two steps:
4
 
5
+ 1. Run progress inference on a video. Optionally save one JSONL output.
6
+ 2. Render a prediction-only preview video from a saved JSONL output.
7
 
8
  ## Requirements
9
 
 
48
  --output-video quick_start/outputs/video_pred_progress.mp4
49
  ```
50
 
51
+ ## Example Commands
52
 
53
  `example_01`
54