Japheth24 commited on
Commit
d1a74a5
·
verified ·
1 Parent(s): ddebb45

Upload 2 files

Browse files
Files changed (2) hide show
  1. README (3).md +13 -0
  2. index.html +320 -19
README (3).md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: robot-data-diff demo
3
+ emoji: 🤖
4
+ colorFrom: blue
5
+ colorTo: green
6
+ sdk: static
7
+ pinned: false
8
+ license: apache-2.0
9
+ ---
10
+
11
+ # robot-data-diff — demo (static)
12
+
13
+ Pre-computed diffs from the published robot-data-diff tool. Static Spaces serve pages only, so this page cannot run a new diff live — run `pip install robot-data-diff` locally for that.
index.html CHANGED
@@ -1,19 +1,320 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
2
+ <title>robot-data-diff — demo</title><style>body{font-family:system-ui,sans-serif;max-width:900px;margin:2em auto;padding:0 1em;line-height:1.5}pre{background:#f4f4f4;padding:1em;overflow:auto;font-size:13px}button{margin:.2em;padding:.5em 1em} .report{display:none} .report.on{display:block} .sum{font-weight:600}</style>
3
+ <script>function show(id){document.querySelectorAll('.report').forEach(e=>e.classList.remove('on'));document.getElementById(id).classList.add('on');}</script></head>
4
+ <body><h1>robot-data-diff — demo</h1>
5
+ <p><strong>Track changes for robot training data.</strong> Compare two versions of a LeRobot dataset and see exactly which episodes changed.</p>
6
+ <p>This page shows real, pre-computed diffs — the same reports the tool produces. It cannot run a new pair in the browser (this is a free Static Space: pages only, no Python). To diff your own pair, run it locally:</p>
7
+ <pre>pip install robot-data-diff
8
+ robot-data-diff diff lerobot/pusht@855546dc lerobot/pusht@main</pre>
9
+ <p>Source: <a href="https://github.com/yafetashenafi790-lgtm/robot-data-diff">github.com/yafetashenafi790-lgtm/robot-data-diff</a></p>
10
+ <p>Honest limits: “unchanged” means unchanged under the tool’s stats fingerprint (episode length, task labels, action stats, idle ratio, spike counts) — not byte-identical video. It is a diff, not a validator.</p>
11
+ <div><button onclick="show('so100')">Silent joint recalibration — svla_so100_pickplace v2.1 → v3.0</button><button onclick="show('so101')">Clean migration — svla_so101_pickplace v2.1 → v3.0</button><button onclick="show('pusht')">Task labels only — lerobot/pusht v2.1 → v3.0</button></div>
12
+ <section id="so100" class="report"><h2>Silent joint recalibration — svla_so100_pickplace v2.1 → v3.0</h2><p class="sum">50 → 50 · 0 added · 0 removed · 50 changed · 0 unchanged. Two joint dims remapped on every episode.</p><pre>========================================================================
13
+ robot-data-diff — episode-aware dataset diff
14
+ ========================================================================
15
+ A: lerobot/svla_so100_pickplace@a440cbb2 (v2.1, 50 episodes, 30 fps)
16
+ B: lerobot/svla_so100_pickplace@main (v3.0, 50 episodes, 30 fps)
17
+
18
+ Episodes: 50 -&gt; 50 (+0 added, -0 removed, ~50 changed, =0 unchanged)
19
+
20
+ CHANGED EPISODES (50):
21
+ [ep 0] length 454 -&gt; 454 (+0 frames)
22
+ d(action_min) [+0.0000, -184.5703, -90.0000, +0.0000, +0.0000, +0.0000]
23
+ d(action_max) [+0.0000, -184.5703, -90.0000, +0.0000, +0.0000, +0.0000]
24
+ d(action_mean) [+0.0000, -213.7291, -89.9998, +0.0000, +0.0001, +0.0000]
25
+ d(idle_ratio) +0.0000
26
+ d(spikes) +0
27
+ [ep 1] length 468 -&gt; 468 (+0 frames)
28
+ d(action_min) [+0.0000, -178.0664, -90.0000, +0.0000, +0.0000, +0.0000]
29
+ d(action_max) [+0.0000, -178.0664, -90.0000, +0.0000, +0.0000, +0.0000]
30
+ d(action_mean) [+0.0000, -204.3904, -89.9998, +0.0000, -0.0000, +0.0000]
31
+ d(idle_ratio) +0.0000
32
+ d(spikes) +0
33
+ [ep 2] length 420 -&gt; 420 (+0 frames)
34
+ d(action_min) [+0.0000, -192.5684, -90.0000, +0.0000, +0.0000, +0.0000]
35
+ d(action_max) [+0.0000, -192.5684, -90.0000, +0.0000, +0.0000, +0.0000]
36
+ d(action_mean) [+0.0000, -224.8841, -89.9997, +0.0000, +0.0002, +0.0000]
37
+ d(idle_ratio) +0.0000
38
+ d(spikes) +0
39
+ [ep 3] length 416 -&gt; 416 (+0 frames)
40
+ d(action_min) [+0.0000, -179.3848, -90.0000, +0.0000, +0.0000, +0.0000]
41
+ d(action_max) [+0.0000, -179.3848, -90.0000, +0.0000, +0.0000, +0.0000]
42
+ d(action_mean) [+0.0000, -208.7897, -89.9999, +0.0000, -0.0000, +0.0000]
43
+ d(idle_ratio) +0.0000
44
+ d(spikes) +0
45
+ [ep 4] length 401 -&gt; 401 (+0 frames)
46
+ d(action_min) [+0.0000, -195.9961, -90.0000, +0.0000, +0.0000, +0.0000]
47
+ d(action_max) [+0.0000, -195.9961, -90.0000, +0.0000, +0.0000, +0.0000]
48
+ d(action_mean) [+0.0000, -227.6912, -89.9998, +0.0000, -0.0001, +0.0000]
49
+ d(idle_ratio) +0.0000
50
+ d(spikes) +0
51
+ [ep 5] length 354 -&gt; 354 (+0 frames)
52
+ d(action_min) [+0.0000, -190.9863, -90.0000, +0.0000, +0.0000, +0.0000]
53
+ d(action_max) [+0.0000, -190.9863, -90.0000, +0.0000, +0.0000, +0.0000]
54
+ d(action_mean) [+0.0000, -223.9423, -89.9999, +0.0000, +0.0000, -0.0000]
55
+ d(idle_ratio) +0.0000
56
+ d(spikes) +0
57
+ [ep 6] length 357 -&gt; 357 (+0 frames)
58
+ d(action_min) [+0.0000, -180.7910, -90.0000, +0.0000, +0.0000, +0.0000]
59
+ d(action_max) [+0.0000, -180.7910, -90.0000, +0.0000, +0.0000, +0.0000]
60
+ d(action_mean) [+0.0000, -219.5686, -89.9998, +0.0000, +0.0000, +0.0000]
61
+ d(idle_ratio) +0.0000
62
+ d(spikes) +0
63
+ [ep 7] length 351 -&gt; 351 (+0 frames)
64
+ d(action_min) [+0.0000, -180.9668, -90.0000, +0.0000, +0.0000, +0.0000]
65
+ d(action_max) [+0.0000, -180.9668, -90.0000, +0.0000, +0.0000, +0.0000]
66
+ d(action_mean) [+0.0000, -221.6553, -89.9998, +0.0000, +0.0000, +0.0000]
67
+ d(idle_ratio) +0.0000
68
+ d(spikes) +0
69
+ [ep 8] length 368 -&gt; 368 (+0 frames)
70
+ d(action_min) [+0.0000, -186.5918, -90.0000, +0.0000, +0.0000, +0.0000]
71
+ d(action_max) [+0.0000, -186.5918, -90.0000, +0.0000, +0.0000, +0.0000]
72
+ d(action_mean) [+0.0000, -216.8870, -89.9997, +0.0000, +0.0000, +0.0000]
73
+ d(idle_ratio) +0.0000
74
+ d(spikes) +0
75
+ [ep 9] length 388 -&gt; 388 (+0 frames)
76
+ d(action_min) [+0.0000, -181.9336, -90.0000, +0.0000, +0.0000, +0.0000]
77
+ d(action_max) [+0.0000, -181.9336, -90.0000, +0.0000, +0.0000, +0.0000]
78
+ d(action_mean) [+0.0000, -213.1301, -89.9998, +0.0000, +0.0000, -0.0000]
79
+ d(idle_ratio) +0.0000
80
+ d(spikes) +0
81
+ [ep 10] length 364 -&gt; 364 (+0 frames)
82
+ d(action_min) [+0.0000, -161.6309, -90.0000, +0.0000, +0.0000, +0.0000]
83
+ d(action_max) [+0.0000, -161.6309, -90.0000, +0.0000, +0.0000, +0.0000]
84
+ d(action_mean) [+0.0000, -172.2101, -90.0000, +0.0000, -0.0000, +0.0000]
85
+ d(idle_ratio) +0.0000
86
+ d(spikes) +0
87
+ [ep 11] length 377 -&gt; 377 (+0 frames)
88
+ d(action_min) [+0.0000, -166.3770, -90.0000, +0.0000, +0.0000, +0.0000]
89
+ d(action_max) [+0.0000, -166.3770, -90.0000, +0.0000, +0.0000, +0.0000]
90
+ d(action_mean) [+0.0000, -197.8757, -89.9999, +0.0000, -0.0001, +0.0000]
91
+ d(idle_ratio) +0.0000
92
+ d(spikes) +0
93
+ [ep 12] length 369 -&gt; 369 (+0 frames)
94
+ d(action_min) [+0.0000, -157.1484, -90.0000, +0.0000, +0.0000, +0.0000]
95
+ d(action_max) [+0.0000, -157.1484, -90.0000, +0.0000, +0.0000, +0.0000]
96
+ d(action_mean) [+0.0000, -188.0868, -89.9998, +0.0000, +0.0001, +0.0000]
97
+ d(idle_ratio) +0.0000
98
+ d(spikes) +0
99
+ [ep 13] length 357 -&gt; 357 (+0 frames)
100
+ d(action_min) [+0.0000, -164.8828, -90.0000, +0.0000, +0.0000, +0.0000]
101
+ d(action_max) [+0.0000, -164.8828, -90.0000, +0.0000, +0.0000, +0.0000]
102
+ d(action_mean) [+0.0000, -206.6688, -89.9999, +0.0000, +0.0000, +0.0000]
103
+ d(idle_ratio) +0.0000
104
+ d(spikes) +0
105
+ [ep 14] length 375 -&gt; 375 (+0 frames)
106
+ d(action_min) [+0.0000, -163.4766, -90.0000, +0.0000, +0.0000, +0.0000]
107
+ d(action_max) [+0.0000, -163.4766, -90.0000, +0.0000, +0.0000, +0.0000]
108
+ d(action_mean) [+0.0000, -200.9436, -89.9999, +0.0000, +0.0000, +0.0000]
109
+ d(idle_ratio) +0.0000
110
+ d(spikes) +0
111
+ [ep 15] length 384 -&gt; 384 (+0 frames)
112
+ d(action_min) [+0.0000, -167.9590, -90.0000, +0.0000, +0.0000, +0.0000]
113
+ d(action_max) [+0.0000, -167.9590, -90.0000, +0.0000, +0.0000, +0.0000]
114
+ d(action_mean) [+0.0000, -203.6738, -89.9998, +0.0000, +0.0001, +0.0000]
115
+ d(idle_ratio) +0.0000
116
+ d(spikes) +0
117
+ [ep 16] length 365 -&gt; 365 (+0 frames)
118
+ d(action_min) [+0.0000, -164.1797, -90.0000, +0.0000, +0.0000, +0.0000]
119
+ d(action_max) [+0.0000, -164.1797, -90.0000, +0.0000, +0.0000, +0.0000]
120
+ d(action_mean) [+0.0000, -191.1779, -89.9999, +0.0000, -0.0000, +0.0000]
121
+ d(idle_ratio) +0.0000
122
+ d(spikes) +0
123
+ [ep 17] length 409 -&gt; 409 (+0 frames)
124
+ d(action_min) [+0.0000, -156.7090, -90.0000, +0.0000, +0.0000, +0.0000]
125
+ d(action_max) [+0.0000, -156.7090, -90.0000, +0.0000, +0.0000, +0.0000]
126
+ d(action_mean) [+0.0000, -187.6610, -89.9998, +0.0000, -0.0001, +0.0000]
127
+ d(idle_ratio) +0.0000
128
+ d(spikes) +0
129
+ [ep 18] length 385 -&gt; 385 (+0 frames)
130
+ d(action_min) [+0.0000, -167.2559, -90.0000, +0.0000, +0.0000, +0.0000]
131
+ d(action_max) [+0.0000, -167.2559, -90.0000, +0.0000, +0.0000, +0.0000]
132
+ d(action_mean) [+0.0000, -196.9664, -89.9999, +0.0000, +0.0000, -0.0000]
133
+ d(idle_ratio) +0.0000
134
+ d(spikes) +0
135
+ [ep 19] length 367 -&gt; 367 (+0 frames)
136
+ d(action_min) [+0.0000, -173.7598, -90.0000, +0.0000, +0.0000, +0.0000]
137
+ d(action_max) [+0.0000, -173.7598, -90.0000, +0.0000, +0.0000, +0.0000]
138
+ d(action_mean) [+0.0000, -206.0649, -89.9998, +0.0000, +0.0000, +0.0000]
139
+ d(idle_ratio) +0.0000
140
+ d(spikes) +0
141
+ [ep 20] length 366 -&gt; 366 (+0 frames)
142
+ d(action_min) [+0.0000, -190.7227, -90.0000, +0.0000, +0.0000, +0.0000]
143
+ d(action_max) [+0.0000, -190.7227, -90.0000, +0.0000, +0.0000, +0.0000]
144
+ d(action_mean) [+0.0000, -223.5961, -89.9997, +0.0000, +0.0000, -0.0000]
145
+ d(idle_ratio) +0.0000
146
+ d(spikes) +0
147
+ [ep 21] length 370 -&gt; 370 (+0 frames)
148
+ d(action_min) [+0.0000, -188.9648, -90.0000, +0.0000, +0.0000, +0.0000]
149
+ d(action_max) [+0.0000, -188.9648, -90.0000, +0.0000, +0.0000, +0.0000]
150
+ d(action_mean) [+0.0000, -222.3631, -89.9997, +0.0000, +0.0000, +0.0000]
151
+ d(idle_ratio) +0.0000
152
+
153
+ … (full per-episode list truncated for the page — run the tool locally for the complete report.)
154
+ </pre></section>
155
+ <section id="so101" class="report"><h2>Clean migration — svla_so101_pickplace v2.1 → v3.0</h2><p class="sum">50 → 50 · 0 added · 0 removed · 0 changed · 50 unchanged. A bit-perfect migration.</p><pre>========================================================================
156
+ robot-data-diff — episode-aware dataset diff
157
+ ========================================================================
158
+ A: lerobot/svla_so101_pickplace@50920d7c (v2.1, 50 episodes, 30 fps)
159
+ B: lerobot/svla_so101_pickplace@main (v3.0, 50 episodes, 30 fps)
160
+
161
+ Episodes: 50 -&gt; 50 (+0 added, -0 removed, ~0 changed, =50 unchanged)
162
+
163
+ No changed episodes (same index + identical stats).
164
+
165
+ TASK INVENTORY (episodes per task: A -&gt; B):
166
+ pink lego brick into the transparent box 50 -&gt; 50
167
+
168
+ Schema: identical feature sets.
169
+
170
+ QUALITY SUMMARY (heuristic, CPU-only):
171
+ mean idle-frame ratio: 0.2302 -&gt; 0.2302 (+0.0000)
172
+ total action spikes: 14 -&gt; 14 (+0)
173
+
174
+ ========================================================================
175
+ </pre></section>
176
+ <section id="pusht" class="report"><h2>Task labels only — lerobot/pusht v2.1 → v3.0</h2><p class="sum">206 → 206 · 0 added · 0 removed · 206 flagged · 0 unchanged — but only the task-label formatting changed; the episode data is untouched.</p><pre>========================================================================
177
+ robot-data-diff — episode-aware dataset diff
178
+ ========================================================================
179
+ A: lerobot/pusht@855546dc (v2.1, 206 episodes, 10 fps)
180
+ B: lerobot/pusht@main (v3.0, 206 episodes, 10 fps)
181
+
182
+ Episodes: 206 -&gt; 206 (+0 added, -0 removed, ~206 changed, =0 unchanged)
183
+
184
+ CHANGED EPISODES (206):
185
+ [ep 0] length 161 -&gt; 161 (+0 frames)
186
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
187
+ [ep 1] length 118 -&gt; 118 (+0 frames)
188
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
189
+ [ep 2] length 141 -&gt; 141 (+0 frames)
190
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
191
+ [ep 3] length 159 -&gt; 159 (+0 frames)
192
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
193
+ [ep 4] length 159 -&gt; 159 (+0 frames)
194
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
195
+ [ep 5] length 157 -&gt; 157 (+0 frames)
196
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
197
+ [ep 6] length 69 -&gt; 69 (+0 frames)
198
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
199
+ [ep 7] length 169 -&gt; 169 (+0 frames)
200
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
201
+ [ep 8] length 80 -&gt; 80 (+0 frames)
202
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
203
+ [ep 9] length 134 -&gt; 134 (+0 frames)
204
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
205
+ [ep 10] length 188 -&gt; 188 (+0 frames)
206
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
207
+ [ep 11] length 149 -&gt; 149 (+0 frames)
208
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
209
+ [ep 12] length 140 -&gt; 140 (+0 frames)
210
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
211
+ [ep 13] length 125 -&gt; 125 (+0 frames)
212
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
213
+ [ep 14] length 107 -&gt; 107 (+0 frames)
214
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
215
+ [ep 15] length 153 -&gt; 153 (+0 frames)
216
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
217
+ [ep 16] length 126 -&gt; 126 (+0 frames)
218
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
219
+ [ep 17] length 102 -&gt; 102 (+0 frames)
220
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
221
+ [ep 18] length 86 -&gt; 86 (+0 frames)
222
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
223
+ [ep 19] length 75 -&gt; 75 (+0 frames)
224
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
225
+ [ep 20] length 142 -&gt; 142 (+0 frames)
226
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
227
+ [ep 21] length 115 -&gt; 115 (+0 frames)
228
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
229
+ [ep 22] length 109 -&gt; 109 (+0 frames)
230
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
231
+ [ep 23] length 110 -&gt; 110 (+0 frames)
232
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
233
+ [ep 24] length 98 -&gt; 98 (+0 frames)
234
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
235
+ [ep 25] length 133 -&gt; 133 (+0 frames)
236
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
237
+ [ep 26] length 158 -&gt; 158 (+0 frames)
238
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
239
+ [ep 27] length 112 -&gt; 112 (+0 frames)
240
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
241
+ [ep 28] length 107 -&gt; 107 (+0 frames)
242
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
243
+ [ep 29] length 115 -&gt; 115 (+0 frames)
244
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
245
+ [ep 30] length 84 -&gt; 84 (+0 frames)
246
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
247
+ [ep 31] length 95 -&gt; 95 (+0 frames)
248
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
249
+ [ep 32] length 148 -&gt; 148 (+0 frames)
250
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
251
+ [ep 33] length 120 -&gt; 120 (+0 frames)
252
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
253
+ [ep 34] length 142 -&gt; 142 (+0 frames)
254
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
255
+ [ep 35] length 143 -&gt; 143 (+0 frames)
256
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
257
+ [ep 36] length 142 -&gt; 142 (+0 frames)
258
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
259
+ [ep 37] length 121 -&gt; 121 (+0 frames)
260
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
261
+ [ep 38] length 186 -&gt; 186 (+0 frames)
262
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
263
+ [ep 39] length 99 -&gt; 99 (+0 frames)
264
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
265
+ [ep 40] length 139 -&gt; 139 (+0 frames)
266
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
267
+ [ep 41] length 73 -&gt; 73 (+0 frames)
268
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
269
+ [ep 42] length 136 -&gt; 136 (+0 frames)
270
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
271
+ [ep 43] length 118 -&gt; 118 (+0 frames)
272
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
273
+ [ep 44] length 127 -&gt; 127 (+0 frames)
274
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
275
+ [ep 45] length 152 -&gt; 152 (+0 frames)
276
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
277
+ [ep 46] length 83 -&gt; 83 (+0 frames)
278
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
279
+ [ep 47] length 109 -&gt; 109 (+0 frames)
280
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
281
+ [ep 48] length 138 -&gt; 138 (+0 frames)
282
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
283
+ [ep 49] length 83 -&gt; 83 (+0 frames)
284
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
285
+ [ep 50] length 69 -&gt; 69 (+0 frames)
286
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
287
+ [ep 51] length 73 -&gt; 73 (+0 frames)
288
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
289
+ [ep 52] length 136 -&gt; 136 (+0 frames)
290
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
291
+ [ep 53] length 173 -&gt; 173 (+0 frames)
292
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
293
+ [ep 54] length 205 -&gt; 205 (+0 frames)
294
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
295
+ [ep 55] length 106 -&gt; 106 (+0 frames)
296
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
297
+ [ep 56] length 105 -&gt; 105 (+0 frames)
298
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
299
+ [ep 57] length 83 -&gt; 83 (+0 frames)
300
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
301
+ [ep 58] length 118 -&gt; 118 (+0 frames)
302
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
303
+ [ep 59] length 122 -&gt; 122 (+0 frames)
304
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
305
+ [ep 60] length 60 -&gt; 60 (+0 frames)
306
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
307
+ [ep 61] length 150 -&gt; 150 (+0 frames)
308
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
309
+ [ep 62] length 67 -&gt; 67 (+0 frames)
310
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
311
+ [ep 63] length 140 -&gt; 140 (+0 frames)
312
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
313
+ [ep 64] length 103 -&gt; 103 (+0 frames)
314
+ tasks: [&quot;[&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]&quot;] -&gt; [&#x27;Push the T-shaped block onto the T-shaped target.&#x27;]
315
+ [ep 65] length 166 -&gt; 166 (+0 frames)
316
+
317
+ … (full per-episode list truncated for the page — run the tool locally for the complete report.)
318
+ </pre></section>
319
+
320
+ <script>show('so100');</script></body></html>