Japheth24 commited on
Commit
e8f1426
·
verified ·
1 Parent(s): 77eb5a0

Upload index (1).html

Browse files
Files changed (1) hide show
  1. index (1).html +421 -0
index (1).html ADDED
@@ -0,0 +1,421 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <title>robot-data-diff — demo</title>
7
+ <style>
8
+ *{box-sizing:border-box}
9
+ body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;margin:0;line-height:1.6;color:#1a1a2e;background:#f8fafc}
10
+ .wrap{max-width:980px;margin:0 auto;padding:2em 1.25em 3em}
11
+ .hero{background:#ffffff;border:1px solid #e2e8f0;border-radius:16px;padding:1.75em 1.5em;margin-bottom:1.5em}
12
+ .hero h1{font-size:2em;line-height:1.2;margin:0 0 .25em;letter-spacing:-.02em}
13
+ .tagline{font-size:1.15em;color:#334155;margin:0 0 1em}
14
+ .badge{display:inline-block;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;border-radius:999px;padding:.3em .9em;font-size:.9em;margin-bottom:1em}
15
+ .install{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:1em 1.2em;overflow:auto}
16
+ .install p{margin:0 0 .5em;color:#94a3b8;font-size:.9em}
17
+ .install pre{margin:0;background:none;padding:0;font-size:13.5px;line-height:1.6;white-space:pre-wrap;word-break:break-all}
18
+ .note{background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:1em 1.2em}
19
+ .tabs{display:flex;flex-wrap:wrap;gap:.5em;margin:1.5em 0 0}
20
+ .tab{border:1.5px solid #cbd5e1;background:#ffffff;color:#1a1a2e;border-radius:999px;padding:.6em 1.2em;font-size:.95em;cursor:pointer}
21
+ .tab.active{background:#1a1a2e;color:#ffffff;border-color:#1a1a2e}
22
+ .panel{display:none;background:#ffffff;border:1px solid #e2e8f0;border-radius:16px;padding:1.5em;margin-top:1em}
23
+ .panel.on{display:block}
24
+ .panel h2{margin-top:0;font-size:1.35em;line-height:1.35}
25
+ .lead{font-size:1.05em}
26
+ .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75em;margin:1.25em 0}
27
+ .card{border:1px solid #e2e8f0;border-radius:12px;padding:.9em 1em;background:#f8fafc}
28
+ .card .num{font-size:1.5em;font-weight:700;line-height:1.2}
29
+ .card .lbl{color:#64748b;font-size:.85em}
30
+ .bar{display:flex;height:18px;border-radius:999px;overflow:hidden;background:#e2e8f0}
31
+ .bar-changed{background:#ea580c}
32
+ .bar-unchanged{background:#16a34a}
33
+ .legend{font-size:.9em;color:#475569}
34
+ .dot{display:inline-block;width:.7em;height:.7em;border-radius:50%;margin-right:.3em}
35
+ .changed-dot{background:#ea580c}
36
+ .unchanged-dot{background:#16a34a}
37
+ details{margin-top:1.25em}
38
+ details summary{cursor:pointer;font-weight:600;color:#1e40af}
39
+ details pre{background:#0f172a;color:#e2e8f0;padding:1.1em 1.2em;overflow:auto;font-size:13px;line-height:1.5;border-radius:12px}
40
+ footer{margin-top:2em;color:#475569;font-size:.95em}
41
+ footer a{color:#2563eb}
42
+ .how{background:#ffffff;border:1px solid #e2e8f0;border-radius:16px;padding:1.25em 1.5em;margin-bottom:1.5em}
43
+ .how h2{margin:0 0 .5em;font-size:1.25em}
44
+ .how svg{width:100%;height:auto;display:block}
45
+ .how .cap{color:#475569;font-size:.95em;margin:.75em 0 0}
46
+ .strip{display:flex;flex-wrap:wrap;gap:3px;margin:1em 0 .25em}
47
+ .ep{width:14px;height:14px;border-radius:4px}
48
+ .ep.changed,.ep.flagged{background:#ea580c}
49
+ .ep.unchanged{background:#16a34a}
50
+ .strip-cap{font-size:.9em;color:#475569;margin:0 0 1em}
51
+ .remap{border:1px solid #e2e8f0;border-radius:12px;padding:1em 1.2em;background:#f8fafc;margin:1em 0}
52
+ .remap h3{margin:0 0 .5em;font-size:1.05em}
53
+ .remap code{background:#0f172a;color:#e2e8f0;padding:.15em .5em;border-radius:6px;font-size:.92em}
54
+ .remap-same{color:#15803d;font-weight:600}
55
+ @media (max-width:560px){.wrap{padding:1.25em .9em 2em}.hero h1{font-size:1.6em}.panel{padding:1em}}
56
+ </style>
57
+ <script>
58
+ function show(id){
59
+ document.querySelectorAll('.panel').forEach(e=>e.classList.remove('on'));
60
+ document.getElementById(id).classList.add('on');
61
+ document.querySelectorAll('.tab').forEach(b=>b.classList.toggle('active',b.dataset.id===id));
62
+ }
63
+ </script>
64
+ </head>
65
+ <body>
66
+ <div class="wrap">
67
+ <header class="hero">
68
+ <h1>robot-data-diff</h1>
69
+ <p class="tagline">Track changes for robot training data.</p>
70
+ <p><span class="badge">Real pre-computed results &middot; this page runs no code</span></p>
71
+ <p>Compare two versions of a LeRobot dataset and see exactly which episodes changed.</p>
72
+ <div class="install"><p>Run it locally:</p><pre>pip install robot-data-diff
73
+ robot-data-diff diff lerobot/pusht@855546dc lerobot/pusht@main</pre></div>
74
+ </header>
75
+ <section class="how" aria-label="How robot-data-diff works">
76
+ <h2>How it works</h2>
77
+ <svg viewBox="0 0 820 230" role="img" aria-label="Two dataset versions go into robot-data-diff, which sorts every episode into Added, Removed, Changed, or Unchanged" font-family="system-ui, sans-serif">
78
+ <defs><marker id="arr" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 Z" fill="#64748b"/></marker></defs>
79
+ <rect x="10" y="55" width="180" height="44" rx="10" fill="#ffffff" stroke="#cbd5e1"/>
80
+ <text x="100" y="82" text-anchor="middle" font-size="15" fill="#1a1a2e">Dataset v2.1</text>
81
+ <rect x="10" y="135" width="180" height="44" rx="10" fill="#ffffff" stroke="#cbd5e1"/>
82
+ <text x="100" y="162" text-anchor="middle" font-size="15" fill="#1a1a2e">Dataset v3.0</text>
83
+ <line x1="190" y1="77" x2="275" y2="105" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
84
+ <line x1="190" y1="157" x2="275" y2="130" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
85
+ <rect x="280" y="75" width="220" height="80" rx="12" fill="#1a1a2e"/>
86
+ <text x="390" y="112" text-anchor="middle" font-size="16" font-weight="700" fill="#ffffff">robot-data-diff</text>
87
+ <text x="390" y="134" text-anchor="middle" font-size="12" fill="#cbd5e1">episode-aware diff</text>
88
+ <line x1="500" y1="115" x2="575" y2="34" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
89
+ <line x1="500" y1="115" x2="575" y2="88" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
90
+ <line x1="500" y1="115" x2="575" y2="142" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
91
+ <line x1="500" y1="115" x2="575" y2="196" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
92
+ <rect x="580" y="12" width="200" height="44" rx="10" fill="#ffffff" stroke="#cbd5e1"/>
93
+ <text x="680" y="39" text-anchor="middle" font-size="14" fill="#1a1a2e">Added</text>
94
+ <rect x="580" y="66" width="200" height="44" rx="10" fill="#ffffff" stroke="#cbd5e1"/>
95
+ <text x="680" y="93" text-anchor="middle" font-size="14" fill="#1a1a2e">Removed</text>
96
+ <rect x="580" y="120" width="200" height="44" rx="10" fill="#fff7ed" stroke="#ea580c"/>
97
+ <text x="680" y="147" text-anchor="middle" font-size="14" fill="#c2410c">Changed</text>
98
+ <rect x="580" y="174" width="200" height="44" rx="10" fill="#f0fdf4" stroke="#16a34a"/>
99
+ <text x="680" y="201" text-anchor="middle" font-size="14" fill="#15803d">Unchanged</text>
100
+ </svg>
101
+ <p class="cap">Give the tool two versions of a dataset. It compares them episode by episode and sorts every episode into Added, Removed, Changed, or Unchanged.</p>
102
+ </section>
103
+ <p class="note">This page shows real, pre-computed diffs &mdash; 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>
104
+ <div class="tabs"><button class="tab active" data-id="so100" onclick="show('so100')">Silent recalibration</button><button class="tab" data-id="so101" onclick="show('so101')">Clean migration</button><button class="tab" data-id="pusht" onclick="show('pusht')">Labels only</button></div>
105
+ <section id="so100" class="panel on"><h2>Silent joint recalibration — svla_so100_pickplace v2.1 → v3.0</h2><p class="lead">50 → 50 · 0 added · 0 removed · 50 changed · 0 unchanged. Two joint dims remapped on every episode.</p><div class="cards"><div class="card"><div class="num">50 → 50</div><div class="lbl">Episodes</div></div><div class="card"><div class="num">0</div><div class="lbl">Added</div></div><div class="card"><div class="num">0</div><div class="lbl">Removed</div></div><div class="card"><div class="num">50</div><div class="lbl">Changed</div></div><div class="card"><div class="num">0</div><div class="lbl">Unchanged</div></div><div class="strip" role="img" aria-label="One block per episode — all 50 changed."><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span><span class="ep changed"></span></div><p class="strip-cap">One block per episode — all 50 changed.</p></div><div class="bar" role="img" aria-label="Changed 50 of 50, unchanged 0 of 50"><div class="bar-changed" style="width:100.0%"></div><div class="bar-unchanged" style="width:0.0%"></div></div><p class="legend"><span class="dot changed-dot"></span> Changed: 50 &nbsp;&nbsp;<span class="dot unchanged-dot"></span> Unchanged: 0</p>
106
+ <div class="remap"><h3>What actually changed: two joints remapped</h3>
107
+ <p><code>dim 1: v3 = 90 − v2</code> &nbsp; new value = 90 minus the old value</p>
108
+ <p><code>dim 2: v3 = v2 − 90</code> &nbsp; new value = the old value minus 90</p>
109
+ <p class="remap-same">Dims 0, 3, 4, 5 did not change — identical in v2.1 and v3.0.</p></div><details><summary>Show full report</summary><pre>========================================================================
110
+ robot-data-diff — episode-aware dataset diff
111
+ ========================================================================
112
+ A: lerobot/svla_so100_pickplace@a440cbb2 (v2.1, 50 episodes, 30 fps)
113
+ B: lerobot/svla_so100_pickplace@main (v3.0, 50 episodes, 30 fps)
114
+
115
+ Episodes: 50 -&gt; 50 (+0 added, -0 removed, ~50 changed, =0 unchanged)
116
+
117
+ CHANGED EPISODES (50):
118
+ [ep 0] length 454 -&gt; 454 (+0 frames)
119
+ d(action_min) [+0.0000, -184.5703, -90.0000, +0.0000, +0.0000, +0.0000]
120
+ d(action_max) [+0.0000, -184.5703, -90.0000, +0.0000, +0.0000, +0.0000]
121
+ d(action_mean) [+0.0000, -213.7291, -89.9998, +0.0000, +0.0001, +0.0000]
122
+ d(idle_ratio) +0.0000
123
+ d(spikes) +0
124
+ [ep 1] length 468 -&gt; 468 (+0 frames)
125
+ d(action_min) [+0.0000, -178.0664, -90.0000, +0.0000, +0.0000, +0.0000]
126
+ d(action_max) [+0.0000, -178.0664, -90.0000, +0.0000, +0.0000, +0.0000]
127
+ d(action_mean) [+0.0000, -204.3904, -89.9998, +0.0000, -0.0000, +0.0000]
128
+ d(idle_ratio) +0.0000
129
+ d(spikes) +0
130
+ [ep 2] length 420 -&gt; 420 (+0 frames)
131
+ d(action_min) [+0.0000, -192.5684, -90.0000, +0.0000, +0.0000, +0.0000]
132
+ d(action_max) [+0.0000, -192.5684, -90.0000, +0.0000, +0.0000, +0.0000]
133
+ d(action_mean) [+0.0000, -224.8841, -89.9997, +0.0000, +0.0002, +0.0000]
134
+ d(idle_ratio) +0.0000
135
+ d(spikes) +0
136
+ [ep 3] length 416 -&gt; 416 (+0 frames)
137
+ d(action_min) [+0.0000, -179.3848, -90.0000, +0.0000, +0.0000, +0.0000]
138
+ d(action_max) [+0.0000, -179.3848, -90.0000, +0.0000, +0.0000, +0.0000]
139
+ d(action_mean) [+0.0000, -208.7897, -89.9999, +0.0000, -0.0000, +0.0000]
140
+ d(idle_ratio) +0.0000
141
+ d(spikes) +0
142
+ [ep 4] length 401 -&gt; 401 (+0 frames)
143
+ d(action_min) [+0.0000, -195.9961, -90.0000, +0.0000, +0.0000, +0.0000]
144
+ d(action_max) [+0.0000, -195.9961, -90.0000, +0.0000, +0.0000, +0.0000]
145
+ d(action_mean) [+0.0000, -227.6912, -89.9998, +0.0000, -0.0001, +0.0000]
146
+ d(idle_ratio) +0.0000
147
+ d(spikes) +0
148
+ [ep 5] length 354 -&gt; 354 (+0 frames)
149
+ d(action_min) [+0.0000, -190.9863, -90.0000, +0.0000, +0.0000, +0.0000]
150
+ d(action_max) [+0.0000, -190.9863, -90.0000, +0.0000, +0.0000, +0.0000]
151
+ d(action_mean) [+0.0000, -223.9423, -89.9999, +0.0000, +0.0000, -0.0000]
152
+ d(idle_ratio) +0.0000
153
+ d(spikes) +0
154
+ [ep 6] length 357 -&gt; 357 (+0 frames)
155
+ d(action_min) [+0.0000, -180.7910, -90.0000, +0.0000, +0.0000, +0.0000]
156
+ d(action_max) [+0.0000, -180.7910, -90.0000, +0.0000, +0.0000, +0.0000]
157
+ d(action_mean) [+0.0000, -219.5686, -89.9998, +0.0000, +0.0000, +0.0000]
158
+ d(idle_ratio) +0.0000
159
+ d(spikes) +0
160
+ [ep 7] length 351 -&gt; 351 (+0 frames)
161
+ d(action_min) [+0.0000, -180.9668, -90.0000, +0.0000, +0.0000, +0.0000]
162
+ d(action_max) [+0.0000, -180.9668, -90.0000, +0.0000, +0.0000, +0.0000]
163
+ d(action_mean) [+0.0000, -221.6553, -89.9998, +0.0000, +0.0000, +0.0000]
164
+ d(idle_ratio) +0.0000
165
+ d(spikes) +0
166
+ [ep 8] length 368 -&gt; 368 (+0 frames)
167
+ d(action_min) [+0.0000, -186.5918, -90.0000, +0.0000, +0.0000, +0.0000]
168
+ d(action_max) [+0.0000, -186.5918, -90.0000, +0.0000, +0.0000, +0.0000]
169
+ d(action_mean) [+0.0000, -216.8870, -89.9997, +0.0000, +0.0000, +0.0000]
170
+ d(idle_ratio) +0.0000
171
+ d(spikes) +0
172
+ [ep 9] length 388 -&gt; 388 (+0 frames)
173
+ d(action_min) [+0.0000, -181.9336, -90.0000, +0.0000, +0.0000, +0.0000]
174
+ d(action_max) [+0.0000, -181.9336, -90.0000, +0.0000, +0.0000, +0.0000]
175
+ d(action_mean) [+0.0000, -213.1301, -89.9998, +0.0000, +0.0000, -0.0000]
176
+ d(idle_ratio) +0.0000
177
+ d(spikes) +0
178
+ [ep 10] length 364 -&gt; 364 (+0 frames)
179
+ d(action_min) [+0.0000, -161.6309, -90.0000, +0.0000, +0.0000, +0.0000]
180
+ d(action_max) [+0.0000, -161.6309, -90.0000, +0.0000, +0.0000, +0.0000]
181
+ d(action_mean) [+0.0000, -172.2101, -90.0000, +0.0000, -0.0000, +0.0000]
182
+ d(idle_ratio) +0.0000
183
+ d(spikes) +0
184
+ [ep 11] length 377 -&gt; 377 (+0 frames)
185
+ d(action_min) [+0.0000, -166.3770, -90.0000, +0.0000, +0.0000, +0.0000]
186
+ d(action_max) [+0.0000, -166.3770, -90.0000, +0.0000, +0.0000, +0.0000]
187
+ d(action_mean) [+0.0000, -197.8757, -89.9999, +0.0000, -0.0001, +0.0000]
188
+ d(idle_ratio) +0.0000
189
+ d(spikes) +0
190
+ [ep 12] length 369 -&gt; 369 (+0 frames)
191
+ d(action_min) [+0.0000, -157.1484, -90.0000, +0.0000, +0.0000, +0.0000]
192
+ d(action_max) [+0.0000, -157.1484, -90.0000, +0.0000, +0.0000, +0.0000]
193
+ d(action_mean) [+0.0000, -188.0868, -89.9998, +0.0000, +0.0001, +0.0000]
194
+ d(idle_ratio) +0.0000
195
+ d(spikes) +0
196
+ [ep 13] length 357 -&gt; 357 (+0 frames)
197
+ d(action_min) [+0.0000, -164.8828, -90.0000, +0.0000, +0.0000, +0.0000]
198
+ d(action_max) [+0.0000, -164.8828, -90.0000, +0.0000, +0.0000, +0.0000]
199
+ d(action_mean) [+0.0000, -206.6688, -89.9999, +0.0000, +0.0000, +0.0000]
200
+ d(idle_ratio) +0.0000
201
+ d(spikes) +0
202
+ [ep 14] length 375 -&gt; 375 (+0 frames)
203
+ d(action_min) [+0.0000, -163.4766, -90.0000, +0.0000, +0.0000, +0.0000]
204
+ d(action_max) [+0.0000, -163.4766, -90.0000, +0.0000, +0.0000, +0.0000]
205
+ d(action_mean) [+0.0000, -200.9436, -89.9999, +0.0000, +0.0000, +0.0000]
206
+ d(idle_ratio) +0.0000
207
+ d(spikes) +0
208
+ [ep 15] length 384 -&gt; 384 (+0 frames)
209
+ d(action_min) [+0.0000, -167.9590, -90.0000, +0.0000, +0.0000, +0.0000]
210
+ d(action_max) [+0.0000, -167.9590, -90.0000, +0.0000, +0.0000, +0.0000]
211
+ d(action_mean) [+0.0000, -203.6738, -89.9998, +0.0000, +0.0001, +0.0000]
212
+ d(idle_ratio) +0.0000
213
+ d(spikes) +0
214
+ [ep 16] length 365 -&gt; 365 (+0 frames)
215
+ d(action_min) [+0.0000, -164.1797, -90.0000, +0.0000, +0.0000, +0.0000]
216
+ d(action_max) [+0.0000, -164.1797, -90.0000, +0.0000, +0.0000, +0.0000]
217
+ d(action_mean) [+0.0000, -191.1779, -89.9999, +0.0000, -0.0000, +0.0000]
218
+ d(idle_ratio) +0.0000
219
+ d(spikes) +0
220
+ [ep 17] length 409 -&gt; 409 (+0 frames)
221
+ d(action_min) [+0.0000, -156.7090, -90.0000, +0.0000, +0.0000, +0.0000]
222
+ d(action_max) [+0.0000, -156.7090, -90.0000, +0.0000, +0.0000, +0.0000]
223
+ d(action_mean) [+0.0000, -187.6610, -89.9998, +0.0000, -0.0001, +0.0000]
224
+ d(idle_ratio) +0.0000
225
+ d(spikes) +0
226
+ [ep 18] length 385 -&gt; 385 (+0 frames)
227
+ d(action_min) [+0.0000, -167.2559, -90.0000, +0.0000, +0.0000, +0.0000]
228
+ d(action_max) [+0.0000, -167.2559, -90.0000, +0.0000, +0.0000, +0.0000]
229
+ d(action_mean) [+0.0000, -196.9664, -89.9999, +0.0000, +0.0000, -0.0000]
230
+ d(idle_ratio) +0.0000
231
+ d(spikes) +0
232
+ [ep 19] length 367 -&gt; 367 (+0 frames)
233
+ d(action_min) [+0.0000, -173.7598, -90.0000, +0.0000, +0.0000, +0.0000]
234
+ d(action_max) [+0.0000, -173.7598, -90.0000, +0.0000, +0.0000, +0.0000]
235
+ d(action_mean) [+0.0000, -206.0649, -89.9998, +0.0000, +0.0000, +0.0000]
236
+ d(idle_ratio) +0.0000
237
+ d(spikes) +0
238
+ [ep 20] length 366 -&gt; 366 (+0 frames)
239
+ d(action_min) [+0.0000, -190.7227, -90.0000, +0.0000, +0.0000, +0.0000]
240
+ d(action_max) [+0.0000, -190.7227, -90.0000, +0.0000, +0.0000, +0.0000]
241
+ d(action_mean) [+0.0000, -223.5961, -89.9997, +0.0000, +0.0000, -0.0000]
242
+ d(idle_ratio) +0.0000
243
+ d(spikes) +0
244
+ [ep 21] length 370 -&gt; 370 (+0 frames)
245
+ d(action_min) [+0.0000, -188.9648, -90.0000, +0.0000, +0.0000, +0.0000]
246
+ d(action_max) [+0.0000, -188.9648, -90.0000, +0.0000, +0.0000, +0.0000]
247
+ d(action_mean) [+0.0000, -222.3631, -89.9997, +0.0000, +0.0000, +0.0000]
248
+ d(idle_ratio) +0.0000
249
+
250
+ … (full per-episode list truncated for the page — run the tool locally for the complete report.)
251
+ </pre></details></section><section id="so101" class="panel"><h2>Clean migration — svla_so101_pickplace v2.1 → v3.0</h2><p class="lead">50 → 50 · 0 added · 0 removed · 0 changed · 50 unchanged. A bit-perfect migration.</p><div class="cards"><div class="card"><div class="num">50 → 50</div><div class="lbl">Episodes</div></div><div class="card"><div class="num">0</div><div class="lbl">Added</div></div><div class="card"><div class="num">0</div><div class="lbl">Removed</div></div><div class="card"><div class="num">0</div><div class="lbl">Changed</div></div><div class="card"><div class="num">50</div><div class="lbl">Unchanged</div></div><div class="strip" role="img" aria-label="One block per episode — all 50 unchanged."><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span><span class="ep unchanged"></span></div><p class="strip-cap">One block per episode — all 50 unchanged.</p></div><div class="bar" role="img" aria-label="Changed 0 of 50, unchanged 50 of 50"><div class="bar-changed" style="width:0.0%"></div><div class="bar-unchanged" style="width:100.0%"></div></div><p class="legend"><span class="dot changed-dot"></span> Changed: 0 &nbsp;&nbsp;<span class="dot unchanged-dot"></span> Unchanged: 50</p><details><summary>Show full report</summary><pre>========================================================================
252
+ robot-data-diff — episode-aware dataset diff
253
+ ========================================================================
254
+ A: lerobot/svla_so101_pickplace@50920d7c (v2.1, 50 episodes, 30 fps)
255
+ B: lerobot/svla_so101_pickplace@main (v3.0, 50 episodes, 30 fps)
256
+
257
+ Episodes: 50 -&gt; 50 (+0 added, -0 removed, ~0 changed, =50 unchanged)
258
+
259
+ No changed episodes (same index + identical stats).
260
+
261
+ TASK INVENTORY (episodes per task: A -&gt; B):
262
+ pink lego brick into the transparent box 50 -&gt; 50
263
+
264
+ Schema: identical feature sets.
265
+
266
+ QUALITY SUMMARY (heuristic, CPU-only):
267
+ mean idle-frame ratio: 0.2302 -&gt; 0.2302 (+0.0000)
268
+ total action spikes: 14 -&gt; 14 (+0)
269
+
270
+ ========================================================================
271
+ </pre></details></section><section id="pusht" class="panel"><h2>Task labels only — lerobot/pusht v2.1 → v3.0</h2><p class="lead">206 → 206 · 0 added · 0 removed · 206 flagged · 0 unchanged — but only the task-label formatting changed; the episode data is untouched.</p><div class="cards"><div class="card"><div class="num">206 → 206</div><div class="lbl">Episodes</div></div><div class="card"><div class="num">0</div><div class="lbl">Added</div></div><div class="card"><div class="num">0</div><div class="lbl">Removed</div></div><div class="card"><div class="num">206</div><div class="lbl">Changed</div></div><div class="card"><div class="num">0</div><div class="lbl">Unchanged</div></div><div class="strip" role="img" aria-label="One block per episode — all 206 flagged (labels only)."><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span><span class="ep flagged"></span></div><p class="strip-cap">One block per episode — all 206 flagged (labels only).</p></div><div class="bar" role="img" aria-label="Changed 206 of 206, unchanged 0 of 206"><div class="bar-changed" style="width:100.0%"></div><div class="bar-unchanged" style="width:0.0%"></div></div><p class="legend"><span class="dot changed-dot"></span> Changed: 206 &nbsp;&nbsp;<span class="dot unchanged-dot"></span> Unchanged: 0</p><details><summary>Show full report</summary><pre>========================================================================
272
+ robot-data-diff — episode-aware dataset diff
273
+ ========================================================================
274
+ A: lerobot/pusht@855546dc (v2.1, 206 episodes, 10 fps)
275
+ B: lerobot/pusht@main (v3.0, 206 episodes, 10 fps)
276
+
277
+ Episodes: 206 -&gt; 206 (+0 added, -0 removed, ~206 changed, =0 unchanged)
278
+
279
+ CHANGED EPISODES (206):
280
+ [ep 0] length 161 -&gt; 161 (+0 frames)
281
+ 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;]
282
+ [ep 1] length 118 -&gt; 118 (+0 frames)
283
+ 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;]
284
+ [ep 2] length 141 -&gt; 141 (+0 frames)
285
+ 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;]
286
+ [ep 3] length 159 -&gt; 159 (+0 frames)
287
+ 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;]
288
+ [ep 4] length 159 -&gt; 159 (+0 frames)
289
+ 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;]
290
+ [ep 5] length 157 -&gt; 157 (+0 frames)
291
+ 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;]
292
+ [ep 6] length 69 -&gt; 69 (+0 frames)
293
+ 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;]
294
+ [ep 7] length 169 -&gt; 169 (+0 frames)
295
+ 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;]
296
+ [ep 8] length 80 -&gt; 80 (+0 frames)
297
+ 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;]
298
+ [ep 9] length 134 -&gt; 134 (+0 frames)
299
+ 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;]
300
+ [ep 10] length 188 -&gt; 188 (+0 frames)
301
+ 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;]
302
+ [ep 11] length 149 -&gt; 149 (+0 frames)
303
+ 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;]
304
+ [ep 12] length 140 -&gt; 140 (+0 frames)
305
+ 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;]
306
+ [ep 13] length 125 -&gt; 125 (+0 frames)
307
+ 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;]
308
+ [ep 14] length 107 -&gt; 107 (+0 frames)
309
+ 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;]
310
+ [ep 15] length 153 -&gt; 153 (+0 frames)
311
+ 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;]
312
+ [ep 16] length 126 -&gt; 126 (+0 frames)
313
+ 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;]
314
+ [ep 17] length 102 -&gt; 102 (+0 frames)
315
+ 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;]
316
+ [ep 18] length 86 -&gt; 86 (+0 frames)
317
+ 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;]
318
+ [ep 19] length 75 -&gt; 75 (+0 frames)
319
+ 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;]
320
+ [ep 20] length 142 -&gt; 142 (+0 frames)
321
+ 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;]
322
+ [ep 21] length 115 -&gt; 115 (+0 frames)
323
+ 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;]
324
+ [ep 22] length 109 -&gt; 109 (+0 frames)
325
+ 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;]
326
+ [ep 23] length 110 -&gt; 110 (+0 frames)
327
+ 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;]
328
+ [ep 24] length 98 -&gt; 98 (+0 frames)
329
+ 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;]
330
+ [ep 25] length 133 -&gt; 133 (+0 frames)
331
+ 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;]
332
+ [ep 26] length 158 -&gt; 158 (+0 frames)
333
+ 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;]
334
+ [ep 27] length 112 -&gt; 112 (+0 frames)
335
+ 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;]
336
+ [ep 28] length 107 -&gt; 107 (+0 frames)
337
+ 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;]
338
+ [ep 29] length 115 -&gt; 115 (+0 frames)
339
+ 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;]
340
+ [ep 30] length 84 -&gt; 84 (+0 frames)
341
+ 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;]
342
+ [ep 31] length 95 -&gt; 95 (+0 frames)
343
+ 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;]
344
+ [ep 32] length 148 -&gt; 148 (+0 frames)
345
+ 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;]
346
+ [ep 33] length 120 -&gt; 120 (+0 frames)
347
+ 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;]
348
+ [ep 34] length 142 -&gt; 142 (+0 frames)
349
+ 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;]
350
+ [ep 35] length 143 -&gt; 143 (+0 frames)
351
+ 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;]
352
+ [ep 36] length 142 -&gt; 142 (+0 frames)
353
+ 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;]
354
+ [ep 37] length 121 -&gt; 121 (+0 frames)
355
+ 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;]
356
+ [ep 38] length 186 -&gt; 186 (+0 frames)
357
+ 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;]
358
+ [ep 39] length 99 -&gt; 99 (+0 frames)
359
+ 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;]
360
+ [ep 40] length 139 -&gt; 139 (+0 frames)
361
+ 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;]
362
+ [ep 41] length 73 -&gt; 73 (+0 frames)
363
+ 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;]
364
+ [ep 42] length 136 -&gt; 136 (+0 frames)
365
+ 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;]
366
+ [ep 43] length 118 -&gt; 118 (+0 frames)
367
+ 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;]
368
+ [ep 44] length 127 -&gt; 127 (+0 frames)
369
+ 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;]
370
+ [ep 45] length 152 -&gt; 152 (+0 frames)
371
+ 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;]
372
+ [ep 46] length 83 -&gt; 83 (+0 frames)
373
+ 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;]
374
+ [ep 47] length 109 -&gt; 109 (+0 frames)
375
+ 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;]
376
+ [ep 48] length 138 -&gt; 138 (+0 frames)
377
+ 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;]
378
+ [ep 49] length 83 -&gt; 83 (+0 frames)
379
+ 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;]
380
+ [ep 50] length 69 -&gt; 69 (+0 frames)
381
+ 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;]
382
+ [ep 51] length 73 -&gt; 73 (+0 frames)
383
+ 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;]
384
+ [ep 52] length 136 -&gt; 136 (+0 frames)
385
+ 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;]
386
+ [ep 53] length 173 -&gt; 173 (+0 frames)
387
+ 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;]
388
+ [ep 54] length 205 -&gt; 205 (+0 frames)
389
+ 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;]
390
+ [ep 55] length 106 -&gt; 106 (+0 frames)
391
+ 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;]
392
+ [ep 56] length 105 -&gt; 105 (+0 frames)
393
+ 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;]
394
+ [ep 57] length 83 -&gt; 83 (+0 frames)
395
+ 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;]
396
+ [ep 58] length 118 -&gt; 118 (+0 frames)
397
+ 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;]
398
+ [ep 59] length 122 -&gt; 122 (+0 frames)
399
+ 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;]
400
+ [ep 60] length 60 -&gt; 60 (+0 frames)
401
+ 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;]
402
+ [ep 61] length 150 -&gt; 150 (+0 frames)
403
+ 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;]
404
+ [ep 62] length 67 -&gt; 67 (+0 frames)
405
+ 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;]
406
+ [ep 63] length 140 -&gt; 140 (+0 frames)
407
+ 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;]
408
+ [ep 64] length 103 -&gt; 103 (+0 frames)
409
+ 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;]
410
+ [ep 65] length 166 -&gt; 166 (+0 frames)
411
+
412
+ … (full per-episode list truncated for the page — run the tool locally for the complete report.)
413
+ </pre></details></section>
414
+ <footer>
415
+ <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>
416
+ <p>Source: <a href="https://github.com/yafetashenafi790-lgtm/robot-data-diff">github.com/yafetashenafi790-lgtm/robot-data-diff</a></p>
417
+ </footer>
418
+ </div>
419
+ <script>show('so100');</script>
420
+ </body>
421
+ </html>