Linslab commited on
Commit
e25638c
·
verified ·
1 Parent(s): 746ed81

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/build_reference.cpython-310.pyc +0 -0
  2. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/check_synthetic.cpython-310.pyc +0 -0
  3. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/controller.cpython-310.pyc +0 -0
  4. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/build_reference.py +26 -0
  5. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/check_synthetic.py +43 -0
  6. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/controller.py +129 -0
  7. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/demo_manifest.json +1488 -0
  8. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/environment.lock +249 -0
  9. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/findings.md +16 -0
  10. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/freeze_manifest.json +142 -0
  11. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/handoff.md +9 -0
  12. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/localizer.py +29 -0
  13. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/model_tool_manifest.yaml +146 -0
  14. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/policy_runner.py +25 -0
  15. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/reference_index.json +0 -0
  16. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/skills.md +10 -0
  17. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/synthetic_check_results.json +22 -0
  18. agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/worker_api.py +81 -0
  19. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/__pycache__/build_bank.cpython-310.pyc +0 -0
  20. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/__pycache__/check_synthetic.cpython-310.pyc +0 -0
  21. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/__pycache__/controller.cpython-310.pyc +0 -0
  22. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/__pycache__/features.cpython-310.pyc +0 -0
  23. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/build_bank.py +15 -0
  24. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/check_synthetic.py +19 -0
  25. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/controller.py +62 -0
  26. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/demo_manifest.json +2168 -0
  27. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/environment.lock +249 -0
  28. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/features.py +24 -0
  29. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/findings.md +20 -0
  30. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/freeze_manifest.json +160 -0
  31. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/handoff.md +4 -0
  32. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/kinematics.py +12 -0
  33. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/model_tool_manifest.yaml +52 -0
  34. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/policy_runner.py +25 -0
  35. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/skills.md +7 -0
  36. agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/worker_api.py +81 -0
  37. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/config.json +40 -0
  38. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/controller.py +121 -0
  39. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/demo_manifest.json +2248 -0
  40. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/environment.lock +249 -0
  41. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/features.py +30 -0
  42. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/findings.md +12 -0
  43. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/freeze_manifest.json +118 -0
  44. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/hand_mapping.json +119 -0
  45. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/handoff.md +5 -0
  46. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/local_versions.json +6 -0
  47. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/memory_provenance.json +5915 -0
  48. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/model_tool_manifest.yaml +200 -0
  49. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/policy_runner.py +25 -0
  50. agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/pose.py +25 -0
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/build_reference.cpython-310.pyc ADDED
Binary file (2.5 kB). View file
 
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/check_synthetic.cpython-310.pyc ADDED
Binary file (3.76 kB). View file
 
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/controller.cpython-310.pyc ADDED
Binary file (4.75 kB). View file
 
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/build_reference.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Offline reference compilation from the 20 authorized demos only. No fitting."""
2
+ import importlib.util,json,sys
3
+ from pathlib import Path
4
+ import numpy as np
5
+ sys.path.insert(0,str(Path(__file__).resolve().parent))
6
+ from controller import image_features,CAMERAS
7
+ s=importlib.util.spec_from_file_location('worker_api','/worker_api.py');m=importlib.util.module_from_spec(s);s.loader.exec_module(m);api=m.API()
8
+ manifest=json.load(open('/demo_manifest.json'))
9
+ assert len(manifest['episodes'])==20
10
+ rows={k:[] for k in ['features','qpos','qvel','actions','demo','frame']};audit=[]
11
+ for di,e in enumerate(manifest['episodes']):
12
+ n=e['length'];fields=['actions','obs/agent/qpos','obs/agent/qvel'];d=api.read_demo(e['demo_id'],fields=fields)
13
+ indices=list(range(21,n,2));audit.append({'demo_id':e['demo_id'],'computational_rgb_frames':indices,'label_intervals':[[t,min(t+2,n)] for t in indices]})
14
+ for start in range(21,n,64):
15
+ stop=min(n,start+64)
16
+ imgs=api.read_demo(e['demo_id'],start,stop,fields=['obs/sensor_data/'+c+'/rgb' for c in CAMERAS])
17
+ for t in range(start,stop,2):
18
+ rows['features'].append(image_features({c:imgs['obs/sensor_data/'+c+'/rgb'][t-start] for c in CAMERAS}))
19
+ rows['qpos'].append(d['obs/agent/qpos'][t]);rows['qvel'].append(d['obs/agent/qvel'][t])
20
+ rows['actions'].append(d['actions'][t:min(t+2,n)].mean(0));rows['demo'].append(di);rows['frame'].append(t)
21
+ print(e['demo_id'],len(indices),flush=True)
22
+ b={k:np.asarray(v,dtype=np.int32 if k in ['demo','frame'] else np.float32) for k,v in rows.items()}
23
+ b['qscale']=np.maximum(np.std(b['qpos'],axis=0),.20);b['vscale']=np.maximum(np.std(b['qvel'],axis=0),.10)
24
+ np.savez_compressed(Path(__file__).with_name('reference_bank.npz'),**b)
25
+ json.dump(audit,open(Path(__file__).with_name('reference_index.json'),'w'),indent=2)
26
+ print('bank',len(b['actions']),flush=True)
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/check_synthetic.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Syntax/data-integrity and synthetic-input checks only; no environment."""
2
+ import json,sys,time,py_compile
3
+ from pathlib import Path
4
+ import numpy as np
5
+ sys.path.insert(0,str(Path(__file__).resolve().parent))
6
+ import controller as c
7
+ root=Path(__file__).resolve().parent
8
+ for name in ['controller.py','build_reference.py','check_synthetic.py']:
9
+ py_compile.compile(str(root/name),doraise=True)
10
+ checks=[]
11
+ def ok(name,condition):
12
+ assert condition,name
13
+ checks.append(name)
14
+ def obs(color=100,batch=False):
15
+ rgb={k:np.full((320,240,3) if k=='top_camera' else (240,320,3),color,np.uint8) for k in c.CAMERAS}
16
+ if batch:rgb={k:v[None] for k,v in rgb.items()}
17
+ return {'rgb':rgb,'proprioception':{'agent/qpos':np.zeros(23,np.float32),'agent/qvel':np.zeros(23,np.float32)},'instruction':'The robot should grasp the target chips can from the clutter.','step_id':1}
18
+ x=c.Controller();b=x.bank
19
+ ok('bank covers all 20 demo IDs',np.array_equal(np.unique(b['demo']),np.arange(20)))
20
+ ok('reference vectors legal',b['actions'].shape==(4696,22) and np.isfinite(b['actions']).all() and np.max(abs(b['actions']))<=1)
21
+ ok('reference features finite',np.isfinite(b['features']).all())
22
+ t=time.perf_counter();a=x.act(obs());latency=time.perf_counter()-t
23
+ ok('synthetic runtime shape and bounds',a.shape==(22,) and a.dtype==np.float32 and np.isfinite(a).all() and max(abs(a))<=1)
24
+ x.reset_episode();a2=x.act(obs(batch=True));ok('HWC and 1HWC equivalence',np.array_equal(a,a2))
25
+ y=obs();y['proprioception']['agent/qpos'][0]=np.nan;ok('invalid numeric input returns zeros',np.array_equal(x.act(y),np.zeros(22)))
26
+ y=obs();del y['rgb']['left_camera'];ok('missing camera returns zeros',np.array_equal(x.act(y),np.zeros(22)))
27
+ y=obs();y['step_id']=2000;ok('native horizon terminates',x.act(y) is None)
28
+ x.visits[:]=7;x.last_index=5;x.reset_episode();ok('reset clears temporal state',x.last_index is None and not x.visits.any())
29
+ # A wholly fabricated reference fixture checks observation sensitivity, not task skill.
30
+ def fixture(rgb_difference):
31
+ x=c.Controller.__new__(c.Controller)
32
+ o0,o1=obs(50),obs(200 if rgb_difference else 50)
33
+ q=np.zeros((2,23),np.float32)
34
+ if not rgb_difference:q[1,:7]=.5;o1['proprioception']['agent/qpos'][:7]=.5
35
+ act=np.zeros((2,22),np.float32);act[:,0]=[.08,-.08]
36
+ x.bank={'features':np.stack([c.image_features(o0['rgb']),c.image_features(o1['rgb'])]),'qpos':q,'qvel':np.zeros_like(q),'qscale':np.full(23,.2,np.float32),'vscale':np.ones(23,np.float32),'actions':act,'demo':np.array([0,1]),'frame':np.array([21,21])}
37
+ x.reset_episode();a=x.act(o0);x.reset_episode();b=x.act(o1)
38
+ return a,b
39
+ for modality in ['RGB','proprioception']:
40
+ a,b=fixture(modality=='RGB');ok('current '+modality+' changes selected action in synthetic fixture',a[0]>.05 and b[0]<-.05)
41
+ c.reset_episode();ok('public module entry point',c.act(obs()).shape==(22,))
42
+ result={'status':'passed','scope':'syntax, reference integrity, synthetic inputs only','checks':checks,'synthetic_actual_bank_call_seconds':latency,'environment_calls':0,'rehearsals':0,'task_success':'unknown'}
43
+ (root/'synthetic_check_results.json').write_text(json.dumps(result,indent=2)+'\n');print(json.dumps(result,indent=2))
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/controller.py ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Unrehearsed D20 draft: nonparametric RGB/proprio action retrieval.
2
+ No environment imports, learned neural weights, seed lookup, or timed replay.
3
+ """
4
+ from pathlib import Path
5
+ import numpy as np
6
+ import cv2
7
+ from localizer import Localizer
8
+
9
+ CAMERAS = ('front_camera', 'left_camera', 'robot_camera', 'top_camera')
10
+ # Normalized crops selected by visual inspection; extrinsics remain unknown.
11
+ CROPS = ((.18,.32,.65,.90), (.28,.25,.95,.95), (0.,0.,1.,1.), (.10,.40,.95,.98))
12
+
13
+ def image_features(rgb):
14
+ out = []
15
+ for name, (x0,y0,x1,y1) in zip(CAMERAS,CROPS):
16
+ im = np.asarray(rgb[name])
17
+ if im.ndim == 4 and im.shape[0] == 1:
18
+ im = im[0]
19
+ if im.ndim != 3 or im.shape[2] != 3 or min(im.shape[:2]) < 16 or im.dtype != np.uint8:
20
+ raise ValueError('Expected uint8 RGB HWC or 1HWC')
21
+ h,w = im.shape[:2]
22
+ crop = im[int(y0*h):int(y1*h),int(x0*w):int(x1*w)]
23
+ small = cv2.resize(crop,(12,12),interpolation=cv2.INTER_AREA).astype(np.float32)/255.
24
+ # Red excess helps distinguish the chips package; it is not an object detector.
25
+ red = np.maximum(small[:,:,0] - np.maximum(small[:,:,1],small[:,:,2]),0.)
26
+ out.append(np.concatenate([small,red[:,:,None]],axis=2).reshape(-1))
27
+ return np.stack(out)
28
+
29
+ class Controller:
30
+ def __init__(self):
31
+ with np.load(Path(__file__).with_name('reference_bank.npz'),allow_pickle=False) as z:
32
+ self.bank = {k:z[k] for k in z.files}
33
+ self.localizer = Localizer()
34
+ self.reset_episode()
35
+
36
+ def reset_episode(self):
37
+ self.target_hint = None
38
+ self.scene_penalty = np.zeros(20,dtype=np.float32)
39
+ self.calls = 0
40
+ self.last_index = None
41
+ self.visits = np.zeros(len(self.bank['actions']),dtype=np.int32)
42
+ self.status = 'reset; untested draft'
43
+
44
+ def act(self, obs):
45
+ # The charged initial hold is owned by the runner. No warmup is inserted.
46
+ try:
47
+ self.calls += 1
48
+ if 'observation' in obs:
49
+ outer = obs
50
+ obs = dict(outer['observation'])
51
+ obs['step_id'] = outer.get('step_id', self.calls)
52
+ step = int(obs.get('step_id', self.calls))
53
+ if step >= 650:
54
+ self.status = 'native horizon reached; no success claim'
55
+ return None
56
+ if step <= 21:
57
+ self.status = 'settling clutter; legal zero deltas'
58
+ return np.zeros(22,dtype=np.float32)
59
+ if step < 1:
60
+ raise ValueError('step_id must start at one after runner hold')
61
+ p = obs['proprioception']
62
+ q = np.asarray(p['agent/qpos'],dtype=np.float32).reshape(-1)
63
+ v = np.asarray(p['agent/qvel'],dtype=np.float32).reshape(-1)
64
+ if q.shape != (23,) or v.shape != (23,) or not np.isfinite(q).all() or not np.isfinite(v).all():
65
+ raise ValueError('Invalid proprioception')
66
+ f = image_features(obs['rgb'])
67
+ except (KeyError,ValueError,TypeError,OverflowError):
68
+ self.status = 'invalid legal observation; zero deltas'
69
+ return np.zeros(22,dtype=np.float32)
70
+ b = self.bank
71
+ if self.target_hint is None and step <= 80:
72
+ found = self.localizer.locate(obs['rgb']['left_camera'])
73
+ if found is not None and found['matches'] >= 5:
74
+ self.target_hint = found
75
+ lb = self.localizer.bank
76
+ axes = np.array([lb[f'axis_{i}'] for i in range(20)])
77
+ delta = (lb['centers']-np.array(found['center']))/100.
78
+ self.scene_penalty = .5*np.sum(delta*delta,axis=1) + .7*(1.-np.abs(axes@np.array(found['axis'])))
79
+ qerr = ((b['qpos']-q)/b['qscale'])**2
80
+ arm = np.mean(qerr[:,:7],axis=1)
81
+ hand = np.mean(qerr[:,7:],axis=1)
82
+ vel = np.mean(np.minimum(((b['qvel']-v)/b['vscale'])**2,9.),axis=1)
83
+ vd = np.mean((b['features']-f)**2,axis=2)
84
+ # Wrist camera has rendering artifacts and receives lower weight.
85
+ visual = vd @ np.array([.30,.30,.10,.30],dtype=np.float32)
86
+ red_dist = np.mean((b['features'][:,:,3::4]-f[:,3::4])**2,axis=(1,2))
87
+ cost = 12.*visual + 30.*red_dist + .25*arm + .18*hand + .015*vel
88
+ cost += self.scene_penalty[b['demo']]
89
+ base_cost = cost.copy()
90
+ if self.last_index is not None:
91
+ j = self.last_index
92
+ same = b['demo'] == b['demo'][j]
93
+ distance = np.abs(b['frame']-b['frame'][j])
94
+ cost += np.where(same,.015*np.minimum(distance/40.,4.),.12)
95
+ cost += .001*np.minimum(self.visits,80)
96
+ cost += np.where(np.isin(b['demo'],[0,3,7,12,19]),100.,0.)
97
+ j = int(np.argmin(cost))
98
+ # Deliberately uncalibrated support checks; do not improvise large motions.
99
+ arm_rms = float(np.sqrt(np.mean((b['qpos'][j,:7]-q[:7])**2)))
100
+ if visual[j] > .12 or arm_rms > .65 or base_cost[j] > 2.5:
101
+ self.last_index = None
102
+ self.status = 'outside reference coverage; zero deltas'
103
+ return np.zeros(22,dtype=np.float32)
104
+ # Only blend nearby samples with compatible arm commands and hand pose.
105
+ eligible = np.flatnonzero((np.linalg.norm(b['actions'][:,:6]-b['actions'][j,:6],axis=1)<.12)
106
+ & (np.mean((b['qpos'][:,7:]-b['qpos'][j,7:])**2,axis=1)<.04))
107
+ ids = np.array([j])
108
+ weight = np.exp(-(cost[ids]-np.min(cost[ids]))/.025)
109
+ action = np.sum(b['actions'][ids]*weight[:,None],axis=0)/weight.sum()
110
+ self.visits[j] += 1
111
+ self.last_index = j
112
+ self.status = 'observation-conditioned retrieval; completion unknown'
113
+ # Single contract action part: arm translation, arm rotation, 16 dex deltas.
114
+ return np.clip(action,-1.,1.).astype(np.float32)
115
+
116
+ _controller = None
117
+
118
+ def reset_episode():
119
+ global _controller
120
+ if _controller is None:
121
+ _controller = Controller()
122
+ else:
123
+ _controller.reset_episode()
124
+
125
+ def act(obs):
126
+ global _controller
127
+ if _controller is None:
128
+ reset_episode()
129
+ return _controller.act(obs)
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/demo_manifest.json ADDED
@@ -0,0 +1,1488 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "task_id": "ClutterGrasp-v1",
3
+ "status": "released",
4
+ "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data",
5
+ "lineage_status": "pinned_comparator",
6
+ "episodes": [
7
+ {
8
+ "demo_id": "demo_00",
9
+ "file": "demo_00.h5",
10
+ "length": 936,
11
+ "fields": [
12
+ {
13
+ "path": "actions",
14
+ "shape": [
15
+ 936,
16
+ 22
17
+ ],
18
+ "dtype": "float32"
19
+ },
20
+ {
21
+ "path": "obs/agent/qpos",
22
+ "shape": [
23
+ 937,
24
+ 23
25
+ ],
26
+ "dtype": "float32"
27
+ },
28
+ {
29
+ "path": "obs/agent/qvel",
30
+ "shape": [
31
+ 937,
32
+ 23
33
+ ],
34
+ "dtype": "float32"
35
+ },
36
+ {
37
+ "path": "obs/sensor_data/front_camera/rgb",
38
+ "shape": [
39
+ 937,
40
+ 240,
41
+ 320,
42
+ 3
43
+ ],
44
+ "dtype": "uint8"
45
+ },
46
+ {
47
+ "path": "obs/sensor_data/left_camera/rgb",
48
+ "shape": [
49
+ 937,
50
+ 240,
51
+ 320,
52
+ 3
53
+ ],
54
+ "dtype": "uint8"
55
+ },
56
+ {
57
+ "path": "obs/sensor_data/robot_camera/rgb",
58
+ "shape": [
59
+ 937,
60
+ 240,
61
+ 320,
62
+ 3
63
+ ],
64
+ "dtype": "uint8"
65
+ },
66
+ {
67
+ "path": "obs/sensor_data/top_camera/rgb",
68
+ "shape": [
69
+ 937,
70
+ 320,
71
+ 240,
72
+ 3
73
+ ],
74
+ "dtype": "uint8"
75
+ }
76
+ ],
77
+ "trajectory_sha256": "dab48831f079e1c40fa3e9696aa39edff47e4e022d142c7767e2e1535135795e",
78
+ "source_sha256": "55248d8a5853918dea2736deae5ca3d87cd7a217decc5c5414a1c04ff872db9c",
79
+ "view_sha256": "bb87560299133fded4b00d572f0e1735abb77f64b225619b7d9ad106e91d0ded"
80
+ },
81
+ {
82
+ "demo_id": "demo_01",
83
+ "file": "demo_01.h5",
84
+ "length": 318,
85
+ "fields": [
86
+ {
87
+ "path": "actions",
88
+ "shape": [
89
+ 318,
90
+ 22
91
+ ],
92
+ "dtype": "float32"
93
+ },
94
+ {
95
+ "path": "obs/agent/qpos",
96
+ "shape": [
97
+ 319,
98
+ 23
99
+ ],
100
+ "dtype": "float32"
101
+ },
102
+ {
103
+ "path": "obs/agent/qvel",
104
+ "shape": [
105
+ 319,
106
+ 23
107
+ ],
108
+ "dtype": "float32"
109
+ },
110
+ {
111
+ "path": "obs/sensor_data/front_camera/rgb",
112
+ "shape": [
113
+ 319,
114
+ 240,
115
+ 320,
116
+ 3
117
+ ],
118
+ "dtype": "uint8"
119
+ },
120
+ {
121
+ "path": "obs/sensor_data/left_camera/rgb",
122
+ "shape": [
123
+ 319,
124
+ 240,
125
+ 320,
126
+ 3
127
+ ],
128
+ "dtype": "uint8"
129
+ },
130
+ {
131
+ "path": "obs/sensor_data/robot_camera/rgb",
132
+ "shape": [
133
+ 319,
134
+ 240,
135
+ 320,
136
+ 3
137
+ ],
138
+ "dtype": "uint8"
139
+ },
140
+ {
141
+ "path": "obs/sensor_data/top_camera/rgb",
142
+ "shape": [
143
+ 319,
144
+ 320,
145
+ 240,
146
+ 3
147
+ ],
148
+ "dtype": "uint8"
149
+ }
150
+ ],
151
+ "trajectory_sha256": "5c656f6b5c439c3ee4c9d9edadd53873d0d587ec0dc99a0e5d944cfa3cbb8591",
152
+ "source_sha256": "ba9f86626955ffb48a871e34470389e09ccff50f66ed00abc39c6204498491ea",
153
+ "view_sha256": "15050afcb690f2fedd109b0f3b3e7cf27a86e5ec1a27bc7e65a6dade6b017aa0"
154
+ },
155
+ {
156
+ "demo_id": "demo_02",
157
+ "file": "demo_02.h5",
158
+ "length": 405,
159
+ "fields": [
160
+ {
161
+ "path": "actions",
162
+ "shape": [
163
+ 405,
164
+ 22
165
+ ],
166
+ "dtype": "float32"
167
+ },
168
+ {
169
+ "path": "obs/agent/qpos",
170
+ "shape": [
171
+ 406,
172
+ 23
173
+ ],
174
+ "dtype": "float32"
175
+ },
176
+ {
177
+ "path": "obs/agent/qvel",
178
+ "shape": [
179
+ 406,
180
+ 23
181
+ ],
182
+ "dtype": "float32"
183
+ },
184
+ {
185
+ "path": "obs/sensor_data/front_camera/rgb",
186
+ "shape": [
187
+ 406,
188
+ 240,
189
+ 320,
190
+ 3
191
+ ],
192
+ "dtype": "uint8"
193
+ },
194
+ {
195
+ "path": "obs/sensor_data/left_camera/rgb",
196
+ "shape": [
197
+ 406,
198
+ 240,
199
+ 320,
200
+ 3
201
+ ],
202
+ "dtype": "uint8"
203
+ },
204
+ {
205
+ "path": "obs/sensor_data/robot_camera/rgb",
206
+ "shape": [
207
+ 406,
208
+ 240,
209
+ 320,
210
+ 3
211
+ ],
212
+ "dtype": "uint8"
213
+ },
214
+ {
215
+ "path": "obs/sensor_data/top_camera/rgb",
216
+ "shape": [
217
+ 406,
218
+ 320,
219
+ 240,
220
+ 3
221
+ ],
222
+ "dtype": "uint8"
223
+ }
224
+ ],
225
+ "trajectory_sha256": "f5ee0d01a13f2ec7fd185109ecccc76ff47c188f2a5fa796528e211c2d36db72",
226
+ "source_sha256": "a8c9ccca94755fd4eca40f492c37eafb0e696307baeb849e36776bc74e9698d0",
227
+ "view_sha256": "3adf8a2cdda877ab9148f101dc12306f5e6a27385a0266d4c4dcd210f77ef512"
228
+ },
229
+ {
230
+ "demo_id": "demo_03",
231
+ "file": "demo_03.h5",
232
+ "length": 1040,
233
+ "fields": [
234
+ {
235
+ "path": "actions",
236
+ "shape": [
237
+ 1040,
238
+ 22
239
+ ],
240
+ "dtype": "float32"
241
+ },
242
+ {
243
+ "path": "obs/agent/qpos",
244
+ "shape": [
245
+ 1041,
246
+ 23
247
+ ],
248
+ "dtype": "float32"
249
+ },
250
+ {
251
+ "path": "obs/agent/qvel",
252
+ "shape": [
253
+ 1041,
254
+ 23
255
+ ],
256
+ "dtype": "float32"
257
+ },
258
+ {
259
+ "path": "obs/sensor_data/front_camera/rgb",
260
+ "shape": [
261
+ 1041,
262
+ 240,
263
+ 320,
264
+ 3
265
+ ],
266
+ "dtype": "uint8"
267
+ },
268
+ {
269
+ "path": "obs/sensor_data/left_camera/rgb",
270
+ "shape": [
271
+ 1041,
272
+ 240,
273
+ 320,
274
+ 3
275
+ ],
276
+ "dtype": "uint8"
277
+ },
278
+ {
279
+ "path": "obs/sensor_data/robot_camera/rgb",
280
+ "shape": [
281
+ 1041,
282
+ 240,
283
+ 320,
284
+ 3
285
+ ],
286
+ "dtype": "uint8"
287
+ },
288
+ {
289
+ "path": "obs/sensor_data/top_camera/rgb",
290
+ "shape": [
291
+ 1041,
292
+ 320,
293
+ 240,
294
+ 3
295
+ ],
296
+ "dtype": "uint8"
297
+ }
298
+ ],
299
+ "trajectory_sha256": "1afb18dfeb547127a15601caef162514e88afadd740e37031973ead8174dccfe",
300
+ "source_sha256": "982062e5cec6d5ab97fbe1e379fa94ff3ec85ff2e8eb2ca724d0ffda21c287aa",
301
+ "view_sha256": "11aa54f027b3e9cb5e08b72010dd2df99b64ea687d65b0781c0fec9e2812a4b1"
302
+ },
303
+ {
304
+ "demo_id": "demo_04",
305
+ "file": "demo_04.h5",
306
+ "length": 301,
307
+ "fields": [
308
+ {
309
+ "path": "actions",
310
+ "shape": [
311
+ 301,
312
+ 22
313
+ ],
314
+ "dtype": "float32"
315
+ },
316
+ {
317
+ "path": "obs/agent/qpos",
318
+ "shape": [
319
+ 302,
320
+ 23
321
+ ],
322
+ "dtype": "float32"
323
+ },
324
+ {
325
+ "path": "obs/agent/qvel",
326
+ "shape": [
327
+ 302,
328
+ 23
329
+ ],
330
+ "dtype": "float32"
331
+ },
332
+ {
333
+ "path": "obs/sensor_data/front_camera/rgb",
334
+ "shape": [
335
+ 302,
336
+ 240,
337
+ 320,
338
+ 3
339
+ ],
340
+ "dtype": "uint8"
341
+ },
342
+ {
343
+ "path": "obs/sensor_data/left_camera/rgb",
344
+ "shape": [
345
+ 302,
346
+ 240,
347
+ 320,
348
+ 3
349
+ ],
350
+ "dtype": "uint8"
351
+ },
352
+ {
353
+ "path": "obs/sensor_data/robot_camera/rgb",
354
+ "shape": [
355
+ 302,
356
+ 240,
357
+ 320,
358
+ 3
359
+ ],
360
+ "dtype": "uint8"
361
+ },
362
+ {
363
+ "path": "obs/sensor_data/top_camera/rgb",
364
+ "shape": [
365
+ 302,
366
+ 320,
367
+ 240,
368
+ 3
369
+ ],
370
+ "dtype": "uint8"
371
+ }
372
+ ],
373
+ "trajectory_sha256": "ba85d9b7138933b0bcefe696d61faf6becaac28dd6f8d25ee45e3cbd9c2117b5",
374
+ "source_sha256": "9357bddce0221366f9b55ea2deb97aff87c197b728bc2e74bb7ca9a7e2375999",
375
+ "view_sha256": "d4eaad0568dba1bddabf2bbbb31cbbe367c2b46d0828d5cd81866cccebc68a5d"
376
+ },
377
+ {
378
+ "demo_id": "demo_05",
379
+ "file": "demo_05.h5",
380
+ "length": 292,
381
+ "fields": [
382
+ {
383
+ "path": "actions",
384
+ "shape": [
385
+ 292,
386
+ 22
387
+ ],
388
+ "dtype": "float32"
389
+ },
390
+ {
391
+ "path": "obs/agent/qpos",
392
+ "shape": [
393
+ 293,
394
+ 23
395
+ ],
396
+ "dtype": "float32"
397
+ },
398
+ {
399
+ "path": "obs/agent/qvel",
400
+ "shape": [
401
+ 293,
402
+ 23
403
+ ],
404
+ "dtype": "float32"
405
+ },
406
+ {
407
+ "path": "obs/sensor_data/front_camera/rgb",
408
+ "shape": [
409
+ 293,
410
+ 240,
411
+ 320,
412
+ 3
413
+ ],
414
+ "dtype": "uint8"
415
+ },
416
+ {
417
+ "path": "obs/sensor_data/left_camera/rgb",
418
+ "shape": [
419
+ 293,
420
+ 240,
421
+ 320,
422
+ 3
423
+ ],
424
+ "dtype": "uint8"
425
+ },
426
+ {
427
+ "path": "obs/sensor_data/robot_camera/rgb",
428
+ "shape": [
429
+ 293,
430
+ 240,
431
+ 320,
432
+ 3
433
+ ],
434
+ "dtype": "uint8"
435
+ },
436
+ {
437
+ "path": "obs/sensor_data/top_camera/rgb",
438
+ "shape": [
439
+ 293,
440
+ 320,
441
+ 240,
442
+ 3
443
+ ],
444
+ "dtype": "uint8"
445
+ }
446
+ ],
447
+ "trajectory_sha256": "b233b5e852f19f08fc83e12714e6c599645f4aa799185c8fa83cba959ad41f15",
448
+ "source_sha256": "e6b2f01b11500983672a69a19109ec4e2b097b7026dd9a0e2e4a7d552166ef86",
449
+ "view_sha256": "6d450eae8f6c4144b902a5fee7e7e5f17195565c02db660ab51c61b26ae772c6"
450
+ },
451
+ {
452
+ "demo_id": "demo_06",
453
+ "file": "demo_06.h5",
454
+ "length": 240,
455
+ "fields": [
456
+ {
457
+ "path": "actions",
458
+ "shape": [
459
+ 240,
460
+ 22
461
+ ],
462
+ "dtype": "float32"
463
+ },
464
+ {
465
+ "path": "obs/agent/qpos",
466
+ "shape": [
467
+ 241,
468
+ 23
469
+ ],
470
+ "dtype": "float32"
471
+ },
472
+ {
473
+ "path": "obs/agent/qvel",
474
+ "shape": [
475
+ 241,
476
+ 23
477
+ ],
478
+ "dtype": "float32"
479
+ },
480
+ {
481
+ "path": "obs/sensor_data/front_camera/rgb",
482
+ "shape": [
483
+ 241,
484
+ 240,
485
+ 320,
486
+ 3
487
+ ],
488
+ "dtype": "uint8"
489
+ },
490
+ {
491
+ "path": "obs/sensor_data/left_camera/rgb",
492
+ "shape": [
493
+ 241,
494
+ 240,
495
+ 320,
496
+ 3
497
+ ],
498
+ "dtype": "uint8"
499
+ },
500
+ {
501
+ "path": "obs/sensor_data/robot_camera/rgb",
502
+ "shape": [
503
+ 241,
504
+ 240,
505
+ 320,
506
+ 3
507
+ ],
508
+ "dtype": "uint8"
509
+ },
510
+ {
511
+ "path": "obs/sensor_data/top_camera/rgb",
512
+ "shape": [
513
+ 241,
514
+ 320,
515
+ 240,
516
+ 3
517
+ ],
518
+ "dtype": "uint8"
519
+ }
520
+ ],
521
+ "trajectory_sha256": "b383c493ba96ffad34bb63a88204086a7537bb2758f5ca6bd9f298e6fcdaf37e",
522
+ "source_sha256": "eb350905e6870180aa7b486aed156ce0275240ecea52a3f50bd934df4f59e4bb",
523
+ "view_sha256": "5f4b9bd7d4d632a6bec7272c822ec98fe316b5a9d274a0700cfcf415c56d39c9"
524
+ },
525
+ {
526
+ "demo_id": "demo_07",
527
+ "file": "demo_07.h5",
528
+ "length": 1019,
529
+ "fields": [
530
+ {
531
+ "path": "actions",
532
+ "shape": [
533
+ 1019,
534
+ 22
535
+ ],
536
+ "dtype": "float32"
537
+ },
538
+ {
539
+ "path": "obs/agent/qpos",
540
+ "shape": [
541
+ 1020,
542
+ 23
543
+ ],
544
+ "dtype": "float32"
545
+ },
546
+ {
547
+ "path": "obs/agent/qvel",
548
+ "shape": [
549
+ 1020,
550
+ 23
551
+ ],
552
+ "dtype": "float32"
553
+ },
554
+ {
555
+ "path": "obs/sensor_data/front_camera/rgb",
556
+ "shape": [
557
+ 1020,
558
+ 240,
559
+ 320,
560
+ 3
561
+ ],
562
+ "dtype": "uint8"
563
+ },
564
+ {
565
+ "path": "obs/sensor_data/left_camera/rgb",
566
+ "shape": [
567
+ 1020,
568
+ 240,
569
+ 320,
570
+ 3
571
+ ],
572
+ "dtype": "uint8"
573
+ },
574
+ {
575
+ "path": "obs/sensor_data/robot_camera/rgb",
576
+ "shape": [
577
+ 1020,
578
+ 240,
579
+ 320,
580
+ 3
581
+ ],
582
+ "dtype": "uint8"
583
+ },
584
+ {
585
+ "path": "obs/sensor_data/top_camera/rgb",
586
+ "shape": [
587
+ 1020,
588
+ 320,
589
+ 240,
590
+ 3
591
+ ],
592
+ "dtype": "uint8"
593
+ }
594
+ ],
595
+ "trajectory_sha256": "dc689ee3a11f685b4ce1af0170e3df8b513565344a21a30560040f12134f17e7",
596
+ "source_sha256": "2dae4b7e0f65fdd6d87f31506d764d3e3d5ffdaeb019a1bad5750897c70d7215",
597
+ "view_sha256": "e7f47f8773c2981f4b7a6890c53fae2537ca949c187f7feb2da0371a64f27482"
598
+ },
599
+ {
600
+ "demo_id": "demo_08",
601
+ "file": "demo_08.h5",
602
+ "length": 228,
603
+ "fields": [
604
+ {
605
+ "path": "actions",
606
+ "shape": [
607
+ 228,
608
+ 22
609
+ ],
610
+ "dtype": "float32"
611
+ },
612
+ {
613
+ "path": "obs/agent/qpos",
614
+ "shape": [
615
+ 229,
616
+ 23
617
+ ],
618
+ "dtype": "float32"
619
+ },
620
+ {
621
+ "path": "obs/agent/qvel",
622
+ "shape": [
623
+ 229,
624
+ 23
625
+ ],
626
+ "dtype": "float32"
627
+ },
628
+ {
629
+ "path": "obs/sensor_data/front_camera/rgb",
630
+ "shape": [
631
+ 229,
632
+ 240,
633
+ 320,
634
+ 3
635
+ ],
636
+ "dtype": "uint8"
637
+ },
638
+ {
639
+ "path": "obs/sensor_data/left_camera/rgb",
640
+ "shape": [
641
+ 229,
642
+ 240,
643
+ 320,
644
+ 3
645
+ ],
646
+ "dtype": "uint8"
647
+ },
648
+ {
649
+ "path": "obs/sensor_data/robot_camera/rgb",
650
+ "shape": [
651
+ 229,
652
+ 240,
653
+ 320,
654
+ 3
655
+ ],
656
+ "dtype": "uint8"
657
+ },
658
+ {
659
+ "path": "obs/sensor_data/top_camera/rgb",
660
+ "shape": [
661
+ 229,
662
+ 320,
663
+ 240,
664
+ 3
665
+ ],
666
+ "dtype": "uint8"
667
+ }
668
+ ],
669
+ "trajectory_sha256": "9ba741d3b267f2929eee6612771932dcbad71154db201136193efb9a182c8a77",
670
+ "source_sha256": "1d63d092341b7df28ee7767f235e4043a27f6e15bf21745871e6a84eb3506665",
671
+ "view_sha256": "a6c0b85e08dcc2760aa816439e224e9f34d2825fb0502c7aaee7c535b74a63c7"
672
+ },
673
+ {
674
+ "demo_id": "demo_09",
675
+ "file": "demo_09.h5",
676
+ "length": 441,
677
+ "fields": [
678
+ {
679
+ "path": "actions",
680
+ "shape": [
681
+ 441,
682
+ 22
683
+ ],
684
+ "dtype": "float32"
685
+ },
686
+ {
687
+ "path": "obs/agent/qpos",
688
+ "shape": [
689
+ 442,
690
+ 23
691
+ ],
692
+ "dtype": "float32"
693
+ },
694
+ {
695
+ "path": "obs/agent/qvel",
696
+ "shape": [
697
+ 442,
698
+ 23
699
+ ],
700
+ "dtype": "float32"
701
+ },
702
+ {
703
+ "path": "obs/sensor_data/front_camera/rgb",
704
+ "shape": [
705
+ 442,
706
+ 240,
707
+ 320,
708
+ 3
709
+ ],
710
+ "dtype": "uint8"
711
+ },
712
+ {
713
+ "path": "obs/sensor_data/left_camera/rgb",
714
+ "shape": [
715
+ 442,
716
+ 240,
717
+ 320,
718
+ 3
719
+ ],
720
+ "dtype": "uint8"
721
+ },
722
+ {
723
+ "path": "obs/sensor_data/robot_camera/rgb",
724
+ "shape": [
725
+ 442,
726
+ 240,
727
+ 320,
728
+ 3
729
+ ],
730
+ "dtype": "uint8"
731
+ },
732
+ {
733
+ "path": "obs/sensor_data/top_camera/rgb",
734
+ "shape": [
735
+ 442,
736
+ 320,
737
+ 240,
738
+ 3
739
+ ],
740
+ "dtype": "uint8"
741
+ }
742
+ ],
743
+ "trajectory_sha256": "00265cf3b670e4f8c55d81e14645ecd8ea09ad48759bb4f709f26bf88fa8aba4",
744
+ "source_sha256": "d0dd5888511d07b0f4280247031a7412f5c47da8a7e5162fee75a5005083f2ad",
745
+ "view_sha256": "a150d4ba98ef65704f14437632bbe96fb95f75a1a2460c1d18b788c4472f24f2"
746
+ },
747
+ {
748
+ "demo_id": "demo_10",
749
+ "file": "demo_10.h5",
750
+ "length": 245,
751
+ "fields": [
752
+ {
753
+ "path": "actions",
754
+ "shape": [
755
+ 245,
756
+ 22
757
+ ],
758
+ "dtype": "float32"
759
+ },
760
+ {
761
+ "path": "obs/agent/qpos",
762
+ "shape": [
763
+ 246,
764
+ 23
765
+ ],
766
+ "dtype": "float32"
767
+ },
768
+ {
769
+ "path": "obs/agent/qvel",
770
+ "shape": [
771
+ 246,
772
+ 23
773
+ ],
774
+ "dtype": "float32"
775
+ },
776
+ {
777
+ "path": "obs/sensor_data/front_camera/rgb",
778
+ "shape": [
779
+ 246,
780
+ 240,
781
+ 320,
782
+ 3
783
+ ],
784
+ "dtype": "uint8"
785
+ },
786
+ {
787
+ "path": "obs/sensor_data/left_camera/rgb",
788
+ "shape": [
789
+ 246,
790
+ 240,
791
+ 320,
792
+ 3
793
+ ],
794
+ "dtype": "uint8"
795
+ },
796
+ {
797
+ "path": "obs/sensor_data/robot_camera/rgb",
798
+ "shape": [
799
+ 246,
800
+ 240,
801
+ 320,
802
+ 3
803
+ ],
804
+ "dtype": "uint8"
805
+ },
806
+ {
807
+ "path": "obs/sensor_data/top_camera/rgb",
808
+ "shape": [
809
+ 246,
810
+ 320,
811
+ 240,
812
+ 3
813
+ ],
814
+ "dtype": "uint8"
815
+ }
816
+ ],
817
+ "trajectory_sha256": "0ce0ae6235e9a8c02526fb6e6d27aaa006672800f2c42183ffe84b15e601ab1b",
818
+ "source_sha256": "aeffde5e07b66b97dca58c0282d2c5e205806ab5828977f0514db19b29cde198",
819
+ "view_sha256": "3450f14a479ea22a86a7e0257e7eb7638045550904a736a4619be0602e20014b"
820
+ },
821
+ {
822
+ "demo_id": "demo_11",
823
+ "file": "demo_11.h5",
824
+ "length": 378,
825
+ "fields": [
826
+ {
827
+ "path": "actions",
828
+ "shape": [
829
+ 378,
830
+ 22
831
+ ],
832
+ "dtype": "float32"
833
+ },
834
+ {
835
+ "path": "obs/agent/qpos",
836
+ "shape": [
837
+ 379,
838
+ 23
839
+ ],
840
+ "dtype": "float32"
841
+ },
842
+ {
843
+ "path": "obs/agent/qvel",
844
+ "shape": [
845
+ 379,
846
+ 23
847
+ ],
848
+ "dtype": "float32"
849
+ },
850
+ {
851
+ "path": "obs/sensor_data/front_camera/rgb",
852
+ "shape": [
853
+ 379,
854
+ 240,
855
+ 320,
856
+ 3
857
+ ],
858
+ "dtype": "uint8"
859
+ },
860
+ {
861
+ "path": "obs/sensor_data/left_camera/rgb",
862
+ "shape": [
863
+ 379,
864
+ 240,
865
+ 320,
866
+ 3
867
+ ],
868
+ "dtype": "uint8"
869
+ },
870
+ {
871
+ "path": "obs/sensor_data/robot_camera/rgb",
872
+ "shape": [
873
+ 379,
874
+ 240,
875
+ 320,
876
+ 3
877
+ ],
878
+ "dtype": "uint8"
879
+ },
880
+ {
881
+ "path": "obs/sensor_data/top_camera/rgb",
882
+ "shape": [
883
+ 379,
884
+ 320,
885
+ 240,
886
+ 3
887
+ ],
888
+ "dtype": "uint8"
889
+ }
890
+ ],
891
+ "trajectory_sha256": "8e089d9a3c04d4591de174f354198162760a9e86f8a77bf58bbcf45524a96d52",
892
+ "source_sha256": "7a2dcab7b6159c0846dc4c20e908319bceadc13eb7c90e97eaf95bca86dd235f",
893
+ "view_sha256": "e3604c389cc4940ea84e647c6ca846a47ee7cdf4ac6fcf2299d2f179c1a61ed5"
894
+ },
895
+ {
896
+ "demo_id": "demo_12",
897
+ "file": "demo_12.h5",
898
+ "length": 1015,
899
+ "fields": [
900
+ {
901
+ "path": "actions",
902
+ "shape": [
903
+ 1015,
904
+ 22
905
+ ],
906
+ "dtype": "float32"
907
+ },
908
+ {
909
+ "path": "obs/agent/qpos",
910
+ "shape": [
911
+ 1016,
912
+ 23
913
+ ],
914
+ "dtype": "float32"
915
+ },
916
+ {
917
+ "path": "obs/agent/qvel",
918
+ "shape": [
919
+ 1016,
920
+ 23
921
+ ],
922
+ "dtype": "float32"
923
+ },
924
+ {
925
+ "path": "obs/sensor_data/front_camera/rgb",
926
+ "shape": [
927
+ 1016,
928
+ 240,
929
+ 320,
930
+ 3
931
+ ],
932
+ "dtype": "uint8"
933
+ },
934
+ {
935
+ "path": "obs/sensor_data/left_camera/rgb",
936
+ "shape": [
937
+ 1016,
938
+ 240,
939
+ 320,
940
+ 3
941
+ ],
942
+ "dtype": "uint8"
943
+ },
944
+ {
945
+ "path": "obs/sensor_data/robot_camera/rgb",
946
+ "shape": [
947
+ 1016,
948
+ 240,
949
+ 320,
950
+ 3
951
+ ],
952
+ "dtype": "uint8"
953
+ },
954
+ {
955
+ "path": "obs/sensor_data/top_camera/rgb",
956
+ "shape": [
957
+ 1016,
958
+ 320,
959
+ 240,
960
+ 3
961
+ ],
962
+ "dtype": "uint8"
963
+ }
964
+ ],
965
+ "trajectory_sha256": "6431fbf1351024117942895439c9965f3be2fab2eb63d24779e741544c7f64bb",
966
+ "source_sha256": "2f2268c255c99f0d6df3fa9d88ceb77d85b308cbd872310abfbf0bdf4989f3c4",
967
+ "view_sha256": "61baf52c80fbca72fb9577b6bd81821d4cbe0bd7de9f6797b4f16f277374c7de"
968
+ },
969
+ {
970
+ "demo_id": "demo_13",
971
+ "file": "demo_13.h5",
972
+ "length": 389,
973
+ "fields": [
974
+ {
975
+ "path": "actions",
976
+ "shape": [
977
+ 389,
978
+ 22
979
+ ],
980
+ "dtype": "float32"
981
+ },
982
+ {
983
+ "path": "obs/agent/qpos",
984
+ "shape": [
985
+ 390,
986
+ 23
987
+ ],
988
+ "dtype": "float32"
989
+ },
990
+ {
991
+ "path": "obs/agent/qvel",
992
+ "shape": [
993
+ 390,
994
+ 23
995
+ ],
996
+ "dtype": "float32"
997
+ },
998
+ {
999
+ "path": "obs/sensor_data/front_camera/rgb",
1000
+ "shape": [
1001
+ 390,
1002
+ 240,
1003
+ 320,
1004
+ 3
1005
+ ],
1006
+ "dtype": "uint8"
1007
+ },
1008
+ {
1009
+ "path": "obs/sensor_data/left_camera/rgb",
1010
+ "shape": [
1011
+ 390,
1012
+ 240,
1013
+ 320,
1014
+ 3
1015
+ ],
1016
+ "dtype": "uint8"
1017
+ },
1018
+ {
1019
+ "path": "obs/sensor_data/robot_camera/rgb",
1020
+ "shape": [
1021
+ 390,
1022
+ 240,
1023
+ 320,
1024
+ 3
1025
+ ],
1026
+ "dtype": "uint8"
1027
+ },
1028
+ {
1029
+ "path": "obs/sensor_data/top_camera/rgb",
1030
+ "shape": [
1031
+ 390,
1032
+ 320,
1033
+ 240,
1034
+ 3
1035
+ ],
1036
+ "dtype": "uint8"
1037
+ }
1038
+ ],
1039
+ "trajectory_sha256": "c54faeb87f90e5126fca09043e52a23db3cbb010b50ed89e569bc72dc49eeb4d",
1040
+ "source_sha256": "dd98a788620a930a892f07cd6c22d6dc2637953f0cb403994f8c704e40f9b104",
1041
+ "view_sha256": "e32e0f5e84f0090a2ed273faceeeeb295dd393ef7e3eb12a58d8b146427d468a"
1042
+ },
1043
+ {
1044
+ "demo_id": "demo_14",
1045
+ "file": "demo_14.h5",
1046
+ "length": 231,
1047
+ "fields": [
1048
+ {
1049
+ "path": "actions",
1050
+ "shape": [
1051
+ 231,
1052
+ 22
1053
+ ],
1054
+ "dtype": "float32"
1055
+ },
1056
+ {
1057
+ "path": "obs/agent/qpos",
1058
+ "shape": [
1059
+ 232,
1060
+ 23
1061
+ ],
1062
+ "dtype": "float32"
1063
+ },
1064
+ {
1065
+ "path": "obs/agent/qvel",
1066
+ "shape": [
1067
+ 232,
1068
+ 23
1069
+ ],
1070
+ "dtype": "float32"
1071
+ },
1072
+ {
1073
+ "path": "obs/sensor_data/front_camera/rgb",
1074
+ "shape": [
1075
+ 232,
1076
+ 240,
1077
+ 320,
1078
+ 3
1079
+ ],
1080
+ "dtype": "uint8"
1081
+ },
1082
+ {
1083
+ "path": "obs/sensor_data/left_camera/rgb",
1084
+ "shape": [
1085
+ 232,
1086
+ 240,
1087
+ 320,
1088
+ 3
1089
+ ],
1090
+ "dtype": "uint8"
1091
+ },
1092
+ {
1093
+ "path": "obs/sensor_data/robot_camera/rgb",
1094
+ "shape": [
1095
+ 232,
1096
+ 240,
1097
+ 320,
1098
+ 3
1099
+ ],
1100
+ "dtype": "uint8"
1101
+ },
1102
+ {
1103
+ "path": "obs/sensor_data/top_camera/rgb",
1104
+ "shape": [
1105
+ 232,
1106
+ 320,
1107
+ 240,
1108
+ 3
1109
+ ],
1110
+ "dtype": "uint8"
1111
+ }
1112
+ ],
1113
+ "trajectory_sha256": "6394d9f802d46d3f752e947234abe8ea3d493e213c127977491614451799e53b",
1114
+ "source_sha256": "dcda657996ff8d4a7f482c0d38a1825fe627772e4550e7df13acd83cdcfa7c1e",
1115
+ "view_sha256": "bc6796fe94025443a9f7fc67e6e6fcec80cc604fe406437572a4d3125171266f"
1116
+ },
1117
+ {
1118
+ "demo_id": "demo_15",
1119
+ "file": "demo_15.h5",
1120
+ "length": 356,
1121
+ "fields": [
1122
+ {
1123
+ "path": "actions",
1124
+ "shape": [
1125
+ 356,
1126
+ 22
1127
+ ],
1128
+ "dtype": "float32"
1129
+ },
1130
+ {
1131
+ "path": "obs/agent/qpos",
1132
+ "shape": [
1133
+ 357,
1134
+ 23
1135
+ ],
1136
+ "dtype": "float32"
1137
+ },
1138
+ {
1139
+ "path": "obs/agent/qvel",
1140
+ "shape": [
1141
+ 357,
1142
+ 23
1143
+ ],
1144
+ "dtype": "float32"
1145
+ },
1146
+ {
1147
+ "path": "obs/sensor_data/front_camera/rgb",
1148
+ "shape": [
1149
+ 357,
1150
+ 240,
1151
+ 320,
1152
+ 3
1153
+ ],
1154
+ "dtype": "uint8"
1155
+ },
1156
+ {
1157
+ "path": "obs/sensor_data/left_camera/rgb",
1158
+ "shape": [
1159
+ 357,
1160
+ 240,
1161
+ 320,
1162
+ 3
1163
+ ],
1164
+ "dtype": "uint8"
1165
+ },
1166
+ {
1167
+ "path": "obs/sensor_data/robot_camera/rgb",
1168
+ "shape": [
1169
+ 357,
1170
+ 240,
1171
+ 320,
1172
+ 3
1173
+ ],
1174
+ "dtype": "uint8"
1175
+ },
1176
+ {
1177
+ "path": "obs/sensor_data/top_camera/rgb",
1178
+ "shape": [
1179
+ 357,
1180
+ 320,
1181
+ 240,
1182
+ 3
1183
+ ],
1184
+ "dtype": "uint8"
1185
+ }
1186
+ ],
1187
+ "trajectory_sha256": "91e57e6d6f3a974d2713ea2081635a8964d61ae76c76654b08122514916e7cf7",
1188
+ "source_sha256": "f1531f5227d037ebb48210817c57aedc1779eb406be8c3846f2780d31faa580a",
1189
+ "view_sha256": "c9e7826aa6bcf33363929fefc6e5cb2580dac300376bedbc6156bf0622d21351"
1190
+ },
1191
+ {
1192
+ "demo_id": "demo_16",
1193
+ "file": "demo_16.h5",
1194
+ "length": 224,
1195
+ "fields": [
1196
+ {
1197
+ "path": "actions",
1198
+ "shape": [
1199
+ 224,
1200
+ 22
1201
+ ],
1202
+ "dtype": "float32"
1203
+ },
1204
+ {
1205
+ "path": "obs/agent/qpos",
1206
+ "shape": [
1207
+ 225,
1208
+ 23
1209
+ ],
1210
+ "dtype": "float32"
1211
+ },
1212
+ {
1213
+ "path": "obs/agent/qvel",
1214
+ "shape": [
1215
+ 225,
1216
+ 23
1217
+ ],
1218
+ "dtype": "float32"
1219
+ },
1220
+ {
1221
+ "path": "obs/sensor_data/front_camera/rgb",
1222
+ "shape": [
1223
+ 225,
1224
+ 240,
1225
+ 320,
1226
+ 3
1227
+ ],
1228
+ "dtype": "uint8"
1229
+ },
1230
+ {
1231
+ "path": "obs/sensor_data/left_camera/rgb",
1232
+ "shape": [
1233
+ 225,
1234
+ 240,
1235
+ 320,
1236
+ 3
1237
+ ],
1238
+ "dtype": "uint8"
1239
+ },
1240
+ {
1241
+ "path": "obs/sensor_data/robot_camera/rgb",
1242
+ "shape": [
1243
+ 225,
1244
+ 240,
1245
+ 320,
1246
+ 3
1247
+ ],
1248
+ "dtype": "uint8"
1249
+ },
1250
+ {
1251
+ "path": "obs/sensor_data/top_camera/rgb",
1252
+ "shape": [
1253
+ 225,
1254
+ 320,
1255
+ 240,
1256
+ 3
1257
+ ],
1258
+ "dtype": "uint8"
1259
+ }
1260
+ ],
1261
+ "trajectory_sha256": "696196f0b593da9da6186401c0c76b47da0986a34ce3b4c6ed3e890d867906fc",
1262
+ "source_sha256": "181cc7503796c1603dc01c6462f6cc7742c3b200535841411a06cc799494f8c2",
1263
+ "view_sha256": "6abd01b1f01bed9a59d06695dec06b508a3d642e2987428cb4af805abb30cf32"
1264
+ },
1265
+ {
1266
+ "demo_id": "demo_17",
1267
+ "file": "demo_17.h5",
1268
+ "length": 439,
1269
+ "fields": [
1270
+ {
1271
+ "path": "actions",
1272
+ "shape": [
1273
+ 439,
1274
+ 22
1275
+ ],
1276
+ "dtype": "float32"
1277
+ },
1278
+ {
1279
+ "path": "obs/agent/qpos",
1280
+ "shape": [
1281
+ 440,
1282
+ 23
1283
+ ],
1284
+ "dtype": "float32"
1285
+ },
1286
+ {
1287
+ "path": "obs/agent/qvel",
1288
+ "shape": [
1289
+ 440,
1290
+ 23
1291
+ ],
1292
+ "dtype": "float32"
1293
+ },
1294
+ {
1295
+ "path": "obs/sensor_data/front_camera/rgb",
1296
+ "shape": [
1297
+ 440,
1298
+ 240,
1299
+ 320,
1300
+ 3
1301
+ ],
1302
+ "dtype": "uint8"
1303
+ },
1304
+ {
1305
+ "path": "obs/sensor_data/left_camera/rgb",
1306
+ "shape": [
1307
+ 440,
1308
+ 240,
1309
+ 320,
1310
+ 3
1311
+ ],
1312
+ "dtype": "uint8"
1313
+ },
1314
+ {
1315
+ "path": "obs/sensor_data/robot_camera/rgb",
1316
+ "shape": [
1317
+ 440,
1318
+ 240,
1319
+ 320,
1320
+ 3
1321
+ ],
1322
+ "dtype": "uint8"
1323
+ },
1324
+ {
1325
+ "path": "obs/sensor_data/top_camera/rgb",
1326
+ "shape": [
1327
+ 440,
1328
+ 320,
1329
+ 240,
1330
+ 3
1331
+ ],
1332
+ "dtype": "uint8"
1333
+ }
1334
+ ],
1335
+ "trajectory_sha256": "d18e87622374747359a904766f02a36270732f7c1b0e6279ed2eaa573a43546e",
1336
+ "source_sha256": "c9fbfa00fd88aaad9575e17ff3002e55eca7fc988bdc2a2e0b812964a1611feb",
1337
+ "view_sha256": "ada460f2cc65d1e5cdb35107c68f0e8d429419cc4ab15315e9f61b48906e929c"
1338
+ },
1339
+ {
1340
+ "demo_id": "demo_18",
1341
+ "file": "demo_18.h5",
1342
+ "length": 498,
1343
+ "fields": [
1344
+ {
1345
+ "path": "actions",
1346
+ "shape": [
1347
+ 498,
1348
+ 22
1349
+ ],
1350
+ "dtype": "float32"
1351
+ },
1352
+ {
1353
+ "path": "obs/agent/qpos",
1354
+ "shape": [
1355
+ 499,
1356
+ 23
1357
+ ],
1358
+ "dtype": "float32"
1359
+ },
1360
+ {
1361
+ "path": "obs/agent/qvel",
1362
+ "shape": [
1363
+ 499,
1364
+ 23
1365
+ ],
1366
+ "dtype": "float32"
1367
+ },
1368
+ {
1369
+ "path": "obs/sensor_data/front_camera/rgb",
1370
+ "shape": [
1371
+ 499,
1372
+ 240,
1373
+ 320,
1374
+ 3
1375
+ ],
1376
+ "dtype": "uint8"
1377
+ },
1378
+ {
1379
+ "path": "obs/sensor_data/left_camera/rgb",
1380
+ "shape": [
1381
+ 499,
1382
+ 240,
1383
+ 320,
1384
+ 3
1385
+ ],
1386
+ "dtype": "uint8"
1387
+ },
1388
+ {
1389
+ "path": "obs/sensor_data/robot_camera/rgb",
1390
+ "shape": [
1391
+ 499,
1392
+ 240,
1393
+ 320,
1394
+ 3
1395
+ ],
1396
+ "dtype": "uint8"
1397
+ },
1398
+ {
1399
+ "path": "obs/sensor_data/top_camera/rgb",
1400
+ "shape": [
1401
+ 499,
1402
+ 320,
1403
+ 240,
1404
+ 3
1405
+ ],
1406
+ "dtype": "uint8"
1407
+ }
1408
+ ],
1409
+ "trajectory_sha256": "4b6184fa834edddaa06983811889f8aa4e0709a356017fbaf277668f3f644a08",
1410
+ "source_sha256": "7f839a9a8fd9b3c51f95f19cc9b67678cfff859e0de25a10f02f0061145ec57e",
1411
+ "view_sha256": "2c9b2ccb54f14a8b2943019ba8f1f063b950dd93aa23551ab17f74853553821f"
1412
+ },
1413
+ {
1414
+ "demo_id": "demo_19",
1415
+ "file": "demo_19.h5",
1416
+ "length": 807,
1417
+ "fields": [
1418
+ {
1419
+ "path": "actions",
1420
+ "shape": [
1421
+ 807,
1422
+ 22
1423
+ ],
1424
+ "dtype": "float32"
1425
+ },
1426
+ {
1427
+ "path": "obs/agent/qpos",
1428
+ "shape": [
1429
+ 808,
1430
+ 23
1431
+ ],
1432
+ "dtype": "float32"
1433
+ },
1434
+ {
1435
+ "path": "obs/agent/qvel",
1436
+ "shape": [
1437
+ 808,
1438
+ 23
1439
+ ],
1440
+ "dtype": "float32"
1441
+ },
1442
+ {
1443
+ "path": "obs/sensor_data/front_camera/rgb",
1444
+ "shape": [
1445
+ 808,
1446
+ 240,
1447
+ 320,
1448
+ 3
1449
+ ],
1450
+ "dtype": "uint8"
1451
+ },
1452
+ {
1453
+ "path": "obs/sensor_data/left_camera/rgb",
1454
+ "shape": [
1455
+ 808,
1456
+ 240,
1457
+ 320,
1458
+ 3
1459
+ ],
1460
+ "dtype": "uint8"
1461
+ },
1462
+ {
1463
+ "path": "obs/sensor_data/robot_camera/rgb",
1464
+ "shape": [
1465
+ 808,
1466
+ 240,
1467
+ 320,
1468
+ 3
1469
+ ],
1470
+ "dtype": "uint8"
1471
+ },
1472
+ {
1473
+ "path": "obs/sensor_data/top_camera/rgb",
1474
+ "shape": [
1475
+ 808,
1476
+ 320,
1477
+ 240,
1478
+ 3
1479
+ ],
1480
+ "dtype": "uint8"
1481
+ }
1482
+ ],
1483
+ "trajectory_sha256": "a548a3c0b1176a3ad2aca3f62ca319e0d67f7c810040c8be4c94b7325e6f526f",
1484
+ "source_sha256": "3bcb1d949f69156f113b478d9abfb3346551d32c3f139f2180e219a93b295bfe",
1485
+ "view_sha256": "f19ef24f0605a5de54c7f40c53e2e5e7f2b87781190eb17d3e25a6145f49535f"
1486
+ }
1487
+ ]
1488
+ }
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/environment.lock ADDED
@@ -0,0 +1,249 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ absl-py==2.4.0
2
+ accelerate==1.13.0
3
+ addict==2.4.0
4
+ aiohappyeyeballs==2.6.1
5
+ aiohttp==3.13.5
6
+ aiosignal==1.4.0
7
+ annotated-types==0.7.0
8
+ anyio==4.13.0
9
+ anytree==2.13.0
10
+ asttokens==3.0.1
11
+ async-timeout==5.0.1
12
+ attrs==26.1.0
13
+ av==15.1.0
14
+ blinker==1.9.0
15
+ casadi==3.7.2
16
+ certifi==2026.4.22
17
+ cffi==2.0.0
18
+ charset-normalizer==3.4.7
19
+ click==8.3.3
20
+ cloudpickle==3.1.2
21
+ cmake==4.1.3
22
+ coacd==1.0.11
23
+ colorama==0.4.6
24
+ colorlog==6.10.1
25
+ comm==0.2.3
26
+ ConfigArgParse==1.7.5
27
+ contourpy==1.3.2
28
+ cuda-bindings==12.9.4
29
+ cuda-pathfinder==1.5.4
30
+ cycler==0.12.1
31
+ dacite==1.9.2
32
+ dash==4.1.0
33
+ dataclasses-json==0.6.7
34
+ datasets==4.8.5
35
+ decorator==5.2.1
36
+ deepdiff==8.6.2
37
+ Deprecated==1.3.1
38
+ diffusers==0.35.2
39
+ dill==0.4.1
40
+ docstring_parser==0.18.0
41
+ draccus==0.10.0
42
+ einops==0.8.2
43
+ embreex==4.4.0
44
+ etils==1.13.0
45
+ evdev==1.9.3
46
+ exceptiongroup==1.3.1
47
+ executing==2.2.1
48
+ Farama-Notifications==0.0.6
49
+ fast_simplification==0.1.13
50
+ fastjsonschema==2.21.2
51
+ filelock==3.29.0
52
+ Flask==3.1.3
53
+ fonttools==4.63.0
54
+ freetype-py==2.5.1
55
+ frozenlist==1.8.0
56
+ fsspec==2026.2.0
57
+ genesis-world @ file:///data/gck/genesis-world
58
+ git-filter-repo==2.47.0
59
+ gitdb==4.0.12
60
+ GitPython==3.1.50
61
+ glfw==2.10.0
62
+ gs-madrona==0.0.5
63
+ gstaichi==3.3.0
64
+ gym==0.26.2
65
+ gym-notices==0.1.0
66
+ gymnasium==1.3.0
67
+ h11==0.16.0
68
+ h5py==3.16.0
69
+ hf-xet==1.5.0
70
+ hf_transfer==0.1.9
71
+ httpcore==1.0.9
72
+ httpx==0.28.1
73
+ huggingface-hub==0.35.3
74
+ idna==3.15
75
+ ImageIO==2.37.3
76
+ imageio-ffmpeg==0.6.0
77
+ importlib_metadata==9.0.0
78
+ importlib_resources==7.1.0
79
+ inquirerpy==0.3.4
80
+ ipython==8.39.0
81
+ ipywidgets==8.1.8
82
+ itsdangerous==2.2.0
83
+ jedi==0.20.0
84
+ Jinja2==3.1.6
85
+ joblib==1.5.3
86
+ jsonlines==4.0.0
87
+ jsonschema==4.26.0
88
+ jsonschema-specifications==2025.9.1
89
+ jupyter_core==5.9.1
90
+ jupyterlab_widgets==3.0.16
91
+ kiwisolver==1.5.0
92
+ lazy-loader==0.5
93
+ lerobot==0.4.4
94
+ libigl==2.6.2
95
+ llvmlite==0.47.0
96
+ loguru==0.7.3
97
+ lxml==6.1.0
98
+ manifold3d==3.4.1
99
+ -e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder
100
+ mapbox_earcut==2.0.0
101
+ markdown-it-py==4.2.0
102
+ MarkupSafe==3.0.3
103
+ marshmallow==3.26.2
104
+ matplotlib==3.10.9
105
+ matplotlib-inline==0.2.2
106
+ mdurl==0.1.2
107
+ mergedeep==1.3.4
108
+ moviepy==2.2.1
109
+ mpmath==1.3.0
110
+ msgspec==0.21.1
111
+ mujoco==3.8.1
112
+ multidict==6.7.1
113
+ multiprocess==0.70.19
114
+ mypy_extensions==1.1.0
115
+ nbformat==5.10.4
116
+ nest-asyncio==1.6.0
117
+ networkx==3.4.2
118
+ ninja==1.13.0
119
+ nlopt==2.10.0
120
+ numba==0.65.1
121
+ numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d
122
+ nvidia-cublas-cu12==12.8.4.1
123
+ nvidia-cuda-cupti-cu12==12.8.90
124
+ nvidia-cuda-nvrtc-cu12==12.8.93
125
+ nvidia-cuda-runtime-cu12==12.8.90
126
+ nvidia-cudnn-cu12==9.10.2.21
127
+ nvidia-cufft-cu12==11.3.3.83
128
+ nvidia-cufile-cu12==1.13.1.3
129
+ nvidia-curand-cu12==10.3.9.90
130
+ nvidia-cusolver-cu12==11.7.3.90
131
+ nvidia-cusparse-cu12==12.5.8.93
132
+ nvidia-cusparselt-cu12==0.7.1
133
+ nvidia-nccl-cu12==2.27.5
134
+ nvidia-nvjitlink-cu12==12.8.93
135
+ nvidia-nvshmem-cu12==3.4.5
136
+ nvidia-nvtx-cu12==12.8.90
137
+ open3d==0.19.0
138
+ opencv-python==4.13.0.92
139
+ opencv-python-headless==4.12.0.88
140
+ OpenEXR==3.4.11
141
+ orderly-set==5.5.0
142
+ packaging==25.0
143
+ pandas==2.3.3
144
+ parso==0.8.7
145
+ pexpect==4.9.0
146
+ pfzy==0.3.4
147
+ pillow==11.3.0
148
+ pin==4.0.0
149
+ pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work
150
+ platformdirs==4.9.6
151
+ plotly==5.24.1
152
+ polyscope==2.6.1
153
+ proglog==0.1.12
154
+ prompt_toolkit==3.0.52
155
+ propcache==0.5.2
156
+ protobuf==6.33.6
157
+ psutil==7.2.2
158
+ ptyprocess==0.7.0
159
+ pure_eval==0.2.3
160
+ py-cpuinfo==9.0.0
161
+ py-spy==0.4.2
162
+ pyarrow==24.0.0
163
+ pycollada==0.9.3
164
+ pycparser==3.0
165
+ pydantic==2.13.4
166
+ pydantic_core==2.46.4
167
+ PyGEL3D==0.6.1
168
+ pyglet==2.1.14
169
+ pygltflib==1.16.0
170
+ Pygments==2.20.0
171
+ pymeshlab==2025.7.post1
172
+ pynput==1.8.2
173
+ PyOpenGL==3.1.10
174
+ pyparsing==3.3.2
175
+ pyperclip==1.11.0
176
+ PyQt6==6.11.0
177
+ PyQt6-Qt6==6.11.0
178
+ PyQt6_sip==13.11.1
179
+ pyquaternion==0.9.9
180
+ pyserial==3.5
181
+ pysplashsurf==0.12.0.2
182
+ python-dateutil==2.9.0.post0
183
+ python-dotenv==1.2.2
184
+ python-xlib==0.33
185
+ pytransform3d==3.15.0
186
+ pytz==2026.2
187
+ pyuipc @ file:///tmp/claude-1005/-mnt4-gck-maniladder/9f005e67-04f6-4368-bd0e-9f40896c7dbf/scratchpad/pyuipc_dl/pyuipc-0.0.25-cp310-cp310-manylinux_2_34_x86_64.whl#sha256=76ff13554e1971ea4401db2c875369cf32352ae3a5a4c398c45193231b5cbf00
188
+ PyYAML==6.0.3
189
+ pyyaml-include==1.4.1
190
+ referencing==0.37.0
191
+ regex==2026.5.9
192
+ requests==2.34.2
193
+ rerun-sdk==0.26.2
194
+ retrying==1.4.2
195
+ rich==14.3.4
196
+ rpds-py==0.30.0
197
+ rtree==1.4.1
198
+ safetensors==0.7.0
199
+ sapien==3.0.3
200
+ scikit-image==0.25.2
201
+ scikit-learn==1.7.2
202
+ scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy-split_1739790642651/work/dist/scipy-1.15.2-cp310-cp310-linux_x86_64.whl#sha256=9e52bad6c3294d1a5b04a13632118ca2157130603c6c018c2d710162b223b27e
203
+ sentry-sdk==2.60.0
204
+ setuptools==80.10.2
205
+ shapely==2.1.2
206
+ six==1.17.0
207
+ smmap==5.0.3
208
+ stack-data==0.6.3
209
+ svg.path==7.0
210
+ sympy==1.14.0
211
+ tenacity==9.1.4
212
+ termcolor==3.3.0
213
+ tetgen==0.8.4
214
+ threadpoolctl==3.6.0
215
+ tifffile==2025.5.10
216
+ timm==1.0.27
217
+ toml==0.10.2
218
+ torch==2.10.0
219
+ torchaudio==2.11.0
220
+ torchcodec==0.10.0
221
+ torchvision==0.25.0
222
+ tqdm==4.67.3
223
+ traitlets==5.15.0
224
+ transforms3d==0.4.2
225
+ trimesh==4.12.2
226
+ triton==3.6.0
227
+ typeguard==4.5.2
228
+ typing-inspect==0.9.0
229
+ typing-inspection==0.4.2
230
+ typing_extensions==4.15.0
231
+ tyro==1.0.13
232
+ tzdata==2026.2
233
+ urllib3==2.7.0
234
+ vhacdx==0.0.10
235
+ viser==1.0.27
236
+ vtk==9.6.1
237
+ wandb==0.24.2
238
+ wcwidth==0.7.0
239
+ websockets==16.0
240
+ Werkzeug==3.1.8
241
+ wheel==0.46.3
242
+ widgetsnbextension==4.0.15
243
+ wrapt==2.1.2
244
+ xxhash==3.7.0
245
+ yarl==1.23.0
246
+ yourdfpy==0.0.60
247
+ z3-solver==4.16.0.0
248
+ zipp==3.23.1
249
+ zstandard==0.25.0
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/findings.md ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Offline findings
2
+
3
+ All 20 authorized demos were analyzed: 9,802 actions, complete proprioception sequences, and five visually inspected timepoints per demo across all four cameras. See ../demo_analysis.md for exact IDs/indices and ../evidence for statistics and contact sheets.
4
+
5
+ Every sequence begins with 21 zero commands and ends with a 45-command hand-only interval followed by arm motion. The leading zeros are not replayed: the runner provides its own charged hold. Target/clutter arrangements and wrist approaches vary substantially. Long sequences include several reorientations. Wrist images have clipping artifacts.
6
+
7
+ Most final sampled external views suggest an elevated target, but demo_03 does not clearly establish retained lift. No benchmark success labels or retained-lift duration are available. Action-to-hand-qpos permutation is unknown. Native contract specifies 22 normalized actions at 20 Hz and horizon 2,000; qpos/qvel width is 23.
8
+
9
+ The draft uses a non-neural observation/action memory. Its coverage thresholds and feature weights are hand-set and unvalidated. It can stall, alias scenes, or blend incompatible commands. No live performance is known and no episodes were spent.
10
+
11
+ ## Live exploration update
12
+ Episodes 1–2 did not show a grasp. Ep1 closed beside the can then lifted empty; ep2 moved toward an edge-positioned can but switched incompatible reference configurations. Driver API envelope bug was fixed during ep1. Current revision adds explicit red-excess cost, restores moderate proprio weighting, and uses a single neighbor command. Wrapper/direct observation support and an internal step fallback are implemented. Current experimental policy stops after 500 steps without claiming success. Evidence and per-episode details are in /workspace/exploration, outside the runtime bundle.
13
+
14
+ Timing correction for first independent rehearsal: live initial objects visibly settle after step 1, whereas the reference bank starts at demo step 21 after all demonstrations' 21 zero commands. Current variant explicitly holds through step 21, counted within the native budget, then begins observation-conditioned retrieval. This supersedes the earlier no-warmup draft decision. It does not access reset observations or change the runner's charged initial hold.
15
+
16
+ Episode6 localized short-reference variant reached native success=true and terminated=true at step338. SIFT initial hint had5 inliers and led to demo1-like approach. Interactive action chunks repeated4 steps; this is evidence of task performance for that live test, not independent exact-run qualification. The exact runtime behavior is now submitted for independent rehearsal as episode7. Episode4 remains a valid older independent failure fallback.
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/freeze_manifest.json ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "files": {
3
+ "__pycache__/build_reference.cpython-310.pyc": "69078541856ec99f2691d9d5fc58ce547ce51915d2ad3c123cff03e896ff6046",
4
+ "__pycache__/check_synthetic.cpython-310.pyc": "513ef8be9ec286c717dd0d1f3dc3424be618f9c0e0ca1854a2b97805ef1bb18e",
5
+ "__pycache__/controller.cpython-310.pyc": "da6e47b1606384f5b8faa99f959a321c52e76342bc7b54150c4be61b3f4f01ad",
6
+ "build_reference.py": "6780056dc19f08562bfaa545e12d322556062922b56524b274a9c987b8b29f8b",
7
+ "check_synthetic.py": "2906c2036f1292a3b67a5ebfb0e71ee00c5af4cee1d83be4746969c7a6efff69",
8
+ "controller.py": "9ed34516e7b01e98bc77da608405dc2d7844a71778b776545d0819ed7983e628",
9
+ "demo_manifest.json": "4440bd5aa3d3098c67e025eb69840d932251cda94cee9d05a209537c9ab3ec8f",
10
+ "demonstrations_readonly/demo_00.h5": "bb87560299133fded4b00d572f0e1735abb77f64b225619b7d9ad106e91d0ded",
11
+ "demonstrations_readonly/demo_01.h5": "15050afcb690f2fedd109b0f3b3e7cf27a86e5ec1a27bc7e65a6dade6b017aa0",
12
+ "demonstrations_readonly/demo_02.h5": "3adf8a2cdda877ab9148f101dc12306f5e6a27385a0266d4c4dcd210f77ef512",
13
+ "demonstrations_readonly/demo_03.h5": "11aa54f027b3e9cb5e08b72010dd2df99b64ea687d65b0781c0fec9e2812a4b1",
14
+ "demonstrations_readonly/demo_04.h5": "d4eaad0568dba1bddabf2bbbb31cbbe367c2b46d0828d5cd81866cccebc68a5d",
15
+ "demonstrations_readonly/demo_05.h5": "6d450eae8f6c4144b902a5fee7e7e5f17195565c02db660ab51c61b26ae772c6",
16
+ "demonstrations_readonly/demo_06.h5": "5f4b9bd7d4d632a6bec7272c822ec98fe316b5a9d274a0700cfcf415c56d39c9",
17
+ "demonstrations_readonly/demo_07.h5": "e7f47f8773c2981f4b7a6890c53fae2537ca949c187f7feb2da0371a64f27482",
18
+ "demonstrations_readonly/demo_08.h5": "a6c0b85e08dcc2760aa816439e224e9f34d2825fb0502c7aaee7c535b74a63c7",
19
+ "demonstrations_readonly/demo_09.h5": "a150d4ba98ef65704f14437632bbe96fb95f75a1a2460c1d18b788c4472f24f2",
20
+ "demonstrations_readonly/demo_10.h5": "3450f14a479ea22a86a7e0257e7eb7638045550904a736a4619be0602e20014b",
21
+ "demonstrations_readonly/demo_11.h5": "e3604c389cc4940ea84e647c6ca846a47ee7cdf4ac6fcf2299d2f179c1a61ed5",
22
+ "demonstrations_readonly/demo_12.h5": "61baf52c80fbca72fb9577b6bd81821d4cbe0bd7de9f6797b4f16f277374c7de",
23
+ "demonstrations_readonly/demo_13.h5": "e32e0f5e84f0090a2ed273faceeeeb295dd393ef7e3eb12a58d8b146427d468a",
24
+ "demonstrations_readonly/demo_14.h5": "bc6796fe94025443a9f7fc67e6e6fcec80cc604fe406437572a4d3125171266f",
25
+ "demonstrations_readonly/demo_15.h5": "c9e7826aa6bcf33363929fefc6e5cb2580dac300376bedbc6156bf0622d21351",
26
+ "demonstrations_readonly/demo_16.h5": "6abd01b1f01bed9a59d06695dec06b508a3d642e2987428cb4af805abb30cf32",
27
+ "demonstrations_readonly/demo_17.h5": "ada460f2cc65d1e5cdb35107c68f0e8d429419cc4ab15315e9f61b48906e929c",
28
+ "demonstrations_readonly/demo_18.h5": "2c9b2ccb54f14a8b2943019ba8f1f063b950dd93aa23551ab17f74853553821f",
29
+ "demonstrations_readonly/demo_19.h5": "f19ef24f0605a5de54c7f40c53e2e5e7f2b87781190eb17d3e25a6145f49535f",
30
+ "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa",
31
+ "findings.md": "3d227523c7a145f6722005bd05aa7b54a5981f12dcd15074c86a03353c459265",
32
+ "handoff.md": "4fd6863e950f049fb2af0d228ddbc559fb39a55b345d3b095156c3de808c845b",
33
+ "localizer.py": "22572067de204558380295e0785d2d5d246e0eb22dfd416d29de08cad9db2a20",
34
+ "model_tool_manifest.yaml": "d94dc140b81b1cada29f57386e6d18a842a303281f894181c34d7137503ed2f2",
35
+ "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e",
36
+ "reference_bank.npz": "ee1dce57d4eb359ad2a8be436d0309084d06554b5b66ae846e028dbe819d6e99",
37
+ "reference_index.json": "7d131d9149bd44611135a0d5907782e40507746feb5d77abd4d17bbe8c81a92b",
38
+ "skills.md": "1be37edfdfaf3854778c953fb5708da5075d315090c28ccf12e5f09d15c13281",
39
+ "synthetic_check_results.json": "3c40c782b752d6df436fa8a9b26855a99fb43b42cbfe44526ecc758717b2c833",
40
+ "target_templates.npz": "3685ea42102b906c4588d2d2427c6e94b0158d95cfdc576efae2aaf5c364d437",
41
+ "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e"
42
+ },
43
+ "bundle_hash": "9acacf6127730bb8b2263bea815d3af534d8b4c18ee43b03d2818cb5adc3da4e",
44
+ "exploration_ledger_hash": "cb611343649476aa559da3a74b9b1c7c7c7050c4d9824ce051a845f568a1daaf",
45
+ "entrypoint": "controller.reset_episode(); controller.act(obs)",
46
+ "selection": {
47
+ "rule": "exact-version success rate, valid rehearsal count, recency",
48
+ "rehearsals": [
49
+ {
50
+ "bundle_hash": "87748d9f132ec51251b7e2a2e230e1e965871c7ad4701833259b6f3ffcd78dca",
51
+ "episode": 4,
52
+ "independent": true,
53
+ "score_source": "native_step_feedback",
54
+ "status": "finished",
55
+ "success": false,
56
+ "valid": true
57
+ },
58
+ {
59
+ "bundle_hash": "9acacf6127730bb8b2263bea815d3af534d8b4c18ee43b03d2818cb5adc3da4e",
60
+ "episode": 7,
61
+ "independent": true,
62
+ "score_source": "native_step_feedback",
63
+ "status": "finished",
64
+ "success": true,
65
+ "valid": true
66
+ },
67
+ {
68
+ "bundle_hash": "1ec537f1f76fd717c63618817ae774cb9f1ae8508f300df66928fb86b53d9089",
69
+ "episode": 13,
70
+ "independent": true,
71
+ "score_source": "native_step_feedback",
72
+ "status": "finished",
73
+ "success": false,
74
+ "valid": true
75
+ },
76
+ {
77
+ "episode": 14,
78
+ "bundle_hash": "1ec537f1f76fd717c63618817ae774cb9f1ae8508f300df66928fb86b53d9089",
79
+ "independent": true,
80
+ "valid": false,
81
+ "status": "infrastructure_interrupted",
82
+ "success": false,
83
+ "score_source": "interrupted_no_score",
84
+ "recovery": "durable_rehearsal_request_and_charged_episode; no replay"
85
+ },
86
+ {
87
+ "episode": 15,
88
+ "bundle_hash": "1ec537f1f76fd717c63618817ae774cb9f1ae8508f300df66928fb86b53d9089",
89
+ "independent": true,
90
+ "valid": true,
91
+ "status": "finished",
92
+ "success": false,
93
+ "score_source": "native_step_feedback"
94
+ },
95
+ {
96
+ "episode": 16,
97
+ "bundle_hash": "1ec537f1f76fd717c63618817ae774cb9f1ae8508f300df66928fb86b53d9089",
98
+ "independent": true,
99
+ "valid": true,
100
+ "status": "finished",
101
+ "success": false,
102
+ "score_source": "native_step_feedback"
103
+ },
104
+ {
105
+ "episode": 17,
106
+ "bundle_hash": "47059014cae71082fdb0f366ff7081f53df066a4af4f753a99423f7d698ae1d5",
107
+ "independent": true,
108
+ "valid": true,
109
+ "status": "finished",
110
+ "success": false,
111
+ "score_source": "native_step_feedback"
112
+ },
113
+ {
114
+ "episode": 18,
115
+ "bundle_hash": "47059014cae71082fdb0f366ff7081f53df066a4af4f753a99423f7d698ae1d5",
116
+ "independent": true,
117
+ "valid": true,
118
+ "status": "finished",
119
+ "success": false,
120
+ "score_source": "native_step_feedback"
121
+ },
122
+ {
123
+ "episode": 19,
124
+ "bundle_hash": "47059014cae71082fdb0f366ff7081f53df066a4af4f753a99423f7d698ae1d5",
125
+ "independent": true,
126
+ "valid": true,
127
+ "status": "finished",
128
+ "success": false,
129
+ "score_source": "native_step_feedback"
130
+ },
131
+ {
132
+ "episode": 20,
133
+ "bundle_hash": "47059014cae71082fdb0f366ff7081f53df066a4af4f753a99423f7d698ae1d5",
134
+ "independent": true,
135
+ "valid": true,
136
+ "status": "finished",
137
+ "success": false,
138
+ "score_source": "native_step_feedback"
139
+ }
140
+ ]
141
+ }
142
+ }
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/handoff.md ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ # Runtime handoff
2
+
3
+ This task-only candidate is under legal Agent-D20-E20-Compiled exploration. controller.py exports reset_episode and act. Runtime is offline Python, NumPy, OpenCV, reference_bank.npz, localizer.py, and target_templates.npz. No network, model service, neural weights, simulator imports, hidden state, seeds, or other task artifacts are used.
4
+
5
+ Accept direct legal observations or API-wrapped observations. RGB keys are front_camera, left_camera, robot_camera, top_camera; proprioception keys are agent/qpos and agent/qvel (23 values). Output is a bounded22-dimensional float32 action or None at the policy limit. Native horizon2000 is unchanged. The current experimental policy cap is650; step_id falls back to per-episode act-call count when absent.
6
+
7
+ Runner hold is step1. Controller sends ordinary charged zero deltas through step21 for clutter settling. Afterwards it retrieves from this task's20 authorized demonstrations. Long/circuitous demonstrations are currently excluded from action selection but preserved in the bank. SIFT target templates from all20 demos' legal left-camera frame21 provide an optional initial scene penalty when sufficiently supported. Image/proprio retrieval remains active at every action. The localizer's scene hint is not a hidden pose and is not a grasp-success detector.
8
+
9
+ No success claim is made by controller termination. At least one earlier exact version independently ran (episode4), with native success false. Version-specific live failures include missed target alignment, wrong blue-can closure, and discontinuous reference selection. /workspace/exploration and /workspace/versions retain audit evidence, outside the runtime bundle. The final runner must choose only its independently rehearsed exact hashes, not an arbitrary workspace state.
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/localizer.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Fixed SIFT templates of this task's chips can; no neural model."""
2
+ from pathlib import Path
3
+ import cv2,numpy as np
4
+ class Localizer:
5
+ def __init__(self):
6
+ z=np.load(Path(__file__).with_name('target_templates.npz'));self.bank={k:z[k] for k in z.files}
7
+ self.sift=cv2.SIFT_create(nfeatures=1200,contrastThreshold=.012,edgeThreshold=15);self.matcher=cv2.BFMatcher()
8
+ def locate(self,rgb):
9
+ im=np.asarray(rgb);im=im[0] if im.ndim==4 else im
10
+ im=cv2.resize(cv2.resize(im,(320,240),interpolation=cv2.INTER_AREA),(640,480))
11
+ k,d=self.sift.detectAndCompute(cv2.cvtColor(im,cv2.COLOR_RGB2GRAY),None)
12
+ if d is None:return None
13
+ points=np.array([p.pt for p in k],np.float32);best=None
14
+ for i in range(20):
15
+ if len(self.bank[f'des_{i}'])<4:continue
16
+ matches=self.matcher.knnMatch(self.bank[f'des_{i}'],d,k=2)
17
+ pairs=[a for a,b in matches if a.distance<.72*b.distance and a.distance<260]
18
+ pairs=list({p.trainIdx:p for p in sorted(pairs,key=lambda p:-p.distance)}.values())
19
+ if len(pairs)<4:continue
20
+ src=self.bank[f'pts_{i}'][[p.queryIdx for p in pairs]];dst=points[[p.trainIdx for p in pairs]]
21
+ m,mask=cv2.estimateAffinePartial2D(src,dst,method=cv2.RANSAC,ransacReprojThreshold=3,maxIters=1000)
22
+ if m is None:continue
23
+ n=int(mask.sum());scale=np.linalg.norm(m[:,0]);center=m[:,2]
24
+ if n<4 or not .65<scale<1.5 or not (200<center[0]<460 and 160<center[1]<360):continue
25
+ err=np.mean(np.linalg.norm(src@m[:,:2].T+m[:,2]-dst,axis=1)[mask.ravel()>0]);score=n-.2*err
26
+ if best is None or score>best['score']:
27
+ axis=m[:,:2]@self.bank[f'axis_{i}'];axis=axis/np.linalg.norm(axis)
28
+ best={'center':center.tolist(),'axis':axis.tolist(),'matches':n,'score':float(score),'template':i}
29
+ return best
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/model_tool_manifest.yaml ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "stage": "LEGAL E20 EXPLORATION",
3
+ "status": "experimental; independent rehearsal pending",
4
+ "task_id": "ClutterGrasp-v1",
5
+ "model": {
6
+ "coding_model": "Provider-hosted Codex assistant; exact deployed model/weight identifier not exposed",
7
+ "weight_updates": false,
8
+ "additional_neural_models_loaded": [],
9
+ "frozen_weight_references": [],
10
+ "note": "No pretrained tool weights loaded or changed; no neural finetuning."
11
+ },
12
+ "runtime": {
13
+ "python": "3.10.20",
14
+ "numpy": "2.2.6",
15
+ "cv2_loaded_version": "4.12.0",
16
+ "required": [
17
+ "Python standard library",
18
+ "NumPy",
19
+ "OpenCV"
20
+ ],
21
+ "data_files": [
22
+ "reference_bank.npz",
23
+ "target_templates.npz"
24
+ ],
25
+ "network_required": false,
26
+ "code_files": [
27
+ "controller.py",
28
+ "localizer.py"
29
+ ]
30
+ },
31
+ "offline_dependencies": {
32
+ "h5py": "3.16.0",
33
+ "worker_api": "/worker_api.py API.read_demo only",
34
+ "installed_distribution_versions": {
35
+ "numpy": "2.2.6",
36
+ "h5py": "3.16.0",
37
+ "opencv-python": "4.13.0.92",
38
+ "opencv-python-headless": "4.12.0.88",
39
+ "scipy": "1.15.3",
40
+ "torch": "2.10.0"
41
+ },
42
+ "note": "SciPy and torch versions queried as package metadata only; neither used for controller or analysis. Both OpenCV distributions are installed; loaded cv2 version is authoritative."
43
+ },
44
+ "actual_tools": [
45
+ {
46
+ "name": "functions.exec / exec_command / write_stdin",
47
+ "use": "local shell, file authoring, Python offline scripts and synthetic checks",
48
+ "version": "tool service version not exposed"
49
+ },
50
+ {
51
+ "name": "functions.exec / view_image",
52
+ "use": "visually inspect all 20 contact sheets",
53
+ "version": "tool service version not exposed"
54
+ },
55
+ {
56
+ "name": "Python standard library",
57
+ "use": "importlib, pathlib, json, hashlib, platform, sys, time, py_compile, importlib.metadata"
58
+ },
59
+ {
60
+ "name": "NumPy",
61
+ "version": "2.2.6",
62
+ "use": "numeric sequence statistics, handcrafted descriptors, nonparametric retrieval, synthetic inputs"
63
+ },
64
+ {
65
+ "name": "OpenCV",
66
+ "version": "4.12.0",
67
+ "use": "image resize/crops, contact sheet rendering, fixed red-excess descriptors"
68
+ },
69
+ {
70
+ "name": "h5py",
71
+ "version": "3.16.0",
72
+ "use": "authorized HDF5 reads within API.read_demo"
73
+ },
74
+ {
75
+ "name": "API.read_demo",
76
+ "sha256": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e",
77
+ "use": "local authorized RGB, qpos/qvel, action reads; no RPC calls"
78
+ },
79
+ {
80
+ "name": "worker_api.API",
81
+ "use": "budget_status, next_episode, execute_actions, finish_episode, rehearse, score_rehearsal, freeze; only legal task interaction"
82
+ }
83
+ ],
84
+ "provenance": {
85
+ "contract_sha256": "08a3f60239efe641a9fa77e4d0041e80724741a181371bc11a0a16f1e80741d3",
86
+ "input_manifest_sha256": "1513b3c32b58886c53b3a9b0460f4b835dba8800ef849ccb7698e910c8d0b077",
87
+ "authorized_demo_ids": [
88
+ "demo_00",
89
+ "demo_01",
90
+ "demo_02",
91
+ "demo_03",
92
+ "demo_04",
93
+ "demo_05",
94
+ "demo_06",
95
+ "demo_07",
96
+ "demo_08",
97
+ "demo_09",
98
+ "demo_10",
99
+ "demo_11",
100
+ "demo_12",
101
+ "demo_13",
102
+ "demo_14",
103
+ "demo_15",
104
+ "demo_16",
105
+ "demo_17",
106
+ "demo_18",
107
+ "demo_19"
108
+ ],
109
+ "source": "Only the 20 /demonstrations files named by supplied manifest",
110
+ "visual_inspection_record": "../demo_analysis.md and ../evidence/statistics.json",
111
+ "numeric_inspection_record": [
112
+ "../evidence/statistics.json",
113
+ "../evidence/action_sequences.json",
114
+ "../evidence/velocity_statistics.json"
115
+ ],
116
+ "reference_computational_indices": "reference_index.json",
117
+ "reference_samples": 4696,
118
+ "construction": "build_reference.py; fixed handcrafted image descriptors and stored two-row action means; no optimization or neural fitting",
119
+ "runner_supplied_later": [
120
+ "verified demo manifest",
121
+ "common environment lock"
122
+ ],
123
+ "target_templates": "All20 authorized demos, left_camera observation21; manual image-axis masks in exploration/template_annotations.json; fixed SIFT, no neural optimization"
124
+ },
125
+ "validation": {
126
+ "completed_slots": 6,
127
+ "valid_independent_rehearsal_episodes": [
128
+ 4
129
+ ],
130
+ "interactive_native_success_episodes": [
131
+ 6
132
+ ],
133
+ "current_behavior_independently_rehearsed": false,
134
+ "frozen": false
135
+ },
136
+ "limits": [
137
+ "No internet or audited provider proxy request attempted; proxy capability unverified.",
138
+ "No simulator, hidden states, task-specific expert/controller, or other task data used.",
139
+ "Initial combined text tool output was truncated; full authorized manifest parsed locally afterward.",
140
+ "RGB features are coarse; wrist rendering artifacts and target occlusion can cause retrieval ambiguity.",
141
+ "Hand joint permutation and camera calibration are unknown.",
142
+ "Coverage thresholds and action blending are uncalibrated; policy may stall or continue moving after a grasp.",
143
+ "No success detector; None denotes horizon exhaustion only.",
144
+ "No external weight provenance needed because no additional neural model was loaded."
145
+ ]
146
+ }
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/policy_runner.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Frozen-program entry point; no development agent and no reset capability."""
2
+ import importlib.util
3
+ import sys
4
+
5
+ sys.path.insert(0,'/artifact')
6
+ sys.path.insert(0,'/')
7
+ from worker_api import API
8
+
9
+
10
+ def main():
11
+ spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py')
12
+ module=importlib.util.module_from_spec(spec)
13
+ spec.loader.exec_module(module)
14
+ module.reset_episode()
15
+ api=API()
16
+ result=api.latest_observation()
17
+ while not (result['terminated'] or result['truncated'] or result['horizon_reached']):
18
+ obs=dict(result['observation'],step_id=result['step_id'])
19
+ action=module.act(obs)
20
+ if action is None:break
21
+ response=api.execute_actions([action])
22
+ result=response['steps'][-1]
23
+
24
+
25
+ if __name__=='__main__':main()
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/reference_index.json ADDED
The diff for this file is too large to render. See raw diff
 
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/skills.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ # Implemented controller mechanisms
2
+
3
+ - Legally wait for initial clutter settling within the charged native steps.
4
+ - Compare four camera images and23-dimensional joint position/velocity against authorized demonstration observations.
5
+ - Optionally localize the chips can using fixed SIFT descriptors, manually annotated demo target masks, and RANSAC; reject weak matches.
6
+ - Bias reference scenes using supported target center and unsigned image axis; retrieve bounded actions using current image/proprio similarity and continuity.
7
+ - Preserve normalized translation, negative rotation scale, and16 dex joint delta ordering by retaining demonstration action ordering.
8
+ - Stop at the policy limit; hold on unsupported/malformed observations.
9
+
10
+ These are mechanisms, not verified task capabilities. No calibrated3D pose, contact estimator, verified grasp detector, or reliable recovery has been established. No external skill or additional neural model is used.
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/synthetic_check_results.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "passed",
3
+ "scope": "syntax, reference integrity, synthetic inputs only",
4
+ "checks": [
5
+ "bank covers all 20 demo IDs",
6
+ "reference vectors legal",
7
+ "reference features finite",
8
+ "synthetic runtime shape and bounds",
9
+ "HWC and 1HWC equivalence",
10
+ "invalid numeric input returns zeros",
11
+ "missing camera returns zeros",
12
+ "native horizon terminates",
13
+ "reset clears temporal state",
14
+ "current RGB changes selected action in synthetic fixture",
15
+ "current proprioception changes selected action in synthetic fixture",
16
+ "public module entry point"
17
+ ],
18
+ "synthetic_actual_bank_call_seconds": 0.02191037405282259,
19
+ "environment_calls": 0,
20
+ "rehearsals": 0,
21
+ "task_success": "unknown"
22
+ }
agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/worker_api.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Standalone worker client; safe to mount without the runner package."""
2
+ import base64
3
+ import json
4
+ import socket
5
+ import struct
6
+ import uuid
7
+ import os
8
+ from pathlib import Path
9
+
10
+ import numpy as np
11
+
12
+
13
+ def array_hook(value):
14
+ if value.get('__array__') is True:
15
+ dtype=np.dtype(value['dtype'])
16
+ if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service')
17
+ raw=base64.b64decode(value['data'],validate=True)
18
+ return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy()
19
+ return value
20
+
21
+
22
+ class API:
23
+ def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'):
24
+ self.socket_path=socket_path
25
+ self.demo_root=Path(demo_root)
26
+ self.manifest=Path(manifest)
27
+
28
+ def call(self,method,arguments=None,request_id=None):
29
+ # Caller can persist a request ID before sending. Never automatically retry.
30
+ request_id=request_id or str(uuid.uuid4())
31
+ request={'request_id':request_id,'method':method,'arguments':arguments or {}}
32
+ if os.environ.get('AGENT_E20_RPC_TOKEN'):
33
+ request['token']=os.environ['AGENT_E20_RPC_TOKEN']
34
+ payload=json.dumps(request,allow_nan=False).encode()
35
+ if len(payload)>65536:raise ValueError('request too large')
36
+ with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s:
37
+ s.settimeout(1810);s.connect(self.socket_path)
38
+ s.sendall(struct.pack('!I',len(payload))+payload)
39
+ def exact(n):
40
+ chunks=[]
41
+ while n:
42
+ chunk=s.recv(min(n,1024*1024))
43
+ if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID')
44
+ chunks.append(chunk);n-=len(chunk)
45
+ return b''.join(chunks)
46
+ length=struct.unpack('!I',exact(4))[0]
47
+ if length>64*1024*1024:raise RuntimeError('response too large')
48
+ result=json.loads(exact(length),object_hook=array_hook)
49
+ if not result['ok']:raise RuntimeError(result['error'])
50
+ return result['result']
51
+
52
+ def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id)
53
+ def latest_observation(self):return self.call('latest_observation')
54
+ def execute_actions(self,actions,request_id=None):
55
+ return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id)
56
+ def finish_episode(self):return self.call('finish_episode')
57
+ def budget_status(self):return self.call('budget_status')
58
+ def rehearse(self,candidate='candidate',request_id=None):
59
+ return self.call('rehearse',{'candidate':candidate},request_id)
60
+ def score_rehearsal(self,episode,visible_success,evidence):
61
+ return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence})
62
+ def freeze(self):return self.call('freeze')
63
+
64
+ def read_demo(self,demo_id,start=0,stop=None,fields=None):
65
+ import h5py
66
+ manifest=json.loads(self.manifest.read_text())
67
+ if manifest.get('status') not in ('released','released_for_offline_analysis'):
68
+ raise RuntimeError('demonstrations not released by trusted preflight')
69
+ entries={e['demo_id']:e for e in manifest['episodes']}
70
+ if demo_id not in entries:raise ValueError('unauthorized demo ID')
71
+ entry=entries[demo_id]
72
+ allowed={f['path'] for f in entry['fields']}
73
+ fields=sorted(allowed) if fields is None else fields
74
+ if not set(fields)<=allowed:raise ValueError('unauthorized demo field')
75
+ stop=entry['length']+1 if stop is None else stop
76
+ if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start<stop<=entry['length']+1:
77
+ raise ValueError('invalid frame interval')
78
+ path=(self.demo_root/entry['file']).resolve()
79
+ if path.parent!=self.demo_root.resolve():raise ValueError('invalid demo file')
80
+ with h5py.File(path,'r') as f:
81
+ return {field:f[field][start:min(stop,len(f[field]))] for field in fields}
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/__pycache__/build_bank.cpython-310.pyc ADDED
Binary file (2.04 kB). View file
 
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/__pycache__/check_synthetic.cpython-310.pyc ADDED
Binary file (1.88 kB). View file
 
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/__pycache__/controller.cpython-310.pyc ADDED
Binary file (2.74 kB). View file
 
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/__pycache__/features.cpython-310.pyc ADDED
Binary file (1.65 kB). View file
 
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/build_bank.py ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Offline compilation of authorized observations and labels; no optimizer."""
2
+ import importlib.util,json,pathlib,numpy as np
3
+ from features import CAMERAS,PATHS,image_feature,proprio_feature
4
+ spec=importlib.util.spec_from_file_location('worker_api','/worker_api.py');m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m)
5
+ api=m.API();manifest=json.load(open('/demo_manifest.json'));contract=json.load(open('/task_contract.json'))
6
+ q=[];v=[];a=[];progress=[];source=[];frame=[]
7
+ for di,e in enumerate(manifest['episodes']):
8
+ fields=['obs/'+p for p in PATHS]+['obs/sensor_data/'+c+'/rgb' for c in CAMERAS]+['actions/'+p['robot_key'] for p in contract['action_parts']]
9
+ d=api.read_demo(e['demo_id'],fields=fields);n=e['length']
10
+ for t in range(n):
11
+ obs={'proprioception':{p:d['obs/'+p][t] for p in PATHS}}
12
+ q.append(proprio_feature(obs));v.append([image_feature(d['obs/sensor_data/'+c+'/rgb'][t]) for c in CAMERAS]);a.append(np.concatenate([d['actions/'+p['robot_key']][t] for p in contract['action_parts']]))
13
+ progress.append(t);source.append(di);frame.append(t)
14
+ print(e['demo_id'],n,flush=True)
15
+ np.savez_compressed(pathlib.Path(__file__).with_name('demo_bank.npz'),q=np.asarray(q),v=np.asarray(v),a=np.asarray(a),progress=np.asarray(progress),source=np.asarray(source),frame=np.asarray(frame))
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/check_synthetic.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Interface tests only; contains no environment or task rollout."""
2
+ import importlib.util,pathlib,numpy as np
3
+ p=pathlib.Path(__file__).with_name('controller.py');s=importlib.util.spec_from_file_location('controller',p);c=importlib.util.module_from_spec(s);s.loader.exec_module(c)
4
+ obs={'rgb':{'top_camera':np.zeros((320,240,3),np.uint8),'front_camera':np.zeros((1,240,320,3),np.uint8)},'proprioception':{},'instruction':'align cloth','step_id':1}
5
+ for i in range(2):
6
+ for k in ('qpos','qvel'):
7
+ x=np.zeros(9,np.float32)
8
+ if k=='qpos':x[7:]=.04
9
+ obs['proprioception'][f'agent/panda-{i}/{k}']=x
10
+ c.reset_episode();a=c.act(obs);assert a is None or (a.shape==(14,) and np.isfinite(a).all() and np.all(np.abs(a)<=1))
11
+ # Artificial descriptor bank tests the supported branch, without real task testing.
12
+ q=c._f.proprio_feature(obs);v=np.stack([c._f.image_feature(obs['rgb'][k]) for k in c._f.CAMERAS])
13
+ labels=np.zeros((6,14),np.float32);labels[:,0]=.1;labels[:,7]=-.1;labels[:,[6,13]]=1
14
+ c._bank={'q':np.tile(q,(6,1)),'v':np.tile(v,(6,1,1)),'a':labels,'progress':np.arange(6)}
15
+ c.reset_episode();a=c.act(obs);assert a.shape==(14,) and a.dtype==np.float32;assert np.allclose(a[[0,7]],[.1,-.1]);assert np.all(a[[6,13]]==1)
16
+ obs['step_id']=200;assert c.act(obs) is None
17
+ c.reset_episode();obs['step_id']=1;obs['proprioception']['agent/panda-0/qpos'][0]=np.nan;assert c.act(obs) is None
18
+ c.reset_episode();assert c._calls==0 and c._progress is None
19
+ print('PASS: synthetic interface, batching, bounds, action order, reset, nonfinite rejection, horizon guard. No task testing.')
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/controller.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Geometric feedback control compiled from this task's D20 demonstrations."""
2
+ from pathlib import Path
3
+ import importlib.util
4
+ import numpy as np
5
+ import cv2
6
+ _spec=importlib.util.spec_from_file_location('_kin',Path(__file__).with_name('kinematics.py'));_k=importlib.util.module_from_spec(_spec);_spec.loader.exec_module(_k)
7
+ _phase=0;_ticks=0;_calls=0;_progress=0;_grasp=None;_place=None
8
+ SCALE=396.5
9
+ def reset_episode():
10
+ global _phase,_ticks,_calls,_progress,_grasp,_place
11
+ _phase=0;_ticks=0;_calls=0;_progress=0;_grasp=None;_place=None
12
+ def locate(rgb):
13
+ a=cv2.resize(np.asarray(rgb).squeeze(),(480,640)).astype(float)
14
+ cyan=((a[:,:,1]-a[:,:,0]>25)&(a[:,:,2]-a[:,:,0]>25)).astype('uint8');cyan[:210]=0;cyan[440:]=0
15
+ n,l,stats,cent=cv2.connectedComponentsWithStats(cyan)
16
+ i=1+np.argmax(stats[1:,4]);ys,xs=np.where(l==i);boundary=np.array([(xs.min()+xs.max())/2,(ys.min()+ys.max())/2])
17
+ white=((a.min(2)>180)&(a.max(2)-a.min(2)<50)).astype('uint8');white[:210]=0;white[440:]=0
18
+ n,l,stats,cent=cv2.connectedComponentsWithStats(white);i=1+np.argmax(stats[1:,4]);ys,xs=np.where(l==i)
19
+ rect=cv2.minAreaRect(np.column_stack([xs,ys]).astype('float32'));center=np.array(rect[0]);angle=rect[2]
20
+ if angle>45:angle-=90
21
+ return center,boundary,np.deg2rad(angle)
22
+ def offset(pos,delta):
23
+ p=pos.copy();p[0,0]+=delta[1]/SCALE;p[1,0]-=delta[1]/SCALE;p[0,1]+=delta[0]/SCALE;p[1,1]-=delta[0]/SCALE
24
+ return p
25
+ def act(obs):
26
+ global _phase,_ticks,_calls,_progress,_grasp,_place
27
+ if int(obs.get('step_id',_calls+1))>=200:return None
28
+ _calls+=1
29
+ try:
30
+ cur=np.array([_k.fk(np.asarray(obs['proprioception'][f'agent/panda-{i}/qpos']).reshape(-1)) for i in range(2)])
31
+ if _grasp is None:
32
+ center,boundary,theta=locate(obs['rgb']['top_camera'])
33
+ with np.load(Path(__file__).with_name('pose_bank.npz')) as b:
34
+ gs=np.array([offset(p,center-c) for p,c in zip(b['place'],b['boundary'])]);ps=np.array([offset(p,boundary-c) for p,c in zip(b['place'],b['boundary'])])
35
+ _grasp=np.median(gs,axis=0);_place=np.median(ps,axis=0)
36
+ for i,dy in enumerate([-.08,.08]):
37
+ delta=np.array([-np.sin(theta)*dy,(np.cos(theta)-1)*dy])*SCALE
38
+ tmp=offset(_grasp,delta);_grasp[i]=tmp[i]
39
+ _grasp[:,2]=.124;_place[:,2]=.124
40
+ except (KeyError,ValueError,IndexError):return None
41
+ _ticks+=1;_progress=float(_phase*20+_ticks)
42
+ target=_grasp.copy();grip=1.;limit=.15
43
+ if _phase==0:target[:,2]=.24
44
+ elif _phase==1:pass
45
+ elif _phase==2:grip=-1
46
+ elif _phase==3:target[:,2]=.20;grip=-1;limit=.18
47
+ elif _phase==4:target=_place.copy();target[:,2]=.20;grip=-1;limit=.18
48
+ elif _phase==5:target=_place.copy();grip=-1;limit=.095
49
+ elif _phase==6:target=_place.copy();limit=.095
50
+ elif _phase==7:target=_place.copy();target[:,2]=.30;limit=.12
51
+ else:return None
52
+ err=target-cur
53
+ a=np.zeros(14,dtype=np.float32)
54
+ for i in range(2):
55
+ e=err[i];d=np.array([e[1],-e[0],e[2]]) if i==0 else np.array([-e[1],e[0],e[2]])
56
+ a[i*7:i*7+3]=np.clip(d*5,-limit,limit);a[i*7+6]=grip
57
+ # Pose convergence, with bounded dwell and phase timeout.
58
+ done=np.max(np.abs(err))<.006
59
+ if _phase in (2,6):done=_ticks>=10
60
+ if (done and _ticks>=3) or _ticks>65:
61
+ _phase+=1;_ticks=0
62
+ return a
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/demo_manifest.json ADDED
@@ -0,0 +1,2168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "task_id": "DualArmClothAlign-v1",
3
+ "status": "released",
4
+ "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data",
5
+ "lineage_status": "pinned_comparator",
6
+ "episodes": [
7
+ {
8
+ "demo_id": "demo_00",
9
+ "file": "demo_00.h5",
10
+ "length": 168,
11
+ "fields": [
12
+ {
13
+ "path": "actions/panda-0",
14
+ "shape": [
15
+ 168,
16
+ 7
17
+ ],
18
+ "dtype": "float32"
19
+ },
20
+ {
21
+ "path": "actions/panda-1",
22
+ "shape": [
23
+ 168,
24
+ 7
25
+ ],
26
+ "dtype": "float32"
27
+ },
28
+ {
29
+ "path": "obs/agent/panda-0/qpos",
30
+ "shape": [
31
+ 169,
32
+ 9
33
+ ],
34
+ "dtype": "float32"
35
+ },
36
+ {
37
+ "path": "obs/agent/panda-0/qvel",
38
+ "shape": [
39
+ 169,
40
+ 9
41
+ ],
42
+ "dtype": "float32"
43
+ },
44
+ {
45
+ "path": "obs/agent/panda-1/qpos",
46
+ "shape": [
47
+ 169,
48
+ 9
49
+ ],
50
+ "dtype": "float32"
51
+ },
52
+ {
53
+ "path": "obs/agent/panda-1/qvel",
54
+ "shape": [
55
+ 169,
56
+ 9
57
+ ],
58
+ "dtype": "float32"
59
+ },
60
+ {
61
+ "path": "obs/sensor_data/front_camera/rgb",
62
+ "shape": [
63
+ 169,
64
+ 240,
65
+ 320,
66
+ 3
67
+ ],
68
+ "dtype": "uint8"
69
+ },
70
+ {
71
+ "path": "obs/sensor_data/left_camera/rgb",
72
+ "shape": [
73
+ 169,
74
+ 240,
75
+ 320,
76
+ 3
77
+ ],
78
+ "dtype": "uint8"
79
+ },
80
+ {
81
+ "path": "obs/sensor_data/robot_camera_0/rgb",
82
+ "shape": [
83
+ 169,
84
+ 240,
85
+ 320,
86
+ 3
87
+ ],
88
+ "dtype": "uint8"
89
+ },
90
+ {
91
+ "path": "obs/sensor_data/robot_camera_1/rgb",
92
+ "shape": [
93
+ 169,
94
+ 240,
95
+ 320,
96
+ 3
97
+ ],
98
+ "dtype": "uint8"
99
+ },
100
+ {
101
+ "path": "obs/sensor_data/top_camera/rgb",
102
+ "shape": [
103
+ 169,
104
+ 320,
105
+ 240,
106
+ 3
107
+ ],
108
+ "dtype": "uint8"
109
+ }
110
+ ],
111
+ "trajectory_sha256": "3672539a609ce43b397620e17b3116fa4699c3812f6541cc3ede93744545157b",
112
+ "source_sha256": "7365c2a0e0c672f4234c39033a989a4ff9cecae18ea510bcba53b750993d5499",
113
+ "view_sha256": "456d2a24fbb18a5b3e111acc58f7263427c0265e5391dd6f5eb8932a5a58543d"
114
+ },
115
+ {
116
+ "demo_id": "demo_01",
117
+ "file": "demo_01.h5",
118
+ "length": 162,
119
+ "fields": [
120
+ {
121
+ "path": "actions/panda-0",
122
+ "shape": [
123
+ 162,
124
+ 7
125
+ ],
126
+ "dtype": "float32"
127
+ },
128
+ {
129
+ "path": "actions/panda-1",
130
+ "shape": [
131
+ 162,
132
+ 7
133
+ ],
134
+ "dtype": "float32"
135
+ },
136
+ {
137
+ "path": "obs/agent/panda-0/qpos",
138
+ "shape": [
139
+ 163,
140
+ 9
141
+ ],
142
+ "dtype": "float32"
143
+ },
144
+ {
145
+ "path": "obs/agent/panda-0/qvel",
146
+ "shape": [
147
+ 163,
148
+ 9
149
+ ],
150
+ "dtype": "float32"
151
+ },
152
+ {
153
+ "path": "obs/agent/panda-1/qpos",
154
+ "shape": [
155
+ 163,
156
+ 9
157
+ ],
158
+ "dtype": "float32"
159
+ },
160
+ {
161
+ "path": "obs/agent/panda-1/qvel",
162
+ "shape": [
163
+ 163,
164
+ 9
165
+ ],
166
+ "dtype": "float32"
167
+ },
168
+ {
169
+ "path": "obs/sensor_data/front_camera/rgb",
170
+ "shape": [
171
+ 163,
172
+ 240,
173
+ 320,
174
+ 3
175
+ ],
176
+ "dtype": "uint8"
177
+ },
178
+ {
179
+ "path": "obs/sensor_data/left_camera/rgb",
180
+ "shape": [
181
+ 163,
182
+ 240,
183
+ 320,
184
+ 3
185
+ ],
186
+ "dtype": "uint8"
187
+ },
188
+ {
189
+ "path": "obs/sensor_data/robot_camera_0/rgb",
190
+ "shape": [
191
+ 163,
192
+ 240,
193
+ 320,
194
+ 3
195
+ ],
196
+ "dtype": "uint8"
197
+ },
198
+ {
199
+ "path": "obs/sensor_data/robot_camera_1/rgb",
200
+ "shape": [
201
+ 163,
202
+ 240,
203
+ 320,
204
+ 3
205
+ ],
206
+ "dtype": "uint8"
207
+ },
208
+ {
209
+ "path": "obs/sensor_data/top_camera/rgb",
210
+ "shape": [
211
+ 163,
212
+ 320,
213
+ 240,
214
+ 3
215
+ ],
216
+ "dtype": "uint8"
217
+ }
218
+ ],
219
+ "trajectory_sha256": "60b2b6f4f1e13f9e2027f3bd06fd06f823dfb425b84d962a1c9fcb76dc7db086",
220
+ "source_sha256": "09ccf232cbfc3a8cada003a722617fce280c9f666ed54aada4fb61d9e75ac16e",
221
+ "view_sha256": "a78f192db52739a9e081b8038a5c963663bc11f637abed13b00ce595af2bc659"
222
+ },
223
+ {
224
+ "demo_id": "demo_02",
225
+ "file": "demo_02.h5",
226
+ "length": 170,
227
+ "fields": [
228
+ {
229
+ "path": "actions/panda-0",
230
+ "shape": [
231
+ 170,
232
+ 7
233
+ ],
234
+ "dtype": "float32"
235
+ },
236
+ {
237
+ "path": "actions/panda-1",
238
+ "shape": [
239
+ 170,
240
+ 7
241
+ ],
242
+ "dtype": "float32"
243
+ },
244
+ {
245
+ "path": "obs/agent/panda-0/qpos",
246
+ "shape": [
247
+ 171,
248
+ 9
249
+ ],
250
+ "dtype": "float32"
251
+ },
252
+ {
253
+ "path": "obs/agent/panda-0/qvel",
254
+ "shape": [
255
+ 171,
256
+ 9
257
+ ],
258
+ "dtype": "float32"
259
+ },
260
+ {
261
+ "path": "obs/agent/panda-1/qpos",
262
+ "shape": [
263
+ 171,
264
+ 9
265
+ ],
266
+ "dtype": "float32"
267
+ },
268
+ {
269
+ "path": "obs/agent/panda-1/qvel",
270
+ "shape": [
271
+ 171,
272
+ 9
273
+ ],
274
+ "dtype": "float32"
275
+ },
276
+ {
277
+ "path": "obs/sensor_data/front_camera/rgb",
278
+ "shape": [
279
+ 171,
280
+ 240,
281
+ 320,
282
+ 3
283
+ ],
284
+ "dtype": "uint8"
285
+ },
286
+ {
287
+ "path": "obs/sensor_data/left_camera/rgb",
288
+ "shape": [
289
+ 171,
290
+ 240,
291
+ 320,
292
+ 3
293
+ ],
294
+ "dtype": "uint8"
295
+ },
296
+ {
297
+ "path": "obs/sensor_data/robot_camera_0/rgb",
298
+ "shape": [
299
+ 171,
300
+ 240,
301
+ 320,
302
+ 3
303
+ ],
304
+ "dtype": "uint8"
305
+ },
306
+ {
307
+ "path": "obs/sensor_data/robot_camera_1/rgb",
308
+ "shape": [
309
+ 171,
310
+ 240,
311
+ 320,
312
+ 3
313
+ ],
314
+ "dtype": "uint8"
315
+ },
316
+ {
317
+ "path": "obs/sensor_data/top_camera/rgb",
318
+ "shape": [
319
+ 171,
320
+ 320,
321
+ 240,
322
+ 3
323
+ ],
324
+ "dtype": "uint8"
325
+ }
326
+ ],
327
+ "trajectory_sha256": "057d2dab9f20409b6cb3c80c5309aa8f63f652c0af5e63488c9e5bf22cec8052",
328
+ "source_sha256": "fb5cc69f04063d7c8a1de88a0430af68dc127fd6b9242c29fcf32af435e9899a",
329
+ "view_sha256": "8af1f34451cc0b26d2f5ff1a93c5484bcf0361d3a5bbaea468a1f37df8bd3d65"
330
+ },
331
+ {
332
+ "demo_id": "demo_03",
333
+ "file": "demo_03.h5",
334
+ "length": 152,
335
+ "fields": [
336
+ {
337
+ "path": "actions/panda-0",
338
+ "shape": [
339
+ 152,
340
+ 7
341
+ ],
342
+ "dtype": "float32"
343
+ },
344
+ {
345
+ "path": "actions/panda-1",
346
+ "shape": [
347
+ 152,
348
+ 7
349
+ ],
350
+ "dtype": "float32"
351
+ },
352
+ {
353
+ "path": "obs/agent/panda-0/qpos",
354
+ "shape": [
355
+ 153,
356
+ 9
357
+ ],
358
+ "dtype": "float32"
359
+ },
360
+ {
361
+ "path": "obs/agent/panda-0/qvel",
362
+ "shape": [
363
+ 153,
364
+ 9
365
+ ],
366
+ "dtype": "float32"
367
+ },
368
+ {
369
+ "path": "obs/agent/panda-1/qpos",
370
+ "shape": [
371
+ 153,
372
+ 9
373
+ ],
374
+ "dtype": "float32"
375
+ },
376
+ {
377
+ "path": "obs/agent/panda-1/qvel",
378
+ "shape": [
379
+ 153,
380
+ 9
381
+ ],
382
+ "dtype": "float32"
383
+ },
384
+ {
385
+ "path": "obs/sensor_data/front_camera/rgb",
386
+ "shape": [
387
+ 153,
388
+ 240,
389
+ 320,
390
+ 3
391
+ ],
392
+ "dtype": "uint8"
393
+ },
394
+ {
395
+ "path": "obs/sensor_data/left_camera/rgb",
396
+ "shape": [
397
+ 153,
398
+ 240,
399
+ 320,
400
+ 3
401
+ ],
402
+ "dtype": "uint8"
403
+ },
404
+ {
405
+ "path": "obs/sensor_data/robot_camera_0/rgb",
406
+ "shape": [
407
+ 153,
408
+ 240,
409
+ 320,
410
+ 3
411
+ ],
412
+ "dtype": "uint8"
413
+ },
414
+ {
415
+ "path": "obs/sensor_data/robot_camera_1/rgb",
416
+ "shape": [
417
+ 153,
418
+ 240,
419
+ 320,
420
+ 3
421
+ ],
422
+ "dtype": "uint8"
423
+ },
424
+ {
425
+ "path": "obs/sensor_data/top_camera/rgb",
426
+ "shape": [
427
+ 153,
428
+ 320,
429
+ 240,
430
+ 3
431
+ ],
432
+ "dtype": "uint8"
433
+ }
434
+ ],
435
+ "trajectory_sha256": "1f73d36a80ecff41f3b2e5796a35104683c00d5472cb28ee0ca31791ccc43aad",
436
+ "source_sha256": "b560fbb160f29a10773870019b243c1f027ee2a1dbdb499945329b5be35134fb",
437
+ "view_sha256": "576c73578682dafaa5ae8d410a7559e606978fcb9f56078856e2718a75343370"
438
+ },
439
+ {
440
+ "demo_id": "demo_04",
441
+ "file": "demo_04.h5",
442
+ "length": 166,
443
+ "fields": [
444
+ {
445
+ "path": "actions/panda-0",
446
+ "shape": [
447
+ 166,
448
+ 7
449
+ ],
450
+ "dtype": "float32"
451
+ },
452
+ {
453
+ "path": "actions/panda-1",
454
+ "shape": [
455
+ 166,
456
+ 7
457
+ ],
458
+ "dtype": "float32"
459
+ },
460
+ {
461
+ "path": "obs/agent/panda-0/qpos",
462
+ "shape": [
463
+ 167,
464
+ 9
465
+ ],
466
+ "dtype": "float32"
467
+ },
468
+ {
469
+ "path": "obs/agent/panda-0/qvel",
470
+ "shape": [
471
+ 167,
472
+ 9
473
+ ],
474
+ "dtype": "float32"
475
+ },
476
+ {
477
+ "path": "obs/agent/panda-1/qpos",
478
+ "shape": [
479
+ 167,
480
+ 9
481
+ ],
482
+ "dtype": "float32"
483
+ },
484
+ {
485
+ "path": "obs/agent/panda-1/qvel",
486
+ "shape": [
487
+ 167,
488
+ 9
489
+ ],
490
+ "dtype": "float32"
491
+ },
492
+ {
493
+ "path": "obs/sensor_data/front_camera/rgb",
494
+ "shape": [
495
+ 167,
496
+ 240,
497
+ 320,
498
+ 3
499
+ ],
500
+ "dtype": "uint8"
501
+ },
502
+ {
503
+ "path": "obs/sensor_data/left_camera/rgb",
504
+ "shape": [
505
+ 167,
506
+ 240,
507
+ 320,
508
+ 3
509
+ ],
510
+ "dtype": "uint8"
511
+ },
512
+ {
513
+ "path": "obs/sensor_data/robot_camera_0/rgb",
514
+ "shape": [
515
+ 167,
516
+ 240,
517
+ 320,
518
+ 3
519
+ ],
520
+ "dtype": "uint8"
521
+ },
522
+ {
523
+ "path": "obs/sensor_data/robot_camera_1/rgb",
524
+ "shape": [
525
+ 167,
526
+ 240,
527
+ 320,
528
+ 3
529
+ ],
530
+ "dtype": "uint8"
531
+ },
532
+ {
533
+ "path": "obs/sensor_data/top_camera/rgb",
534
+ "shape": [
535
+ 167,
536
+ 320,
537
+ 240,
538
+ 3
539
+ ],
540
+ "dtype": "uint8"
541
+ }
542
+ ],
543
+ "trajectory_sha256": "6c58a084c3799f93b4b44d4162f0d62dbe5c21c4afbc9c879cbf9de1e8c93aa4",
544
+ "source_sha256": "6ab424d50f5e3cf308bfcc314a6e229b69c7cf6071179f2ff13e7e57b47f5760",
545
+ "view_sha256": "939099f6c7ac3409bdcf0d11ea381026a96e28e22c159b799321fde2210b93ec"
546
+ },
547
+ {
548
+ "demo_id": "demo_05",
549
+ "file": "demo_05.h5",
550
+ "length": 165,
551
+ "fields": [
552
+ {
553
+ "path": "actions/panda-0",
554
+ "shape": [
555
+ 165,
556
+ 7
557
+ ],
558
+ "dtype": "float32"
559
+ },
560
+ {
561
+ "path": "actions/panda-1",
562
+ "shape": [
563
+ 165,
564
+ 7
565
+ ],
566
+ "dtype": "float32"
567
+ },
568
+ {
569
+ "path": "obs/agent/panda-0/qpos",
570
+ "shape": [
571
+ 166,
572
+ 9
573
+ ],
574
+ "dtype": "float32"
575
+ },
576
+ {
577
+ "path": "obs/agent/panda-0/qvel",
578
+ "shape": [
579
+ 166,
580
+ 9
581
+ ],
582
+ "dtype": "float32"
583
+ },
584
+ {
585
+ "path": "obs/agent/panda-1/qpos",
586
+ "shape": [
587
+ 166,
588
+ 9
589
+ ],
590
+ "dtype": "float32"
591
+ },
592
+ {
593
+ "path": "obs/agent/panda-1/qvel",
594
+ "shape": [
595
+ 166,
596
+ 9
597
+ ],
598
+ "dtype": "float32"
599
+ },
600
+ {
601
+ "path": "obs/sensor_data/front_camera/rgb",
602
+ "shape": [
603
+ 166,
604
+ 240,
605
+ 320,
606
+ 3
607
+ ],
608
+ "dtype": "uint8"
609
+ },
610
+ {
611
+ "path": "obs/sensor_data/left_camera/rgb",
612
+ "shape": [
613
+ 166,
614
+ 240,
615
+ 320,
616
+ 3
617
+ ],
618
+ "dtype": "uint8"
619
+ },
620
+ {
621
+ "path": "obs/sensor_data/robot_camera_0/rgb",
622
+ "shape": [
623
+ 166,
624
+ 240,
625
+ 320,
626
+ 3
627
+ ],
628
+ "dtype": "uint8"
629
+ },
630
+ {
631
+ "path": "obs/sensor_data/robot_camera_1/rgb",
632
+ "shape": [
633
+ 166,
634
+ 240,
635
+ 320,
636
+ 3
637
+ ],
638
+ "dtype": "uint8"
639
+ },
640
+ {
641
+ "path": "obs/sensor_data/top_camera/rgb",
642
+ "shape": [
643
+ 166,
644
+ 320,
645
+ 240,
646
+ 3
647
+ ],
648
+ "dtype": "uint8"
649
+ }
650
+ ],
651
+ "trajectory_sha256": "347f4c447b4362505d18bd6b444f83d9aa9bb609b81be90048168d546e3d43bf",
652
+ "source_sha256": "eb7d0e04684746bd06043c0db8d12c4baee92654a27351c89a030a90ee5c1f9b",
653
+ "view_sha256": "82635a1c0a1b1811aa9bda43c63b775e09c9d25bd31e36a3f794f24f16115908"
654
+ },
655
+ {
656
+ "demo_id": "demo_06",
657
+ "file": "demo_06.h5",
658
+ "length": 160,
659
+ "fields": [
660
+ {
661
+ "path": "actions/panda-0",
662
+ "shape": [
663
+ 160,
664
+ 7
665
+ ],
666
+ "dtype": "float32"
667
+ },
668
+ {
669
+ "path": "actions/panda-1",
670
+ "shape": [
671
+ 160,
672
+ 7
673
+ ],
674
+ "dtype": "float32"
675
+ },
676
+ {
677
+ "path": "obs/agent/panda-0/qpos",
678
+ "shape": [
679
+ 161,
680
+ 9
681
+ ],
682
+ "dtype": "float32"
683
+ },
684
+ {
685
+ "path": "obs/agent/panda-0/qvel",
686
+ "shape": [
687
+ 161,
688
+ 9
689
+ ],
690
+ "dtype": "float32"
691
+ },
692
+ {
693
+ "path": "obs/agent/panda-1/qpos",
694
+ "shape": [
695
+ 161,
696
+ 9
697
+ ],
698
+ "dtype": "float32"
699
+ },
700
+ {
701
+ "path": "obs/agent/panda-1/qvel",
702
+ "shape": [
703
+ 161,
704
+ 9
705
+ ],
706
+ "dtype": "float32"
707
+ },
708
+ {
709
+ "path": "obs/sensor_data/front_camera/rgb",
710
+ "shape": [
711
+ 161,
712
+ 240,
713
+ 320,
714
+ 3
715
+ ],
716
+ "dtype": "uint8"
717
+ },
718
+ {
719
+ "path": "obs/sensor_data/left_camera/rgb",
720
+ "shape": [
721
+ 161,
722
+ 240,
723
+ 320,
724
+ 3
725
+ ],
726
+ "dtype": "uint8"
727
+ },
728
+ {
729
+ "path": "obs/sensor_data/robot_camera_0/rgb",
730
+ "shape": [
731
+ 161,
732
+ 240,
733
+ 320,
734
+ 3
735
+ ],
736
+ "dtype": "uint8"
737
+ },
738
+ {
739
+ "path": "obs/sensor_data/robot_camera_1/rgb",
740
+ "shape": [
741
+ 161,
742
+ 240,
743
+ 320,
744
+ 3
745
+ ],
746
+ "dtype": "uint8"
747
+ },
748
+ {
749
+ "path": "obs/sensor_data/top_camera/rgb",
750
+ "shape": [
751
+ 161,
752
+ 320,
753
+ 240,
754
+ 3
755
+ ],
756
+ "dtype": "uint8"
757
+ }
758
+ ],
759
+ "trajectory_sha256": "9fb7a7644ae03c72887c4c4a62ec0b2c995bd7096a16d863213ea1b97355d89c",
760
+ "source_sha256": "016d98f04e1f5b07b76e8fa324aa94948a70d213bd0a02758eb56dd8e875ce1b",
761
+ "view_sha256": "d9303d6cf9dabca256ae055b85a1e8acaf75233e37409a0a2d282f885bf275ca"
762
+ },
763
+ {
764
+ "demo_id": "demo_07",
765
+ "file": "demo_07.h5",
766
+ "length": 152,
767
+ "fields": [
768
+ {
769
+ "path": "actions/panda-0",
770
+ "shape": [
771
+ 152,
772
+ 7
773
+ ],
774
+ "dtype": "float32"
775
+ },
776
+ {
777
+ "path": "actions/panda-1",
778
+ "shape": [
779
+ 152,
780
+ 7
781
+ ],
782
+ "dtype": "float32"
783
+ },
784
+ {
785
+ "path": "obs/agent/panda-0/qpos",
786
+ "shape": [
787
+ 153,
788
+ 9
789
+ ],
790
+ "dtype": "float32"
791
+ },
792
+ {
793
+ "path": "obs/agent/panda-0/qvel",
794
+ "shape": [
795
+ 153,
796
+ 9
797
+ ],
798
+ "dtype": "float32"
799
+ },
800
+ {
801
+ "path": "obs/agent/panda-1/qpos",
802
+ "shape": [
803
+ 153,
804
+ 9
805
+ ],
806
+ "dtype": "float32"
807
+ },
808
+ {
809
+ "path": "obs/agent/panda-1/qvel",
810
+ "shape": [
811
+ 153,
812
+ 9
813
+ ],
814
+ "dtype": "float32"
815
+ },
816
+ {
817
+ "path": "obs/sensor_data/front_camera/rgb",
818
+ "shape": [
819
+ 153,
820
+ 240,
821
+ 320,
822
+ 3
823
+ ],
824
+ "dtype": "uint8"
825
+ },
826
+ {
827
+ "path": "obs/sensor_data/left_camera/rgb",
828
+ "shape": [
829
+ 153,
830
+ 240,
831
+ 320,
832
+ 3
833
+ ],
834
+ "dtype": "uint8"
835
+ },
836
+ {
837
+ "path": "obs/sensor_data/robot_camera_0/rgb",
838
+ "shape": [
839
+ 153,
840
+ 240,
841
+ 320,
842
+ 3
843
+ ],
844
+ "dtype": "uint8"
845
+ },
846
+ {
847
+ "path": "obs/sensor_data/robot_camera_1/rgb",
848
+ "shape": [
849
+ 153,
850
+ 240,
851
+ 320,
852
+ 3
853
+ ],
854
+ "dtype": "uint8"
855
+ },
856
+ {
857
+ "path": "obs/sensor_data/top_camera/rgb",
858
+ "shape": [
859
+ 153,
860
+ 320,
861
+ 240,
862
+ 3
863
+ ],
864
+ "dtype": "uint8"
865
+ }
866
+ ],
867
+ "trajectory_sha256": "4e09265e7c310ea87159566c6244b1b9b34c79b92eb58e71f35f295b8c0705f6",
868
+ "source_sha256": "22df792bbbebc1d6523a5402d5f7e914b8a9b4407ad93d5c62c10c7055688d68",
869
+ "view_sha256": "f96ed392e2e5b1ad7eb91a0c570b9e588ac27c6b0769a685e933166611331433"
870
+ },
871
+ {
872
+ "demo_id": "demo_08",
873
+ "file": "demo_08.h5",
874
+ "length": 153,
875
+ "fields": [
876
+ {
877
+ "path": "actions/panda-0",
878
+ "shape": [
879
+ 153,
880
+ 7
881
+ ],
882
+ "dtype": "float32"
883
+ },
884
+ {
885
+ "path": "actions/panda-1",
886
+ "shape": [
887
+ 153,
888
+ 7
889
+ ],
890
+ "dtype": "float32"
891
+ },
892
+ {
893
+ "path": "obs/agent/panda-0/qpos",
894
+ "shape": [
895
+ 154,
896
+ 9
897
+ ],
898
+ "dtype": "float32"
899
+ },
900
+ {
901
+ "path": "obs/agent/panda-0/qvel",
902
+ "shape": [
903
+ 154,
904
+ 9
905
+ ],
906
+ "dtype": "float32"
907
+ },
908
+ {
909
+ "path": "obs/agent/panda-1/qpos",
910
+ "shape": [
911
+ 154,
912
+ 9
913
+ ],
914
+ "dtype": "float32"
915
+ },
916
+ {
917
+ "path": "obs/agent/panda-1/qvel",
918
+ "shape": [
919
+ 154,
920
+ 9
921
+ ],
922
+ "dtype": "float32"
923
+ },
924
+ {
925
+ "path": "obs/sensor_data/front_camera/rgb",
926
+ "shape": [
927
+ 154,
928
+ 240,
929
+ 320,
930
+ 3
931
+ ],
932
+ "dtype": "uint8"
933
+ },
934
+ {
935
+ "path": "obs/sensor_data/left_camera/rgb",
936
+ "shape": [
937
+ 154,
938
+ 240,
939
+ 320,
940
+ 3
941
+ ],
942
+ "dtype": "uint8"
943
+ },
944
+ {
945
+ "path": "obs/sensor_data/robot_camera_0/rgb",
946
+ "shape": [
947
+ 154,
948
+ 240,
949
+ 320,
950
+ 3
951
+ ],
952
+ "dtype": "uint8"
953
+ },
954
+ {
955
+ "path": "obs/sensor_data/robot_camera_1/rgb",
956
+ "shape": [
957
+ 154,
958
+ 240,
959
+ 320,
960
+ 3
961
+ ],
962
+ "dtype": "uint8"
963
+ },
964
+ {
965
+ "path": "obs/sensor_data/top_camera/rgb",
966
+ "shape": [
967
+ 154,
968
+ 320,
969
+ 240,
970
+ 3
971
+ ],
972
+ "dtype": "uint8"
973
+ }
974
+ ],
975
+ "trajectory_sha256": "e9ae108735147651ecb8c8a2c74e30c2535309718bd24d3ade760a9b7ffdcbbe",
976
+ "source_sha256": "041fb3330378080c7a1ade9e70b0af130d5ba8d781720dd3c32f35ebab9c4861",
977
+ "view_sha256": "2f50dce70ad8fa0073b8d6356ca1f4e1f0ecf8a6b0d22a3a0d5038c377ab5aac"
978
+ },
979
+ {
980
+ "demo_id": "demo_09",
981
+ "file": "demo_09.h5",
982
+ "length": 161,
983
+ "fields": [
984
+ {
985
+ "path": "actions/panda-0",
986
+ "shape": [
987
+ 161,
988
+ 7
989
+ ],
990
+ "dtype": "float32"
991
+ },
992
+ {
993
+ "path": "actions/panda-1",
994
+ "shape": [
995
+ 161,
996
+ 7
997
+ ],
998
+ "dtype": "float32"
999
+ },
1000
+ {
1001
+ "path": "obs/agent/panda-0/qpos",
1002
+ "shape": [
1003
+ 162,
1004
+ 9
1005
+ ],
1006
+ "dtype": "float32"
1007
+ },
1008
+ {
1009
+ "path": "obs/agent/panda-0/qvel",
1010
+ "shape": [
1011
+ 162,
1012
+ 9
1013
+ ],
1014
+ "dtype": "float32"
1015
+ },
1016
+ {
1017
+ "path": "obs/agent/panda-1/qpos",
1018
+ "shape": [
1019
+ 162,
1020
+ 9
1021
+ ],
1022
+ "dtype": "float32"
1023
+ },
1024
+ {
1025
+ "path": "obs/agent/panda-1/qvel",
1026
+ "shape": [
1027
+ 162,
1028
+ 9
1029
+ ],
1030
+ "dtype": "float32"
1031
+ },
1032
+ {
1033
+ "path": "obs/sensor_data/front_camera/rgb",
1034
+ "shape": [
1035
+ 162,
1036
+ 240,
1037
+ 320,
1038
+ 3
1039
+ ],
1040
+ "dtype": "uint8"
1041
+ },
1042
+ {
1043
+ "path": "obs/sensor_data/left_camera/rgb",
1044
+ "shape": [
1045
+ 162,
1046
+ 240,
1047
+ 320,
1048
+ 3
1049
+ ],
1050
+ "dtype": "uint8"
1051
+ },
1052
+ {
1053
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1054
+ "shape": [
1055
+ 162,
1056
+ 240,
1057
+ 320,
1058
+ 3
1059
+ ],
1060
+ "dtype": "uint8"
1061
+ },
1062
+ {
1063
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1064
+ "shape": [
1065
+ 162,
1066
+ 240,
1067
+ 320,
1068
+ 3
1069
+ ],
1070
+ "dtype": "uint8"
1071
+ },
1072
+ {
1073
+ "path": "obs/sensor_data/top_camera/rgb",
1074
+ "shape": [
1075
+ 162,
1076
+ 320,
1077
+ 240,
1078
+ 3
1079
+ ],
1080
+ "dtype": "uint8"
1081
+ }
1082
+ ],
1083
+ "trajectory_sha256": "227b48d6260c24cdc8a2c995967259029ce935795c48291659f4384e7a2e8995",
1084
+ "source_sha256": "b12c605fa57040eb9f0c70e63e9fcb45897ca10563c09a26be7dfbd85b22874e",
1085
+ "view_sha256": "8fb0b7f110bd32c7fffad58888bd4e7bf9ec13f12bfee43a9775a76bc0502928"
1086
+ },
1087
+ {
1088
+ "demo_id": "demo_10",
1089
+ "file": "demo_10.h5",
1090
+ "length": 160,
1091
+ "fields": [
1092
+ {
1093
+ "path": "actions/panda-0",
1094
+ "shape": [
1095
+ 160,
1096
+ 7
1097
+ ],
1098
+ "dtype": "float32"
1099
+ },
1100
+ {
1101
+ "path": "actions/panda-1",
1102
+ "shape": [
1103
+ 160,
1104
+ 7
1105
+ ],
1106
+ "dtype": "float32"
1107
+ },
1108
+ {
1109
+ "path": "obs/agent/panda-0/qpos",
1110
+ "shape": [
1111
+ 161,
1112
+ 9
1113
+ ],
1114
+ "dtype": "float32"
1115
+ },
1116
+ {
1117
+ "path": "obs/agent/panda-0/qvel",
1118
+ "shape": [
1119
+ 161,
1120
+ 9
1121
+ ],
1122
+ "dtype": "float32"
1123
+ },
1124
+ {
1125
+ "path": "obs/agent/panda-1/qpos",
1126
+ "shape": [
1127
+ 161,
1128
+ 9
1129
+ ],
1130
+ "dtype": "float32"
1131
+ },
1132
+ {
1133
+ "path": "obs/agent/panda-1/qvel",
1134
+ "shape": [
1135
+ 161,
1136
+ 9
1137
+ ],
1138
+ "dtype": "float32"
1139
+ },
1140
+ {
1141
+ "path": "obs/sensor_data/front_camera/rgb",
1142
+ "shape": [
1143
+ 161,
1144
+ 240,
1145
+ 320,
1146
+ 3
1147
+ ],
1148
+ "dtype": "uint8"
1149
+ },
1150
+ {
1151
+ "path": "obs/sensor_data/left_camera/rgb",
1152
+ "shape": [
1153
+ 161,
1154
+ 240,
1155
+ 320,
1156
+ 3
1157
+ ],
1158
+ "dtype": "uint8"
1159
+ },
1160
+ {
1161
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1162
+ "shape": [
1163
+ 161,
1164
+ 240,
1165
+ 320,
1166
+ 3
1167
+ ],
1168
+ "dtype": "uint8"
1169
+ },
1170
+ {
1171
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1172
+ "shape": [
1173
+ 161,
1174
+ 240,
1175
+ 320,
1176
+ 3
1177
+ ],
1178
+ "dtype": "uint8"
1179
+ },
1180
+ {
1181
+ "path": "obs/sensor_data/top_camera/rgb",
1182
+ "shape": [
1183
+ 161,
1184
+ 320,
1185
+ 240,
1186
+ 3
1187
+ ],
1188
+ "dtype": "uint8"
1189
+ }
1190
+ ],
1191
+ "trajectory_sha256": "3cc3121256e4c97128533ef82e516314ac391822d60a93798361c5d9273005b5",
1192
+ "source_sha256": "bdd941e9225b90f0a4d2bbf0d616ba9ec3d650f98a0ecac0d8fa312dbc01683e",
1193
+ "view_sha256": "58cd333860028850d81bf311197d20674946cdbc4db2ad7f184ae22eabc88d0f"
1194
+ },
1195
+ {
1196
+ "demo_id": "demo_11",
1197
+ "file": "demo_11.h5",
1198
+ "length": 167,
1199
+ "fields": [
1200
+ {
1201
+ "path": "actions/panda-0",
1202
+ "shape": [
1203
+ 167,
1204
+ 7
1205
+ ],
1206
+ "dtype": "float32"
1207
+ },
1208
+ {
1209
+ "path": "actions/panda-1",
1210
+ "shape": [
1211
+ 167,
1212
+ 7
1213
+ ],
1214
+ "dtype": "float32"
1215
+ },
1216
+ {
1217
+ "path": "obs/agent/panda-0/qpos",
1218
+ "shape": [
1219
+ 168,
1220
+ 9
1221
+ ],
1222
+ "dtype": "float32"
1223
+ },
1224
+ {
1225
+ "path": "obs/agent/panda-0/qvel",
1226
+ "shape": [
1227
+ 168,
1228
+ 9
1229
+ ],
1230
+ "dtype": "float32"
1231
+ },
1232
+ {
1233
+ "path": "obs/agent/panda-1/qpos",
1234
+ "shape": [
1235
+ 168,
1236
+ 9
1237
+ ],
1238
+ "dtype": "float32"
1239
+ },
1240
+ {
1241
+ "path": "obs/agent/panda-1/qvel",
1242
+ "shape": [
1243
+ 168,
1244
+ 9
1245
+ ],
1246
+ "dtype": "float32"
1247
+ },
1248
+ {
1249
+ "path": "obs/sensor_data/front_camera/rgb",
1250
+ "shape": [
1251
+ 168,
1252
+ 240,
1253
+ 320,
1254
+ 3
1255
+ ],
1256
+ "dtype": "uint8"
1257
+ },
1258
+ {
1259
+ "path": "obs/sensor_data/left_camera/rgb",
1260
+ "shape": [
1261
+ 168,
1262
+ 240,
1263
+ 320,
1264
+ 3
1265
+ ],
1266
+ "dtype": "uint8"
1267
+ },
1268
+ {
1269
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1270
+ "shape": [
1271
+ 168,
1272
+ 240,
1273
+ 320,
1274
+ 3
1275
+ ],
1276
+ "dtype": "uint8"
1277
+ },
1278
+ {
1279
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1280
+ "shape": [
1281
+ 168,
1282
+ 240,
1283
+ 320,
1284
+ 3
1285
+ ],
1286
+ "dtype": "uint8"
1287
+ },
1288
+ {
1289
+ "path": "obs/sensor_data/top_camera/rgb",
1290
+ "shape": [
1291
+ 168,
1292
+ 320,
1293
+ 240,
1294
+ 3
1295
+ ],
1296
+ "dtype": "uint8"
1297
+ }
1298
+ ],
1299
+ "trajectory_sha256": "98acb58fa819c32e0cab8a7b8c12bdb14bda72b604207f5424451e51ffe6744d",
1300
+ "source_sha256": "48e4610dbcaff34c359fd0278558937e96872798e8f285259a43376f5360d430",
1301
+ "view_sha256": "346df61ccddcfd7c3df0b12eb0836074eca3d034a17b292348e6c1695ff7dca9"
1302
+ },
1303
+ {
1304
+ "demo_id": "demo_12",
1305
+ "file": "demo_12.h5",
1306
+ "length": 157,
1307
+ "fields": [
1308
+ {
1309
+ "path": "actions/panda-0",
1310
+ "shape": [
1311
+ 157,
1312
+ 7
1313
+ ],
1314
+ "dtype": "float32"
1315
+ },
1316
+ {
1317
+ "path": "actions/panda-1",
1318
+ "shape": [
1319
+ 157,
1320
+ 7
1321
+ ],
1322
+ "dtype": "float32"
1323
+ },
1324
+ {
1325
+ "path": "obs/agent/panda-0/qpos",
1326
+ "shape": [
1327
+ 158,
1328
+ 9
1329
+ ],
1330
+ "dtype": "float32"
1331
+ },
1332
+ {
1333
+ "path": "obs/agent/panda-0/qvel",
1334
+ "shape": [
1335
+ 158,
1336
+ 9
1337
+ ],
1338
+ "dtype": "float32"
1339
+ },
1340
+ {
1341
+ "path": "obs/agent/panda-1/qpos",
1342
+ "shape": [
1343
+ 158,
1344
+ 9
1345
+ ],
1346
+ "dtype": "float32"
1347
+ },
1348
+ {
1349
+ "path": "obs/agent/panda-1/qvel",
1350
+ "shape": [
1351
+ 158,
1352
+ 9
1353
+ ],
1354
+ "dtype": "float32"
1355
+ },
1356
+ {
1357
+ "path": "obs/sensor_data/front_camera/rgb",
1358
+ "shape": [
1359
+ 158,
1360
+ 240,
1361
+ 320,
1362
+ 3
1363
+ ],
1364
+ "dtype": "uint8"
1365
+ },
1366
+ {
1367
+ "path": "obs/sensor_data/left_camera/rgb",
1368
+ "shape": [
1369
+ 158,
1370
+ 240,
1371
+ 320,
1372
+ 3
1373
+ ],
1374
+ "dtype": "uint8"
1375
+ },
1376
+ {
1377
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1378
+ "shape": [
1379
+ 158,
1380
+ 240,
1381
+ 320,
1382
+ 3
1383
+ ],
1384
+ "dtype": "uint8"
1385
+ },
1386
+ {
1387
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1388
+ "shape": [
1389
+ 158,
1390
+ 240,
1391
+ 320,
1392
+ 3
1393
+ ],
1394
+ "dtype": "uint8"
1395
+ },
1396
+ {
1397
+ "path": "obs/sensor_data/top_camera/rgb",
1398
+ "shape": [
1399
+ 158,
1400
+ 320,
1401
+ 240,
1402
+ 3
1403
+ ],
1404
+ "dtype": "uint8"
1405
+ }
1406
+ ],
1407
+ "trajectory_sha256": "e1b97e78d0a8aa3db2b82729a7b5210ac922a127870f90e50c253ef7634dbf95",
1408
+ "source_sha256": "030d4f33e04338ff183603b3f1ba1673435f429e8a0828d52a2cf56766e42483",
1409
+ "view_sha256": "398fd7f869bdcb7aa090bc9218acb6655b18187803dee2214cf030e8b7084d04"
1410
+ },
1411
+ {
1412
+ "demo_id": "demo_13",
1413
+ "file": "demo_13.h5",
1414
+ "length": 171,
1415
+ "fields": [
1416
+ {
1417
+ "path": "actions/panda-0",
1418
+ "shape": [
1419
+ 171,
1420
+ 7
1421
+ ],
1422
+ "dtype": "float32"
1423
+ },
1424
+ {
1425
+ "path": "actions/panda-1",
1426
+ "shape": [
1427
+ 171,
1428
+ 7
1429
+ ],
1430
+ "dtype": "float32"
1431
+ },
1432
+ {
1433
+ "path": "obs/agent/panda-0/qpos",
1434
+ "shape": [
1435
+ 172,
1436
+ 9
1437
+ ],
1438
+ "dtype": "float32"
1439
+ },
1440
+ {
1441
+ "path": "obs/agent/panda-0/qvel",
1442
+ "shape": [
1443
+ 172,
1444
+ 9
1445
+ ],
1446
+ "dtype": "float32"
1447
+ },
1448
+ {
1449
+ "path": "obs/agent/panda-1/qpos",
1450
+ "shape": [
1451
+ 172,
1452
+ 9
1453
+ ],
1454
+ "dtype": "float32"
1455
+ },
1456
+ {
1457
+ "path": "obs/agent/panda-1/qvel",
1458
+ "shape": [
1459
+ 172,
1460
+ 9
1461
+ ],
1462
+ "dtype": "float32"
1463
+ },
1464
+ {
1465
+ "path": "obs/sensor_data/front_camera/rgb",
1466
+ "shape": [
1467
+ 172,
1468
+ 240,
1469
+ 320,
1470
+ 3
1471
+ ],
1472
+ "dtype": "uint8"
1473
+ },
1474
+ {
1475
+ "path": "obs/sensor_data/left_camera/rgb",
1476
+ "shape": [
1477
+ 172,
1478
+ 240,
1479
+ 320,
1480
+ 3
1481
+ ],
1482
+ "dtype": "uint8"
1483
+ },
1484
+ {
1485
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1486
+ "shape": [
1487
+ 172,
1488
+ 240,
1489
+ 320,
1490
+ 3
1491
+ ],
1492
+ "dtype": "uint8"
1493
+ },
1494
+ {
1495
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1496
+ "shape": [
1497
+ 172,
1498
+ 240,
1499
+ 320,
1500
+ 3
1501
+ ],
1502
+ "dtype": "uint8"
1503
+ },
1504
+ {
1505
+ "path": "obs/sensor_data/top_camera/rgb",
1506
+ "shape": [
1507
+ 172,
1508
+ 320,
1509
+ 240,
1510
+ 3
1511
+ ],
1512
+ "dtype": "uint8"
1513
+ }
1514
+ ],
1515
+ "trajectory_sha256": "d95be3c68d1b95f9f30b08c31a64d8bedf7207ff98b122ac49ebb3301564cd04",
1516
+ "source_sha256": "8858ef14621b49479a3c28b5b831c856aaa65edb9100c7bdfec0b7b5ca2c7035",
1517
+ "view_sha256": "3bcc1c7929217d37fe883bd6840afb6c16220b3fb6b48d9fd14a990629093096"
1518
+ },
1519
+ {
1520
+ "demo_id": "demo_14",
1521
+ "file": "demo_14.h5",
1522
+ "length": 163,
1523
+ "fields": [
1524
+ {
1525
+ "path": "actions/panda-0",
1526
+ "shape": [
1527
+ 163,
1528
+ 7
1529
+ ],
1530
+ "dtype": "float32"
1531
+ },
1532
+ {
1533
+ "path": "actions/panda-1",
1534
+ "shape": [
1535
+ 163,
1536
+ 7
1537
+ ],
1538
+ "dtype": "float32"
1539
+ },
1540
+ {
1541
+ "path": "obs/agent/panda-0/qpos",
1542
+ "shape": [
1543
+ 164,
1544
+ 9
1545
+ ],
1546
+ "dtype": "float32"
1547
+ },
1548
+ {
1549
+ "path": "obs/agent/panda-0/qvel",
1550
+ "shape": [
1551
+ 164,
1552
+ 9
1553
+ ],
1554
+ "dtype": "float32"
1555
+ },
1556
+ {
1557
+ "path": "obs/agent/panda-1/qpos",
1558
+ "shape": [
1559
+ 164,
1560
+ 9
1561
+ ],
1562
+ "dtype": "float32"
1563
+ },
1564
+ {
1565
+ "path": "obs/agent/panda-1/qvel",
1566
+ "shape": [
1567
+ 164,
1568
+ 9
1569
+ ],
1570
+ "dtype": "float32"
1571
+ },
1572
+ {
1573
+ "path": "obs/sensor_data/front_camera/rgb",
1574
+ "shape": [
1575
+ 164,
1576
+ 240,
1577
+ 320,
1578
+ 3
1579
+ ],
1580
+ "dtype": "uint8"
1581
+ },
1582
+ {
1583
+ "path": "obs/sensor_data/left_camera/rgb",
1584
+ "shape": [
1585
+ 164,
1586
+ 240,
1587
+ 320,
1588
+ 3
1589
+ ],
1590
+ "dtype": "uint8"
1591
+ },
1592
+ {
1593
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1594
+ "shape": [
1595
+ 164,
1596
+ 240,
1597
+ 320,
1598
+ 3
1599
+ ],
1600
+ "dtype": "uint8"
1601
+ },
1602
+ {
1603
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1604
+ "shape": [
1605
+ 164,
1606
+ 240,
1607
+ 320,
1608
+ 3
1609
+ ],
1610
+ "dtype": "uint8"
1611
+ },
1612
+ {
1613
+ "path": "obs/sensor_data/top_camera/rgb",
1614
+ "shape": [
1615
+ 164,
1616
+ 320,
1617
+ 240,
1618
+ 3
1619
+ ],
1620
+ "dtype": "uint8"
1621
+ }
1622
+ ],
1623
+ "trajectory_sha256": "b2f0cd336b13fd7e129df439b451458bbf39856c9a0d88befd7c5a95d2019fc2",
1624
+ "source_sha256": "5e74314740066ece8161e1df277f147c3409b07f36a23da04d537405b465fb73",
1625
+ "view_sha256": "63b597cd36ab040baeb5bd14914c33e3b884de5869d6dacc574ebc2ae6aafad6"
1626
+ },
1627
+ {
1628
+ "demo_id": "demo_15",
1629
+ "file": "demo_15.h5",
1630
+ "length": 162,
1631
+ "fields": [
1632
+ {
1633
+ "path": "actions/panda-0",
1634
+ "shape": [
1635
+ 162,
1636
+ 7
1637
+ ],
1638
+ "dtype": "float32"
1639
+ },
1640
+ {
1641
+ "path": "actions/panda-1",
1642
+ "shape": [
1643
+ 162,
1644
+ 7
1645
+ ],
1646
+ "dtype": "float32"
1647
+ },
1648
+ {
1649
+ "path": "obs/agent/panda-0/qpos",
1650
+ "shape": [
1651
+ 163,
1652
+ 9
1653
+ ],
1654
+ "dtype": "float32"
1655
+ },
1656
+ {
1657
+ "path": "obs/agent/panda-0/qvel",
1658
+ "shape": [
1659
+ 163,
1660
+ 9
1661
+ ],
1662
+ "dtype": "float32"
1663
+ },
1664
+ {
1665
+ "path": "obs/agent/panda-1/qpos",
1666
+ "shape": [
1667
+ 163,
1668
+ 9
1669
+ ],
1670
+ "dtype": "float32"
1671
+ },
1672
+ {
1673
+ "path": "obs/agent/panda-1/qvel",
1674
+ "shape": [
1675
+ 163,
1676
+ 9
1677
+ ],
1678
+ "dtype": "float32"
1679
+ },
1680
+ {
1681
+ "path": "obs/sensor_data/front_camera/rgb",
1682
+ "shape": [
1683
+ 163,
1684
+ 240,
1685
+ 320,
1686
+ 3
1687
+ ],
1688
+ "dtype": "uint8"
1689
+ },
1690
+ {
1691
+ "path": "obs/sensor_data/left_camera/rgb",
1692
+ "shape": [
1693
+ 163,
1694
+ 240,
1695
+ 320,
1696
+ 3
1697
+ ],
1698
+ "dtype": "uint8"
1699
+ },
1700
+ {
1701
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1702
+ "shape": [
1703
+ 163,
1704
+ 240,
1705
+ 320,
1706
+ 3
1707
+ ],
1708
+ "dtype": "uint8"
1709
+ },
1710
+ {
1711
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1712
+ "shape": [
1713
+ 163,
1714
+ 240,
1715
+ 320,
1716
+ 3
1717
+ ],
1718
+ "dtype": "uint8"
1719
+ },
1720
+ {
1721
+ "path": "obs/sensor_data/top_camera/rgb",
1722
+ "shape": [
1723
+ 163,
1724
+ 320,
1725
+ 240,
1726
+ 3
1727
+ ],
1728
+ "dtype": "uint8"
1729
+ }
1730
+ ],
1731
+ "trajectory_sha256": "91c51f28c6c84f6d7b53bfac0dcff030842c001ac768550006d11327706dfc71",
1732
+ "source_sha256": "3480479d135b8700cc75717ff6a15e51702563edada16b7e2fbdb58f7ed74e1f",
1733
+ "view_sha256": "02e1532de48b7f7266290c531d9f8b253a3ccdd8be85046b5f3dbf7ded36f0c9"
1734
+ },
1735
+ {
1736
+ "demo_id": "demo_16",
1737
+ "file": "demo_16.h5",
1738
+ "length": 162,
1739
+ "fields": [
1740
+ {
1741
+ "path": "actions/panda-0",
1742
+ "shape": [
1743
+ 162,
1744
+ 7
1745
+ ],
1746
+ "dtype": "float32"
1747
+ },
1748
+ {
1749
+ "path": "actions/panda-1",
1750
+ "shape": [
1751
+ 162,
1752
+ 7
1753
+ ],
1754
+ "dtype": "float32"
1755
+ },
1756
+ {
1757
+ "path": "obs/agent/panda-0/qpos",
1758
+ "shape": [
1759
+ 163,
1760
+ 9
1761
+ ],
1762
+ "dtype": "float32"
1763
+ },
1764
+ {
1765
+ "path": "obs/agent/panda-0/qvel",
1766
+ "shape": [
1767
+ 163,
1768
+ 9
1769
+ ],
1770
+ "dtype": "float32"
1771
+ },
1772
+ {
1773
+ "path": "obs/agent/panda-1/qpos",
1774
+ "shape": [
1775
+ 163,
1776
+ 9
1777
+ ],
1778
+ "dtype": "float32"
1779
+ },
1780
+ {
1781
+ "path": "obs/agent/panda-1/qvel",
1782
+ "shape": [
1783
+ 163,
1784
+ 9
1785
+ ],
1786
+ "dtype": "float32"
1787
+ },
1788
+ {
1789
+ "path": "obs/sensor_data/front_camera/rgb",
1790
+ "shape": [
1791
+ 163,
1792
+ 240,
1793
+ 320,
1794
+ 3
1795
+ ],
1796
+ "dtype": "uint8"
1797
+ },
1798
+ {
1799
+ "path": "obs/sensor_data/left_camera/rgb",
1800
+ "shape": [
1801
+ 163,
1802
+ 240,
1803
+ 320,
1804
+ 3
1805
+ ],
1806
+ "dtype": "uint8"
1807
+ },
1808
+ {
1809
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1810
+ "shape": [
1811
+ 163,
1812
+ 240,
1813
+ 320,
1814
+ 3
1815
+ ],
1816
+ "dtype": "uint8"
1817
+ },
1818
+ {
1819
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1820
+ "shape": [
1821
+ 163,
1822
+ 240,
1823
+ 320,
1824
+ 3
1825
+ ],
1826
+ "dtype": "uint8"
1827
+ },
1828
+ {
1829
+ "path": "obs/sensor_data/top_camera/rgb",
1830
+ "shape": [
1831
+ 163,
1832
+ 320,
1833
+ 240,
1834
+ 3
1835
+ ],
1836
+ "dtype": "uint8"
1837
+ }
1838
+ ],
1839
+ "trajectory_sha256": "c44f651176033f22af8692f60146884cddc485acb12ca3d0c4c9cbd220788654",
1840
+ "source_sha256": "e6267fa0c1cb1a6567ecef08b242378b3b0cb7ac4b5153d8cd8ca16b0ea85af4",
1841
+ "view_sha256": "4185a6768958e97f3e3996f2f63cff389ad9a35ba788c7383ef961a31d341131"
1842
+ },
1843
+ {
1844
+ "demo_id": "demo_17",
1845
+ "file": "demo_17.h5",
1846
+ "length": 158,
1847
+ "fields": [
1848
+ {
1849
+ "path": "actions/panda-0",
1850
+ "shape": [
1851
+ 158,
1852
+ 7
1853
+ ],
1854
+ "dtype": "float32"
1855
+ },
1856
+ {
1857
+ "path": "actions/panda-1",
1858
+ "shape": [
1859
+ 158,
1860
+ 7
1861
+ ],
1862
+ "dtype": "float32"
1863
+ },
1864
+ {
1865
+ "path": "obs/agent/panda-0/qpos",
1866
+ "shape": [
1867
+ 159,
1868
+ 9
1869
+ ],
1870
+ "dtype": "float32"
1871
+ },
1872
+ {
1873
+ "path": "obs/agent/panda-0/qvel",
1874
+ "shape": [
1875
+ 159,
1876
+ 9
1877
+ ],
1878
+ "dtype": "float32"
1879
+ },
1880
+ {
1881
+ "path": "obs/agent/panda-1/qpos",
1882
+ "shape": [
1883
+ 159,
1884
+ 9
1885
+ ],
1886
+ "dtype": "float32"
1887
+ },
1888
+ {
1889
+ "path": "obs/agent/panda-1/qvel",
1890
+ "shape": [
1891
+ 159,
1892
+ 9
1893
+ ],
1894
+ "dtype": "float32"
1895
+ },
1896
+ {
1897
+ "path": "obs/sensor_data/front_camera/rgb",
1898
+ "shape": [
1899
+ 159,
1900
+ 240,
1901
+ 320,
1902
+ 3
1903
+ ],
1904
+ "dtype": "uint8"
1905
+ },
1906
+ {
1907
+ "path": "obs/sensor_data/left_camera/rgb",
1908
+ "shape": [
1909
+ 159,
1910
+ 240,
1911
+ 320,
1912
+ 3
1913
+ ],
1914
+ "dtype": "uint8"
1915
+ },
1916
+ {
1917
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1918
+ "shape": [
1919
+ 159,
1920
+ 240,
1921
+ 320,
1922
+ 3
1923
+ ],
1924
+ "dtype": "uint8"
1925
+ },
1926
+ {
1927
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1928
+ "shape": [
1929
+ 159,
1930
+ 240,
1931
+ 320,
1932
+ 3
1933
+ ],
1934
+ "dtype": "uint8"
1935
+ },
1936
+ {
1937
+ "path": "obs/sensor_data/top_camera/rgb",
1938
+ "shape": [
1939
+ 159,
1940
+ 320,
1941
+ 240,
1942
+ 3
1943
+ ],
1944
+ "dtype": "uint8"
1945
+ }
1946
+ ],
1947
+ "trajectory_sha256": "04221c8546e3fe235b73171d83ddb03218a94d5276bd1d18a1eae2d117e39eae",
1948
+ "source_sha256": "5ebc22fad3923f1fb0a2ffd4cc108aeb076fec92b8b85e8112ab08615bf9a9a8",
1949
+ "view_sha256": "e597657b5a3da5ca2b1888feae94dad410a2dbd39daf9770e7f22a1df0dde36d"
1950
+ },
1951
+ {
1952
+ "demo_id": "demo_18",
1953
+ "file": "demo_18.h5",
1954
+ "length": 158,
1955
+ "fields": [
1956
+ {
1957
+ "path": "actions/panda-0",
1958
+ "shape": [
1959
+ 158,
1960
+ 7
1961
+ ],
1962
+ "dtype": "float32"
1963
+ },
1964
+ {
1965
+ "path": "actions/panda-1",
1966
+ "shape": [
1967
+ 158,
1968
+ 7
1969
+ ],
1970
+ "dtype": "float32"
1971
+ },
1972
+ {
1973
+ "path": "obs/agent/panda-0/qpos",
1974
+ "shape": [
1975
+ 159,
1976
+ 9
1977
+ ],
1978
+ "dtype": "float32"
1979
+ },
1980
+ {
1981
+ "path": "obs/agent/panda-0/qvel",
1982
+ "shape": [
1983
+ 159,
1984
+ 9
1985
+ ],
1986
+ "dtype": "float32"
1987
+ },
1988
+ {
1989
+ "path": "obs/agent/panda-1/qpos",
1990
+ "shape": [
1991
+ 159,
1992
+ 9
1993
+ ],
1994
+ "dtype": "float32"
1995
+ },
1996
+ {
1997
+ "path": "obs/agent/panda-1/qvel",
1998
+ "shape": [
1999
+ 159,
2000
+ 9
2001
+ ],
2002
+ "dtype": "float32"
2003
+ },
2004
+ {
2005
+ "path": "obs/sensor_data/front_camera/rgb",
2006
+ "shape": [
2007
+ 159,
2008
+ 240,
2009
+ 320,
2010
+ 3
2011
+ ],
2012
+ "dtype": "uint8"
2013
+ },
2014
+ {
2015
+ "path": "obs/sensor_data/left_camera/rgb",
2016
+ "shape": [
2017
+ 159,
2018
+ 240,
2019
+ 320,
2020
+ 3
2021
+ ],
2022
+ "dtype": "uint8"
2023
+ },
2024
+ {
2025
+ "path": "obs/sensor_data/robot_camera_0/rgb",
2026
+ "shape": [
2027
+ 159,
2028
+ 240,
2029
+ 320,
2030
+ 3
2031
+ ],
2032
+ "dtype": "uint8"
2033
+ },
2034
+ {
2035
+ "path": "obs/sensor_data/robot_camera_1/rgb",
2036
+ "shape": [
2037
+ 159,
2038
+ 240,
2039
+ 320,
2040
+ 3
2041
+ ],
2042
+ "dtype": "uint8"
2043
+ },
2044
+ {
2045
+ "path": "obs/sensor_data/top_camera/rgb",
2046
+ "shape": [
2047
+ 159,
2048
+ 320,
2049
+ 240,
2050
+ 3
2051
+ ],
2052
+ "dtype": "uint8"
2053
+ }
2054
+ ],
2055
+ "trajectory_sha256": "28012245c2961d595f6df8149e5a858154989fa3ceb676bd9c7b80aae93c3011",
2056
+ "source_sha256": "a7cf765747e51e4d195bcd52740dfa21383c3f75fbc8afc823e40a3fc909f599",
2057
+ "view_sha256": "4801b027ea4a5426bff931b6ef5b8fd368e9c2955e8222f468a94d4757a4c043"
2058
+ },
2059
+ {
2060
+ "demo_id": "demo_19",
2061
+ "file": "demo_19.h5",
2062
+ "length": 168,
2063
+ "fields": [
2064
+ {
2065
+ "path": "actions/panda-0",
2066
+ "shape": [
2067
+ 168,
2068
+ 7
2069
+ ],
2070
+ "dtype": "float32"
2071
+ },
2072
+ {
2073
+ "path": "actions/panda-1",
2074
+ "shape": [
2075
+ 168,
2076
+ 7
2077
+ ],
2078
+ "dtype": "float32"
2079
+ },
2080
+ {
2081
+ "path": "obs/agent/panda-0/qpos",
2082
+ "shape": [
2083
+ 169,
2084
+ 9
2085
+ ],
2086
+ "dtype": "float32"
2087
+ },
2088
+ {
2089
+ "path": "obs/agent/panda-0/qvel",
2090
+ "shape": [
2091
+ 169,
2092
+ 9
2093
+ ],
2094
+ "dtype": "float32"
2095
+ },
2096
+ {
2097
+ "path": "obs/agent/panda-1/qpos",
2098
+ "shape": [
2099
+ 169,
2100
+ 9
2101
+ ],
2102
+ "dtype": "float32"
2103
+ },
2104
+ {
2105
+ "path": "obs/agent/panda-1/qvel",
2106
+ "shape": [
2107
+ 169,
2108
+ 9
2109
+ ],
2110
+ "dtype": "float32"
2111
+ },
2112
+ {
2113
+ "path": "obs/sensor_data/front_camera/rgb",
2114
+ "shape": [
2115
+ 169,
2116
+ 240,
2117
+ 320,
2118
+ 3
2119
+ ],
2120
+ "dtype": "uint8"
2121
+ },
2122
+ {
2123
+ "path": "obs/sensor_data/left_camera/rgb",
2124
+ "shape": [
2125
+ 169,
2126
+ 240,
2127
+ 320,
2128
+ 3
2129
+ ],
2130
+ "dtype": "uint8"
2131
+ },
2132
+ {
2133
+ "path": "obs/sensor_data/robot_camera_0/rgb",
2134
+ "shape": [
2135
+ 169,
2136
+ 240,
2137
+ 320,
2138
+ 3
2139
+ ],
2140
+ "dtype": "uint8"
2141
+ },
2142
+ {
2143
+ "path": "obs/sensor_data/robot_camera_1/rgb",
2144
+ "shape": [
2145
+ 169,
2146
+ 240,
2147
+ 320,
2148
+ 3
2149
+ ],
2150
+ "dtype": "uint8"
2151
+ },
2152
+ {
2153
+ "path": "obs/sensor_data/top_camera/rgb",
2154
+ "shape": [
2155
+ 169,
2156
+ 320,
2157
+ 240,
2158
+ 3
2159
+ ],
2160
+ "dtype": "uint8"
2161
+ }
2162
+ ],
2163
+ "trajectory_sha256": "e498c4b62daad4ab589b19c14cbc9c42edfce8ddf3fbcb10996a673277380a32",
2164
+ "source_sha256": "f354eae66a91995dddb55ba788b625c0af48973d85cf43a81803d50d96a3f926",
2165
+ "view_sha256": "af315f650ea314988f83b6ac13fec9ef0ec2acac5dffefe40d73d9e1af5afc3b"
2166
+ }
2167
+ ]
2168
+ }
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/environment.lock ADDED
@@ -0,0 +1,249 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ absl-py==2.4.0
2
+ accelerate==1.13.0
3
+ addict==2.4.0
4
+ aiohappyeyeballs==2.6.1
5
+ aiohttp==3.13.5
6
+ aiosignal==1.4.0
7
+ annotated-types==0.7.0
8
+ anyio==4.13.0
9
+ anytree==2.13.0
10
+ asttokens==3.0.1
11
+ async-timeout==5.0.1
12
+ attrs==26.1.0
13
+ av==15.1.0
14
+ blinker==1.9.0
15
+ casadi==3.7.2
16
+ certifi==2026.4.22
17
+ cffi==2.0.0
18
+ charset-normalizer==3.4.7
19
+ click==8.3.3
20
+ cloudpickle==3.1.2
21
+ cmake==4.1.3
22
+ coacd==1.0.11
23
+ colorama==0.4.6
24
+ colorlog==6.10.1
25
+ comm==0.2.3
26
+ ConfigArgParse==1.7.5
27
+ contourpy==1.3.2
28
+ cuda-bindings==12.9.4
29
+ cuda-pathfinder==1.5.4
30
+ cycler==0.12.1
31
+ dacite==1.9.2
32
+ dash==4.1.0
33
+ dataclasses-json==0.6.7
34
+ datasets==4.8.5
35
+ decorator==5.2.1
36
+ deepdiff==8.6.2
37
+ Deprecated==1.3.1
38
+ diffusers==0.35.2
39
+ dill==0.4.1
40
+ docstring_parser==0.18.0
41
+ draccus==0.10.0
42
+ einops==0.8.2
43
+ embreex==4.4.0
44
+ etils==1.13.0
45
+ evdev==1.9.3
46
+ exceptiongroup==1.3.1
47
+ executing==2.2.1
48
+ Farama-Notifications==0.0.6
49
+ fast_simplification==0.1.13
50
+ fastjsonschema==2.21.2
51
+ filelock==3.29.0
52
+ Flask==3.1.3
53
+ fonttools==4.63.0
54
+ freetype-py==2.5.1
55
+ frozenlist==1.8.0
56
+ fsspec==2026.2.0
57
+ genesis-world @ file:///data/gck/genesis-world
58
+ git-filter-repo==2.47.0
59
+ gitdb==4.0.12
60
+ GitPython==3.1.50
61
+ glfw==2.10.0
62
+ gs-madrona==0.0.5
63
+ gstaichi==3.3.0
64
+ gym==0.26.2
65
+ gym-notices==0.1.0
66
+ gymnasium==1.3.0
67
+ h11==0.16.0
68
+ h5py==3.16.0
69
+ hf-xet==1.5.0
70
+ hf_transfer==0.1.9
71
+ httpcore==1.0.9
72
+ httpx==0.28.1
73
+ huggingface-hub==0.35.3
74
+ idna==3.15
75
+ ImageIO==2.37.3
76
+ imageio-ffmpeg==0.6.0
77
+ importlib_metadata==9.0.0
78
+ importlib_resources==7.1.0
79
+ inquirerpy==0.3.4
80
+ ipython==8.39.0
81
+ ipywidgets==8.1.8
82
+ itsdangerous==2.2.0
83
+ jedi==0.20.0
84
+ Jinja2==3.1.6
85
+ joblib==1.5.3
86
+ jsonlines==4.0.0
87
+ jsonschema==4.26.0
88
+ jsonschema-specifications==2025.9.1
89
+ jupyter_core==5.9.1
90
+ jupyterlab_widgets==3.0.16
91
+ kiwisolver==1.5.0
92
+ lazy-loader==0.5
93
+ lerobot==0.4.4
94
+ libigl==2.6.2
95
+ llvmlite==0.47.0
96
+ loguru==0.7.3
97
+ lxml==6.1.0
98
+ manifold3d==3.4.1
99
+ -e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder
100
+ mapbox_earcut==2.0.0
101
+ markdown-it-py==4.2.0
102
+ MarkupSafe==3.0.3
103
+ marshmallow==3.26.2
104
+ matplotlib==3.10.9
105
+ matplotlib-inline==0.2.2
106
+ mdurl==0.1.2
107
+ mergedeep==1.3.4
108
+ moviepy==2.2.1
109
+ mpmath==1.3.0
110
+ msgspec==0.21.1
111
+ mujoco==3.8.1
112
+ multidict==6.7.1
113
+ multiprocess==0.70.19
114
+ mypy_extensions==1.1.0
115
+ nbformat==5.10.4
116
+ nest-asyncio==1.6.0
117
+ networkx==3.4.2
118
+ ninja==1.13.0
119
+ nlopt==2.10.0
120
+ numba==0.65.1
121
+ numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d
122
+ nvidia-cublas-cu12==12.8.4.1
123
+ nvidia-cuda-cupti-cu12==12.8.90
124
+ nvidia-cuda-nvrtc-cu12==12.8.93
125
+ nvidia-cuda-runtime-cu12==12.8.90
126
+ nvidia-cudnn-cu12==9.10.2.21
127
+ nvidia-cufft-cu12==11.3.3.83
128
+ nvidia-cufile-cu12==1.13.1.3
129
+ nvidia-curand-cu12==10.3.9.90
130
+ nvidia-cusolver-cu12==11.7.3.90
131
+ nvidia-cusparse-cu12==12.5.8.93
132
+ nvidia-cusparselt-cu12==0.7.1
133
+ nvidia-nccl-cu12==2.27.5
134
+ nvidia-nvjitlink-cu12==12.8.93
135
+ nvidia-nvshmem-cu12==3.4.5
136
+ nvidia-nvtx-cu12==12.8.90
137
+ open3d==0.19.0
138
+ opencv-python==4.13.0.92
139
+ opencv-python-headless==4.12.0.88
140
+ OpenEXR==3.4.11
141
+ orderly-set==5.5.0
142
+ packaging==25.0
143
+ pandas==2.3.3
144
+ parso==0.8.7
145
+ pexpect==4.9.0
146
+ pfzy==0.3.4
147
+ pillow==11.3.0
148
+ pin==4.0.0
149
+ pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work
150
+ platformdirs==4.9.6
151
+ plotly==5.24.1
152
+ polyscope==2.6.1
153
+ proglog==0.1.12
154
+ prompt_toolkit==3.0.52
155
+ propcache==0.5.2
156
+ protobuf==6.33.6
157
+ psutil==7.2.2
158
+ ptyprocess==0.7.0
159
+ pure_eval==0.2.3
160
+ py-cpuinfo==9.0.0
161
+ py-spy==0.4.2
162
+ pyarrow==24.0.0
163
+ pycollada==0.9.3
164
+ pycparser==3.0
165
+ pydantic==2.13.4
166
+ pydantic_core==2.46.4
167
+ PyGEL3D==0.6.1
168
+ pyglet==2.1.14
169
+ pygltflib==1.16.0
170
+ Pygments==2.20.0
171
+ pymeshlab==2025.7.post1
172
+ pynput==1.8.2
173
+ PyOpenGL==3.1.10
174
+ pyparsing==3.3.2
175
+ pyperclip==1.11.0
176
+ PyQt6==6.11.0
177
+ PyQt6-Qt6==6.11.0
178
+ PyQt6_sip==13.11.1
179
+ pyquaternion==0.9.9
180
+ pyserial==3.5
181
+ pysplashsurf==0.12.0.2
182
+ python-dateutil==2.9.0.post0
183
+ python-dotenv==1.2.2
184
+ python-xlib==0.33
185
+ pytransform3d==3.15.0
186
+ pytz==2026.2
187
+ pyuipc @ file:///tmp/claude-1005/-mnt4-gck-maniladder/9f005e67-04f6-4368-bd0e-9f40896c7dbf/scratchpad/pyuipc_dl/pyuipc-0.0.25-cp310-cp310-manylinux_2_34_x86_64.whl#sha256=76ff13554e1971ea4401db2c875369cf32352ae3a5a4c398c45193231b5cbf00
188
+ PyYAML==6.0.3
189
+ pyyaml-include==1.4.1
190
+ referencing==0.37.0
191
+ regex==2026.5.9
192
+ requests==2.34.2
193
+ rerun-sdk==0.26.2
194
+ retrying==1.4.2
195
+ rich==14.3.4
196
+ rpds-py==0.30.0
197
+ rtree==1.4.1
198
+ safetensors==0.7.0
199
+ sapien==3.0.3
200
+ scikit-image==0.25.2
201
+ scikit-learn==1.7.2
202
+ scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy-split_1739790642651/work/dist/scipy-1.15.2-cp310-cp310-linux_x86_64.whl#sha256=9e52bad6c3294d1a5b04a13632118ca2157130603c6c018c2d710162b223b27e
203
+ sentry-sdk==2.60.0
204
+ setuptools==80.10.2
205
+ shapely==2.1.2
206
+ six==1.17.0
207
+ smmap==5.0.3
208
+ stack-data==0.6.3
209
+ svg.path==7.0
210
+ sympy==1.14.0
211
+ tenacity==9.1.4
212
+ termcolor==3.3.0
213
+ tetgen==0.8.4
214
+ threadpoolctl==3.6.0
215
+ tifffile==2025.5.10
216
+ timm==1.0.27
217
+ toml==0.10.2
218
+ torch==2.10.0
219
+ torchaudio==2.11.0
220
+ torchcodec==0.10.0
221
+ torchvision==0.25.0
222
+ tqdm==4.67.3
223
+ traitlets==5.15.0
224
+ transforms3d==0.4.2
225
+ trimesh==4.12.2
226
+ triton==3.6.0
227
+ typeguard==4.5.2
228
+ typing-inspect==0.9.0
229
+ typing-inspection==0.4.2
230
+ typing_extensions==4.15.0
231
+ tyro==1.0.13
232
+ tzdata==2026.2
233
+ urllib3==2.7.0
234
+ vhacdx==0.0.10
235
+ viser==1.0.27
236
+ vtk==9.6.1
237
+ wandb==0.24.2
238
+ wcwidth==0.7.0
239
+ websockets==16.0
240
+ Werkzeug==3.1.8
241
+ wheel==0.46.3
242
+ widgetsnbextension==4.0.15
243
+ wrapt==2.1.2
244
+ xxhash==3.7.0
245
+ yarl==1.23.0
246
+ yourdfpy==0.0.60
247
+ z3-solver==4.16.0.0
248
+ zipp==3.23.1
249
+ zstandard==0.25.0
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/features.py ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Fixed, non-neural descriptors of legal observations."""
2
+ import cv2
3
+ import numpy as np
4
+ CAMERAS = ('top_camera', 'front_camera')
5
+ PATHS = tuple(f'agent/panda-{i}/{s}' for i in range(2) for s in ('qpos','qvel'))
6
+ def image_feature(value):
7
+ a = np.asarray(value)
8
+ if a.ndim == 4 and a.shape[0] == 1: a = a[0]
9
+ if a.ndim != 3 or a.shape[2] != 3: raise ValueError('Expected RGB HWC or 1HWC')
10
+ if not np.isfinite(a).all(): raise ValueError('Nonfinite RGB')
11
+ small = cv2.resize(a.astype(np.float32)/255., (24,32), interpolation=cv2.INTER_AREA)
12
+ # Cyan boundary pixels are thin; pooling preserves their location.
13
+ x=a.astype(np.float32)/255.
14
+ cyan=((x[:,:,1]-x[:,:,0]>.10)&(x[:,:,2]-x[:,:,0]>.10)).astype(np.float32)
15
+ cyan=cv2.resize(cyan,(24,32),interpolation=cv2.INTER_AREA)
16
+ return np.concatenate([small.reshape(-1), 4*cyan.reshape(-1)]).astype(np.float32)
17
+ def proprio_feature(obs):
18
+ out=[]
19
+ for p in PATHS:
20
+ x=np.asarray(obs['proprioception'][p],dtype=np.float32).reshape(-1)
21
+ if x.size!=9 or not np.isfinite(x).all(): raise ValueError('Invalid proprioception')
22
+ scale=np.array([.35]*7+[.025]*2) if p.endswith('qpos') else np.array([2.]*7+[.2]*2)
23
+ out.extend(x/scale)
24
+ return np.asarray(out,dtype=np.float32)
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/findings.md ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Findings: D20 + legal E20 exploration
2
+
3
+ All 20 task-authorized demonstrations were analyzed (3,235 actions); parent demo_analysis.md preserves the actual offline analysis and inspected frames. No neural weights were fitted; no other-task data, environment source, seeds or simulator states were used.
4
+
5
+ ## Development evidence through episode 10
6
+ - Episode 1: observation/action retrieval stalled in grasp dwell; native success false at horizon200. An external harness wrapper error after its first action was fixed without replay or reset.
7
+ - Episode 2: a progress-clock penalty escaped dwell; native success true at128.
8
+ - Episode 3: that retrieval version independently ran validly but returned native success false.
9
+ - Episode 4: geometric qpos-feedback controller completed approach, grasp, lift, transport, release and retract at171, but native success false; images show flat cloth with offset/rotation. Independent median grasp and placement templates were inconsistent.
10
+ - Episode 5: use the same placement-derived pair at both ends, transformed to RGB cloth center/angle initially and boundary center finally. Native success true at137.
11
+ - Episode 6: exact matched-template geometric bundle f944ba4d76fb251f0188e25c242883255251dd335e81d1a62d2e14602a061615 independently completed validly with native success true.
12
+ - Episodes 7–10: unchanged geometric controller, native success true at148,131,151,137. Initial rotations included -15.95,+19.59 degrees and transfers up to approximately187 pixels. Saved phase logs show success during lowering, before release; these runs do not verify completed release/retraction.
13
+
14
+ ## Localization and pose
15
+ Initial top RGB is resized to480x640; cyan boundary and largest white cloth component are extracted in table ROI. A minimum-area rectangle provides cloth center/angle. This assumes both objects are initially visible and inside the ROI. Legal demo regression of boundary pixels against FK placement coordinates yields approximately0.00252m/pixel, with roughly1mm residuals. Generic Panda modified-DH FK was checked against demo joint increments; commanded x maps to +FK-y for arm0 and -FK-y for arm1, and commanded y maps to -FK-x/+FK-x respectively. Grasp and placement share the same pose template, avoiding the offset introduced by independent templates. The initial pair is rotated using observed cloth angle.
16
+
17
+ ## Grasp, timing, recovery and limits
18
+ Runtime uses current qpos for pose convergence, bounded dwell and65-step phase timeout, native action limits and200-step horizon including runner hold. Grippers close together; no force/contact/drop detector exists. Neither success nor recovery is inferred from qpos convergence. The longest observed transfer counters in episodes7–8 were49 and32; no timeout occurred. Release/retraction ran in failed episode4; successful runs can terminate earlier on native success. No robust grasp-loss recovery is claimed.
19
+
20
+ Only explicit native_step_feedback supplies the success claims above. If absent in a later rehearsal, the preregistered visible rule is true only for legal images unambiguously showing the cloth flush with the boundary; ambiguity is false and requires API.score_rehearsal evidence. Parent exploration/ holds observations, images, action traces, preserved revisions and rehearsal metadata. Later exact-bundle rehearsals and freeze outcome are recorded there without editing this bundle after its final rehearsal.
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/freeze_manifest.json ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "files": {
3
+ "__pycache__/build_bank.cpython-310.pyc": "1e1308e65ec965382460e45df7c9f00e720a9b6340979075dc162ad2f209d6c8",
4
+ "__pycache__/check_synthetic.cpython-310.pyc": "978157f2337f0aec11e50d1b4f16453b8e0640762cbf9a169aaa28f9b7edc444",
5
+ "__pycache__/controller.cpython-310.pyc": "8953a70dd239bc2637c21f353b76a02925f2d825bbf8f18c54e0e7335c1ae35f",
6
+ "__pycache__/features.cpython-310.pyc": "3cbe0768f28f321051f75316fe194c16770371a22a4839fbb37e21c3496fa7e6",
7
+ "build_bank.py": "7b53f161de256be9d84d4e9acdeb0d5418667f9e1fba5a4bb78c41ab7b52492f",
8
+ "check_synthetic.py": "aa5690aae64b68d3c98a5915236f074d66a271a199b77861bad3bbf2780542a1",
9
+ "controller.py": "653f1c9b8aea0ec7c1c6353b728f3c4acea5b2c2e26f1566bf18b01fa91238f7",
10
+ "demo_bank.npz": "f91679dadcac278cc50c0f1deaa68c4b446345ccd34687305d65b0e713e5afa0",
11
+ "demo_manifest.json": "a8996d00c8a9f89dd9ea0135c9b8ce53230632df57e01b9246a27c658339b544",
12
+ "demonstrations_readonly/demo_00.h5": "456d2a24fbb18a5b3e111acc58f7263427c0265e5391dd6f5eb8932a5a58543d",
13
+ "demonstrations_readonly/demo_01.h5": "a78f192db52739a9e081b8038a5c963663bc11f637abed13b00ce595af2bc659",
14
+ "demonstrations_readonly/demo_02.h5": "8af1f34451cc0b26d2f5ff1a93c5484bcf0361d3a5bbaea468a1f37df8bd3d65",
15
+ "demonstrations_readonly/demo_03.h5": "576c73578682dafaa5ae8d410a7559e606978fcb9f56078856e2718a75343370",
16
+ "demonstrations_readonly/demo_04.h5": "939099f6c7ac3409bdcf0d11ea381026a96e28e22c159b799321fde2210b93ec",
17
+ "demonstrations_readonly/demo_05.h5": "82635a1c0a1b1811aa9bda43c63b775e09c9d25bd31e36a3f794f24f16115908",
18
+ "demonstrations_readonly/demo_06.h5": "d9303d6cf9dabca256ae055b85a1e8acaf75233e37409a0a2d282f885bf275ca",
19
+ "demonstrations_readonly/demo_07.h5": "f96ed392e2e5b1ad7eb91a0c570b9e588ac27c6b0769a685e933166611331433",
20
+ "demonstrations_readonly/demo_08.h5": "2f50dce70ad8fa0073b8d6356ca1f4e1f0ecf8a6b0d22a3a0d5038c377ab5aac",
21
+ "demonstrations_readonly/demo_09.h5": "8fb0b7f110bd32c7fffad58888bd4e7bf9ec13f12bfee43a9775a76bc0502928",
22
+ "demonstrations_readonly/demo_10.h5": "58cd333860028850d81bf311197d20674946cdbc4db2ad7f184ae22eabc88d0f",
23
+ "demonstrations_readonly/demo_11.h5": "346df61ccddcfd7c3df0b12eb0836074eca3d034a17b292348e6c1695ff7dca9",
24
+ "demonstrations_readonly/demo_12.h5": "398fd7f869bdcb7aa090bc9218acb6655b18187803dee2214cf030e8b7084d04",
25
+ "demonstrations_readonly/demo_13.h5": "3bcc1c7929217d37fe883bd6840afb6c16220b3fb6b48d9fd14a990629093096",
26
+ "demonstrations_readonly/demo_14.h5": "63b597cd36ab040baeb5bd14914c33e3b884de5869d6dacc574ebc2ae6aafad6",
27
+ "demonstrations_readonly/demo_15.h5": "02e1532de48b7f7266290c531d9f8b253a3ccdd8be85046b5f3dbf7ded36f0c9",
28
+ "demonstrations_readonly/demo_16.h5": "4185a6768958e97f3e3996f2f63cff389ad9a35ba788c7383ef961a31d341131",
29
+ "demonstrations_readonly/demo_17.h5": "e597657b5a3da5ca2b1888feae94dad410a2dbd39daf9770e7f22a1df0dde36d",
30
+ "demonstrations_readonly/demo_18.h5": "4801b027ea4a5426bff931b6ef5b8fd368e9c2955e8222f468a94d4757a4c043",
31
+ "demonstrations_readonly/demo_19.h5": "af315f650ea314988f83b6ac13fec9ef0ec2acac5dffefe40d73d9e1af5afc3b",
32
+ "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa",
33
+ "features.py": "6eb6ae5cd10c117094bb5621ad16d393dd67bce4e5ecbb7107de06fc54805b14",
34
+ "findings.md": "1c6f47087b64645be328e3e90f7e9d6bedd6bae1a74d53d19b730dd31821cd9d",
35
+ "handoff.md": "b73b5655eec7c9f8b78da81bd31298b9c5990047e0015cc9f4b75fe8693ab0e9",
36
+ "kinematics.py": "76234da2a5b13b3c5cb71c877e9b420792d1f0d660fee1fe137001d1609a125d",
37
+ "model_tool_manifest.yaml": "b8ea44d379592fee6a712dfa4ecfc844b43769538a27de366b7400b7df3e5013",
38
+ "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e",
39
+ "pose_bank.npz": "881f46abd17df8ef8ab81d016d96b5c032f3df86032c2a3c28b2ca3fc14a83e7",
40
+ "skills.md": "786865a3382b0d98a3c3f26e5313f59eac51930d93a3b6801f7cf0d044e5dc32",
41
+ "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e"
42
+ },
43
+ "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836",
44
+ "exploration_ledger_hash": "693476dc98fc6281dc8038c4e533f0c89f66cb838f0039a88ed793ce5c0a706b",
45
+ "entrypoint": "controller.reset_episode(); controller.act(obs)",
46
+ "selection": {
47
+ "rule": "exact-version success rate, valid rehearsal count, recency",
48
+ "rehearsals": [
49
+ {
50
+ "bundle_hash": "8ceaa73ee45ef08f62a73c996388a4654af8164bb7676524a1663cad4d466bb6",
51
+ "episode": 3,
52
+ "independent": true,
53
+ "score_source": "native_step_feedback",
54
+ "status": "finished",
55
+ "success": false,
56
+ "valid": true
57
+ },
58
+ {
59
+ "bundle_hash": "f944ba4d76fb251f0188e25c242883255251dd335e81d1a62d2e14602a061615",
60
+ "episode": 6,
61
+ "independent": true,
62
+ "score_source": "native_step_feedback",
63
+ "status": "finished",
64
+ "success": true,
65
+ "valid": true
66
+ },
67
+ {
68
+ "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836",
69
+ "episode": 11,
70
+ "independent": true,
71
+ "score_source": "native_step_feedback",
72
+ "status": "finished",
73
+ "success": true,
74
+ "valid": true
75
+ },
76
+ {
77
+ "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836",
78
+ "episode": 12,
79
+ "independent": true,
80
+ "score_source": "native_step_feedback",
81
+ "status": "finished",
82
+ "success": true,
83
+ "valid": true
84
+ },
85
+ {
86
+ "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836",
87
+ "episode": 13,
88
+ "independent": true,
89
+ "score_source": "native_step_feedback",
90
+ "status": "finished",
91
+ "success": true,
92
+ "valid": true
93
+ },
94
+ {
95
+ "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836",
96
+ "episode": 14,
97
+ "independent": true,
98
+ "score_source": "native_step_feedback",
99
+ "status": "finished",
100
+ "success": true,
101
+ "valid": true
102
+ },
103
+ {
104
+ "episode": 15,
105
+ "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836",
106
+ "independent": true,
107
+ "valid": false,
108
+ "status": "infrastructure_interrupted",
109
+ "success": false,
110
+ "score_source": "interrupted_no_score",
111
+ "recovery": "durable_rehearsal_request_and_charged_episode; no replay"
112
+ },
113
+ {
114
+ "episode": 16,
115
+ "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836",
116
+ "independent": true,
117
+ "valid": true,
118
+ "status": "finished",
119
+ "success": true,
120
+ "score_source": "native_step_feedback"
121
+ },
122
+ {
123
+ "episode": 17,
124
+ "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836",
125
+ "independent": true,
126
+ "valid": true,
127
+ "status": "finished",
128
+ "success": true,
129
+ "score_source": "native_step_feedback"
130
+ },
131
+ {
132
+ "episode": 18,
133
+ "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836",
134
+ "independent": true,
135
+ "valid": true,
136
+ "status": "finished",
137
+ "success": true,
138
+ "score_source": "native_step_feedback"
139
+ },
140
+ {
141
+ "episode": 19,
142
+ "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836",
143
+ "independent": true,
144
+ "valid": true,
145
+ "status": "finished",
146
+ "success": true,
147
+ "score_source": "native_step_feedback"
148
+ },
149
+ {
150
+ "episode": 20,
151
+ "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836",
152
+ "independent": true,
153
+ "valid": true,
154
+ "status": "finished",
155
+ "success": true,
156
+ "score_source": "native_step_feedback"
157
+ }
158
+ ]
159
+ }
160
+ }
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/handoff.md ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ # Handoff
2
+ Import controller.py; call reset_episode() once, then act(obs) after each new legal observation. The runner owns the initial hold and its charged step. Runtime needs local kinematics.py and pose_bank.npz, plus NumPy and OpenCV. It reads top_camera RGB and both contractual Panda qpos arrays. It returns14 normalized float32 actions in panda-0/panda-1 order or None. Rotation commands remain zero. No API, network, demo reading or model agent is required at runtime.
3
+
4
+ The controller initializes RGB targets once and subsequently closes the loop using qpos-derived FK. The396.5px/m calibration and placement templates come only from this task's20 demos. No neural weights were trained. Remaining retrieval files are unused historical assets retained for provenance. Parent versions/ and exploration/ preserve development, legal evidence and later exact rehearsal results. This documentation was finalized after episode10; behavior is unchanged from successful independent episode6. The documentation change creates a new exact bundle that must itself be independently rehearsed before selection. Freeze is controlled only by the trusted API after exactly20 slots. Do not interpret None or qpos convergence as success.
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/kinematics.py ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ def fk(q):
3
+ t=np.eye(4)
4
+ for theta,a,d,al in zip(q[:7],[0,0,0,.0825,-.0825,0,.088],[.333,0,.316,0,.384,0,0],[0,-np.pi/2,np.pi/2,np.pi/2,-np.pi/2,np.pi/2,np.pi/2]):
5
+ c,s=np.cos(theta),np.sin(theta);ca,sa=np.cos(al),np.sin(al)
6
+ t=t@np.array([[c,-s,0,a],[s*ca,c*ca,-sa,-d*sa],[s*sa,c*sa,ca,d*ca],[0,0,0,1]])
7
+ return (t@np.array([0,0,.107,1]))[:3]
8
+ if __name__=='__main__':
9
+ z=np.load('candidate/demo_bank.npz');q=z['q'];a=z['a'];p=z['progress'];scale=np.array([.35]*7+[.025]*2)
10
+ for i in range(2):
11
+ xyz=np.array([fk(v[i*18:i*18+9]*scale) for v in q]);dx=np.diff(xyz,axis=0);ok=np.diff(p)==1
12
+ print(i,'start',xyz[0],'54',xyz[54]);print('action to motion',np.linalg.lstsq(a[:-1,i*7:i*7+3][ok],dx[ok],rcond=None)[0]);print('error',np.std(dx[ok],0))
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/model_tool_manifest.yaml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "final_documentation_pending_exact_rehearsals",
3
+ "task": "DualArmClothAlign-v1",
4
+ "python": "3.10.20",
5
+ "runtime_dependencies": {
6
+ "numpy": "2.2.6",
7
+ "opencv-python": "4.13.0.92"
8
+ },
9
+ "offline_dependencies": {
10
+ "h5py": "3.16.0"
11
+ },
12
+ "tools_used": [
13
+ "functions.exec / local shell and Python",
14
+ "functions tools.view_image / local contact sheet viewing",
15
+ "worker_api.API.read_demo / authorized local HDF5 reads",
16
+ "Python standard library: importlib,json,pathlib,platform,hashlib,importlib.metadata,py_compile"
17
+ ],
18
+ "provenance": "20 task-authorized demos: non-neural placement-pose bank, RGB boundary calibration and generic Panda FK; legal exploration episodes1-5 informed revisions.",
19
+ "neural_finetuning": false,
20
+ "pretrained_weight_references": [],
21
+ "weight_policy": "No pretrained tool/model weights modified; no neural inference dependencies loaded by controller",
22
+ "environment_episodes": 10,
23
+ "internet_calls": 0,
24
+ "validation": "Matched-template behavior: five interactive native successes (5,7,8,9,10), one independently valid native success (6). Current documentation revision still requires exact-bundle rehearsal.",
25
+ "limitations": [
26
+ "Initial RGB segmentation assumes visible cloth and boundary in table ROI",
27
+ "Joint feedback uses generic kinematics calibrated against legal demos",
28
+ "No verified grasp-failure recovery",
29
+ "Successful episode does not guarantee general performance"
30
+ ],
31
+ "runner_owned": [
32
+ "verified demo manifest",
33
+ "common environment lock"
34
+ ],
35
+ "artifact_sha256": {
36
+ "check_synthetic.py": "aa5690aae64b68d3c98a5915236f074d66a271a199b77861bad3bbf2780542a1",
37
+ "findings.md": "1c6f47087b64645be328e3e90f7e9d6bedd6bae1a74d53d19b730dd31821cd9d",
38
+ "demo_bank.npz": "f91679dadcac278cc50c0f1deaa68c4b446345ccd34687305d65b0e713e5afa0",
39
+ "handoff.md": "b73b5655eec7c9f8b78da81bd31298b9c5990047e0015cc9f4b75fe8693ab0e9",
40
+ "pose_bank.npz": "881f46abd17df8ef8ab81d016d96b5c032f3df86032c2a3c28b2ca3fc14a83e7",
41
+ "build_bank.py": "7b53f161de256be9d84d4e9acdeb0d5418667f9e1fba5a4bb78c41ab7b52492f",
42
+ "controller.py": "653f1c9b8aea0ec7c1c6353b728f3c4acea5b2c2e26f1566bf18b01fa91238f7",
43
+ "skills.md": "786865a3382b0d98a3c3f26e5313f59eac51930d93a3b6801f7cf0d044e5dc32",
44
+ "kinematics.py": "76234da2a5b13b3c5cb71c877e9b420792d1f0d660fee1fe137001d1609a125d",
45
+ "features.py": "6eb6ae5cd10c117094bb5621ad16d393dd67bce4e5ecbb7107de06fc54805b14"
46
+ },
47
+ "runtime_assets": [
48
+ "controller.py",
49
+ "kinematics.py",
50
+ "pose_bank.npz"
51
+ ]
52
+ }
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/policy_runner.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Frozen-program entry point; no development agent and no reset capability."""
2
+ import importlib.util
3
+ import sys
4
+
5
+ sys.path.insert(0,'/artifact')
6
+ sys.path.insert(0,'/')
7
+ from worker_api import API
8
+
9
+
10
+ def main():
11
+ spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py')
12
+ module=importlib.util.module_from_spec(spec)
13
+ spec.loader.exec_module(module)
14
+ module.reset_episode()
15
+ api=API()
16
+ result=api.latest_observation()
17
+ while not (result['terminated'] or result['truncated'] or result['horizon_reached']):
18
+ obs=dict(result['observation'],step_id=result['step_id'])
19
+ action=module.act(obs)
20
+ if action is None:break
21
+ response=api.execute_actions([action])
22
+ result=response['steps'][-1]
23
+
24
+
25
+ if __name__=='__main__':main()
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/skills.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # Implemented controller skills
2
+ 1. Localize initial cloth center/angle and cyan boundary from legal top RGB.
3
+ 2. Transform shared demo-derived grasp/placement geometry using RGB localization.
4
+ 3. Servo current joint-state FK through approach, descent, closure, lift, transfer, lowering, release and retraction.
5
+ 4. Advance on pose convergence with bounded dwell/timeout; respect native14-component ordering, action limits and horizon.
6
+
7
+ The matched-template behavior achieved native success in episodes5–10, including independent rehearsal6. Successful runs can end during lowering; reliable release completion and grasp-loss recovery are not established. No neural model, external model-development agent or network service is used.
agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/worker_api.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Standalone worker client; safe to mount without the runner package."""
2
+ import base64
3
+ import json
4
+ import socket
5
+ import struct
6
+ import uuid
7
+ import os
8
+ from pathlib import Path
9
+
10
+ import numpy as np
11
+
12
+
13
+ def array_hook(value):
14
+ if value.get('__array__') is True:
15
+ dtype=np.dtype(value['dtype'])
16
+ if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service')
17
+ raw=base64.b64decode(value['data'],validate=True)
18
+ return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy()
19
+ return value
20
+
21
+
22
+ class API:
23
+ def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'):
24
+ self.socket_path=socket_path
25
+ self.demo_root=Path(demo_root)
26
+ self.manifest=Path(manifest)
27
+
28
+ def call(self,method,arguments=None,request_id=None):
29
+ # Caller can persist a request ID before sending. Never automatically retry.
30
+ request_id=request_id or str(uuid.uuid4())
31
+ request={'request_id':request_id,'method':method,'arguments':arguments or {}}
32
+ if os.environ.get('AGENT_E20_RPC_TOKEN'):
33
+ request['token']=os.environ['AGENT_E20_RPC_TOKEN']
34
+ payload=json.dumps(request,allow_nan=False).encode()
35
+ if len(payload)>65536:raise ValueError('request too large')
36
+ with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s:
37
+ s.settimeout(1810);s.connect(self.socket_path)
38
+ s.sendall(struct.pack('!I',len(payload))+payload)
39
+ def exact(n):
40
+ chunks=[]
41
+ while n:
42
+ chunk=s.recv(min(n,1024*1024))
43
+ if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID')
44
+ chunks.append(chunk);n-=len(chunk)
45
+ return b''.join(chunks)
46
+ length=struct.unpack('!I',exact(4))[0]
47
+ if length>64*1024*1024:raise RuntimeError('response too large')
48
+ result=json.loads(exact(length),object_hook=array_hook)
49
+ if not result['ok']:raise RuntimeError(result['error'])
50
+ return result['result']
51
+
52
+ def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id)
53
+ def latest_observation(self):return self.call('latest_observation')
54
+ def execute_actions(self,actions,request_id=None):
55
+ return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id)
56
+ def finish_episode(self):return self.call('finish_episode')
57
+ def budget_status(self):return self.call('budget_status')
58
+ def rehearse(self,candidate='candidate',request_id=None):
59
+ return self.call('rehearse',{'candidate':candidate},request_id)
60
+ def score_rehearsal(self,episode,visible_success,evidence):
61
+ return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence})
62
+ def freeze(self):return self.call('freeze')
63
+
64
+ def read_demo(self,demo_id,start=0,stop=None,fields=None):
65
+ import h5py
66
+ manifest=json.loads(self.manifest.read_text())
67
+ if manifest.get('status') not in ('released','released_for_offline_analysis'):
68
+ raise RuntimeError('demonstrations not released by trusted preflight')
69
+ entries={e['demo_id']:e for e in manifest['episodes']}
70
+ if demo_id not in entries:raise ValueError('unauthorized demo ID')
71
+ entry=entries[demo_id]
72
+ allowed={f['path'] for f in entry['fields']}
73
+ fields=sorted(allowed) if fields is None else fields
74
+ if not set(fields)<=allowed:raise ValueError('unauthorized demo field')
75
+ stop=entry['length']+1 if stop is None else stop
76
+ if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start<stop<=entry['length']+1:
77
+ raise ValueError('invalid frame interval')
78
+ path=(self.demo_root/entry['file']).resolve()
79
+ if path.parent!=self.demo_root.resolve():raise ValueError('invalid demo file')
80
+ with h5py.File(path,'r') as f:
81
+ return {field:f[field][start:min(stop,len(f[field]))] for field in fields}
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/config.json ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "allowed_demos": [
3
+ 0,
4
+ 1,
5
+ 2,
6
+ 3,
7
+ 4,
8
+ 5,
9
+ 6,
10
+ 7,
11
+ 8,
12
+ 9,
13
+ 10,
14
+ 11,
15
+ 12,
16
+ 13,
17
+ 14,
18
+ 15,
19
+ 16,
20
+ 17,
21
+ 18,
22
+ 19
23
+ ],
24
+ "visual_start": 85,
25
+ "visual_robots": [
26
+ 1
27
+ ],
28
+ "gain": 0.3,
29
+ "cap": 0.12,
30
+ "deadband": 2.0,
31
+ "error_gate": 160,
32
+ "pace_floor": 0.0,
33
+ "pace_threshold": 8.0,
34
+ "preserve_grasp": true,
35
+ "hand_feedback": true,
36
+ "pose_feedback": false,
37
+ "pose_gain": 0.15,
38
+ "pose_cap": 0.06,
39
+ "pose_pause": 8.0
40
+ }
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/controller.py ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """D20 reference tracking using legal images and bounded visual feedback; no neural weights."""
2
+ from pathlib import Path
3
+ import importlib.util
4
+ import numpy as np
5
+ import json
6
+ import cv2
7
+ _ROOT=Path(__file__).resolve().parent
8
+ _spec=importlib.util.spec_from_file_location('_d20_features',_ROOT/'features.py');_features=importlib.util.module_from_spec(_spec);_spec.loader.exec_module(_features)
9
+ _vspec=importlib.util.spec_from_file_location('_d20_vision',_ROOT/'vision.py');_vision=importlib.util.module_from_spec(_vspec);_vspec.loader.exec_module(_vision)
10
+ _pspec=importlib.util.spec_from_file_location('_d20_pose',_ROOT/'pose.py');_pose=importlib.util.module_from_spec(_pspec);_pspec.loader.exec_module(_pose)
11
+ _VR=None;_CFG=None;_INITIAL_RED=None;_HAND_MAP=None;_POSE=None;_track_points=None;_last_pose_error=None;_last_pose_correction=None;_last_visual_error=None;_last_correction=None;_pause_count=0;_lost_count=0;_memory_correction=np.zeros(3)
12
+ _DB=None;_REF=None;_last_index=None;_last_action=None;_calls=0;_phase=0.;_ids=None
13
+ _ARM=np.r_[0:7,23:30]
14
+ def reset_episode():
15
+ global _last_index,_last_action,_calls,_phase,_ids,_pause_count,_lost_count,_memory_correction,_track_points
16
+ _last_index=None;_last_action=None;_calls=0;_phase=0.;_ids=None;_pause_count=0;_lost_count=0;_memory_correction=np.zeros(3);_track_points=None
17
+ def _database():
18
+ global _DB,_REF,_VR,_CFG,_INITIAL_RED,_HAND_MAP,_POSE
19
+ if _DB is None:
20
+ with np.load(_ROOT/'memory.npz',allow_pickle=False) as d:_DB={k:d[k] for k in d.files}
21
+ with np.load(_ROOT/'reference.npz',allow_pickle=False) as d:_REF={k:d[k] for k in d.files}
22
+ with np.load(_ROOT/'visual_reference.npz',allow_pickle=False) as d:_VR={k:d[k] for k in d.files}
23
+ _CFG=json.loads((_ROOT/'config.json').read_text())
24
+ with np.load(_ROOT/'initial_red.npz',allow_pickle=False) as d:_INITIAL_RED=d['visual'].copy()
25
+ _HAND_MAP=[np.asarray(r['action_to_hand_qpos'],int) for r in json.loads((_ROOT/'hand_mapping.json').read_text())['robots']]
26
+ with np.load(_ROOT/'pose_reference.npz',allow_pickle=False) as d:_POSE={k:d[k] for k in d.files}
27
+ return _DB
28
+ def _red_feature(im,cam):
29
+ im=np.asarray(im).squeeze().astype(float)
30
+ r,g,b=im[:,:,0],im[:,:,1],im[:,:,2]
31
+ mask=((r>120)&(r>1.8*g)&(r>1.8*b)).astype(np.float32)
32
+ return cv2.resize(mask,(60,80) if cam=='top_camera' else (80,60),interpolation=cv2.INTER_AREA).ravel()
33
+ def act(obs):
34
+ global _calls,_phase,_ids,_last_index,_last_action,_last_visual_error,_last_correction,_pause_count,_lost_count,_memory_correction,_last_pose_error,_last_pose_correction,_track_points
35
+ if 'observation' in obs:obs=dict(obs['observation'],step_id=obs.get('step_id',_calls+1))
36
+ if int(obs.get('step_id',_calls+1))>=1200 or _calls>=1199:return None
37
+ if _ids is not None and _phase>=len(_ids):return None
38
+ _calls+=1
39
+ try:q,v=_features.proprio_feature(obs['proprioception'])
40
+ except (ValueError,KeyError,TypeError):return np.zeros(44,np.float32)
41
+ db=_database()
42
+ if _ids is None:
43
+ allowed=np.asarray(_CFG['allowed_demos'],int);scores=np.zeros(len(allowed));seen=0
44
+ for ci,cam in enumerate(('front_camera','left_camera','top_camera')):
45
+ if cam in obs['rgb']:
46
+ f=_red_feature(obs['rgb'][cam],cam);scores+=np.mean(abs(_INITIAL_RED[allowed,ci]-f),axis=1);seen+=1
47
+ if not seen:return np.zeros(44,np.float32)
48
+ di=int(allowed[np.argmin(scores)])
49
+ _ids=np.flatnonzero(_REF['demo']==di)
50
+ t=min(int(_phase),len(_ids)-1);ix=_ids[t]
51
+ action=_REF['a'][ix].copy()
52
+ _last_visual_error=[];_last_correction=[]
53
+ points=np.full((2,2,2),np.nan,np.float32)
54
+ if _track_points is None:_track_points=_VR['points'][ix].copy()
55
+ for ci,cam in enumerate(_features.CAMERAS):
56
+ if cam in obs['rgb']:
57
+ prior=np.where(np.isfinite(_track_points[ci]),_track_points[ci],_VR['points'][ix,ci])
58
+ if _lost_count>10:prior[1]=_VR['points'][ix,ci,1]
59
+ measured=_vision.locate(obs['rgb'][cam],cam,prior)
60
+ for rob in range(2):
61
+ if np.isfinite(prior[rob]).all() and np.isfinite(measured[rob]).all() and np.linalg.norm(measured[rob]-prior[rob])>45:measured[rob]=np.nan
62
+ points[ci]=measured;_track_points[ci]=np.where(np.isfinite(measured),measured,_track_points[ci])
63
+ if t>=_CFG['visual_start']:
64
+ for rob,ao in enumerate([0,22]):
65
+ target=_VR['points'][ix,:,rob,:].reshape(4);current=points[:,rob,:].reshape(4)
66
+ valid=np.isfinite(target)&np.isfinite(current);err=target[valid]-current[valid]
67
+ correction=np.zeros(3)
68
+ if valid.sum()>=2 and np.max(abs(err))<_CFG['error_gate'] and rob in _CFG['visual_robots']:
69
+ err=np.sign(err)*np.maximum(abs(err)-_CFG['deadband'],0)
70
+ j=_VR['J'][rob][:,valid]
71
+ correction=_CFG['gain']*np.linalg.solve(j@j.T+np.eye(3),j@err)
72
+ correction=np.clip(correction,-_CFG['cap'],_CFG['cap'])
73
+ _last_visual_error.append((target-current).tolist());_last_correction.append(correction.tolist())
74
+ pose_correction=np.zeros(3);pose_pause=False;_last_pose_error=None;_last_pose_correction=[0.,0.,0.]
75
+ if _CFG.get('pose_feedback',False) and t>=_CFG['visual_start']:
76
+ measured=np.full((2,5),np.nan)
77
+ for ci,cam in enumerate(_features.CAMERAS):
78
+ if cam in obs['rgb']:
79
+ f=_pose.feature(obs['rgb'][cam],cam,points[ci,1])
80
+ x0,y0,x1,y1=_pose.ROIS[cam]
81
+ if np.isfinite(f[:2]).all() and np.isfinite(points[ci,1]).all() and np.linalg.norm(f[:2]-points[ci,1])<5 and x0+8<f[0]<x1-8 and y0+8<f[1]<y1-8:measured[ci]=f[2:]
82
+ target=_POSE['features'][ix,:,2:].reshape(10);current=measured.reshape(10)
83
+ hand_delta=float(np.mean(q[30:46]-_REF['q'][ix,30:46]))
84
+ error=target-current+_POSE['hand_J'][ix]*(10*hand_delta);_last_pose_error=error.tolist();valid=np.isfinite(error)
85
+ if valid.sum()>=4 and abs(hand_delta)<.4 and np.max(abs(error[valid]))<30:
86
+ j=_POSE['rotation_J'][ix][:,valid]
87
+ if np.linalg.norm(j)>.5:
88
+ e=error[valid];e=np.sign(e)*np.maximum(abs(e)-.3,0)
89
+ raw=np.linalg.solve(j@j.T+np.eye(3),j@e)
90
+ pose_correction=np.clip(_CFG.get('pose_gain',.15)*raw,-_CFG.get('pose_cap',.06),_CFG.get('pose_cap',.06))
91
+ pose_pause=float(np.sqrt(np.mean((j.T@raw)**2)))>_CFG.get('pose_pause',8.)
92
+ _last_pose_correction=pose_correction.tolist()
93
+ pace=1.0
94
+ if _last_visual_error and np.isfinite(_VR['points'][ix,:,1,:]).sum()>=2:
95
+ e=np.asarray(_last_visual_error[1]);finite=np.isfinite(e)
96
+ if finite.any():
97
+ _lost_count=0;_memory_correction=np.asarray(_last_correction[1])
98
+ if np.max(abs(e[finite]))>_CFG.get('pace_threshold',8):pace=_CFG.get('pace_floor',1.0)
99
+ else:
100
+ _lost_count+=1;pace=_CFG.get('pace_floor',1.0)
101
+ if _lost_count<=10:_last_correction[1]=np.clip(_memory_correction,-.1,.1).tolist()
102
+ if pose_pause:pace=0.
103
+ _pause_count=_pause_count+1 if pace==0 else 0
104
+ if _pause_count>80:pace=.25
105
+ remaining=1200-int(obs.get('step_id',_calls))
106
+ if len(_ids)-_phase>=remaining-5:pace=1.0
107
+ grip=action[6:22].copy()
108
+ action*=pace
109
+ if _CFG.get('preserve_grasp',False):action[6:22]=grip
110
+ for rob,ao in enumerate([0,22]):
111
+ if _last_correction:action[ao:ao+3]+=np.asarray(_last_correction[rob])
112
+ action[25:28]+=pose_correction
113
+ if _CFG.get('hand_feedback',False):
114
+ for rob,(qo,ao) in enumerate([(0,0),(23,22)]):
115
+ qi=qo+7+_HAND_MAP[rob]
116
+ goal=_REF['q'][ix,qi]+_REF['a'][ix,ao+6:ao+22]
117
+ action[ao+6:ao+22]=goal-q[qi]
118
+ _phase+=pace
119
+ # Record provenance-compatible nearest sampled frame for exploration harness.
120
+ choices=np.flatnonzero(db['demo']==_REF['demo'][ix]);_last_index=int(choices[np.argmin(abs(db['frame'][choices]-t))]);_last_action=np.clip(action,-1,1).astype(np.float32)
121
+ return _last_action
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/demo_manifest.json ADDED
@@ -0,0 +1,2248 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "task_id": "DualArmClothCylinderWipe-v1",
3
+ "status": "released",
4
+ "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data",
5
+ "lineage_status": "pinned_comparator",
6
+ "episodes": [
7
+ {
8
+ "demo_id": "demo_00",
9
+ "file": "demo_00.h5",
10
+ "length": 907,
11
+ "fields": [
12
+ {
13
+ "path": "actions/panda_leaphand-1",
14
+ "shape": [
15
+ 907,
16
+ 22
17
+ ],
18
+ "dtype": "float32"
19
+ },
20
+ {
21
+ "path": "actions/panda_leaphand_left-0",
22
+ "shape": [
23
+ 907,
24
+ 22
25
+ ],
26
+ "dtype": "float32"
27
+ },
28
+ {
29
+ "path": "obs/agent/panda_leaphand-1/qpos",
30
+ "shape": [
31
+ 908,
32
+ 1,
33
+ 23
34
+ ],
35
+ "dtype": "float32"
36
+ },
37
+ {
38
+ "path": "obs/agent/panda_leaphand-1/qvel",
39
+ "shape": [
40
+ 908,
41
+ 1,
42
+ 23
43
+ ],
44
+ "dtype": "float32"
45
+ },
46
+ {
47
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
48
+ "shape": [
49
+ 908,
50
+ 1,
51
+ 23
52
+ ],
53
+ "dtype": "float32"
54
+ },
55
+ {
56
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
57
+ "shape": [
58
+ 908,
59
+ 1,
60
+ 23
61
+ ],
62
+ "dtype": "float32"
63
+ },
64
+ {
65
+ "path": "obs/sensor_data/front_camera/rgb",
66
+ "shape": [
67
+ 908,
68
+ 240,
69
+ 320,
70
+ 3
71
+ ],
72
+ "dtype": "uint8"
73
+ },
74
+ {
75
+ "path": "obs/sensor_data/left_camera/rgb",
76
+ "shape": [
77
+ 908,
78
+ 240,
79
+ 320,
80
+ 3
81
+ ],
82
+ "dtype": "uint8"
83
+ },
84
+ {
85
+ "path": "obs/sensor_data/robot_camera_0/rgb",
86
+ "shape": [
87
+ 908,
88
+ 240,
89
+ 320,
90
+ 3
91
+ ],
92
+ "dtype": "uint8"
93
+ },
94
+ {
95
+ "path": "obs/sensor_data/robot_camera_1/rgb",
96
+ "shape": [
97
+ 908,
98
+ 240,
99
+ 320,
100
+ 3
101
+ ],
102
+ "dtype": "uint8"
103
+ },
104
+ {
105
+ "path": "obs/sensor_data/top_camera/rgb",
106
+ "shape": [
107
+ 908,
108
+ 320,
109
+ 240,
110
+ 3
111
+ ],
112
+ "dtype": "uint8"
113
+ }
114
+ ],
115
+ "trajectory_sha256": "66ba4567184b90c2383f06ec0e0d80019cb16d538216fd8ffd874d1c657e9dc5",
116
+ "source_sha256": "b4c2d5f842cfa19cd34377117f69713727951755982dd1a892dc90bda3b0beae",
117
+ "view_sha256": "857e133eef8d4357fc22d7aaf14be0ba4ea353911c498f060fd4bc9a4f174d88"
118
+ },
119
+ {
120
+ "demo_id": "demo_01",
121
+ "file": "demo_01.h5",
122
+ "length": 684,
123
+ "fields": [
124
+ {
125
+ "path": "actions/panda_leaphand-1",
126
+ "shape": [
127
+ 684,
128
+ 22
129
+ ],
130
+ "dtype": "float32"
131
+ },
132
+ {
133
+ "path": "actions/panda_leaphand_left-0",
134
+ "shape": [
135
+ 684,
136
+ 22
137
+ ],
138
+ "dtype": "float32"
139
+ },
140
+ {
141
+ "path": "obs/agent/panda_leaphand-1/qpos",
142
+ "shape": [
143
+ 685,
144
+ 1,
145
+ 23
146
+ ],
147
+ "dtype": "float32"
148
+ },
149
+ {
150
+ "path": "obs/agent/panda_leaphand-1/qvel",
151
+ "shape": [
152
+ 685,
153
+ 1,
154
+ 23
155
+ ],
156
+ "dtype": "float32"
157
+ },
158
+ {
159
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
160
+ "shape": [
161
+ 685,
162
+ 1,
163
+ 23
164
+ ],
165
+ "dtype": "float32"
166
+ },
167
+ {
168
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
169
+ "shape": [
170
+ 685,
171
+ 1,
172
+ 23
173
+ ],
174
+ "dtype": "float32"
175
+ },
176
+ {
177
+ "path": "obs/sensor_data/front_camera/rgb",
178
+ "shape": [
179
+ 685,
180
+ 240,
181
+ 320,
182
+ 3
183
+ ],
184
+ "dtype": "uint8"
185
+ },
186
+ {
187
+ "path": "obs/sensor_data/left_camera/rgb",
188
+ "shape": [
189
+ 685,
190
+ 240,
191
+ 320,
192
+ 3
193
+ ],
194
+ "dtype": "uint8"
195
+ },
196
+ {
197
+ "path": "obs/sensor_data/robot_camera_0/rgb",
198
+ "shape": [
199
+ 685,
200
+ 240,
201
+ 320,
202
+ 3
203
+ ],
204
+ "dtype": "uint8"
205
+ },
206
+ {
207
+ "path": "obs/sensor_data/robot_camera_1/rgb",
208
+ "shape": [
209
+ 685,
210
+ 240,
211
+ 320,
212
+ 3
213
+ ],
214
+ "dtype": "uint8"
215
+ },
216
+ {
217
+ "path": "obs/sensor_data/top_camera/rgb",
218
+ "shape": [
219
+ 685,
220
+ 320,
221
+ 240,
222
+ 3
223
+ ],
224
+ "dtype": "uint8"
225
+ }
226
+ ],
227
+ "trajectory_sha256": "aeae190b5d3f1d6ff9682cc4dfda7128c8f8fece74db1fc8372ad138e2d2764e",
228
+ "source_sha256": "460904083bf9d777fbf17068e1078e12700487f50f8f43ffc1141fc2d68befa2",
229
+ "view_sha256": "11748bc6e750637eaa2cb29b65a3601c790028298ae0fbe2554c0ba448ae9acc"
230
+ },
231
+ {
232
+ "demo_id": "demo_02",
233
+ "file": "demo_02.h5",
234
+ "length": 1087,
235
+ "fields": [
236
+ {
237
+ "path": "actions/panda_leaphand-1",
238
+ "shape": [
239
+ 1087,
240
+ 22
241
+ ],
242
+ "dtype": "float32"
243
+ },
244
+ {
245
+ "path": "actions/panda_leaphand_left-0",
246
+ "shape": [
247
+ 1087,
248
+ 22
249
+ ],
250
+ "dtype": "float32"
251
+ },
252
+ {
253
+ "path": "obs/agent/panda_leaphand-1/qpos",
254
+ "shape": [
255
+ 1088,
256
+ 1,
257
+ 23
258
+ ],
259
+ "dtype": "float32"
260
+ },
261
+ {
262
+ "path": "obs/agent/panda_leaphand-1/qvel",
263
+ "shape": [
264
+ 1088,
265
+ 1,
266
+ 23
267
+ ],
268
+ "dtype": "float32"
269
+ },
270
+ {
271
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
272
+ "shape": [
273
+ 1088,
274
+ 1,
275
+ 23
276
+ ],
277
+ "dtype": "float32"
278
+ },
279
+ {
280
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
281
+ "shape": [
282
+ 1088,
283
+ 1,
284
+ 23
285
+ ],
286
+ "dtype": "float32"
287
+ },
288
+ {
289
+ "path": "obs/sensor_data/front_camera/rgb",
290
+ "shape": [
291
+ 1088,
292
+ 240,
293
+ 320,
294
+ 3
295
+ ],
296
+ "dtype": "uint8"
297
+ },
298
+ {
299
+ "path": "obs/sensor_data/left_camera/rgb",
300
+ "shape": [
301
+ 1088,
302
+ 240,
303
+ 320,
304
+ 3
305
+ ],
306
+ "dtype": "uint8"
307
+ },
308
+ {
309
+ "path": "obs/sensor_data/robot_camera_0/rgb",
310
+ "shape": [
311
+ 1088,
312
+ 240,
313
+ 320,
314
+ 3
315
+ ],
316
+ "dtype": "uint8"
317
+ },
318
+ {
319
+ "path": "obs/sensor_data/robot_camera_1/rgb",
320
+ "shape": [
321
+ 1088,
322
+ 240,
323
+ 320,
324
+ 3
325
+ ],
326
+ "dtype": "uint8"
327
+ },
328
+ {
329
+ "path": "obs/sensor_data/top_camera/rgb",
330
+ "shape": [
331
+ 1088,
332
+ 320,
333
+ 240,
334
+ 3
335
+ ],
336
+ "dtype": "uint8"
337
+ }
338
+ ],
339
+ "trajectory_sha256": "ab4bfbd01d1fdcb63ee1c1452112b0d923530c775079556fedd1fe46c4b9f177",
340
+ "source_sha256": "205b95456ab349aa37eaa07fb58abaab997452670264ce535cc1dd12e9959d5e",
341
+ "view_sha256": "fe1d2f68f149e995b440860aecc4560c11191380d105bf4111acec9d0300f568"
342
+ },
343
+ {
344
+ "demo_id": "demo_03",
345
+ "file": "demo_03.h5",
346
+ "length": 698,
347
+ "fields": [
348
+ {
349
+ "path": "actions/panda_leaphand-1",
350
+ "shape": [
351
+ 698,
352
+ 22
353
+ ],
354
+ "dtype": "float32"
355
+ },
356
+ {
357
+ "path": "actions/panda_leaphand_left-0",
358
+ "shape": [
359
+ 698,
360
+ 22
361
+ ],
362
+ "dtype": "float32"
363
+ },
364
+ {
365
+ "path": "obs/agent/panda_leaphand-1/qpos",
366
+ "shape": [
367
+ 699,
368
+ 1,
369
+ 23
370
+ ],
371
+ "dtype": "float32"
372
+ },
373
+ {
374
+ "path": "obs/agent/panda_leaphand-1/qvel",
375
+ "shape": [
376
+ 699,
377
+ 1,
378
+ 23
379
+ ],
380
+ "dtype": "float32"
381
+ },
382
+ {
383
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
384
+ "shape": [
385
+ 699,
386
+ 1,
387
+ 23
388
+ ],
389
+ "dtype": "float32"
390
+ },
391
+ {
392
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
393
+ "shape": [
394
+ 699,
395
+ 1,
396
+ 23
397
+ ],
398
+ "dtype": "float32"
399
+ },
400
+ {
401
+ "path": "obs/sensor_data/front_camera/rgb",
402
+ "shape": [
403
+ 699,
404
+ 240,
405
+ 320,
406
+ 3
407
+ ],
408
+ "dtype": "uint8"
409
+ },
410
+ {
411
+ "path": "obs/sensor_data/left_camera/rgb",
412
+ "shape": [
413
+ 699,
414
+ 240,
415
+ 320,
416
+ 3
417
+ ],
418
+ "dtype": "uint8"
419
+ },
420
+ {
421
+ "path": "obs/sensor_data/robot_camera_0/rgb",
422
+ "shape": [
423
+ 699,
424
+ 240,
425
+ 320,
426
+ 3
427
+ ],
428
+ "dtype": "uint8"
429
+ },
430
+ {
431
+ "path": "obs/sensor_data/robot_camera_1/rgb",
432
+ "shape": [
433
+ 699,
434
+ 240,
435
+ 320,
436
+ 3
437
+ ],
438
+ "dtype": "uint8"
439
+ },
440
+ {
441
+ "path": "obs/sensor_data/top_camera/rgb",
442
+ "shape": [
443
+ 699,
444
+ 320,
445
+ 240,
446
+ 3
447
+ ],
448
+ "dtype": "uint8"
449
+ }
450
+ ],
451
+ "trajectory_sha256": "e95795efb1b906da0f9c660b535cdf1c91bf8f773f968dc9263a7133b01debb5",
452
+ "source_sha256": "abaa0a5f377dc2e9c2b41e36af8e06af3a869371fc49378832f4a7a2be1d5f06",
453
+ "view_sha256": "21a6eb85d0c7c105b3f8b2d8be5926f0870406c02a9aed4cd98163c80559fc1e"
454
+ },
455
+ {
456
+ "demo_id": "demo_04",
457
+ "file": "demo_04.h5",
458
+ "length": 959,
459
+ "fields": [
460
+ {
461
+ "path": "actions/panda_leaphand-1",
462
+ "shape": [
463
+ 959,
464
+ 22
465
+ ],
466
+ "dtype": "float32"
467
+ },
468
+ {
469
+ "path": "actions/panda_leaphand_left-0",
470
+ "shape": [
471
+ 959,
472
+ 22
473
+ ],
474
+ "dtype": "float32"
475
+ },
476
+ {
477
+ "path": "obs/agent/panda_leaphand-1/qpos",
478
+ "shape": [
479
+ 960,
480
+ 1,
481
+ 23
482
+ ],
483
+ "dtype": "float32"
484
+ },
485
+ {
486
+ "path": "obs/agent/panda_leaphand-1/qvel",
487
+ "shape": [
488
+ 960,
489
+ 1,
490
+ 23
491
+ ],
492
+ "dtype": "float32"
493
+ },
494
+ {
495
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
496
+ "shape": [
497
+ 960,
498
+ 1,
499
+ 23
500
+ ],
501
+ "dtype": "float32"
502
+ },
503
+ {
504
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
505
+ "shape": [
506
+ 960,
507
+ 1,
508
+ 23
509
+ ],
510
+ "dtype": "float32"
511
+ },
512
+ {
513
+ "path": "obs/sensor_data/front_camera/rgb",
514
+ "shape": [
515
+ 960,
516
+ 240,
517
+ 320,
518
+ 3
519
+ ],
520
+ "dtype": "uint8"
521
+ },
522
+ {
523
+ "path": "obs/sensor_data/left_camera/rgb",
524
+ "shape": [
525
+ 960,
526
+ 240,
527
+ 320,
528
+ 3
529
+ ],
530
+ "dtype": "uint8"
531
+ },
532
+ {
533
+ "path": "obs/sensor_data/robot_camera_0/rgb",
534
+ "shape": [
535
+ 960,
536
+ 240,
537
+ 320,
538
+ 3
539
+ ],
540
+ "dtype": "uint8"
541
+ },
542
+ {
543
+ "path": "obs/sensor_data/robot_camera_1/rgb",
544
+ "shape": [
545
+ 960,
546
+ 240,
547
+ 320,
548
+ 3
549
+ ],
550
+ "dtype": "uint8"
551
+ },
552
+ {
553
+ "path": "obs/sensor_data/top_camera/rgb",
554
+ "shape": [
555
+ 960,
556
+ 320,
557
+ 240,
558
+ 3
559
+ ],
560
+ "dtype": "uint8"
561
+ }
562
+ ],
563
+ "trajectory_sha256": "b5f29a807512daa96fc8518518bcf31c48eb7bbe570d3507c7b10797f8dfd5d4",
564
+ "source_sha256": "5783b70d506e6d10fa36b476d3e6a287d6f24ab50e903a26130d945f22c8a1cc",
565
+ "view_sha256": "f86a74aee0fd38cbcab5bf16b04e498db4464f559cf1fdee235b78aab2e17d78"
566
+ },
567
+ {
568
+ "demo_id": "demo_05",
569
+ "file": "demo_05.h5",
570
+ "length": 881,
571
+ "fields": [
572
+ {
573
+ "path": "actions/panda_leaphand-1",
574
+ "shape": [
575
+ 881,
576
+ 22
577
+ ],
578
+ "dtype": "float32"
579
+ },
580
+ {
581
+ "path": "actions/panda_leaphand_left-0",
582
+ "shape": [
583
+ 881,
584
+ 22
585
+ ],
586
+ "dtype": "float32"
587
+ },
588
+ {
589
+ "path": "obs/agent/panda_leaphand-1/qpos",
590
+ "shape": [
591
+ 882,
592
+ 1,
593
+ 23
594
+ ],
595
+ "dtype": "float32"
596
+ },
597
+ {
598
+ "path": "obs/agent/panda_leaphand-1/qvel",
599
+ "shape": [
600
+ 882,
601
+ 1,
602
+ 23
603
+ ],
604
+ "dtype": "float32"
605
+ },
606
+ {
607
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
608
+ "shape": [
609
+ 882,
610
+ 1,
611
+ 23
612
+ ],
613
+ "dtype": "float32"
614
+ },
615
+ {
616
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
617
+ "shape": [
618
+ 882,
619
+ 1,
620
+ 23
621
+ ],
622
+ "dtype": "float32"
623
+ },
624
+ {
625
+ "path": "obs/sensor_data/front_camera/rgb",
626
+ "shape": [
627
+ 882,
628
+ 240,
629
+ 320,
630
+ 3
631
+ ],
632
+ "dtype": "uint8"
633
+ },
634
+ {
635
+ "path": "obs/sensor_data/left_camera/rgb",
636
+ "shape": [
637
+ 882,
638
+ 240,
639
+ 320,
640
+ 3
641
+ ],
642
+ "dtype": "uint8"
643
+ },
644
+ {
645
+ "path": "obs/sensor_data/robot_camera_0/rgb",
646
+ "shape": [
647
+ 882,
648
+ 240,
649
+ 320,
650
+ 3
651
+ ],
652
+ "dtype": "uint8"
653
+ },
654
+ {
655
+ "path": "obs/sensor_data/robot_camera_1/rgb",
656
+ "shape": [
657
+ 882,
658
+ 240,
659
+ 320,
660
+ 3
661
+ ],
662
+ "dtype": "uint8"
663
+ },
664
+ {
665
+ "path": "obs/sensor_data/top_camera/rgb",
666
+ "shape": [
667
+ 882,
668
+ 320,
669
+ 240,
670
+ 3
671
+ ],
672
+ "dtype": "uint8"
673
+ }
674
+ ],
675
+ "trajectory_sha256": "4b690c14a52b060e795eb00145515e054bf67e9b0d2e4c1a63ffcee3083b18e8",
676
+ "source_sha256": "fe92df81404a574b8f19a65d3fd99e53675ba62d342d0a6c13b1bc8dbb764667",
677
+ "view_sha256": "4fe7eea530ee51d44ca4a2eec9f43187219fb43f76648af43a334bb31dc3a0ee"
678
+ },
679
+ {
680
+ "demo_id": "demo_06",
681
+ "file": "demo_06.h5",
682
+ "length": 722,
683
+ "fields": [
684
+ {
685
+ "path": "actions/panda_leaphand-1",
686
+ "shape": [
687
+ 722,
688
+ 22
689
+ ],
690
+ "dtype": "float32"
691
+ },
692
+ {
693
+ "path": "actions/panda_leaphand_left-0",
694
+ "shape": [
695
+ 722,
696
+ 22
697
+ ],
698
+ "dtype": "float32"
699
+ },
700
+ {
701
+ "path": "obs/agent/panda_leaphand-1/qpos",
702
+ "shape": [
703
+ 723,
704
+ 1,
705
+ 23
706
+ ],
707
+ "dtype": "float32"
708
+ },
709
+ {
710
+ "path": "obs/agent/panda_leaphand-1/qvel",
711
+ "shape": [
712
+ 723,
713
+ 1,
714
+ 23
715
+ ],
716
+ "dtype": "float32"
717
+ },
718
+ {
719
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
720
+ "shape": [
721
+ 723,
722
+ 1,
723
+ 23
724
+ ],
725
+ "dtype": "float32"
726
+ },
727
+ {
728
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
729
+ "shape": [
730
+ 723,
731
+ 1,
732
+ 23
733
+ ],
734
+ "dtype": "float32"
735
+ },
736
+ {
737
+ "path": "obs/sensor_data/front_camera/rgb",
738
+ "shape": [
739
+ 723,
740
+ 240,
741
+ 320,
742
+ 3
743
+ ],
744
+ "dtype": "uint8"
745
+ },
746
+ {
747
+ "path": "obs/sensor_data/left_camera/rgb",
748
+ "shape": [
749
+ 723,
750
+ 240,
751
+ 320,
752
+ 3
753
+ ],
754
+ "dtype": "uint8"
755
+ },
756
+ {
757
+ "path": "obs/sensor_data/robot_camera_0/rgb",
758
+ "shape": [
759
+ 723,
760
+ 240,
761
+ 320,
762
+ 3
763
+ ],
764
+ "dtype": "uint8"
765
+ },
766
+ {
767
+ "path": "obs/sensor_data/robot_camera_1/rgb",
768
+ "shape": [
769
+ 723,
770
+ 240,
771
+ 320,
772
+ 3
773
+ ],
774
+ "dtype": "uint8"
775
+ },
776
+ {
777
+ "path": "obs/sensor_data/top_camera/rgb",
778
+ "shape": [
779
+ 723,
780
+ 320,
781
+ 240,
782
+ 3
783
+ ],
784
+ "dtype": "uint8"
785
+ }
786
+ ],
787
+ "trajectory_sha256": "1334b5b1862fce2d5815870e976c2763f37da91abfa24c5984324862f9d32b6c",
788
+ "source_sha256": "163fb93203e1d84b1b90017ac770e67b1013907bb7e03b374b5df11ab1e8bf49",
789
+ "view_sha256": "11eea8b547ebefa498eb0e105c46ebbc1b2407a42edfeee8968239269c4f969b"
790
+ },
791
+ {
792
+ "demo_id": "demo_07",
793
+ "file": "demo_07.h5",
794
+ "length": 800,
795
+ "fields": [
796
+ {
797
+ "path": "actions/panda_leaphand-1",
798
+ "shape": [
799
+ 800,
800
+ 22
801
+ ],
802
+ "dtype": "float32"
803
+ },
804
+ {
805
+ "path": "actions/panda_leaphand_left-0",
806
+ "shape": [
807
+ 800,
808
+ 22
809
+ ],
810
+ "dtype": "float32"
811
+ },
812
+ {
813
+ "path": "obs/agent/panda_leaphand-1/qpos",
814
+ "shape": [
815
+ 801,
816
+ 1,
817
+ 23
818
+ ],
819
+ "dtype": "float32"
820
+ },
821
+ {
822
+ "path": "obs/agent/panda_leaphand-1/qvel",
823
+ "shape": [
824
+ 801,
825
+ 1,
826
+ 23
827
+ ],
828
+ "dtype": "float32"
829
+ },
830
+ {
831
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
832
+ "shape": [
833
+ 801,
834
+ 1,
835
+ 23
836
+ ],
837
+ "dtype": "float32"
838
+ },
839
+ {
840
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
841
+ "shape": [
842
+ 801,
843
+ 1,
844
+ 23
845
+ ],
846
+ "dtype": "float32"
847
+ },
848
+ {
849
+ "path": "obs/sensor_data/front_camera/rgb",
850
+ "shape": [
851
+ 801,
852
+ 240,
853
+ 320,
854
+ 3
855
+ ],
856
+ "dtype": "uint8"
857
+ },
858
+ {
859
+ "path": "obs/sensor_data/left_camera/rgb",
860
+ "shape": [
861
+ 801,
862
+ 240,
863
+ 320,
864
+ 3
865
+ ],
866
+ "dtype": "uint8"
867
+ },
868
+ {
869
+ "path": "obs/sensor_data/robot_camera_0/rgb",
870
+ "shape": [
871
+ 801,
872
+ 240,
873
+ 320,
874
+ 3
875
+ ],
876
+ "dtype": "uint8"
877
+ },
878
+ {
879
+ "path": "obs/sensor_data/robot_camera_1/rgb",
880
+ "shape": [
881
+ 801,
882
+ 240,
883
+ 320,
884
+ 3
885
+ ],
886
+ "dtype": "uint8"
887
+ },
888
+ {
889
+ "path": "obs/sensor_data/top_camera/rgb",
890
+ "shape": [
891
+ 801,
892
+ 320,
893
+ 240,
894
+ 3
895
+ ],
896
+ "dtype": "uint8"
897
+ }
898
+ ],
899
+ "trajectory_sha256": "530299b6e41cb652846cb6ae305b814d215ba193be9f9a53e8176b082c539206",
900
+ "source_sha256": "be4041e3bf2fc5a7d4aea4d652991707e5e6d759b870b08091f662330e089362",
901
+ "view_sha256": "c2ca348843a77d6cc9ab922a9f8047eed9e62b2a1b7375336b2724c569ebd09f"
902
+ },
903
+ {
904
+ "demo_id": "demo_08",
905
+ "file": "demo_08.h5",
906
+ "length": 979,
907
+ "fields": [
908
+ {
909
+ "path": "actions/panda_leaphand-1",
910
+ "shape": [
911
+ 979,
912
+ 22
913
+ ],
914
+ "dtype": "float32"
915
+ },
916
+ {
917
+ "path": "actions/panda_leaphand_left-0",
918
+ "shape": [
919
+ 979,
920
+ 22
921
+ ],
922
+ "dtype": "float32"
923
+ },
924
+ {
925
+ "path": "obs/agent/panda_leaphand-1/qpos",
926
+ "shape": [
927
+ 980,
928
+ 1,
929
+ 23
930
+ ],
931
+ "dtype": "float32"
932
+ },
933
+ {
934
+ "path": "obs/agent/panda_leaphand-1/qvel",
935
+ "shape": [
936
+ 980,
937
+ 1,
938
+ 23
939
+ ],
940
+ "dtype": "float32"
941
+ },
942
+ {
943
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
944
+ "shape": [
945
+ 980,
946
+ 1,
947
+ 23
948
+ ],
949
+ "dtype": "float32"
950
+ },
951
+ {
952
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
953
+ "shape": [
954
+ 980,
955
+ 1,
956
+ 23
957
+ ],
958
+ "dtype": "float32"
959
+ },
960
+ {
961
+ "path": "obs/sensor_data/front_camera/rgb",
962
+ "shape": [
963
+ 980,
964
+ 240,
965
+ 320,
966
+ 3
967
+ ],
968
+ "dtype": "uint8"
969
+ },
970
+ {
971
+ "path": "obs/sensor_data/left_camera/rgb",
972
+ "shape": [
973
+ 980,
974
+ 240,
975
+ 320,
976
+ 3
977
+ ],
978
+ "dtype": "uint8"
979
+ },
980
+ {
981
+ "path": "obs/sensor_data/robot_camera_0/rgb",
982
+ "shape": [
983
+ 980,
984
+ 240,
985
+ 320,
986
+ 3
987
+ ],
988
+ "dtype": "uint8"
989
+ },
990
+ {
991
+ "path": "obs/sensor_data/robot_camera_1/rgb",
992
+ "shape": [
993
+ 980,
994
+ 240,
995
+ 320,
996
+ 3
997
+ ],
998
+ "dtype": "uint8"
999
+ },
1000
+ {
1001
+ "path": "obs/sensor_data/top_camera/rgb",
1002
+ "shape": [
1003
+ 980,
1004
+ 320,
1005
+ 240,
1006
+ 3
1007
+ ],
1008
+ "dtype": "uint8"
1009
+ }
1010
+ ],
1011
+ "trajectory_sha256": "4cc51508b60f0d9e2a7c9fb09ac47bfe21e3b49b690d3f61721de88b6e80b264",
1012
+ "source_sha256": "ee428a715fef3e167958e7304343e5346a9d3fb779a54b4af2d9ee54fb2c4458",
1013
+ "view_sha256": "415ca77a9f780a6b6e7594706d7f87f0080aec676ee5392270407af80c31a04e"
1014
+ },
1015
+ {
1016
+ "demo_id": "demo_09",
1017
+ "file": "demo_09.h5",
1018
+ "length": 963,
1019
+ "fields": [
1020
+ {
1021
+ "path": "actions/panda_leaphand-1",
1022
+ "shape": [
1023
+ 963,
1024
+ 22
1025
+ ],
1026
+ "dtype": "float32"
1027
+ },
1028
+ {
1029
+ "path": "actions/panda_leaphand_left-0",
1030
+ "shape": [
1031
+ 963,
1032
+ 22
1033
+ ],
1034
+ "dtype": "float32"
1035
+ },
1036
+ {
1037
+ "path": "obs/agent/panda_leaphand-1/qpos",
1038
+ "shape": [
1039
+ 964,
1040
+ 1,
1041
+ 23
1042
+ ],
1043
+ "dtype": "float32"
1044
+ },
1045
+ {
1046
+ "path": "obs/agent/panda_leaphand-1/qvel",
1047
+ "shape": [
1048
+ 964,
1049
+ 1,
1050
+ 23
1051
+ ],
1052
+ "dtype": "float32"
1053
+ },
1054
+ {
1055
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
1056
+ "shape": [
1057
+ 964,
1058
+ 1,
1059
+ 23
1060
+ ],
1061
+ "dtype": "float32"
1062
+ },
1063
+ {
1064
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
1065
+ "shape": [
1066
+ 964,
1067
+ 1,
1068
+ 23
1069
+ ],
1070
+ "dtype": "float32"
1071
+ },
1072
+ {
1073
+ "path": "obs/sensor_data/front_camera/rgb",
1074
+ "shape": [
1075
+ 964,
1076
+ 240,
1077
+ 320,
1078
+ 3
1079
+ ],
1080
+ "dtype": "uint8"
1081
+ },
1082
+ {
1083
+ "path": "obs/sensor_data/left_camera/rgb",
1084
+ "shape": [
1085
+ 964,
1086
+ 240,
1087
+ 320,
1088
+ 3
1089
+ ],
1090
+ "dtype": "uint8"
1091
+ },
1092
+ {
1093
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1094
+ "shape": [
1095
+ 964,
1096
+ 240,
1097
+ 320,
1098
+ 3
1099
+ ],
1100
+ "dtype": "uint8"
1101
+ },
1102
+ {
1103
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1104
+ "shape": [
1105
+ 964,
1106
+ 240,
1107
+ 320,
1108
+ 3
1109
+ ],
1110
+ "dtype": "uint8"
1111
+ },
1112
+ {
1113
+ "path": "obs/sensor_data/top_camera/rgb",
1114
+ "shape": [
1115
+ 964,
1116
+ 320,
1117
+ 240,
1118
+ 3
1119
+ ],
1120
+ "dtype": "uint8"
1121
+ }
1122
+ ],
1123
+ "trajectory_sha256": "cddbde74cfc1a65aad15c82bca64dcbb7e953444166d5f68c4ccb7c522f79cb8",
1124
+ "source_sha256": "898d58176ed106de008147dfc58ea4fc53ead5ba6b02c8ad58082fa413a7bf76",
1125
+ "view_sha256": "17ee2e6d9f1c2c3da4b3a8d5cce65e432c44bcea17e66e55631b1cd30a33c248"
1126
+ },
1127
+ {
1128
+ "demo_id": "demo_10",
1129
+ "file": "demo_10.h5",
1130
+ "length": 1024,
1131
+ "fields": [
1132
+ {
1133
+ "path": "actions/panda_leaphand-1",
1134
+ "shape": [
1135
+ 1024,
1136
+ 22
1137
+ ],
1138
+ "dtype": "float32"
1139
+ },
1140
+ {
1141
+ "path": "actions/panda_leaphand_left-0",
1142
+ "shape": [
1143
+ 1024,
1144
+ 22
1145
+ ],
1146
+ "dtype": "float32"
1147
+ },
1148
+ {
1149
+ "path": "obs/agent/panda_leaphand-1/qpos",
1150
+ "shape": [
1151
+ 1025,
1152
+ 1,
1153
+ 23
1154
+ ],
1155
+ "dtype": "float32"
1156
+ },
1157
+ {
1158
+ "path": "obs/agent/panda_leaphand-1/qvel",
1159
+ "shape": [
1160
+ 1025,
1161
+ 1,
1162
+ 23
1163
+ ],
1164
+ "dtype": "float32"
1165
+ },
1166
+ {
1167
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
1168
+ "shape": [
1169
+ 1025,
1170
+ 1,
1171
+ 23
1172
+ ],
1173
+ "dtype": "float32"
1174
+ },
1175
+ {
1176
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
1177
+ "shape": [
1178
+ 1025,
1179
+ 1,
1180
+ 23
1181
+ ],
1182
+ "dtype": "float32"
1183
+ },
1184
+ {
1185
+ "path": "obs/sensor_data/front_camera/rgb",
1186
+ "shape": [
1187
+ 1025,
1188
+ 240,
1189
+ 320,
1190
+ 3
1191
+ ],
1192
+ "dtype": "uint8"
1193
+ },
1194
+ {
1195
+ "path": "obs/sensor_data/left_camera/rgb",
1196
+ "shape": [
1197
+ 1025,
1198
+ 240,
1199
+ 320,
1200
+ 3
1201
+ ],
1202
+ "dtype": "uint8"
1203
+ },
1204
+ {
1205
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1206
+ "shape": [
1207
+ 1025,
1208
+ 240,
1209
+ 320,
1210
+ 3
1211
+ ],
1212
+ "dtype": "uint8"
1213
+ },
1214
+ {
1215
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1216
+ "shape": [
1217
+ 1025,
1218
+ 240,
1219
+ 320,
1220
+ 3
1221
+ ],
1222
+ "dtype": "uint8"
1223
+ },
1224
+ {
1225
+ "path": "obs/sensor_data/top_camera/rgb",
1226
+ "shape": [
1227
+ 1025,
1228
+ 320,
1229
+ 240,
1230
+ 3
1231
+ ],
1232
+ "dtype": "uint8"
1233
+ }
1234
+ ],
1235
+ "trajectory_sha256": "7717a531b21a97ad1f689e6b0273b503a57321dde7444798e94c8a97d6a7c695",
1236
+ "source_sha256": "3988efc994d5f10d52501d924cae8b9a7d6c80509a31635c8442852264d10017",
1237
+ "view_sha256": "afe0196e37f4c3183f6ea09d52a219a73877b6e0ba8376602b73bae286b83e87"
1238
+ },
1239
+ {
1240
+ "demo_id": "demo_11",
1241
+ "file": "demo_11.h5",
1242
+ "length": 739,
1243
+ "fields": [
1244
+ {
1245
+ "path": "actions/panda_leaphand-1",
1246
+ "shape": [
1247
+ 739,
1248
+ 22
1249
+ ],
1250
+ "dtype": "float32"
1251
+ },
1252
+ {
1253
+ "path": "actions/panda_leaphand_left-0",
1254
+ "shape": [
1255
+ 739,
1256
+ 22
1257
+ ],
1258
+ "dtype": "float32"
1259
+ },
1260
+ {
1261
+ "path": "obs/agent/panda_leaphand-1/qpos",
1262
+ "shape": [
1263
+ 740,
1264
+ 1,
1265
+ 23
1266
+ ],
1267
+ "dtype": "float32"
1268
+ },
1269
+ {
1270
+ "path": "obs/agent/panda_leaphand-1/qvel",
1271
+ "shape": [
1272
+ 740,
1273
+ 1,
1274
+ 23
1275
+ ],
1276
+ "dtype": "float32"
1277
+ },
1278
+ {
1279
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
1280
+ "shape": [
1281
+ 740,
1282
+ 1,
1283
+ 23
1284
+ ],
1285
+ "dtype": "float32"
1286
+ },
1287
+ {
1288
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
1289
+ "shape": [
1290
+ 740,
1291
+ 1,
1292
+ 23
1293
+ ],
1294
+ "dtype": "float32"
1295
+ },
1296
+ {
1297
+ "path": "obs/sensor_data/front_camera/rgb",
1298
+ "shape": [
1299
+ 740,
1300
+ 240,
1301
+ 320,
1302
+ 3
1303
+ ],
1304
+ "dtype": "uint8"
1305
+ },
1306
+ {
1307
+ "path": "obs/sensor_data/left_camera/rgb",
1308
+ "shape": [
1309
+ 740,
1310
+ 240,
1311
+ 320,
1312
+ 3
1313
+ ],
1314
+ "dtype": "uint8"
1315
+ },
1316
+ {
1317
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1318
+ "shape": [
1319
+ 740,
1320
+ 240,
1321
+ 320,
1322
+ 3
1323
+ ],
1324
+ "dtype": "uint8"
1325
+ },
1326
+ {
1327
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1328
+ "shape": [
1329
+ 740,
1330
+ 240,
1331
+ 320,
1332
+ 3
1333
+ ],
1334
+ "dtype": "uint8"
1335
+ },
1336
+ {
1337
+ "path": "obs/sensor_data/top_camera/rgb",
1338
+ "shape": [
1339
+ 740,
1340
+ 320,
1341
+ 240,
1342
+ 3
1343
+ ],
1344
+ "dtype": "uint8"
1345
+ }
1346
+ ],
1347
+ "trajectory_sha256": "86428d6f1bbec6cf2d62c0c9a1c24df0c37d9be7666b1a330706fe4ca1014d69",
1348
+ "source_sha256": "609585e0738af98bbb143e86b7ab37e237cc3ca2ab12df2db1d40310917f296f",
1349
+ "view_sha256": "d7d2c9106c74884e0b663612d1c299a91c94056be74c6e45f7c17c54d8fbdd44"
1350
+ },
1351
+ {
1352
+ "demo_id": "demo_12",
1353
+ "file": "demo_12.h5",
1354
+ "length": 1006,
1355
+ "fields": [
1356
+ {
1357
+ "path": "actions/panda_leaphand-1",
1358
+ "shape": [
1359
+ 1006,
1360
+ 22
1361
+ ],
1362
+ "dtype": "float32"
1363
+ },
1364
+ {
1365
+ "path": "actions/panda_leaphand_left-0",
1366
+ "shape": [
1367
+ 1006,
1368
+ 22
1369
+ ],
1370
+ "dtype": "float32"
1371
+ },
1372
+ {
1373
+ "path": "obs/agent/panda_leaphand-1/qpos",
1374
+ "shape": [
1375
+ 1007,
1376
+ 1,
1377
+ 23
1378
+ ],
1379
+ "dtype": "float32"
1380
+ },
1381
+ {
1382
+ "path": "obs/agent/panda_leaphand-1/qvel",
1383
+ "shape": [
1384
+ 1007,
1385
+ 1,
1386
+ 23
1387
+ ],
1388
+ "dtype": "float32"
1389
+ },
1390
+ {
1391
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
1392
+ "shape": [
1393
+ 1007,
1394
+ 1,
1395
+ 23
1396
+ ],
1397
+ "dtype": "float32"
1398
+ },
1399
+ {
1400
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
1401
+ "shape": [
1402
+ 1007,
1403
+ 1,
1404
+ 23
1405
+ ],
1406
+ "dtype": "float32"
1407
+ },
1408
+ {
1409
+ "path": "obs/sensor_data/front_camera/rgb",
1410
+ "shape": [
1411
+ 1007,
1412
+ 240,
1413
+ 320,
1414
+ 3
1415
+ ],
1416
+ "dtype": "uint8"
1417
+ },
1418
+ {
1419
+ "path": "obs/sensor_data/left_camera/rgb",
1420
+ "shape": [
1421
+ 1007,
1422
+ 240,
1423
+ 320,
1424
+ 3
1425
+ ],
1426
+ "dtype": "uint8"
1427
+ },
1428
+ {
1429
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1430
+ "shape": [
1431
+ 1007,
1432
+ 240,
1433
+ 320,
1434
+ 3
1435
+ ],
1436
+ "dtype": "uint8"
1437
+ },
1438
+ {
1439
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1440
+ "shape": [
1441
+ 1007,
1442
+ 240,
1443
+ 320,
1444
+ 3
1445
+ ],
1446
+ "dtype": "uint8"
1447
+ },
1448
+ {
1449
+ "path": "obs/sensor_data/top_camera/rgb",
1450
+ "shape": [
1451
+ 1007,
1452
+ 320,
1453
+ 240,
1454
+ 3
1455
+ ],
1456
+ "dtype": "uint8"
1457
+ }
1458
+ ],
1459
+ "trajectory_sha256": "d2f37788f07b2423bde5bed4150b25ef9601d6d596a8015818daa723e97a1a3f",
1460
+ "source_sha256": "cd4e69c8c97bd0276a1d22cf1b1940e95ccc1e3ced077623cc3a9ddaca7f8281",
1461
+ "view_sha256": "ad08117dfe0821efc8f4cc73cab2ff55d8d490742502317981307529d678a98c"
1462
+ },
1463
+ {
1464
+ "demo_id": "demo_13",
1465
+ "file": "demo_13.h5",
1466
+ "length": 813,
1467
+ "fields": [
1468
+ {
1469
+ "path": "actions/panda_leaphand-1",
1470
+ "shape": [
1471
+ 813,
1472
+ 22
1473
+ ],
1474
+ "dtype": "float32"
1475
+ },
1476
+ {
1477
+ "path": "actions/panda_leaphand_left-0",
1478
+ "shape": [
1479
+ 813,
1480
+ 22
1481
+ ],
1482
+ "dtype": "float32"
1483
+ },
1484
+ {
1485
+ "path": "obs/agent/panda_leaphand-1/qpos",
1486
+ "shape": [
1487
+ 814,
1488
+ 1,
1489
+ 23
1490
+ ],
1491
+ "dtype": "float32"
1492
+ },
1493
+ {
1494
+ "path": "obs/agent/panda_leaphand-1/qvel",
1495
+ "shape": [
1496
+ 814,
1497
+ 1,
1498
+ 23
1499
+ ],
1500
+ "dtype": "float32"
1501
+ },
1502
+ {
1503
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
1504
+ "shape": [
1505
+ 814,
1506
+ 1,
1507
+ 23
1508
+ ],
1509
+ "dtype": "float32"
1510
+ },
1511
+ {
1512
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
1513
+ "shape": [
1514
+ 814,
1515
+ 1,
1516
+ 23
1517
+ ],
1518
+ "dtype": "float32"
1519
+ },
1520
+ {
1521
+ "path": "obs/sensor_data/front_camera/rgb",
1522
+ "shape": [
1523
+ 814,
1524
+ 240,
1525
+ 320,
1526
+ 3
1527
+ ],
1528
+ "dtype": "uint8"
1529
+ },
1530
+ {
1531
+ "path": "obs/sensor_data/left_camera/rgb",
1532
+ "shape": [
1533
+ 814,
1534
+ 240,
1535
+ 320,
1536
+ 3
1537
+ ],
1538
+ "dtype": "uint8"
1539
+ },
1540
+ {
1541
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1542
+ "shape": [
1543
+ 814,
1544
+ 240,
1545
+ 320,
1546
+ 3
1547
+ ],
1548
+ "dtype": "uint8"
1549
+ },
1550
+ {
1551
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1552
+ "shape": [
1553
+ 814,
1554
+ 240,
1555
+ 320,
1556
+ 3
1557
+ ],
1558
+ "dtype": "uint8"
1559
+ },
1560
+ {
1561
+ "path": "obs/sensor_data/top_camera/rgb",
1562
+ "shape": [
1563
+ 814,
1564
+ 320,
1565
+ 240,
1566
+ 3
1567
+ ],
1568
+ "dtype": "uint8"
1569
+ }
1570
+ ],
1571
+ "trajectory_sha256": "4e63ae18660b1de1ea63695972a72713d371f27591e14bd45d47b6e3a08a97e4",
1572
+ "source_sha256": "00329de52c196479d299971ae7140539bc75f9d39e3eae22f409491a390d2a15",
1573
+ "view_sha256": "e60cae5127641174b55e97759588645b131280b3c0defb98171112865aaf538d"
1574
+ },
1575
+ {
1576
+ "demo_id": "demo_14",
1577
+ "file": "demo_14.h5",
1578
+ "length": 1083,
1579
+ "fields": [
1580
+ {
1581
+ "path": "actions/panda_leaphand-1",
1582
+ "shape": [
1583
+ 1083,
1584
+ 22
1585
+ ],
1586
+ "dtype": "float32"
1587
+ },
1588
+ {
1589
+ "path": "actions/panda_leaphand_left-0",
1590
+ "shape": [
1591
+ 1083,
1592
+ 22
1593
+ ],
1594
+ "dtype": "float32"
1595
+ },
1596
+ {
1597
+ "path": "obs/agent/panda_leaphand-1/qpos",
1598
+ "shape": [
1599
+ 1084,
1600
+ 1,
1601
+ 23
1602
+ ],
1603
+ "dtype": "float32"
1604
+ },
1605
+ {
1606
+ "path": "obs/agent/panda_leaphand-1/qvel",
1607
+ "shape": [
1608
+ 1084,
1609
+ 1,
1610
+ 23
1611
+ ],
1612
+ "dtype": "float32"
1613
+ },
1614
+ {
1615
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
1616
+ "shape": [
1617
+ 1084,
1618
+ 1,
1619
+ 23
1620
+ ],
1621
+ "dtype": "float32"
1622
+ },
1623
+ {
1624
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
1625
+ "shape": [
1626
+ 1084,
1627
+ 1,
1628
+ 23
1629
+ ],
1630
+ "dtype": "float32"
1631
+ },
1632
+ {
1633
+ "path": "obs/sensor_data/front_camera/rgb",
1634
+ "shape": [
1635
+ 1084,
1636
+ 240,
1637
+ 320,
1638
+ 3
1639
+ ],
1640
+ "dtype": "uint8"
1641
+ },
1642
+ {
1643
+ "path": "obs/sensor_data/left_camera/rgb",
1644
+ "shape": [
1645
+ 1084,
1646
+ 240,
1647
+ 320,
1648
+ 3
1649
+ ],
1650
+ "dtype": "uint8"
1651
+ },
1652
+ {
1653
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1654
+ "shape": [
1655
+ 1084,
1656
+ 240,
1657
+ 320,
1658
+ 3
1659
+ ],
1660
+ "dtype": "uint8"
1661
+ },
1662
+ {
1663
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1664
+ "shape": [
1665
+ 1084,
1666
+ 240,
1667
+ 320,
1668
+ 3
1669
+ ],
1670
+ "dtype": "uint8"
1671
+ },
1672
+ {
1673
+ "path": "obs/sensor_data/top_camera/rgb",
1674
+ "shape": [
1675
+ 1084,
1676
+ 320,
1677
+ 240,
1678
+ 3
1679
+ ],
1680
+ "dtype": "uint8"
1681
+ }
1682
+ ],
1683
+ "trajectory_sha256": "d908055f3279aef2688a9561aa890843ca8f9d2010799fb2b5d030a98ec1e0f9",
1684
+ "source_sha256": "54a6d57642731ed03a46aec3b68ad24451a74bb32b1020979ce229bf2edafc44",
1685
+ "view_sha256": "3ed814e475afa5e4945718e46b98ee8c3972da3dfd946f5784123efff09edb4b"
1686
+ },
1687
+ {
1688
+ "demo_id": "demo_15",
1689
+ "file": "demo_15.h5",
1690
+ "length": 792,
1691
+ "fields": [
1692
+ {
1693
+ "path": "actions/panda_leaphand-1",
1694
+ "shape": [
1695
+ 792,
1696
+ 22
1697
+ ],
1698
+ "dtype": "float32"
1699
+ },
1700
+ {
1701
+ "path": "actions/panda_leaphand_left-0",
1702
+ "shape": [
1703
+ 792,
1704
+ 22
1705
+ ],
1706
+ "dtype": "float32"
1707
+ },
1708
+ {
1709
+ "path": "obs/agent/panda_leaphand-1/qpos",
1710
+ "shape": [
1711
+ 793,
1712
+ 1,
1713
+ 23
1714
+ ],
1715
+ "dtype": "float32"
1716
+ },
1717
+ {
1718
+ "path": "obs/agent/panda_leaphand-1/qvel",
1719
+ "shape": [
1720
+ 793,
1721
+ 1,
1722
+ 23
1723
+ ],
1724
+ "dtype": "float32"
1725
+ },
1726
+ {
1727
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
1728
+ "shape": [
1729
+ 793,
1730
+ 1,
1731
+ 23
1732
+ ],
1733
+ "dtype": "float32"
1734
+ },
1735
+ {
1736
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
1737
+ "shape": [
1738
+ 793,
1739
+ 1,
1740
+ 23
1741
+ ],
1742
+ "dtype": "float32"
1743
+ },
1744
+ {
1745
+ "path": "obs/sensor_data/front_camera/rgb",
1746
+ "shape": [
1747
+ 793,
1748
+ 240,
1749
+ 320,
1750
+ 3
1751
+ ],
1752
+ "dtype": "uint8"
1753
+ },
1754
+ {
1755
+ "path": "obs/sensor_data/left_camera/rgb",
1756
+ "shape": [
1757
+ 793,
1758
+ 240,
1759
+ 320,
1760
+ 3
1761
+ ],
1762
+ "dtype": "uint8"
1763
+ },
1764
+ {
1765
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1766
+ "shape": [
1767
+ 793,
1768
+ 240,
1769
+ 320,
1770
+ 3
1771
+ ],
1772
+ "dtype": "uint8"
1773
+ },
1774
+ {
1775
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1776
+ "shape": [
1777
+ 793,
1778
+ 240,
1779
+ 320,
1780
+ 3
1781
+ ],
1782
+ "dtype": "uint8"
1783
+ },
1784
+ {
1785
+ "path": "obs/sensor_data/top_camera/rgb",
1786
+ "shape": [
1787
+ 793,
1788
+ 320,
1789
+ 240,
1790
+ 3
1791
+ ],
1792
+ "dtype": "uint8"
1793
+ }
1794
+ ],
1795
+ "trajectory_sha256": "291ddb408b7fa58179b14c9773ff4353fc9207969b16739b561b538b30d84d3c",
1796
+ "source_sha256": "53c4dfa60dac9315dfebc5bed223dd616113a6566675dee6dcbdf8a195788503",
1797
+ "view_sha256": "b9857213962f7d008b50420ac7f391a527cf05f167600b1e38ffe6692237792c"
1798
+ },
1799
+ {
1800
+ "demo_id": "demo_16",
1801
+ "file": "demo_16.h5",
1802
+ "length": 861,
1803
+ "fields": [
1804
+ {
1805
+ "path": "actions/panda_leaphand-1",
1806
+ "shape": [
1807
+ 861,
1808
+ 22
1809
+ ],
1810
+ "dtype": "float32"
1811
+ },
1812
+ {
1813
+ "path": "actions/panda_leaphand_left-0",
1814
+ "shape": [
1815
+ 861,
1816
+ 22
1817
+ ],
1818
+ "dtype": "float32"
1819
+ },
1820
+ {
1821
+ "path": "obs/agent/panda_leaphand-1/qpos",
1822
+ "shape": [
1823
+ 862,
1824
+ 1,
1825
+ 23
1826
+ ],
1827
+ "dtype": "float32"
1828
+ },
1829
+ {
1830
+ "path": "obs/agent/panda_leaphand-1/qvel",
1831
+ "shape": [
1832
+ 862,
1833
+ 1,
1834
+ 23
1835
+ ],
1836
+ "dtype": "float32"
1837
+ },
1838
+ {
1839
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
1840
+ "shape": [
1841
+ 862,
1842
+ 1,
1843
+ 23
1844
+ ],
1845
+ "dtype": "float32"
1846
+ },
1847
+ {
1848
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
1849
+ "shape": [
1850
+ 862,
1851
+ 1,
1852
+ 23
1853
+ ],
1854
+ "dtype": "float32"
1855
+ },
1856
+ {
1857
+ "path": "obs/sensor_data/front_camera/rgb",
1858
+ "shape": [
1859
+ 862,
1860
+ 240,
1861
+ 320,
1862
+ 3
1863
+ ],
1864
+ "dtype": "uint8"
1865
+ },
1866
+ {
1867
+ "path": "obs/sensor_data/left_camera/rgb",
1868
+ "shape": [
1869
+ 862,
1870
+ 240,
1871
+ 320,
1872
+ 3
1873
+ ],
1874
+ "dtype": "uint8"
1875
+ },
1876
+ {
1877
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1878
+ "shape": [
1879
+ 862,
1880
+ 240,
1881
+ 320,
1882
+ 3
1883
+ ],
1884
+ "dtype": "uint8"
1885
+ },
1886
+ {
1887
+ "path": "obs/sensor_data/robot_camera_1/rgb",
1888
+ "shape": [
1889
+ 862,
1890
+ 240,
1891
+ 320,
1892
+ 3
1893
+ ],
1894
+ "dtype": "uint8"
1895
+ },
1896
+ {
1897
+ "path": "obs/sensor_data/top_camera/rgb",
1898
+ "shape": [
1899
+ 862,
1900
+ 320,
1901
+ 240,
1902
+ 3
1903
+ ],
1904
+ "dtype": "uint8"
1905
+ }
1906
+ ],
1907
+ "trajectory_sha256": "989cbf6e67b56e29c06777c1b1149b54b96350bb05c88ae584bfdba3394765d8",
1908
+ "source_sha256": "594d6945e87f3482d0ab06964543f197bd699937ef6b11ce19a1724ee43a14aa",
1909
+ "view_sha256": "9f73a9235fcc44b46bbb8ad633286809cae1f44bf8adfa0e07cf4a88effdaa81"
1910
+ },
1911
+ {
1912
+ "demo_id": "demo_17",
1913
+ "file": "demo_17.h5",
1914
+ "length": 939,
1915
+ "fields": [
1916
+ {
1917
+ "path": "actions/panda_leaphand-1",
1918
+ "shape": [
1919
+ 939,
1920
+ 22
1921
+ ],
1922
+ "dtype": "float32"
1923
+ },
1924
+ {
1925
+ "path": "actions/panda_leaphand_left-0",
1926
+ "shape": [
1927
+ 939,
1928
+ 22
1929
+ ],
1930
+ "dtype": "float32"
1931
+ },
1932
+ {
1933
+ "path": "obs/agent/panda_leaphand-1/qpos",
1934
+ "shape": [
1935
+ 940,
1936
+ 1,
1937
+ 23
1938
+ ],
1939
+ "dtype": "float32"
1940
+ },
1941
+ {
1942
+ "path": "obs/agent/panda_leaphand-1/qvel",
1943
+ "shape": [
1944
+ 940,
1945
+ 1,
1946
+ 23
1947
+ ],
1948
+ "dtype": "float32"
1949
+ },
1950
+ {
1951
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
1952
+ "shape": [
1953
+ 940,
1954
+ 1,
1955
+ 23
1956
+ ],
1957
+ "dtype": "float32"
1958
+ },
1959
+ {
1960
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
1961
+ "shape": [
1962
+ 940,
1963
+ 1,
1964
+ 23
1965
+ ],
1966
+ "dtype": "float32"
1967
+ },
1968
+ {
1969
+ "path": "obs/sensor_data/front_camera/rgb",
1970
+ "shape": [
1971
+ 940,
1972
+ 240,
1973
+ 320,
1974
+ 3
1975
+ ],
1976
+ "dtype": "uint8"
1977
+ },
1978
+ {
1979
+ "path": "obs/sensor_data/left_camera/rgb",
1980
+ "shape": [
1981
+ 940,
1982
+ 240,
1983
+ 320,
1984
+ 3
1985
+ ],
1986
+ "dtype": "uint8"
1987
+ },
1988
+ {
1989
+ "path": "obs/sensor_data/robot_camera_0/rgb",
1990
+ "shape": [
1991
+ 940,
1992
+ 240,
1993
+ 320,
1994
+ 3
1995
+ ],
1996
+ "dtype": "uint8"
1997
+ },
1998
+ {
1999
+ "path": "obs/sensor_data/robot_camera_1/rgb",
2000
+ "shape": [
2001
+ 940,
2002
+ 240,
2003
+ 320,
2004
+ 3
2005
+ ],
2006
+ "dtype": "uint8"
2007
+ },
2008
+ {
2009
+ "path": "obs/sensor_data/top_camera/rgb",
2010
+ "shape": [
2011
+ 940,
2012
+ 320,
2013
+ 240,
2014
+ 3
2015
+ ],
2016
+ "dtype": "uint8"
2017
+ }
2018
+ ],
2019
+ "trajectory_sha256": "5109ca3c7d69561877c7b590d0904db09d42fe9c3ed1b9fb3e67abff0c267c99",
2020
+ "source_sha256": "b5ec38d3b4470e0bd5bc2c11fb34680afc4cc4b2095c015192fa3078430bd7bb",
2021
+ "view_sha256": "e1ad7a6af509ba475878a993937c511457c2226b71d4a6854a579da6adc8605e"
2022
+ },
2023
+ {
2024
+ "demo_id": "demo_18",
2025
+ "file": "demo_18.h5",
2026
+ "length": 672,
2027
+ "fields": [
2028
+ {
2029
+ "path": "actions/panda_leaphand-1",
2030
+ "shape": [
2031
+ 672,
2032
+ 22
2033
+ ],
2034
+ "dtype": "float32"
2035
+ },
2036
+ {
2037
+ "path": "actions/panda_leaphand_left-0",
2038
+ "shape": [
2039
+ 672,
2040
+ 22
2041
+ ],
2042
+ "dtype": "float32"
2043
+ },
2044
+ {
2045
+ "path": "obs/agent/panda_leaphand-1/qpos",
2046
+ "shape": [
2047
+ 673,
2048
+ 1,
2049
+ 23
2050
+ ],
2051
+ "dtype": "float32"
2052
+ },
2053
+ {
2054
+ "path": "obs/agent/panda_leaphand-1/qvel",
2055
+ "shape": [
2056
+ 673,
2057
+ 1,
2058
+ 23
2059
+ ],
2060
+ "dtype": "float32"
2061
+ },
2062
+ {
2063
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
2064
+ "shape": [
2065
+ 673,
2066
+ 1,
2067
+ 23
2068
+ ],
2069
+ "dtype": "float32"
2070
+ },
2071
+ {
2072
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
2073
+ "shape": [
2074
+ 673,
2075
+ 1,
2076
+ 23
2077
+ ],
2078
+ "dtype": "float32"
2079
+ },
2080
+ {
2081
+ "path": "obs/sensor_data/front_camera/rgb",
2082
+ "shape": [
2083
+ 673,
2084
+ 240,
2085
+ 320,
2086
+ 3
2087
+ ],
2088
+ "dtype": "uint8"
2089
+ },
2090
+ {
2091
+ "path": "obs/sensor_data/left_camera/rgb",
2092
+ "shape": [
2093
+ 673,
2094
+ 240,
2095
+ 320,
2096
+ 3
2097
+ ],
2098
+ "dtype": "uint8"
2099
+ },
2100
+ {
2101
+ "path": "obs/sensor_data/robot_camera_0/rgb",
2102
+ "shape": [
2103
+ 673,
2104
+ 240,
2105
+ 320,
2106
+ 3
2107
+ ],
2108
+ "dtype": "uint8"
2109
+ },
2110
+ {
2111
+ "path": "obs/sensor_data/robot_camera_1/rgb",
2112
+ "shape": [
2113
+ 673,
2114
+ 240,
2115
+ 320,
2116
+ 3
2117
+ ],
2118
+ "dtype": "uint8"
2119
+ },
2120
+ {
2121
+ "path": "obs/sensor_data/top_camera/rgb",
2122
+ "shape": [
2123
+ 673,
2124
+ 320,
2125
+ 240,
2126
+ 3
2127
+ ],
2128
+ "dtype": "uint8"
2129
+ }
2130
+ ],
2131
+ "trajectory_sha256": "2f86fb5e58d0cf1d3813cb3e7f6385e0a168d724391bab1e2840283f682d31ec",
2132
+ "source_sha256": "c8d992789b00479e2b66e3fb47721ead13fd57bc1b07005847ce90a5a5aefaca",
2133
+ "view_sha256": "36b9d42561092da568d2ab88053470667cbe10552bc46c31ce2ffb1718da2285"
2134
+ },
2135
+ {
2136
+ "demo_id": "demo_19",
2137
+ "file": "demo_19.h5",
2138
+ "length": 950,
2139
+ "fields": [
2140
+ {
2141
+ "path": "actions/panda_leaphand-1",
2142
+ "shape": [
2143
+ 950,
2144
+ 22
2145
+ ],
2146
+ "dtype": "float32"
2147
+ },
2148
+ {
2149
+ "path": "actions/panda_leaphand_left-0",
2150
+ "shape": [
2151
+ 950,
2152
+ 22
2153
+ ],
2154
+ "dtype": "float32"
2155
+ },
2156
+ {
2157
+ "path": "obs/agent/panda_leaphand-1/qpos",
2158
+ "shape": [
2159
+ 951,
2160
+ 1,
2161
+ 23
2162
+ ],
2163
+ "dtype": "float32"
2164
+ },
2165
+ {
2166
+ "path": "obs/agent/panda_leaphand-1/qvel",
2167
+ "shape": [
2168
+ 951,
2169
+ 1,
2170
+ 23
2171
+ ],
2172
+ "dtype": "float32"
2173
+ },
2174
+ {
2175
+ "path": "obs/agent/panda_leaphand_left-0/qpos",
2176
+ "shape": [
2177
+ 951,
2178
+ 1,
2179
+ 23
2180
+ ],
2181
+ "dtype": "float32"
2182
+ },
2183
+ {
2184
+ "path": "obs/agent/panda_leaphand_left-0/qvel",
2185
+ "shape": [
2186
+ 951,
2187
+ 1,
2188
+ 23
2189
+ ],
2190
+ "dtype": "float32"
2191
+ },
2192
+ {
2193
+ "path": "obs/sensor_data/front_camera/rgb",
2194
+ "shape": [
2195
+ 951,
2196
+ 240,
2197
+ 320,
2198
+ 3
2199
+ ],
2200
+ "dtype": "uint8"
2201
+ },
2202
+ {
2203
+ "path": "obs/sensor_data/left_camera/rgb",
2204
+ "shape": [
2205
+ 951,
2206
+ 240,
2207
+ 320,
2208
+ 3
2209
+ ],
2210
+ "dtype": "uint8"
2211
+ },
2212
+ {
2213
+ "path": "obs/sensor_data/robot_camera_0/rgb",
2214
+ "shape": [
2215
+ 951,
2216
+ 240,
2217
+ 320,
2218
+ 3
2219
+ ],
2220
+ "dtype": "uint8"
2221
+ },
2222
+ {
2223
+ "path": "obs/sensor_data/robot_camera_1/rgb",
2224
+ "shape": [
2225
+ 951,
2226
+ 240,
2227
+ 320,
2228
+ 3
2229
+ ],
2230
+ "dtype": "uint8"
2231
+ },
2232
+ {
2233
+ "path": "obs/sensor_data/top_camera/rgb",
2234
+ "shape": [
2235
+ 951,
2236
+ 320,
2237
+ 240,
2238
+ 3
2239
+ ],
2240
+ "dtype": "uint8"
2241
+ }
2242
+ ],
2243
+ "trajectory_sha256": "e438761a070e527bb26a308200f083beca344c7cbed47923759c52de6295f380",
2244
+ "source_sha256": "8bd3f8c13cde58c0850e060f83a4b37df41adae887982d239fcc8b10a28ada61",
2245
+ "view_sha256": "f1eae1052616368ead5cb45d6332a3a13531ceacfc8585d2b74dcee585975560"
2246
+ }
2247
+ ]
2248
+ }
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/environment.lock ADDED
@@ -0,0 +1,249 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ absl-py==2.4.0
2
+ accelerate==1.13.0
3
+ addict==2.4.0
4
+ aiohappyeyeballs==2.6.1
5
+ aiohttp==3.13.5
6
+ aiosignal==1.4.0
7
+ annotated-types==0.7.0
8
+ anyio==4.13.0
9
+ anytree==2.13.0
10
+ asttokens==3.0.1
11
+ async-timeout==5.0.1
12
+ attrs==26.1.0
13
+ av==15.1.0
14
+ blinker==1.9.0
15
+ casadi==3.7.2
16
+ certifi==2026.4.22
17
+ cffi==2.0.0
18
+ charset-normalizer==3.4.7
19
+ click==8.3.3
20
+ cloudpickle==3.1.2
21
+ cmake==4.1.3
22
+ coacd==1.0.11
23
+ colorama==0.4.6
24
+ colorlog==6.10.1
25
+ comm==0.2.3
26
+ ConfigArgParse==1.7.5
27
+ contourpy==1.3.2
28
+ cuda-bindings==12.9.4
29
+ cuda-pathfinder==1.5.4
30
+ cycler==0.12.1
31
+ dacite==1.9.2
32
+ dash==4.1.0
33
+ dataclasses-json==0.6.7
34
+ datasets==4.8.5
35
+ decorator==5.2.1
36
+ deepdiff==8.6.2
37
+ Deprecated==1.3.1
38
+ diffusers==0.35.2
39
+ dill==0.4.1
40
+ docstring_parser==0.18.0
41
+ draccus==0.10.0
42
+ einops==0.8.2
43
+ embreex==4.4.0
44
+ etils==1.13.0
45
+ evdev==1.9.3
46
+ exceptiongroup==1.3.1
47
+ executing==2.2.1
48
+ Farama-Notifications==0.0.6
49
+ fast_simplification==0.1.13
50
+ fastjsonschema==2.21.2
51
+ filelock==3.29.0
52
+ Flask==3.1.3
53
+ fonttools==4.63.0
54
+ freetype-py==2.5.1
55
+ frozenlist==1.8.0
56
+ fsspec==2026.2.0
57
+ genesis-world @ file:///data/gck/genesis-world
58
+ git-filter-repo==2.47.0
59
+ gitdb==4.0.12
60
+ GitPython==3.1.50
61
+ glfw==2.10.0
62
+ gs-madrona==0.0.5
63
+ gstaichi==3.3.0
64
+ gym==0.26.2
65
+ gym-notices==0.1.0
66
+ gymnasium==1.3.0
67
+ h11==0.16.0
68
+ h5py==3.16.0
69
+ hf-xet==1.5.0
70
+ hf_transfer==0.1.9
71
+ httpcore==1.0.9
72
+ httpx==0.28.1
73
+ huggingface-hub==0.35.3
74
+ idna==3.15
75
+ ImageIO==2.37.3
76
+ imageio-ffmpeg==0.6.0
77
+ importlib_metadata==9.0.0
78
+ importlib_resources==7.1.0
79
+ inquirerpy==0.3.4
80
+ ipython==8.39.0
81
+ ipywidgets==8.1.8
82
+ itsdangerous==2.2.0
83
+ jedi==0.20.0
84
+ Jinja2==3.1.6
85
+ joblib==1.5.3
86
+ jsonlines==4.0.0
87
+ jsonschema==4.26.0
88
+ jsonschema-specifications==2025.9.1
89
+ jupyter_core==5.9.1
90
+ jupyterlab_widgets==3.0.16
91
+ kiwisolver==1.5.0
92
+ lazy-loader==0.5
93
+ lerobot==0.4.4
94
+ libigl==2.6.2
95
+ llvmlite==0.47.0
96
+ loguru==0.7.3
97
+ lxml==6.1.0
98
+ manifold3d==3.4.1
99
+ -e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder
100
+ mapbox_earcut==2.0.0
101
+ markdown-it-py==4.2.0
102
+ MarkupSafe==3.0.3
103
+ marshmallow==3.26.2
104
+ matplotlib==3.10.9
105
+ matplotlib-inline==0.2.2
106
+ mdurl==0.1.2
107
+ mergedeep==1.3.4
108
+ moviepy==2.2.1
109
+ mpmath==1.3.0
110
+ msgspec==0.21.1
111
+ mujoco==3.8.1
112
+ multidict==6.7.1
113
+ multiprocess==0.70.19
114
+ mypy_extensions==1.1.0
115
+ nbformat==5.10.4
116
+ nest-asyncio==1.6.0
117
+ networkx==3.4.2
118
+ ninja==1.13.0
119
+ nlopt==2.10.0
120
+ numba==0.65.1
121
+ numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d
122
+ nvidia-cublas-cu12==12.8.4.1
123
+ nvidia-cuda-cupti-cu12==12.8.90
124
+ nvidia-cuda-nvrtc-cu12==12.8.93
125
+ nvidia-cuda-runtime-cu12==12.8.90
126
+ nvidia-cudnn-cu12==9.10.2.21
127
+ nvidia-cufft-cu12==11.3.3.83
128
+ nvidia-cufile-cu12==1.13.1.3
129
+ nvidia-curand-cu12==10.3.9.90
130
+ nvidia-cusolver-cu12==11.7.3.90
131
+ nvidia-cusparse-cu12==12.5.8.93
132
+ nvidia-cusparselt-cu12==0.7.1
133
+ nvidia-nccl-cu12==2.27.5
134
+ nvidia-nvjitlink-cu12==12.8.93
135
+ nvidia-nvshmem-cu12==3.4.5
136
+ nvidia-nvtx-cu12==12.8.90
137
+ open3d==0.19.0
138
+ opencv-python==4.13.0.92
139
+ opencv-python-headless==4.12.0.88
140
+ OpenEXR==3.4.11
141
+ orderly-set==5.5.0
142
+ packaging==25.0
143
+ pandas==2.3.3
144
+ parso==0.8.7
145
+ pexpect==4.9.0
146
+ pfzy==0.3.4
147
+ pillow==11.3.0
148
+ pin==4.0.0
149
+ pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work
150
+ platformdirs==4.9.6
151
+ plotly==5.24.1
152
+ polyscope==2.6.1
153
+ proglog==0.1.12
154
+ prompt_toolkit==3.0.52
155
+ propcache==0.5.2
156
+ protobuf==6.33.6
157
+ psutil==7.2.2
158
+ ptyprocess==0.7.0
159
+ pure_eval==0.2.3
160
+ py-cpuinfo==9.0.0
161
+ py-spy==0.4.2
162
+ pyarrow==24.0.0
163
+ pycollada==0.9.3
164
+ pycparser==3.0
165
+ pydantic==2.13.4
166
+ pydantic_core==2.46.4
167
+ PyGEL3D==0.6.1
168
+ pyglet==2.1.14
169
+ pygltflib==1.16.0
170
+ Pygments==2.20.0
171
+ pymeshlab==2025.7.post1
172
+ pynput==1.8.2
173
+ PyOpenGL==3.1.10
174
+ pyparsing==3.3.2
175
+ pyperclip==1.11.0
176
+ PyQt6==6.11.0
177
+ PyQt6-Qt6==6.11.0
178
+ PyQt6_sip==13.11.1
179
+ pyquaternion==0.9.9
180
+ pyserial==3.5
181
+ pysplashsurf==0.12.0.2
182
+ python-dateutil==2.9.0.post0
183
+ python-dotenv==1.2.2
184
+ python-xlib==0.33
185
+ pytransform3d==3.15.0
186
+ pytz==2026.2
187
+ pyuipc @ file:///tmp/claude-1005/-mnt4-gck-maniladder/9f005e67-04f6-4368-bd0e-9f40896c7dbf/scratchpad/pyuipc_dl/pyuipc-0.0.25-cp310-cp310-manylinux_2_34_x86_64.whl#sha256=76ff13554e1971ea4401db2c875369cf32352ae3a5a4c398c45193231b5cbf00
188
+ PyYAML==6.0.3
189
+ pyyaml-include==1.4.1
190
+ referencing==0.37.0
191
+ regex==2026.5.9
192
+ requests==2.34.2
193
+ rerun-sdk==0.26.2
194
+ retrying==1.4.2
195
+ rich==14.3.4
196
+ rpds-py==0.30.0
197
+ rtree==1.4.1
198
+ safetensors==0.7.0
199
+ sapien==3.0.3
200
+ scikit-image==0.25.2
201
+ scikit-learn==1.7.2
202
+ scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy-split_1739790642651/work/dist/scipy-1.15.2-cp310-cp310-linux_x86_64.whl#sha256=9e52bad6c3294d1a5b04a13632118ca2157130603c6c018c2d710162b223b27e
203
+ sentry-sdk==2.60.0
204
+ setuptools==80.10.2
205
+ shapely==2.1.2
206
+ six==1.17.0
207
+ smmap==5.0.3
208
+ stack-data==0.6.3
209
+ svg.path==7.0
210
+ sympy==1.14.0
211
+ tenacity==9.1.4
212
+ termcolor==3.3.0
213
+ tetgen==0.8.4
214
+ threadpoolctl==3.6.0
215
+ tifffile==2025.5.10
216
+ timm==1.0.27
217
+ toml==0.10.2
218
+ torch==2.10.0
219
+ torchaudio==2.11.0
220
+ torchcodec==0.10.0
221
+ torchvision==0.25.0
222
+ tqdm==4.67.3
223
+ traitlets==5.15.0
224
+ transforms3d==0.4.2
225
+ trimesh==4.12.2
226
+ triton==3.6.0
227
+ typeguard==4.5.2
228
+ typing-inspect==0.9.0
229
+ typing-inspection==0.4.2
230
+ typing_extensions==4.15.0
231
+ tyro==1.0.13
232
+ tzdata==2026.2
233
+ urllib3==2.7.0
234
+ vhacdx==0.0.10
235
+ viser==1.0.27
236
+ vtk==9.6.1
237
+ wandb==0.24.2
238
+ wcwidth==0.7.0
239
+ websockets==16.0
240
+ Werkzeug==3.1.8
241
+ wheel==0.46.3
242
+ widgetsnbextension==4.0.15
243
+ wrapt==2.1.2
244
+ xxhash==3.7.0
245
+ yarl==1.23.0
246
+ yourdfpy==0.0.60
247
+ z3-solver==4.16.0.0
248
+ zipp==3.23.1
249
+ zstandard==0.25.0
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/features.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Fixed, non-neural descriptors shared by offline compilation and act()."""
2
+ import cv2
3
+ import numpy as np
4
+ CAMERAS = ('front_camera', 'top_camera')
5
+ ROBOTS = ('panda_leaphand-1', 'panda_leaphand_left-0')
6
+
7
+ def image_feature(image):
8
+ im = np.asarray(image)
9
+ if im.ndim == 4 and im.shape[0] == 1:
10
+ im = im[0]
11
+ if im.ndim != 3 or im.shape[2] != 3 or im.dtype != np.uint8:
12
+ raise ValueError('Expected uint8 HWC or 1HWC RGB')
13
+ # Spatial layout is retained; no camera/root calibration is assumed.
14
+ rgb = im.astype(np.float32) / 255.0
15
+ red = ((rgb[:,:,0] > .45) & (rgb[:,:,0] > 1.5*rgb[:,:,1]) &
16
+ (rgb[:,:,0] > 1.5*rgb[:,:,2])).astype(np.float32)
17
+ white = ((rgb.min(axis=2) > .6) & (np.ptp(rgb,axis=2) < .2)).astype(np.float32)
18
+ def small(x):
19
+ return cv2.resize(x, (16,12), interpolation=cv2.INTER_AREA).reshape(-1)
20
+ return np.concatenate((small(rgb)/.20, small(red)/.035, small(white)/.30)).astype(np.float32)
21
+
22
+ def proprio_feature(proprio):
23
+ q=[];v=[]
24
+ for robot in ROBOTS:
25
+ for name, dest in [('qpos',q),('qvel',v)]:
26
+ x = np.asarray(proprio['agent/'+robot+'/'+name],dtype=np.float32).reshape(-1)
27
+ if x.size != 23 or not np.isfinite(x).all():
28
+ raise ValueError('Expected 23 finite joint values')
29
+ dest.append(x)
30
+ return np.concatenate(q), np.concatenate(v)
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/findings.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Findings available before this snapshot
2
+ Only this task's 20 authorized demonstrations and legal API exploration supplied development data. All17559 action-paired frames were compiled; the historical sampled memory has5613 records. No neural weights were trained or used.
3
+ Early retrieval switched reference phases abruptly. Fixed-reference tracking avoids those jumps. Arm joint differences alone are not reliable end-effector errors; the empirical joint-to-Cartesian correction was rejected. First-hand top-camera tracking often selects wrist/elbow under cloth occlusion, so it is excluded from control.
4
+ Translation recovery can reduce second-hand image error, but shadow confusion, occlusion, pose mismatch, lost cloth contact and excess recovery time remain failure modes. The stricter dark mask and temporal prior aim to reduce false components. The height-offset experiment was rejected after measurement contamination and prolonged pauses. Episode14 also rejected bounded silhouette rotation feedback after large position drift and a prolonged stall; it is disabled in the final behavior. Episode15 completed an independent full run but remained native-false, with cloth at the cylinder, a visible red patch and the second hand away from contact.
5
+ Episode16 recovered small image error by step350 after recurrent overshoot and about128steps of delay at the400-step checkpoint. The final config reduces translation recovery gain from0.5 to0.3 and cap from0.2 to0.12 to attempt to reduce that overshoot; independent final rehearsal results are required to judge it.
6
+ The action-to-hand-joint permutation was inferred from D20 command/observed-joint consistency with zero measured residual in the selected fixed-goal intervals. This is a classical feedback rule, not a learned neural policy. No camera calibration, force signal, simulator state or task source was used.
7
+ Independent rehearsal results preceding this snapshot:
8
+ {"bundle_hash": "dd5587f008e37611fcbc3a0ebf66e613da68f03676a0709899a6ae8076f46e1f", "episode": 2, "independent": true, "score_source": "native_step_feedback", "status": "finished", "success": false, "valid": true}
9
+ {"bundle_hash": "571ff4ab6cd265095fbce825c5e1f6e540a5833e353495b3e1dc3315167b7642", "episode": 9, "independent": true, "score_source": "native_step_feedback", "status": "finished", "success": false, "valid": true}
10
+ {"bundle_hash": "f38665687a975c5ffac74f7897be02f8eba443aee6bf775f4425be68e61fec10", "episode": 15, "independent": true, "score_source": "native_step_feedback", "status": "finished", "success": false, "valid": true}
11
+
12
+ Partial interactive runs do not establish task success. Detailed actions, images, configuration versions and episode-specific observations remain in ../exploration and ../demo_analysis.md. Later exact-bundle rehearsal receipts are recorded outside this immutable snapshot.
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/freeze_manifest.json ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "files": {
3
+ "config.json": "2df7008f70ae93f61b80734cbe30775a0f8ca000b7943f9771aeca045ea82e6f",
4
+ "controller.py": "89548a24fc0a2da39125ee84c0cf22ccad5643ba37a25c43c230174fa9cf04d3",
5
+ "demo_manifest.json": "6a63e02a597f5a405c7163fd72ec547ae690c266562f031cfa0a0b840dcd0d6b",
6
+ "demonstrations_readonly/demo_00.h5": "857e133eef8d4357fc22d7aaf14be0ba4ea353911c498f060fd4bc9a4f174d88",
7
+ "demonstrations_readonly/demo_01.h5": "11748bc6e750637eaa2cb29b65a3601c790028298ae0fbe2554c0ba448ae9acc",
8
+ "demonstrations_readonly/demo_02.h5": "fe1d2f68f149e995b440860aecc4560c11191380d105bf4111acec9d0300f568",
9
+ "demonstrations_readonly/demo_03.h5": "21a6eb85d0c7c105b3f8b2d8be5926f0870406c02a9aed4cd98163c80559fc1e",
10
+ "demonstrations_readonly/demo_04.h5": "f86a74aee0fd38cbcab5bf16b04e498db4464f559cf1fdee235b78aab2e17d78",
11
+ "demonstrations_readonly/demo_05.h5": "4fe7eea530ee51d44ca4a2eec9f43187219fb43f76648af43a334bb31dc3a0ee",
12
+ "demonstrations_readonly/demo_06.h5": "11eea8b547ebefa498eb0e105c46ebbc1b2407a42edfeee8968239269c4f969b",
13
+ "demonstrations_readonly/demo_07.h5": "c2ca348843a77d6cc9ab922a9f8047eed9e62b2a1b7375336b2724c569ebd09f",
14
+ "demonstrations_readonly/demo_08.h5": "415ca77a9f780a6b6e7594706d7f87f0080aec676ee5392270407af80c31a04e",
15
+ "demonstrations_readonly/demo_09.h5": "17ee2e6d9f1c2c3da4b3a8d5cce65e432c44bcea17e66e55631b1cd30a33c248",
16
+ "demonstrations_readonly/demo_10.h5": "afe0196e37f4c3183f6ea09d52a219a73877b6e0ba8376602b73bae286b83e87",
17
+ "demonstrations_readonly/demo_11.h5": "d7d2c9106c74884e0b663612d1c299a91c94056be74c6e45f7c17c54d8fbdd44",
18
+ "demonstrations_readonly/demo_12.h5": "ad08117dfe0821efc8f4cc73cab2ff55d8d490742502317981307529d678a98c",
19
+ "demonstrations_readonly/demo_13.h5": "e60cae5127641174b55e97759588645b131280b3c0defb98171112865aaf538d",
20
+ "demonstrations_readonly/demo_14.h5": "3ed814e475afa5e4945718e46b98ee8c3972da3dfd946f5784123efff09edb4b",
21
+ "demonstrations_readonly/demo_15.h5": "b9857213962f7d008b50420ac7f391a527cf05f167600b1e38ffe6692237792c",
22
+ "demonstrations_readonly/demo_16.h5": "9f73a9235fcc44b46bbb8ad633286809cae1f44bf8adfa0e07cf4a88effdaa81",
23
+ "demonstrations_readonly/demo_17.h5": "e1ad7a6af509ba475878a993937c511457c2226b71d4a6854a579da6adc8605e",
24
+ "demonstrations_readonly/demo_18.h5": "36b9d42561092da568d2ab88053470667cbe10552bc46c31ce2ffb1718da2285",
25
+ "demonstrations_readonly/demo_19.h5": "f1eae1052616368ead5cb45d6332a3a13531ceacfc8585d2b74dcee585975560",
26
+ "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa",
27
+ "features.py": "8799317eb461e6ee780da3342c5d665fe2af4e93c48c3be578b9f2b0e03bf377",
28
+ "findings.md": "77ccdd7ddbe2ec43b56ab5bf32a4b2c4f1de676b161a2e7d52ceedd97dcdeed8",
29
+ "hand_mapping.json": "84c7fc6cafeca877a400e3dc4aacac8876eebed562d915a7fd17ec2b72eab0a5",
30
+ "handoff.md": "4eb0bf6fbf954d877f961f4e130f5546ccee9564c9658a292347e429a3ba63d6",
31
+ "initial_red.npz": "fe3455c0e9224e221e40eb6a446aa1613beb486bf79b5508d5310470e4084b20",
32
+ "local_versions.json": "1fa379e5b7359568c47fe024729942318c0b681067190c7ce439af75aa4bef81",
33
+ "memory.npz": "2ddf1fb6fc2200d0ce6f7720a81deddcf4b9081f48f57babf5827e17365e6809",
34
+ "memory_provenance.json": "274171c9401a581a7a0ecdcd576a2135e9eec127e31ffc7f23c7c3580e2c0e35",
35
+ "model_tool_manifest.yaml": "167f945ddb379d9cb4adc11434d0592d39e091340a06d65f1d32f0665cede890",
36
+ "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e",
37
+ "pose.py": "bb5821e10ddf4159d901897fad3e0c906762ee17496c0bf790a968e7bbac3dfe",
38
+ "pose_reference.npz": "991f445b7c1490ce1a19f96ec55e14a209df7f1507143c11dd1f308da1e9cdf3",
39
+ "reference.npz": "acd95e4126695717a9c8487b2f65ac18ce5222aa99fa8b8dce85d5b670da764b",
40
+ "requirements.txt": "499e0528a037f06bf49cacbe43203e90deaa66788d137d8c6d6e57d2247ea820",
41
+ "skills.md": "3757dcb836302d6eafc74bf539572f865de944eadd8d0e21e551f4a40c84258b",
42
+ "vision.py": "51fbceaf3c2041b411ed59a12938722a03937710631bd25a14e04b6d9f135227",
43
+ "visual_reference.npz": "0a6ab9fdad61a26dc8a5542a5bd06da7a842d470b8776814237be3ff5bfe3e85",
44
+ "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e"
45
+ },
46
+ "bundle_hash": "455034685104f527967fcac141a0cf6eb9c4a8cf7660cec582b83210b3934b07",
47
+ "exploration_ledger_hash": "6da67eaa0cc66ab2e7c85282af8da6421b8ba98426574cb2f9eda9cfbebbc5d7",
48
+ "entrypoint": "controller.reset_episode(); controller.act(obs)",
49
+ "selection": {
50
+ "rule": "exact-version success rate, valid rehearsal count, recency",
51
+ "rehearsals": [
52
+ {
53
+ "bundle_hash": "dd5587f008e37611fcbc3a0ebf66e613da68f03676a0709899a6ae8076f46e1f",
54
+ "episode": 2,
55
+ "independent": true,
56
+ "score_source": "native_step_feedback",
57
+ "status": "finished",
58
+ "success": false,
59
+ "valid": true
60
+ },
61
+ {
62
+ "bundle_hash": "571ff4ab6cd265095fbce825c5e1f6e540a5833e353495b3e1dc3315167b7642",
63
+ "episode": 9,
64
+ "independent": true,
65
+ "score_source": "native_step_feedback",
66
+ "status": "finished",
67
+ "success": false,
68
+ "valid": true
69
+ },
70
+ {
71
+ "bundle_hash": "f38665687a975c5ffac74f7897be02f8eba443aee6bf775f4425be68e61fec10",
72
+ "episode": 15,
73
+ "independent": true,
74
+ "score_source": "native_step_feedback",
75
+ "status": "finished",
76
+ "success": false,
77
+ "valid": true
78
+ },
79
+ {
80
+ "episode": 17,
81
+ "bundle_hash": "455034685104f527967fcac141a0cf6eb9c4a8cf7660cec582b83210b3934b07",
82
+ "independent": true,
83
+ "valid": false,
84
+ "status": "infrastructure_interrupted",
85
+ "success": false,
86
+ "score_source": "interrupted_no_score",
87
+ "recovery": "durable_rehearsal_request_and_charged_episode; no replay"
88
+ },
89
+ {
90
+ "episode": 18,
91
+ "bundle_hash": "455034685104f527967fcac141a0cf6eb9c4a8cf7660cec582b83210b3934b07",
92
+ "independent": true,
93
+ "valid": true,
94
+ "status": "finished",
95
+ "success": false,
96
+ "score_source": "native_step_feedback"
97
+ },
98
+ {
99
+ "episode": 19,
100
+ "bundle_hash": "455034685104f527967fcac141a0cf6eb9c4a8cf7660cec582b83210b3934b07",
101
+ "independent": true,
102
+ "valid": true,
103
+ "status": "finished",
104
+ "success": false,
105
+ "score_source": "native_step_feedback"
106
+ },
107
+ {
108
+ "episode": 20,
109
+ "bundle_hash": "455034685104f527967fcac141a0cf6eb9c4a8cf7660cec582b83210b3934b07",
110
+ "independent": true,
111
+ "valid": true,
112
+ "status": "finished",
113
+ "success": false,
114
+ "score_source": "native_step_feedback"
115
+ }
116
+ ]
117
+ }
118
+ }
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/hand_mapping.json ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "source": "All20 authorized D20 action and proprio records, frames>=100; constant-target residual matching; second robot opening subsets. No assumed joint permutation.",
3
+ "robots": [
4
+ {
5
+ "robot": 0,
6
+ "action_to_hand_qpos": [
7
+ 4,
8
+ 0,
9
+ 8,
10
+ 12,
11
+ 5,
12
+ 1,
13
+ 9,
14
+ 13,
15
+ 6,
16
+ 2,
17
+ 10,
18
+ 14,
19
+ 3,
20
+ 7,
21
+ 11,
22
+ 15
23
+ ],
24
+ "p99_absolute_target_deviation": [
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
+ ],
42
+ "median_target": [
43
+ 0.0,
44
+ 1.25,
45
+ 1.25,
46
+ 1.25,
47
+ 0.0,
48
+ 1.25,
49
+ 1.25,
50
+ 1.25,
51
+ 0.0,
52
+ 1.25,
53
+ 1.25,
54
+ 1.25,
55
+ 1.0,
56
+ 0.0,
57
+ 1.75,
58
+ 1.75
59
+ ]
60
+ },
61
+ {
62
+ "robot": 1,
63
+ "action_to_hand_qpos": [
64
+ 4,
65
+ 0,
66
+ 8,
67
+ 12,
68
+ 5,
69
+ 1,
70
+ 9,
71
+ 13,
72
+ 6,
73
+ 2,
74
+ 10,
75
+ 14,
76
+ 3,
77
+ 7,
78
+ 11,
79
+ 15
80
+ ],
81
+ "p99_absolute_target_deviation": [
82
+ 0.0,
83
+ 0.0,
84
+ 0.0,
85
+ 0.0,
86
+ 0.0,
87
+ 0.0,
88
+ 0.0,
89
+ 0.0,
90
+ 0.0,
91
+ 0.0,
92
+ 0.0,
93
+ 0.0,
94
+ 0.0,
95
+ 0.0,
96
+ 0.0,
97
+ 0.0
98
+ ],
99
+ "median_target": [
100
+ 0.0,
101
+ 0.0,
102
+ 0.0,
103
+ 0.0,
104
+ 0.0,
105
+ 0.0,
106
+ 0.0,
107
+ 0.0,
108
+ 0.0,
109
+ 0.0,
110
+ 0.0,
111
+ 0.0,
112
+ 0.0,
113
+ 0.0,
114
+ 0.0,
115
+ 0.0
116
+ ]
117
+ }
118
+ ]
119
+ }
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/handoff.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # Handoff
2
+ controller.py exports reset_episode() and act(obs). It uses only bundled numerical assets, Python, NumPy and OpenCV. No network, model-development agent, worker API calls or live demonstration reads are required by the frozen controller.
3
+ Action order: panda_leaphand-1, then panda_leaphand_left-0; each has six normalized arm components and16 normalized hand deltas. The contract maps translation to0.1m and rotation with negative0.5rad scaling. Outputs are finite44-element float32 arrays bounded to[-1,1]. The charged hold consumes native step1, leaving at most1199 controller actions.
4
+ config.json contains the exact enabled features and thresholds. The runner freezes among independently rehearsed runnable exact bundles; a local development snapshot alone is not validation. Native success is authoritative when supplied. Otherwise only unambiguous legal image evidence can satisfy the visible rule; ambiguity counts false.
5
+ The full legal audit is outside the bundle in exploration/: commands and observations for interactive trials, independent rehearsal receipts and final freeze receipt. This document is intentionally unchanged during repeated final rehearsals so those runs test the identical bundle. No success or robustness guarantee is made.
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/local_versions.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "python": "3.10.20",
3
+ "numpy": "2.2.6",
4
+ "opencv-python": "4.13.0.92",
5
+ "h5py": "3.16.0"
6
+ }
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/memory_provenance.json ADDED
@@ -0,0 +1,5915 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "demo_id": "demo_00",
4
+ "machine_rgb_indices": [
5
+ 0,
6
+ 1,
7
+ 2,
8
+ 3,
9
+ 4,
10
+ 5,
11
+ 6,
12
+ 7,
13
+ 8,
14
+ 9,
15
+ 10,
16
+ 11,
17
+ 12,
18
+ 13,
19
+ 14,
20
+ 15,
21
+ 16,
22
+ 17,
23
+ 18,
24
+ 19,
25
+ 20,
26
+ 21,
27
+ 22,
28
+ 23,
29
+ 24,
30
+ 25,
31
+ 26,
32
+ 27,
33
+ 28,
34
+ 29,
35
+ 30,
36
+ 31,
37
+ 32,
38
+ 33,
39
+ 34,
40
+ 35,
41
+ 36,
42
+ 37,
43
+ 38,
44
+ 39,
45
+ 40,
46
+ 41,
47
+ 42,
48
+ 43,
49
+ 44,
50
+ 45,
51
+ 46,
52
+ 47,
53
+ 48,
54
+ 49,
55
+ 50,
56
+ 51,
57
+ 52,
58
+ 53,
59
+ 54,
60
+ 55,
61
+ 56,
62
+ 57,
63
+ 58,
64
+ 59,
65
+ 60,
66
+ 61,
67
+ 62,
68
+ 63,
69
+ 64,
70
+ 65,
71
+ 66,
72
+ 67,
73
+ 68,
74
+ 69,
75
+ 70,
76
+ 71,
77
+ 72,
78
+ 73,
79
+ 74,
80
+ 75,
81
+ 76,
82
+ 77,
83
+ 78,
84
+ 79,
85
+ 80,
86
+ 84,
87
+ 88,
88
+ 92,
89
+ 96,
90
+ 100,
91
+ 104,
92
+ 108,
93
+ 112,
94
+ 116,
95
+ 120,
96
+ 124,
97
+ 128,
98
+ 132,
99
+ 136,
100
+ 140,
101
+ 144,
102
+ 148,
103
+ 152,
104
+ 156,
105
+ 160,
106
+ 164,
107
+ 168,
108
+ 172,
109
+ 176,
110
+ 180,
111
+ 184,
112
+ 188,
113
+ 192,
114
+ 196,
115
+ 200,
116
+ 204,
117
+ 208,
118
+ 212,
119
+ 216,
120
+ 220,
121
+ 224,
122
+ 228,
123
+ 232,
124
+ 236,
125
+ 240,
126
+ 244,
127
+ 248,
128
+ 252,
129
+ 256,
130
+ 260,
131
+ 264,
132
+ 268,
133
+ 272,
134
+ 276,
135
+ 280,
136
+ 284,
137
+ 288,
138
+ 292,
139
+ 296,
140
+ 300,
141
+ 304,
142
+ 308,
143
+ 312,
144
+ 316,
145
+ 320,
146
+ 324,
147
+ 328,
148
+ 332,
149
+ 336,
150
+ 340,
151
+ 344,
152
+ 348,
153
+ 352,
154
+ 356,
155
+ 360,
156
+ 364,
157
+ 368,
158
+ 372,
159
+ 376,
160
+ 380,
161
+ 384,
162
+ 388,
163
+ 392,
164
+ 396,
165
+ 400,
166
+ 404,
167
+ 408,
168
+ 412,
169
+ 416,
170
+ 420,
171
+ 424,
172
+ 428,
173
+ 432,
174
+ 436,
175
+ 440,
176
+ 444,
177
+ 448,
178
+ 452,
179
+ 456,
180
+ 460,
181
+ 464,
182
+ 468,
183
+ 472,
184
+ 476,
185
+ 480,
186
+ 484,
187
+ 488,
188
+ 492,
189
+ 496,
190
+ 500,
191
+ 504,
192
+ 508,
193
+ 512,
194
+ 516,
195
+ 520,
196
+ 524,
197
+ 528,
198
+ 532,
199
+ 536,
200
+ 540,
201
+ 544,
202
+ 548,
203
+ 552,
204
+ 556,
205
+ 560,
206
+ 564,
207
+ 568,
208
+ 572,
209
+ 576,
210
+ 580,
211
+ 584,
212
+ 588,
213
+ 592,
214
+ 596,
215
+ 600,
216
+ 604,
217
+ 608,
218
+ 612,
219
+ 616,
220
+ 620,
221
+ 624,
222
+ 628,
223
+ 632,
224
+ 636,
225
+ 640,
226
+ 644,
227
+ 648,
228
+ 652,
229
+ 656,
230
+ 660,
231
+ 664,
232
+ 668,
233
+ 672,
234
+ 676,
235
+ 680,
236
+ 684,
237
+ 688,
238
+ 692,
239
+ 696,
240
+ 700,
241
+ 704,
242
+ 708,
243
+ 712,
244
+ 716,
245
+ 720,
246
+ 724,
247
+ 728,
248
+ 732,
249
+ 736,
250
+ 740,
251
+ 744,
252
+ 748,
253
+ 752,
254
+ 756,
255
+ 760,
256
+ 764,
257
+ 768,
258
+ 772,
259
+ 776,
260
+ 780,
261
+ 784,
262
+ 788,
263
+ 792,
264
+ 796,
265
+ 800,
266
+ 804,
267
+ 808,
268
+ 812,
269
+ 816,
270
+ 820,
271
+ 824,
272
+ 828,
273
+ 832,
274
+ 836,
275
+ 840,
276
+ 844,
277
+ 848,
278
+ 852,
279
+ 856,
280
+ 860,
281
+ 864,
282
+ 868,
283
+ 872,
284
+ 876,
285
+ 880,
286
+ 884,
287
+ 888,
288
+ 892,
289
+ 896,
290
+ 900,
291
+ 904,
292
+ 906
293
+ ],
294
+ "cameras": [
295
+ "front_camera",
296
+ "top_camera"
297
+ ],
298
+ "rgb_bulk_read_indices": [
299
+ 0,
300
+ 907
301
+ ],
302
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
303
+ "action_and_proprio_read": "all authorized indices"
304
+ },
305
+ {
306
+ "demo_id": "demo_01",
307
+ "machine_rgb_indices": [
308
+ 0,
309
+ 1,
310
+ 2,
311
+ 3,
312
+ 4,
313
+ 5,
314
+ 6,
315
+ 7,
316
+ 8,
317
+ 9,
318
+ 10,
319
+ 11,
320
+ 12,
321
+ 13,
322
+ 14,
323
+ 15,
324
+ 16,
325
+ 17,
326
+ 18,
327
+ 19,
328
+ 20,
329
+ 21,
330
+ 22,
331
+ 23,
332
+ 24,
333
+ 25,
334
+ 26,
335
+ 27,
336
+ 28,
337
+ 29,
338
+ 30,
339
+ 31,
340
+ 32,
341
+ 33,
342
+ 34,
343
+ 35,
344
+ 36,
345
+ 37,
346
+ 38,
347
+ 39,
348
+ 40,
349
+ 41,
350
+ 42,
351
+ 43,
352
+ 44,
353
+ 45,
354
+ 46,
355
+ 47,
356
+ 48,
357
+ 49,
358
+ 50,
359
+ 51,
360
+ 52,
361
+ 53,
362
+ 54,
363
+ 55,
364
+ 56,
365
+ 57,
366
+ 58,
367
+ 59,
368
+ 60,
369
+ 61,
370
+ 62,
371
+ 63,
372
+ 64,
373
+ 65,
374
+ 66,
375
+ 67,
376
+ 68,
377
+ 69,
378
+ 70,
379
+ 71,
380
+ 72,
381
+ 73,
382
+ 74,
383
+ 75,
384
+ 76,
385
+ 77,
386
+ 78,
387
+ 79,
388
+ 80,
389
+ 84,
390
+ 88,
391
+ 92,
392
+ 96,
393
+ 100,
394
+ 104,
395
+ 108,
396
+ 112,
397
+ 116,
398
+ 120,
399
+ 124,
400
+ 128,
401
+ 132,
402
+ 136,
403
+ 140,
404
+ 144,
405
+ 148,
406
+ 152,
407
+ 156,
408
+ 160,
409
+ 164,
410
+ 168,
411
+ 172,
412
+ 176,
413
+ 180,
414
+ 184,
415
+ 188,
416
+ 192,
417
+ 196,
418
+ 200,
419
+ 204,
420
+ 208,
421
+ 212,
422
+ 216,
423
+ 220,
424
+ 224,
425
+ 228,
426
+ 232,
427
+ 236,
428
+ 240,
429
+ 244,
430
+ 248,
431
+ 252,
432
+ 256,
433
+ 260,
434
+ 264,
435
+ 268,
436
+ 272,
437
+ 276,
438
+ 280,
439
+ 284,
440
+ 288,
441
+ 292,
442
+ 296,
443
+ 300,
444
+ 304,
445
+ 308,
446
+ 312,
447
+ 316,
448
+ 320,
449
+ 324,
450
+ 328,
451
+ 332,
452
+ 336,
453
+ 340,
454
+ 344,
455
+ 348,
456
+ 352,
457
+ 356,
458
+ 360,
459
+ 364,
460
+ 368,
461
+ 372,
462
+ 376,
463
+ 380,
464
+ 384,
465
+ 388,
466
+ 392,
467
+ 396,
468
+ 400,
469
+ 404,
470
+ 408,
471
+ 412,
472
+ 416,
473
+ 420,
474
+ 424,
475
+ 428,
476
+ 432,
477
+ 436,
478
+ 440,
479
+ 444,
480
+ 448,
481
+ 452,
482
+ 456,
483
+ 460,
484
+ 464,
485
+ 468,
486
+ 472,
487
+ 476,
488
+ 480,
489
+ 484,
490
+ 488,
491
+ 492,
492
+ 496,
493
+ 500,
494
+ 504,
495
+ 508,
496
+ 512,
497
+ 516,
498
+ 520,
499
+ 524,
500
+ 528,
501
+ 532,
502
+ 536,
503
+ 540,
504
+ 544,
505
+ 548,
506
+ 552,
507
+ 556,
508
+ 560,
509
+ 564,
510
+ 568,
511
+ 572,
512
+ 576,
513
+ 580,
514
+ 584,
515
+ 588,
516
+ 592,
517
+ 596,
518
+ 600,
519
+ 604,
520
+ 608,
521
+ 612,
522
+ 616,
523
+ 620,
524
+ 624,
525
+ 628,
526
+ 632,
527
+ 636,
528
+ 640,
529
+ 644,
530
+ 648,
531
+ 652,
532
+ 656,
533
+ 660,
534
+ 664,
535
+ 668,
536
+ 672,
537
+ 676,
538
+ 680,
539
+ 683
540
+ ],
541
+ "cameras": [
542
+ "front_camera",
543
+ "top_camera"
544
+ ],
545
+ "rgb_bulk_read_indices": [
546
+ 0,
547
+ 684
548
+ ],
549
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
550
+ "action_and_proprio_read": "all authorized indices"
551
+ },
552
+ {
553
+ "demo_id": "demo_02",
554
+ "machine_rgb_indices": [
555
+ 0,
556
+ 1,
557
+ 2,
558
+ 3,
559
+ 4,
560
+ 5,
561
+ 6,
562
+ 7,
563
+ 8,
564
+ 9,
565
+ 10,
566
+ 11,
567
+ 12,
568
+ 13,
569
+ 14,
570
+ 15,
571
+ 16,
572
+ 17,
573
+ 18,
574
+ 19,
575
+ 20,
576
+ 21,
577
+ 22,
578
+ 23,
579
+ 24,
580
+ 25,
581
+ 26,
582
+ 27,
583
+ 28,
584
+ 29,
585
+ 30,
586
+ 31,
587
+ 32,
588
+ 33,
589
+ 34,
590
+ 35,
591
+ 36,
592
+ 37,
593
+ 38,
594
+ 39,
595
+ 40,
596
+ 41,
597
+ 42,
598
+ 43,
599
+ 44,
600
+ 45,
601
+ 46,
602
+ 47,
603
+ 48,
604
+ 49,
605
+ 50,
606
+ 51,
607
+ 52,
608
+ 53,
609
+ 54,
610
+ 55,
611
+ 56,
612
+ 57,
613
+ 58,
614
+ 59,
615
+ 60,
616
+ 61,
617
+ 62,
618
+ 63,
619
+ 64,
620
+ 65,
621
+ 66,
622
+ 67,
623
+ 68,
624
+ 69,
625
+ 70,
626
+ 71,
627
+ 72,
628
+ 73,
629
+ 74,
630
+ 75,
631
+ 76,
632
+ 77,
633
+ 78,
634
+ 79,
635
+ 80,
636
+ 84,
637
+ 88,
638
+ 92,
639
+ 96,
640
+ 100,
641
+ 104,
642
+ 108,
643
+ 112,
644
+ 116,
645
+ 120,
646
+ 124,
647
+ 128,
648
+ 132,
649
+ 136,
650
+ 140,
651
+ 144,
652
+ 148,
653
+ 152,
654
+ 156,
655
+ 160,
656
+ 164,
657
+ 168,
658
+ 172,
659
+ 176,
660
+ 180,
661
+ 184,
662
+ 188,
663
+ 192,
664
+ 196,
665
+ 200,
666
+ 204,
667
+ 208,
668
+ 212,
669
+ 216,
670
+ 220,
671
+ 224,
672
+ 228,
673
+ 232,
674
+ 236,
675
+ 240,
676
+ 244,
677
+ 248,
678
+ 252,
679
+ 256,
680
+ 260,
681
+ 264,
682
+ 268,
683
+ 272,
684
+ 276,
685
+ 280,
686
+ 284,
687
+ 288,
688
+ 292,
689
+ 296,
690
+ 300,
691
+ 304,
692
+ 308,
693
+ 312,
694
+ 316,
695
+ 320,
696
+ 324,
697
+ 328,
698
+ 332,
699
+ 336,
700
+ 340,
701
+ 344,
702
+ 348,
703
+ 352,
704
+ 356,
705
+ 360,
706
+ 364,
707
+ 368,
708
+ 372,
709
+ 376,
710
+ 380,
711
+ 384,
712
+ 388,
713
+ 392,
714
+ 396,
715
+ 400,
716
+ 404,
717
+ 408,
718
+ 412,
719
+ 416,
720
+ 420,
721
+ 424,
722
+ 428,
723
+ 432,
724
+ 436,
725
+ 440,
726
+ 444,
727
+ 448,
728
+ 452,
729
+ 456,
730
+ 460,
731
+ 464,
732
+ 468,
733
+ 472,
734
+ 476,
735
+ 480,
736
+ 484,
737
+ 488,
738
+ 492,
739
+ 496,
740
+ 500,
741
+ 504,
742
+ 508,
743
+ 512,
744
+ 516,
745
+ 520,
746
+ 524,
747
+ 528,
748
+ 532,
749
+ 536,
750
+ 540,
751
+ 544,
752
+ 548,
753
+ 552,
754
+ 556,
755
+ 560,
756
+ 564,
757
+ 568,
758
+ 572,
759
+ 576,
760
+ 580,
761
+ 584,
762
+ 588,
763
+ 592,
764
+ 596,
765
+ 600,
766
+ 604,
767
+ 608,
768
+ 612,
769
+ 616,
770
+ 620,
771
+ 624,
772
+ 628,
773
+ 632,
774
+ 636,
775
+ 640,
776
+ 644,
777
+ 648,
778
+ 652,
779
+ 656,
780
+ 660,
781
+ 664,
782
+ 668,
783
+ 672,
784
+ 676,
785
+ 680,
786
+ 684,
787
+ 688,
788
+ 692,
789
+ 696,
790
+ 700,
791
+ 704,
792
+ 708,
793
+ 712,
794
+ 716,
795
+ 720,
796
+ 724,
797
+ 728,
798
+ 732,
799
+ 736,
800
+ 740,
801
+ 744,
802
+ 748,
803
+ 752,
804
+ 756,
805
+ 760,
806
+ 764,
807
+ 768,
808
+ 772,
809
+ 776,
810
+ 780,
811
+ 784,
812
+ 788,
813
+ 792,
814
+ 796,
815
+ 800,
816
+ 804,
817
+ 808,
818
+ 812,
819
+ 816,
820
+ 820,
821
+ 824,
822
+ 828,
823
+ 832,
824
+ 836,
825
+ 840,
826
+ 844,
827
+ 848,
828
+ 852,
829
+ 856,
830
+ 860,
831
+ 864,
832
+ 868,
833
+ 872,
834
+ 876,
835
+ 880,
836
+ 884,
837
+ 888,
838
+ 892,
839
+ 896,
840
+ 900,
841
+ 904,
842
+ 908,
843
+ 912,
844
+ 916,
845
+ 920,
846
+ 924,
847
+ 928,
848
+ 932,
849
+ 936,
850
+ 940,
851
+ 944,
852
+ 948,
853
+ 952,
854
+ 956,
855
+ 960,
856
+ 964,
857
+ 968,
858
+ 972,
859
+ 976,
860
+ 980,
861
+ 984,
862
+ 988,
863
+ 992,
864
+ 996,
865
+ 1000,
866
+ 1004,
867
+ 1008,
868
+ 1012,
869
+ 1016,
870
+ 1020,
871
+ 1024,
872
+ 1028,
873
+ 1032,
874
+ 1036,
875
+ 1040,
876
+ 1044,
877
+ 1048,
878
+ 1052,
879
+ 1056,
880
+ 1060,
881
+ 1064,
882
+ 1068,
883
+ 1072,
884
+ 1076,
885
+ 1080,
886
+ 1084,
887
+ 1086
888
+ ],
889
+ "cameras": [
890
+ "front_camera",
891
+ "top_camera"
892
+ ],
893
+ "rgb_bulk_read_indices": [
894
+ 0,
895
+ 1087
896
+ ],
897
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
898
+ "action_and_proprio_read": "all authorized indices"
899
+ },
900
+ {
901
+ "demo_id": "demo_03",
902
+ "machine_rgb_indices": [
903
+ 0,
904
+ 1,
905
+ 2,
906
+ 3,
907
+ 4,
908
+ 5,
909
+ 6,
910
+ 7,
911
+ 8,
912
+ 9,
913
+ 10,
914
+ 11,
915
+ 12,
916
+ 13,
917
+ 14,
918
+ 15,
919
+ 16,
920
+ 17,
921
+ 18,
922
+ 19,
923
+ 20,
924
+ 21,
925
+ 22,
926
+ 23,
927
+ 24,
928
+ 25,
929
+ 26,
930
+ 27,
931
+ 28,
932
+ 29,
933
+ 30,
934
+ 31,
935
+ 32,
936
+ 33,
937
+ 34,
938
+ 35,
939
+ 36,
940
+ 37,
941
+ 38,
942
+ 39,
943
+ 40,
944
+ 41,
945
+ 42,
946
+ 43,
947
+ 44,
948
+ 45,
949
+ 46,
950
+ 47,
951
+ 48,
952
+ 49,
953
+ 50,
954
+ 51,
955
+ 52,
956
+ 53,
957
+ 54,
958
+ 55,
959
+ 56,
960
+ 57,
961
+ 58,
962
+ 59,
963
+ 60,
964
+ 61,
965
+ 62,
966
+ 63,
967
+ 64,
968
+ 65,
969
+ 66,
970
+ 67,
971
+ 68,
972
+ 69,
973
+ 70,
974
+ 71,
975
+ 72,
976
+ 73,
977
+ 74,
978
+ 75,
979
+ 76,
980
+ 77,
981
+ 78,
982
+ 79,
983
+ 80,
984
+ 84,
985
+ 88,
986
+ 92,
987
+ 96,
988
+ 100,
989
+ 104,
990
+ 108,
991
+ 112,
992
+ 116,
993
+ 120,
994
+ 124,
995
+ 128,
996
+ 132,
997
+ 136,
998
+ 140,
999
+ 144,
1000
+ 148,
1001
+ 152,
1002
+ 156,
1003
+ 160,
1004
+ 164,
1005
+ 168,
1006
+ 172,
1007
+ 176,
1008
+ 180,
1009
+ 184,
1010
+ 188,
1011
+ 192,
1012
+ 196,
1013
+ 200,
1014
+ 204,
1015
+ 208,
1016
+ 212,
1017
+ 216,
1018
+ 220,
1019
+ 224,
1020
+ 228,
1021
+ 232,
1022
+ 236,
1023
+ 240,
1024
+ 244,
1025
+ 248,
1026
+ 252,
1027
+ 256,
1028
+ 260,
1029
+ 264,
1030
+ 268,
1031
+ 272,
1032
+ 276,
1033
+ 280,
1034
+ 284,
1035
+ 288,
1036
+ 292,
1037
+ 296,
1038
+ 300,
1039
+ 304,
1040
+ 308,
1041
+ 312,
1042
+ 316,
1043
+ 320,
1044
+ 324,
1045
+ 328,
1046
+ 332,
1047
+ 336,
1048
+ 340,
1049
+ 344,
1050
+ 348,
1051
+ 352,
1052
+ 356,
1053
+ 360,
1054
+ 364,
1055
+ 368,
1056
+ 372,
1057
+ 376,
1058
+ 380,
1059
+ 384,
1060
+ 388,
1061
+ 392,
1062
+ 396,
1063
+ 400,
1064
+ 404,
1065
+ 408,
1066
+ 412,
1067
+ 416,
1068
+ 420,
1069
+ 424,
1070
+ 428,
1071
+ 432,
1072
+ 436,
1073
+ 440,
1074
+ 444,
1075
+ 448,
1076
+ 452,
1077
+ 456,
1078
+ 460,
1079
+ 464,
1080
+ 468,
1081
+ 472,
1082
+ 476,
1083
+ 480,
1084
+ 484,
1085
+ 488,
1086
+ 492,
1087
+ 496,
1088
+ 500,
1089
+ 504,
1090
+ 508,
1091
+ 512,
1092
+ 516,
1093
+ 520,
1094
+ 524,
1095
+ 528,
1096
+ 532,
1097
+ 536,
1098
+ 540,
1099
+ 544,
1100
+ 548,
1101
+ 552,
1102
+ 556,
1103
+ 560,
1104
+ 564,
1105
+ 568,
1106
+ 572,
1107
+ 576,
1108
+ 580,
1109
+ 584,
1110
+ 588,
1111
+ 592,
1112
+ 596,
1113
+ 600,
1114
+ 604,
1115
+ 608,
1116
+ 612,
1117
+ 616,
1118
+ 620,
1119
+ 624,
1120
+ 628,
1121
+ 632,
1122
+ 636,
1123
+ 640,
1124
+ 644,
1125
+ 648,
1126
+ 652,
1127
+ 656,
1128
+ 660,
1129
+ 664,
1130
+ 668,
1131
+ 672,
1132
+ 676,
1133
+ 680,
1134
+ 684,
1135
+ 688,
1136
+ 692,
1137
+ 696,
1138
+ 697
1139
+ ],
1140
+ "cameras": [
1141
+ "front_camera",
1142
+ "top_camera"
1143
+ ],
1144
+ "rgb_bulk_read_indices": [
1145
+ 0,
1146
+ 698
1147
+ ],
1148
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
1149
+ "action_and_proprio_read": "all authorized indices"
1150
+ },
1151
+ {
1152
+ "demo_id": "demo_04",
1153
+ "machine_rgb_indices": [
1154
+ 0,
1155
+ 1,
1156
+ 2,
1157
+ 3,
1158
+ 4,
1159
+ 5,
1160
+ 6,
1161
+ 7,
1162
+ 8,
1163
+ 9,
1164
+ 10,
1165
+ 11,
1166
+ 12,
1167
+ 13,
1168
+ 14,
1169
+ 15,
1170
+ 16,
1171
+ 17,
1172
+ 18,
1173
+ 19,
1174
+ 20,
1175
+ 21,
1176
+ 22,
1177
+ 23,
1178
+ 24,
1179
+ 25,
1180
+ 26,
1181
+ 27,
1182
+ 28,
1183
+ 29,
1184
+ 30,
1185
+ 31,
1186
+ 32,
1187
+ 33,
1188
+ 34,
1189
+ 35,
1190
+ 36,
1191
+ 37,
1192
+ 38,
1193
+ 39,
1194
+ 40,
1195
+ 41,
1196
+ 42,
1197
+ 43,
1198
+ 44,
1199
+ 45,
1200
+ 46,
1201
+ 47,
1202
+ 48,
1203
+ 49,
1204
+ 50,
1205
+ 51,
1206
+ 52,
1207
+ 53,
1208
+ 54,
1209
+ 55,
1210
+ 56,
1211
+ 57,
1212
+ 58,
1213
+ 59,
1214
+ 60,
1215
+ 61,
1216
+ 62,
1217
+ 63,
1218
+ 64,
1219
+ 65,
1220
+ 66,
1221
+ 67,
1222
+ 68,
1223
+ 69,
1224
+ 70,
1225
+ 71,
1226
+ 72,
1227
+ 73,
1228
+ 74,
1229
+ 75,
1230
+ 76,
1231
+ 77,
1232
+ 78,
1233
+ 79,
1234
+ 80,
1235
+ 84,
1236
+ 88,
1237
+ 92,
1238
+ 96,
1239
+ 100,
1240
+ 104,
1241
+ 108,
1242
+ 112,
1243
+ 116,
1244
+ 120,
1245
+ 124,
1246
+ 128,
1247
+ 132,
1248
+ 136,
1249
+ 140,
1250
+ 144,
1251
+ 148,
1252
+ 152,
1253
+ 156,
1254
+ 160,
1255
+ 164,
1256
+ 168,
1257
+ 172,
1258
+ 176,
1259
+ 180,
1260
+ 184,
1261
+ 188,
1262
+ 192,
1263
+ 196,
1264
+ 200,
1265
+ 204,
1266
+ 208,
1267
+ 212,
1268
+ 216,
1269
+ 220,
1270
+ 224,
1271
+ 228,
1272
+ 232,
1273
+ 236,
1274
+ 240,
1275
+ 244,
1276
+ 248,
1277
+ 252,
1278
+ 256,
1279
+ 260,
1280
+ 264,
1281
+ 268,
1282
+ 272,
1283
+ 276,
1284
+ 280,
1285
+ 284,
1286
+ 288,
1287
+ 292,
1288
+ 296,
1289
+ 300,
1290
+ 304,
1291
+ 308,
1292
+ 312,
1293
+ 316,
1294
+ 320,
1295
+ 324,
1296
+ 328,
1297
+ 332,
1298
+ 336,
1299
+ 340,
1300
+ 344,
1301
+ 348,
1302
+ 352,
1303
+ 356,
1304
+ 360,
1305
+ 364,
1306
+ 368,
1307
+ 372,
1308
+ 376,
1309
+ 380,
1310
+ 384,
1311
+ 388,
1312
+ 392,
1313
+ 396,
1314
+ 400,
1315
+ 404,
1316
+ 408,
1317
+ 412,
1318
+ 416,
1319
+ 420,
1320
+ 424,
1321
+ 428,
1322
+ 432,
1323
+ 436,
1324
+ 440,
1325
+ 444,
1326
+ 448,
1327
+ 452,
1328
+ 456,
1329
+ 460,
1330
+ 464,
1331
+ 468,
1332
+ 472,
1333
+ 476,
1334
+ 480,
1335
+ 484,
1336
+ 488,
1337
+ 492,
1338
+ 496,
1339
+ 500,
1340
+ 504,
1341
+ 508,
1342
+ 512,
1343
+ 516,
1344
+ 520,
1345
+ 524,
1346
+ 528,
1347
+ 532,
1348
+ 536,
1349
+ 540,
1350
+ 544,
1351
+ 548,
1352
+ 552,
1353
+ 556,
1354
+ 560,
1355
+ 564,
1356
+ 568,
1357
+ 572,
1358
+ 576,
1359
+ 580,
1360
+ 584,
1361
+ 588,
1362
+ 592,
1363
+ 596,
1364
+ 600,
1365
+ 604,
1366
+ 608,
1367
+ 612,
1368
+ 616,
1369
+ 620,
1370
+ 624,
1371
+ 628,
1372
+ 632,
1373
+ 636,
1374
+ 640,
1375
+ 644,
1376
+ 648,
1377
+ 652,
1378
+ 656,
1379
+ 660,
1380
+ 664,
1381
+ 668,
1382
+ 672,
1383
+ 676,
1384
+ 680,
1385
+ 684,
1386
+ 688,
1387
+ 692,
1388
+ 696,
1389
+ 700,
1390
+ 704,
1391
+ 708,
1392
+ 712,
1393
+ 716,
1394
+ 720,
1395
+ 724,
1396
+ 728,
1397
+ 732,
1398
+ 736,
1399
+ 740,
1400
+ 744,
1401
+ 748,
1402
+ 752,
1403
+ 756,
1404
+ 760,
1405
+ 764,
1406
+ 768,
1407
+ 772,
1408
+ 776,
1409
+ 780,
1410
+ 784,
1411
+ 788,
1412
+ 792,
1413
+ 796,
1414
+ 800,
1415
+ 804,
1416
+ 808,
1417
+ 812,
1418
+ 816,
1419
+ 820,
1420
+ 824,
1421
+ 828,
1422
+ 832,
1423
+ 836,
1424
+ 840,
1425
+ 844,
1426
+ 848,
1427
+ 852,
1428
+ 856,
1429
+ 860,
1430
+ 864,
1431
+ 868,
1432
+ 872,
1433
+ 876,
1434
+ 880,
1435
+ 884,
1436
+ 888,
1437
+ 892,
1438
+ 896,
1439
+ 900,
1440
+ 904,
1441
+ 908,
1442
+ 912,
1443
+ 916,
1444
+ 920,
1445
+ 924,
1446
+ 928,
1447
+ 932,
1448
+ 936,
1449
+ 940,
1450
+ 944,
1451
+ 948,
1452
+ 952,
1453
+ 956,
1454
+ 958
1455
+ ],
1456
+ "cameras": [
1457
+ "front_camera",
1458
+ "top_camera"
1459
+ ],
1460
+ "rgb_bulk_read_indices": [
1461
+ 0,
1462
+ 959
1463
+ ],
1464
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
1465
+ "action_and_proprio_read": "all authorized indices"
1466
+ },
1467
+ {
1468
+ "demo_id": "demo_05",
1469
+ "machine_rgb_indices": [
1470
+ 0,
1471
+ 1,
1472
+ 2,
1473
+ 3,
1474
+ 4,
1475
+ 5,
1476
+ 6,
1477
+ 7,
1478
+ 8,
1479
+ 9,
1480
+ 10,
1481
+ 11,
1482
+ 12,
1483
+ 13,
1484
+ 14,
1485
+ 15,
1486
+ 16,
1487
+ 17,
1488
+ 18,
1489
+ 19,
1490
+ 20,
1491
+ 21,
1492
+ 22,
1493
+ 23,
1494
+ 24,
1495
+ 25,
1496
+ 26,
1497
+ 27,
1498
+ 28,
1499
+ 29,
1500
+ 30,
1501
+ 31,
1502
+ 32,
1503
+ 33,
1504
+ 34,
1505
+ 35,
1506
+ 36,
1507
+ 37,
1508
+ 38,
1509
+ 39,
1510
+ 40,
1511
+ 41,
1512
+ 42,
1513
+ 43,
1514
+ 44,
1515
+ 45,
1516
+ 46,
1517
+ 47,
1518
+ 48,
1519
+ 49,
1520
+ 50,
1521
+ 51,
1522
+ 52,
1523
+ 53,
1524
+ 54,
1525
+ 55,
1526
+ 56,
1527
+ 57,
1528
+ 58,
1529
+ 59,
1530
+ 60,
1531
+ 61,
1532
+ 62,
1533
+ 63,
1534
+ 64,
1535
+ 65,
1536
+ 66,
1537
+ 67,
1538
+ 68,
1539
+ 69,
1540
+ 70,
1541
+ 71,
1542
+ 72,
1543
+ 73,
1544
+ 74,
1545
+ 75,
1546
+ 76,
1547
+ 77,
1548
+ 78,
1549
+ 79,
1550
+ 80,
1551
+ 84,
1552
+ 88,
1553
+ 92,
1554
+ 96,
1555
+ 100,
1556
+ 104,
1557
+ 108,
1558
+ 112,
1559
+ 116,
1560
+ 120,
1561
+ 124,
1562
+ 128,
1563
+ 132,
1564
+ 136,
1565
+ 140,
1566
+ 144,
1567
+ 148,
1568
+ 152,
1569
+ 156,
1570
+ 160,
1571
+ 164,
1572
+ 168,
1573
+ 172,
1574
+ 176,
1575
+ 180,
1576
+ 184,
1577
+ 188,
1578
+ 192,
1579
+ 196,
1580
+ 200,
1581
+ 204,
1582
+ 208,
1583
+ 212,
1584
+ 216,
1585
+ 220,
1586
+ 224,
1587
+ 228,
1588
+ 232,
1589
+ 236,
1590
+ 240,
1591
+ 244,
1592
+ 248,
1593
+ 252,
1594
+ 256,
1595
+ 260,
1596
+ 264,
1597
+ 268,
1598
+ 272,
1599
+ 276,
1600
+ 280,
1601
+ 284,
1602
+ 288,
1603
+ 292,
1604
+ 296,
1605
+ 300,
1606
+ 304,
1607
+ 308,
1608
+ 312,
1609
+ 316,
1610
+ 320,
1611
+ 324,
1612
+ 328,
1613
+ 332,
1614
+ 336,
1615
+ 340,
1616
+ 344,
1617
+ 348,
1618
+ 352,
1619
+ 356,
1620
+ 360,
1621
+ 364,
1622
+ 368,
1623
+ 372,
1624
+ 376,
1625
+ 380,
1626
+ 384,
1627
+ 388,
1628
+ 392,
1629
+ 396,
1630
+ 400,
1631
+ 404,
1632
+ 408,
1633
+ 412,
1634
+ 416,
1635
+ 420,
1636
+ 424,
1637
+ 428,
1638
+ 432,
1639
+ 436,
1640
+ 440,
1641
+ 444,
1642
+ 448,
1643
+ 452,
1644
+ 456,
1645
+ 460,
1646
+ 464,
1647
+ 468,
1648
+ 472,
1649
+ 476,
1650
+ 480,
1651
+ 484,
1652
+ 488,
1653
+ 492,
1654
+ 496,
1655
+ 500,
1656
+ 504,
1657
+ 508,
1658
+ 512,
1659
+ 516,
1660
+ 520,
1661
+ 524,
1662
+ 528,
1663
+ 532,
1664
+ 536,
1665
+ 540,
1666
+ 544,
1667
+ 548,
1668
+ 552,
1669
+ 556,
1670
+ 560,
1671
+ 564,
1672
+ 568,
1673
+ 572,
1674
+ 576,
1675
+ 580,
1676
+ 584,
1677
+ 588,
1678
+ 592,
1679
+ 596,
1680
+ 600,
1681
+ 604,
1682
+ 608,
1683
+ 612,
1684
+ 616,
1685
+ 620,
1686
+ 624,
1687
+ 628,
1688
+ 632,
1689
+ 636,
1690
+ 640,
1691
+ 644,
1692
+ 648,
1693
+ 652,
1694
+ 656,
1695
+ 660,
1696
+ 664,
1697
+ 668,
1698
+ 672,
1699
+ 676,
1700
+ 680,
1701
+ 684,
1702
+ 688,
1703
+ 692,
1704
+ 696,
1705
+ 700,
1706
+ 704,
1707
+ 708,
1708
+ 712,
1709
+ 716,
1710
+ 720,
1711
+ 724,
1712
+ 728,
1713
+ 732,
1714
+ 736,
1715
+ 740,
1716
+ 744,
1717
+ 748,
1718
+ 752,
1719
+ 756,
1720
+ 760,
1721
+ 764,
1722
+ 768,
1723
+ 772,
1724
+ 776,
1725
+ 780,
1726
+ 784,
1727
+ 788,
1728
+ 792,
1729
+ 796,
1730
+ 800,
1731
+ 804,
1732
+ 808,
1733
+ 812,
1734
+ 816,
1735
+ 820,
1736
+ 824,
1737
+ 828,
1738
+ 832,
1739
+ 836,
1740
+ 840,
1741
+ 844,
1742
+ 848,
1743
+ 852,
1744
+ 856,
1745
+ 860,
1746
+ 864,
1747
+ 868,
1748
+ 872,
1749
+ 876,
1750
+ 880
1751
+ ],
1752
+ "cameras": [
1753
+ "front_camera",
1754
+ "top_camera"
1755
+ ],
1756
+ "rgb_bulk_read_indices": [
1757
+ 0,
1758
+ 881
1759
+ ],
1760
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
1761
+ "action_and_proprio_read": "all authorized indices"
1762
+ },
1763
+ {
1764
+ "demo_id": "demo_06",
1765
+ "machine_rgb_indices": [
1766
+ 0,
1767
+ 1,
1768
+ 2,
1769
+ 3,
1770
+ 4,
1771
+ 5,
1772
+ 6,
1773
+ 7,
1774
+ 8,
1775
+ 9,
1776
+ 10,
1777
+ 11,
1778
+ 12,
1779
+ 13,
1780
+ 14,
1781
+ 15,
1782
+ 16,
1783
+ 17,
1784
+ 18,
1785
+ 19,
1786
+ 20,
1787
+ 21,
1788
+ 22,
1789
+ 23,
1790
+ 24,
1791
+ 25,
1792
+ 26,
1793
+ 27,
1794
+ 28,
1795
+ 29,
1796
+ 30,
1797
+ 31,
1798
+ 32,
1799
+ 33,
1800
+ 34,
1801
+ 35,
1802
+ 36,
1803
+ 37,
1804
+ 38,
1805
+ 39,
1806
+ 40,
1807
+ 41,
1808
+ 42,
1809
+ 43,
1810
+ 44,
1811
+ 45,
1812
+ 46,
1813
+ 47,
1814
+ 48,
1815
+ 49,
1816
+ 50,
1817
+ 51,
1818
+ 52,
1819
+ 53,
1820
+ 54,
1821
+ 55,
1822
+ 56,
1823
+ 57,
1824
+ 58,
1825
+ 59,
1826
+ 60,
1827
+ 61,
1828
+ 62,
1829
+ 63,
1830
+ 64,
1831
+ 65,
1832
+ 66,
1833
+ 67,
1834
+ 68,
1835
+ 69,
1836
+ 70,
1837
+ 71,
1838
+ 72,
1839
+ 73,
1840
+ 74,
1841
+ 75,
1842
+ 76,
1843
+ 77,
1844
+ 78,
1845
+ 79,
1846
+ 80,
1847
+ 84,
1848
+ 88,
1849
+ 92,
1850
+ 96,
1851
+ 100,
1852
+ 104,
1853
+ 108,
1854
+ 112,
1855
+ 116,
1856
+ 120,
1857
+ 124,
1858
+ 128,
1859
+ 132,
1860
+ 136,
1861
+ 140,
1862
+ 144,
1863
+ 148,
1864
+ 152,
1865
+ 156,
1866
+ 160,
1867
+ 164,
1868
+ 168,
1869
+ 172,
1870
+ 176,
1871
+ 180,
1872
+ 184,
1873
+ 188,
1874
+ 192,
1875
+ 196,
1876
+ 200,
1877
+ 204,
1878
+ 208,
1879
+ 212,
1880
+ 216,
1881
+ 220,
1882
+ 224,
1883
+ 228,
1884
+ 232,
1885
+ 236,
1886
+ 240,
1887
+ 244,
1888
+ 248,
1889
+ 252,
1890
+ 256,
1891
+ 260,
1892
+ 264,
1893
+ 268,
1894
+ 272,
1895
+ 276,
1896
+ 280,
1897
+ 284,
1898
+ 288,
1899
+ 292,
1900
+ 296,
1901
+ 300,
1902
+ 304,
1903
+ 308,
1904
+ 312,
1905
+ 316,
1906
+ 320,
1907
+ 324,
1908
+ 328,
1909
+ 332,
1910
+ 336,
1911
+ 340,
1912
+ 344,
1913
+ 348,
1914
+ 352,
1915
+ 356,
1916
+ 360,
1917
+ 364,
1918
+ 368,
1919
+ 372,
1920
+ 376,
1921
+ 380,
1922
+ 384,
1923
+ 388,
1924
+ 392,
1925
+ 396,
1926
+ 400,
1927
+ 404,
1928
+ 408,
1929
+ 412,
1930
+ 416,
1931
+ 420,
1932
+ 424,
1933
+ 428,
1934
+ 432,
1935
+ 436,
1936
+ 440,
1937
+ 444,
1938
+ 448,
1939
+ 452,
1940
+ 456,
1941
+ 460,
1942
+ 464,
1943
+ 468,
1944
+ 472,
1945
+ 476,
1946
+ 480,
1947
+ 484,
1948
+ 488,
1949
+ 492,
1950
+ 496,
1951
+ 500,
1952
+ 504,
1953
+ 508,
1954
+ 512,
1955
+ 516,
1956
+ 520,
1957
+ 524,
1958
+ 528,
1959
+ 532,
1960
+ 536,
1961
+ 540,
1962
+ 544,
1963
+ 548,
1964
+ 552,
1965
+ 556,
1966
+ 560,
1967
+ 564,
1968
+ 568,
1969
+ 572,
1970
+ 576,
1971
+ 580,
1972
+ 584,
1973
+ 588,
1974
+ 592,
1975
+ 596,
1976
+ 600,
1977
+ 604,
1978
+ 608,
1979
+ 612,
1980
+ 616,
1981
+ 620,
1982
+ 624,
1983
+ 628,
1984
+ 632,
1985
+ 636,
1986
+ 640,
1987
+ 644,
1988
+ 648,
1989
+ 652,
1990
+ 656,
1991
+ 660,
1992
+ 664,
1993
+ 668,
1994
+ 672,
1995
+ 676,
1996
+ 680,
1997
+ 684,
1998
+ 688,
1999
+ 692,
2000
+ 696,
2001
+ 700,
2002
+ 704,
2003
+ 708,
2004
+ 712,
2005
+ 716,
2006
+ 720,
2007
+ 721
2008
+ ],
2009
+ "cameras": [
2010
+ "front_camera",
2011
+ "top_camera"
2012
+ ],
2013
+ "rgb_bulk_read_indices": [
2014
+ 0,
2015
+ 722
2016
+ ],
2017
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
2018
+ "action_and_proprio_read": "all authorized indices"
2019
+ },
2020
+ {
2021
+ "demo_id": "demo_07",
2022
+ "machine_rgb_indices": [
2023
+ 0,
2024
+ 1,
2025
+ 2,
2026
+ 3,
2027
+ 4,
2028
+ 5,
2029
+ 6,
2030
+ 7,
2031
+ 8,
2032
+ 9,
2033
+ 10,
2034
+ 11,
2035
+ 12,
2036
+ 13,
2037
+ 14,
2038
+ 15,
2039
+ 16,
2040
+ 17,
2041
+ 18,
2042
+ 19,
2043
+ 20,
2044
+ 21,
2045
+ 22,
2046
+ 23,
2047
+ 24,
2048
+ 25,
2049
+ 26,
2050
+ 27,
2051
+ 28,
2052
+ 29,
2053
+ 30,
2054
+ 31,
2055
+ 32,
2056
+ 33,
2057
+ 34,
2058
+ 35,
2059
+ 36,
2060
+ 37,
2061
+ 38,
2062
+ 39,
2063
+ 40,
2064
+ 41,
2065
+ 42,
2066
+ 43,
2067
+ 44,
2068
+ 45,
2069
+ 46,
2070
+ 47,
2071
+ 48,
2072
+ 49,
2073
+ 50,
2074
+ 51,
2075
+ 52,
2076
+ 53,
2077
+ 54,
2078
+ 55,
2079
+ 56,
2080
+ 57,
2081
+ 58,
2082
+ 59,
2083
+ 60,
2084
+ 61,
2085
+ 62,
2086
+ 63,
2087
+ 64,
2088
+ 65,
2089
+ 66,
2090
+ 67,
2091
+ 68,
2092
+ 69,
2093
+ 70,
2094
+ 71,
2095
+ 72,
2096
+ 73,
2097
+ 74,
2098
+ 75,
2099
+ 76,
2100
+ 77,
2101
+ 78,
2102
+ 79,
2103
+ 80,
2104
+ 84,
2105
+ 88,
2106
+ 92,
2107
+ 96,
2108
+ 100,
2109
+ 104,
2110
+ 108,
2111
+ 112,
2112
+ 116,
2113
+ 120,
2114
+ 124,
2115
+ 128,
2116
+ 132,
2117
+ 136,
2118
+ 140,
2119
+ 144,
2120
+ 148,
2121
+ 152,
2122
+ 156,
2123
+ 160,
2124
+ 164,
2125
+ 168,
2126
+ 172,
2127
+ 176,
2128
+ 180,
2129
+ 184,
2130
+ 188,
2131
+ 192,
2132
+ 196,
2133
+ 200,
2134
+ 204,
2135
+ 208,
2136
+ 212,
2137
+ 216,
2138
+ 220,
2139
+ 224,
2140
+ 228,
2141
+ 232,
2142
+ 236,
2143
+ 240,
2144
+ 244,
2145
+ 248,
2146
+ 252,
2147
+ 256,
2148
+ 260,
2149
+ 264,
2150
+ 268,
2151
+ 272,
2152
+ 276,
2153
+ 280,
2154
+ 284,
2155
+ 288,
2156
+ 292,
2157
+ 296,
2158
+ 300,
2159
+ 304,
2160
+ 308,
2161
+ 312,
2162
+ 316,
2163
+ 320,
2164
+ 324,
2165
+ 328,
2166
+ 332,
2167
+ 336,
2168
+ 340,
2169
+ 344,
2170
+ 348,
2171
+ 352,
2172
+ 356,
2173
+ 360,
2174
+ 364,
2175
+ 368,
2176
+ 372,
2177
+ 376,
2178
+ 380,
2179
+ 384,
2180
+ 388,
2181
+ 392,
2182
+ 396,
2183
+ 400,
2184
+ 404,
2185
+ 408,
2186
+ 412,
2187
+ 416,
2188
+ 420,
2189
+ 424,
2190
+ 428,
2191
+ 432,
2192
+ 436,
2193
+ 440,
2194
+ 444,
2195
+ 448,
2196
+ 452,
2197
+ 456,
2198
+ 460,
2199
+ 464,
2200
+ 468,
2201
+ 472,
2202
+ 476,
2203
+ 480,
2204
+ 484,
2205
+ 488,
2206
+ 492,
2207
+ 496,
2208
+ 500,
2209
+ 504,
2210
+ 508,
2211
+ 512,
2212
+ 516,
2213
+ 520,
2214
+ 524,
2215
+ 528,
2216
+ 532,
2217
+ 536,
2218
+ 540,
2219
+ 544,
2220
+ 548,
2221
+ 552,
2222
+ 556,
2223
+ 560,
2224
+ 564,
2225
+ 568,
2226
+ 572,
2227
+ 576,
2228
+ 580,
2229
+ 584,
2230
+ 588,
2231
+ 592,
2232
+ 596,
2233
+ 600,
2234
+ 604,
2235
+ 608,
2236
+ 612,
2237
+ 616,
2238
+ 620,
2239
+ 624,
2240
+ 628,
2241
+ 632,
2242
+ 636,
2243
+ 640,
2244
+ 644,
2245
+ 648,
2246
+ 652,
2247
+ 656,
2248
+ 660,
2249
+ 664,
2250
+ 668,
2251
+ 672,
2252
+ 676,
2253
+ 680,
2254
+ 684,
2255
+ 688,
2256
+ 692,
2257
+ 696,
2258
+ 700,
2259
+ 704,
2260
+ 708,
2261
+ 712,
2262
+ 716,
2263
+ 720,
2264
+ 724,
2265
+ 728,
2266
+ 732,
2267
+ 736,
2268
+ 740,
2269
+ 744,
2270
+ 748,
2271
+ 752,
2272
+ 756,
2273
+ 760,
2274
+ 764,
2275
+ 768,
2276
+ 772,
2277
+ 776,
2278
+ 780,
2279
+ 784,
2280
+ 788,
2281
+ 792,
2282
+ 796,
2283
+ 799
2284
+ ],
2285
+ "cameras": [
2286
+ "front_camera",
2287
+ "top_camera"
2288
+ ],
2289
+ "rgb_bulk_read_indices": [
2290
+ 0,
2291
+ 800
2292
+ ],
2293
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
2294
+ "action_and_proprio_read": "all authorized indices"
2295
+ },
2296
+ {
2297
+ "demo_id": "demo_08",
2298
+ "machine_rgb_indices": [
2299
+ 0,
2300
+ 1,
2301
+ 2,
2302
+ 3,
2303
+ 4,
2304
+ 5,
2305
+ 6,
2306
+ 7,
2307
+ 8,
2308
+ 9,
2309
+ 10,
2310
+ 11,
2311
+ 12,
2312
+ 13,
2313
+ 14,
2314
+ 15,
2315
+ 16,
2316
+ 17,
2317
+ 18,
2318
+ 19,
2319
+ 20,
2320
+ 21,
2321
+ 22,
2322
+ 23,
2323
+ 24,
2324
+ 25,
2325
+ 26,
2326
+ 27,
2327
+ 28,
2328
+ 29,
2329
+ 30,
2330
+ 31,
2331
+ 32,
2332
+ 33,
2333
+ 34,
2334
+ 35,
2335
+ 36,
2336
+ 37,
2337
+ 38,
2338
+ 39,
2339
+ 40,
2340
+ 41,
2341
+ 42,
2342
+ 43,
2343
+ 44,
2344
+ 45,
2345
+ 46,
2346
+ 47,
2347
+ 48,
2348
+ 49,
2349
+ 50,
2350
+ 51,
2351
+ 52,
2352
+ 53,
2353
+ 54,
2354
+ 55,
2355
+ 56,
2356
+ 57,
2357
+ 58,
2358
+ 59,
2359
+ 60,
2360
+ 61,
2361
+ 62,
2362
+ 63,
2363
+ 64,
2364
+ 65,
2365
+ 66,
2366
+ 67,
2367
+ 68,
2368
+ 69,
2369
+ 70,
2370
+ 71,
2371
+ 72,
2372
+ 73,
2373
+ 74,
2374
+ 75,
2375
+ 76,
2376
+ 77,
2377
+ 78,
2378
+ 79,
2379
+ 80,
2380
+ 84,
2381
+ 88,
2382
+ 92,
2383
+ 96,
2384
+ 100,
2385
+ 104,
2386
+ 108,
2387
+ 112,
2388
+ 116,
2389
+ 120,
2390
+ 124,
2391
+ 128,
2392
+ 132,
2393
+ 136,
2394
+ 140,
2395
+ 144,
2396
+ 148,
2397
+ 152,
2398
+ 156,
2399
+ 160,
2400
+ 164,
2401
+ 168,
2402
+ 172,
2403
+ 176,
2404
+ 180,
2405
+ 184,
2406
+ 188,
2407
+ 192,
2408
+ 196,
2409
+ 200,
2410
+ 204,
2411
+ 208,
2412
+ 212,
2413
+ 216,
2414
+ 220,
2415
+ 224,
2416
+ 228,
2417
+ 232,
2418
+ 236,
2419
+ 240,
2420
+ 244,
2421
+ 248,
2422
+ 252,
2423
+ 256,
2424
+ 260,
2425
+ 264,
2426
+ 268,
2427
+ 272,
2428
+ 276,
2429
+ 280,
2430
+ 284,
2431
+ 288,
2432
+ 292,
2433
+ 296,
2434
+ 300,
2435
+ 304,
2436
+ 308,
2437
+ 312,
2438
+ 316,
2439
+ 320,
2440
+ 324,
2441
+ 328,
2442
+ 332,
2443
+ 336,
2444
+ 340,
2445
+ 344,
2446
+ 348,
2447
+ 352,
2448
+ 356,
2449
+ 360,
2450
+ 364,
2451
+ 368,
2452
+ 372,
2453
+ 376,
2454
+ 380,
2455
+ 384,
2456
+ 388,
2457
+ 392,
2458
+ 396,
2459
+ 400,
2460
+ 404,
2461
+ 408,
2462
+ 412,
2463
+ 416,
2464
+ 420,
2465
+ 424,
2466
+ 428,
2467
+ 432,
2468
+ 436,
2469
+ 440,
2470
+ 444,
2471
+ 448,
2472
+ 452,
2473
+ 456,
2474
+ 460,
2475
+ 464,
2476
+ 468,
2477
+ 472,
2478
+ 476,
2479
+ 480,
2480
+ 484,
2481
+ 488,
2482
+ 492,
2483
+ 496,
2484
+ 500,
2485
+ 504,
2486
+ 508,
2487
+ 512,
2488
+ 516,
2489
+ 520,
2490
+ 524,
2491
+ 528,
2492
+ 532,
2493
+ 536,
2494
+ 540,
2495
+ 544,
2496
+ 548,
2497
+ 552,
2498
+ 556,
2499
+ 560,
2500
+ 564,
2501
+ 568,
2502
+ 572,
2503
+ 576,
2504
+ 580,
2505
+ 584,
2506
+ 588,
2507
+ 592,
2508
+ 596,
2509
+ 600,
2510
+ 604,
2511
+ 608,
2512
+ 612,
2513
+ 616,
2514
+ 620,
2515
+ 624,
2516
+ 628,
2517
+ 632,
2518
+ 636,
2519
+ 640,
2520
+ 644,
2521
+ 648,
2522
+ 652,
2523
+ 656,
2524
+ 660,
2525
+ 664,
2526
+ 668,
2527
+ 672,
2528
+ 676,
2529
+ 680,
2530
+ 684,
2531
+ 688,
2532
+ 692,
2533
+ 696,
2534
+ 700,
2535
+ 704,
2536
+ 708,
2537
+ 712,
2538
+ 716,
2539
+ 720,
2540
+ 724,
2541
+ 728,
2542
+ 732,
2543
+ 736,
2544
+ 740,
2545
+ 744,
2546
+ 748,
2547
+ 752,
2548
+ 756,
2549
+ 760,
2550
+ 764,
2551
+ 768,
2552
+ 772,
2553
+ 776,
2554
+ 780,
2555
+ 784,
2556
+ 788,
2557
+ 792,
2558
+ 796,
2559
+ 800,
2560
+ 804,
2561
+ 808,
2562
+ 812,
2563
+ 816,
2564
+ 820,
2565
+ 824,
2566
+ 828,
2567
+ 832,
2568
+ 836,
2569
+ 840,
2570
+ 844,
2571
+ 848,
2572
+ 852,
2573
+ 856,
2574
+ 860,
2575
+ 864,
2576
+ 868,
2577
+ 872,
2578
+ 876,
2579
+ 880,
2580
+ 884,
2581
+ 888,
2582
+ 892,
2583
+ 896,
2584
+ 900,
2585
+ 904,
2586
+ 908,
2587
+ 912,
2588
+ 916,
2589
+ 920,
2590
+ 924,
2591
+ 928,
2592
+ 932,
2593
+ 936,
2594
+ 940,
2595
+ 944,
2596
+ 948,
2597
+ 952,
2598
+ 956,
2599
+ 960,
2600
+ 964,
2601
+ 968,
2602
+ 972,
2603
+ 976,
2604
+ 978
2605
+ ],
2606
+ "cameras": [
2607
+ "front_camera",
2608
+ "top_camera"
2609
+ ],
2610
+ "rgb_bulk_read_indices": [
2611
+ 0,
2612
+ 979
2613
+ ],
2614
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
2615
+ "action_and_proprio_read": "all authorized indices"
2616
+ },
2617
+ {
2618
+ "demo_id": "demo_09",
2619
+ "machine_rgb_indices": [
2620
+ 0,
2621
+ 1,
2622
+ 2,
2623
+ 3,
2624
+ 4,
2625
+ 5,
2626
+ 6,
2627
+ 7,
2628
+ 8,
2629
+ 9,
2630
+ 10,
2631
+ 11,
2632
+ 12,
2633
+ 13,
2634
+ 14,
2635
+ 15,
2636
+ 16,
2637
+ 17,
2638
+ 18,
2639
+ 19,
2640
+ 20,
2641
+ 21,
2642
+ 22,
2643
+ 23,
2644
+ 24,
2645
+ 25,
2646
+ 26,
2647
+ 27,
2648
+ 28,
2649
+ 29,
2650
+ 30,
2651
+ 31,
2652
+ 32,
2653
+ 33,
2654
+ 34,
2655
+ 35,
2656
+ 36,
2657
+ 37,
2658
+ 38,
2659
+ 39,
2660
+ 40,
2661
+ 41,
2662
+ 42,
2663
+ 43,
2664
+ 44,
2665
+ 45,
2666
+ 46,
2667
+ 47,
2668
+ 48,
2669
+ 49,
2670
+ 50,
2671
+ 51,
2672
+ 52,
2673
+ 53,
2674
+ 54,
2675
+ 55,
2676
+ 56,
2677
+ 57,
2678
+ 58,
2679
+ 59,
2680
+ 60,
2681
+ 61,
2682
+ 62,
2683
+ 63,
2684
+ 64,
2685
+ 65,
2686
+ 66,
2687
+ 67,
2688
+ 68,
2689
+ 69,
2690
+ 70,
2691
+ 71,
2692
+ 72,
2693
+ 73,
2694
+ 74,
2695
+ 75,
2696
+ 76,
2697
+ 77,
2698
+ 78,
2699
+ 79,
2700
+ 80,
2701
+ 84,
2702
+ 88,
2703
+ 92,
2704
+ 96,
2705
+ 100,
2706
+ 104,
2707
+ 108,
2708
+ 112,
2709
+ 116,
2710
+ 120,
2711
+ 124,
2712
+ 128,
2713
+ 132,
2714
+ 136,
2715
+ 140,
2716
+ 144,
2717
+ 148,
2718
+ 152,
2719
+ 156,
2720
+ 160,
2721
+ 164,
2722
+ 168,
2723
+ 172,
2724
+ 176,
2725
+ 180,
2726
+ 184,
2727
+ 188,
2728
+ 192,
2729
+ 196,
2730
+ 200,
2731
+ 204,
2732
+ 208,
2733
+ 212,
2734
+ 216,
2735
+ 220,
2736
+ 224,
2737
+ 228,
2738
+ 232,
2739
+ 236,
2740
+ 240,
2741
+ 244,
2742
+ 248,
2743
+ 252,
2744
+ 256,
2745
+ 260,
2746
+ 264,
2747
+ 268,
2748
+ 272,
2749
+ 276,
2750
+ 280,
2751
+ 284,
2752
+ 288,
2753
+ 292,
2754
+ 296,
2755
+ 300,
2756
+ 304,
2757
+ 308,
2758
+ 312,
2759
+ 316,
2760
+ 320,
2761
+ 324,
2762
+ 328,
2763
+ 332,
2764
+ 336,
2765
+ 340,
2766
+ 344,
2767
+ 348,
2768
+ 352,
2769
+ 356,
2770
+ 360,
2771
+ 364,
2772
+ 368,
2773
+ 372,
2774
+ 376,
2775
+ 380,
2776
+ 384,
2777
+ 388,
2778
+ 392,
2779
+ 396,
2780
+ 400,
2781
+ 404,
2782
+ 408,
2783
+ 412,
2784
+ 416,
2785
+ 420,
2786
+ 424,
2787
+ 428,
2788
+ 432,
2789
+ 436,
2790
+ 440,
2791
+ 444,
2792
+ 448,
2793
+ 452,
2794
+ 456,
2795
+ 460,
2796
+ 464,
2797
+ 468,
2798
+ 472,
2799
+ 476,
2800
+ 480,
2801
+ 484,
2802
+ 488,
2803
+ 492,
2804
+ 496,
2805
+ 500,
2806
+ 504,
2807
+ 508,
2808
+ 512,
2809
+ 516,
2810
+ 520,
2811
+ 524,
2812
+ 528,
2813
+ 532,
2814
+ 536,
2815
+ 540,
2816
+ 544,
2817
+ 548,
2818
+ 552,
2819
+ 556,
2820
+ 560,
2821
+ 564,
2822
+ 568,
2823
+ 572,
2824
+ 576,
2825
+ 580,
2826
+ 584,
2827
+ 588,
2828
+ 592,
2829
+ 596,
2830
+ 600,
2831
+ 604,
2832
+ 608,
2833
+ 612,
2834
+ 616,
2835
+ 620,
2836
+ 624,
2837
+ 628,
2838
+ 632,
2839
+ 636,
2840
+ 640,
2841
+ 644,
2842
+ 648,
2843
+ 652,
2844
+ 656,
2845
+ 660,
2846
+ 664,
2847
+ 668,
2848
+ 672,
2849
+ 676,
2850
+ 680,
2851
+ 684,
2852
+ 688,
2853
+ 692,
2854
+ 696,
2855
+ 700,
2856
+ 704,
2857
+ 708,
2858
+ 712,
2859
+ 716,
2860
+ 720,
2861
+ 724,
2862
+ 728,
2863
+ 732,
2864
+ 736,
2865
+ 740,
2866
+ 744,
2867
+ 748,
2868
+ 752,
2869
+ 756,
2870
+ 760,
2871
+ 764,
2872
+ 768,
2873
+ 772,
2874
+ 776,
2875
+ 780,
2876
+ 784,
2877
+ 788,
2878
+ 792,
2879
+ 796,
2880
+ 800,
2881
+ 804,
2882
+ 808,
2883
+ 812,
2884
+ 816,
2885
+ 820,
2886
+ 824,
2887
+ 828,
2888
+ 832,
2889
+ 836,
2890
+ 840,
2891
+ 844,
2892
+ 848,
2893
+ 852,
2894
+ 856,
2895
+ 860,
2896
+ 864,
2897
+ 868,
2898
+ 872,
2899
+ 876,
2900
+ 880,
2901
+ 884,
2902
+ 888,
2903
+ 892,
2904
+ 896,
2905
+ 900,
2906
+ 904,
2907
+ 908,
2908
+ 912,
2909
+ 916,
2910
+ 920,
2911
+ 924,
2912
+ 928,
2913
+ 932,
2914
+ 936,
2915
+ 940,
2916
+ 944,
2917
+ 948,
2918
+ 952,
2919
+ 956,
2920
+ 960,
2921
+ 962
2922
+ ],
2923
+ "cameras": [
2924
+ "front_camera",
2925
+ "top_camera"
2926
+ ],
2927
+ "rgb_bulk_read_indices": [
2928
+ 0,
2929
+ 963
2930
+ ],
2931
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
2932
+ "action_and_proprio_read": "all authorized indices"
2933
+ },
2934
+ {
2935
+ "demo_id": "demo_10",
2936
+ "machine_rgb_indices": [
2937
+ 0,
2938
+ 1,
2939
+ 2,
2940
+ 3,
2941
+ 4,
2942
+ 5,
2943
+ 6,
2944
+ 7,
2945
+ 8,
2946
+ 9,
2947
+ 10,
2948
+ 11,
2949
+ 12,
2950
+ 13,
2951
+ 14,
2952
+ 15,
2953
+ 16,
2954
+ 17,
2955
+ 18,
2956
+ 19,
2957
+ 20,
2958
+ 21,
2959
+ 22,
2960
+ 23,
2961
+ 24,
2962
+ 25,
2963
+ 26,
2964
+ 27,
2965
+ 28,
2966
+ 29,
2967
+ 30,
2968
+ 31,
2969
+ 32,
2970
+ 33,
2971
+ 34,
2972
+ 35,
2973
+ 36,
2974
+ 37,
2975
+ 38,
2976
+ 39,
2977
+ 40,
2978
+ 41,
2979
+ 42,
2980
+ 43,
2981
+ 44,
2982
+ 45,
2983
+ 46,
2984
+ 47,
2985
+ 48,
2986
+ 49,
2987
+ 50,
2988
+ 51,
2989
+ 52,
2990
+ 53,
2991
+ 54,
2992
+ 55,
2993
+ 56,
2994
+ 57,
2995
+ 58,
2996
+ 59,
2997
+ 60,
2998
+ 61,
2999
+ 62,
3000
+ 63,
3001
+ 64,
3002
+ 65,
3003
+ 66,
3004
+ 67,
3005
+ 68,
3006
+ 69,
3007
+ 70,
3008
+ 71,
3009
+ 72,
3010
+ 73,
3011
+ 74,
3012
+ 75,
3013
+ 76,
3014
+ 77,
3015
+ 78,
3016
+ 79,
3017
+ 80,
3018
+ 84,
3019
+ 88,
3020
+ 92,
3021
+ 96,
3022
+ 100,
3023
+ 104,
3024
+ 108,
3025
+ 112,
3026
+ 116,
3027
+ 120,
3028
+ 124,
3029
+ 128,
3030
+ 132,
3031
+ 136,
3032
+ 140,
3033
+ 144,
3034
+ 148,
3035
+ 152,
3036
+ 156,
3037
+ 160,
3038
+ 164,
3039
+ 168,
3040
+ 172,
3041
+ 176,
3042
+ 180,
3043
+ 184,
3044
+ 188,
3045
+ 192,
3046
+ 196,
3047
+ 200,
3048
+ 204,
3049
+ 208,
3050
+ 212,
3051
+ 216,
3052
+ 220,
3053
+ 224,
3054
+ 228,
3055
+ 232,
3056
+ 236,
3057
+ 240,
3058
+ 244,
3059
+ 248,
3060
+ 252,
3061
+ 256,
3062
+ 260,
3063
+ 264,
3064
+ 268,
3065
+ 272,
3066
+ 276,
3067
+ 280,
3068
+ 284,
3069
+ 288,
3070
+ 292,
3071
+ 296,
3072
+ 300,
3073
+ 304,
3074
+ 308,
3075
+ 312,
3076
+ 316,
3077
+ 320,
3078
+ 324,
3079
+ 328,
3080
+ 332,
3081
+ 336,
3082
+ 340,
3083
+ 344,
3084
+ 348,
3085
+ 352,
3086
+ 356,
3087
+ 360,
3088
+ 364,
3089
+ 368,
3090
+ 372,
3091
+ 376,
3092
+ 380,
3093
+ 384,
3094
+ 388,
3095
+ 392,
3096
+ 396,
3097
+ 400,
3098
+ 404,
3099
+ 408,
3100
+ 412,
3101
+ 416,
3102
+ 420,
3103
+ 424,
3104
+ 428,
3105
+ 432,
3106
+ 436,
3107
+ 440,
3108
+ 444,
3109
+ 448,
3110
+ 452,
3111
+ 456,
3112
+ 460,
3113
+ 464,
3114
+ 468,
3115
+ 472,
3116
+ 476,
3117
+ 480,
3118
+ 484,
3119
+ 488,
3120
+ 492,
3121
+ 496,
3122
+ 500,
3123
+ 504,
3124
+ 508,
3125
+ 512,
3126
+ 516,
3127
+ 520,
3128
+ 524,
3129
+ 528,
3130
+ 532,
3131
+ 536,
3132
+ 540,
3133
+ 544,
3134
+ 548,
3135
+ 552,
3136
+ 556,
3137
+ 560,
3138
+ 564,
3139
+ 568,
3140
+ 572,
3141
+ 576,
3142
+ 580,
3143
+ 584,
3144
+ 588,
3145
+ 592,
3146
+ 596,
3147
+ 600,
3148
+ 604,
3149
+ 608,
3150
+ 612,
3151
+ 616,
3152
+ 620,
3153
+ 624,
3154
+ 628,
3155
+ 632,
3156
+ 636,
3157
+ 640,
3158
+ 644,
3159
+ 648,
3160
+ 652,
3161
+ 656,
3162
+ 660,
3163
+ 664,
3164
+ 668,
3165
+ 672,
3166
+ 676,
3167
+ 680,
3168
+ 684,
3169
+ 688,
3170
+ 692,
3171
+ 696,
3172
+ 700,
3173
+ 704,
3174
+ 708,
3175
+ 712,
3176
+ 716,
3177
+ 720,
3178
+ 724,
3179
+ 728,
3180
+ 732,
3181
+ 736,
3182
+ 740,
3183
+ 744,
3184
+ 748,
3185
+ 752,
3186
+ 756,
3187
+ 760,
3188
+ 764,
3189
+ 768,
3190
+ 772,
3191
+ 776,
3192
+ 780,
3193
+ 784,
3194
+ 788,
3195
+ 792,
3196
+ 796,
3197
+ 800,
3198
+ 804,
3199
+ 808,
3200
+ 812,
3201
+ 816,
3202
+ 820,
3203
+ 824,
3204
+ 828,
3205
+ 832,
3206
+ 836,
3207
+ 840,
3208
+ 844,
3209
+ 848,
3210
+ 852,
3211
+ 856,
3212
+ 860,
3213
+ 864,
3214
+ 868,
3215
+ 872,
3216
+ 876,
3217
+ 880,
3218
+ 884,
3219
+ 888,
3220
+ 892,
3221
+ 896,
3222
+ 900,
3223
+ 904,
3224
+ 908,
3225
+ 912,
3226
+ 916,
3227
+ 920,
3228
+ 924,
3229
+ 928,
3230
+ 932,
3231
+ 936,
3232
+ 940,
3233
+ 944,
3234
+ 948,
3235
+ 952,
3236
+ 956,
3237
+ 960,
3238
+ 964,
3239
+ 968,
3240
+ 972,
3241
+ 976,
3242
+ 980,
3243
+ 984,
3244
+ 988,
3245
+ 992,
3246
+ 996,
3247
+ 1000,
3248
+ 1004,
3249
+ 1008,
3250
+ 1012,
3251
+ 1016,
3252
+ 1020,
3253
+ 1023
3254
+ ],
3255
+ "cameras": [
3256
+ "front_camera",
3257
+ "top_camera"
3258
+ ],
3259
+ "rgb_bulk_read_indices": [
3260
+ 0,
3261
+ 1024
3262
+ ],
3263
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
3264
+ "action_and_proprio_read": "all authorized indices"
3265
+ },
3266
+ {
3267
+ "demo_id": "demo_11",
3268
+ "machine_rgb_indices": [
3269
+ 0,
3270
+ 1,
3271
+ 2,
3272
+ 3,
3273
+ 4,
3274
+ 5,
3275
+ 6,
3276
+ 7,
3277
+ 8,
3278
+ 9,
3279
+ 10,
3280
+ 11,
3281
+ 12,
3282
+ 13,
3283
+ 14,
3284
+ 15,
3285
+ 16,
3286
+ 17,
3287
+ 18,
3288
+ 19,
3289
+ 20,
3290
+ 21,
3291
+ 22,
3292
+ 23,
3293
+ 24,
3294
+ 25,
3295
+ 26,
3296
+ 27,
3297
+ 28,
3298
+ 29,
3299
+ 30,
3300
+ 31,
3301
+ 32,
3302
+ 33,
3303
+ 34,
3304
+ 35,
3305
+ 36,
3306
+ 37,
3307
+ 38,
3308
+ 39,
3309
+ 40,
3310
+ 41,
3311
+ 42,
3312
+ 43,
3313
+ 44,
3314
+ 45,
3315
+ 46,
3316
+ 47,
3317
+ 48,
3318
+ 49,
3319
+ 50,
3320
+ 51,
3321
+ 52,
3322
+ 53,
3323
+ 54,
3324
+ 55,
3325
+ 56,
3326
+ 57,
3327
+ 58,
3328
+ 59,
3329
+ 60,
3330
+ 61,
3331
+ 62,
3332
+ 63,
3333
+ 64,
3334
+ 65,
3335
+ 66,
3336
+ 67,
3337
+ 68,
3338
+ 69,
3339
+ 70,
3340
+ 71,
3341
+ 72,
3342
+ 73,
3343
+ 74,
3344
+ 75,
3345
+ 76,
3346
+ 77,
3347
+ 78,
3348
+ 79,
3349
+ 80,
3350
+ 84,
3351
+ 88,
3352
+ 92,
3353
+ 96,
3354
+ 100,
3355
+ 104,
3356
+ 108,
3357
+ 112,
3358
+ 116,
3359
+ 120,
3360
+ 124,
3361
+ 128,
3362
+ 132,
3363
+ 136,
3364
+ 140,
3365
+ 144,
3366
+ 148,
3367
+ 152,
3368
+ 156,
3369
+ 160,
3370
+ 164,
3371
+ 168,
3372
+ 172,
3373
+ 176,
3374
+ 180,
3375
+ 184,
3376
+ 188,
3377
+ 192,
3378
+ 196,
3379
+ 200,
3380
+ 204,
3381
+ 208,
3382
+ 212,
3383
+ 216,
3384
+ 220,
3385
+ 224,
3386
+ 228,
3387
+ 232,
3388
+ 236,
3389
+ 240,
3390
+ 244,
3391
+ 248,
3392
+ 252,
3393
+ 256,
3394
+ 260,
3395
+ 264,
3396
+ 268,
3397
+ 272,
3398
+ 276,
3399
+ 280,
3400
+ 284,
3401
+ 288,
3402
+ 292,
3403
+ 296,
3404
+ 300,
3405
+ 304,
3406
+ 308,
3407
+ 312,
3408
+ 316,
3409
+ 320,
3410
+ 324,
3411
+ 328,
3412
+ 332,
3413
+ 336,
3414
+ 340,
3415
+ 344,
3416
+ 348,
3417
+ 352,
3418
+ 356,
3419
+ 360,
3420
+ 364,
3421
+ 368,
3422
+ 372,
3423
+ 376,
3424
+ 380,
3425
+ 384,
3426
+ 388,
3427
+ 392,
3428
+ 396,
3429
+ 400,
3430
+ 404,
3431
+ 408,
3432
+ 412,
3433
+ 416,
3434
+ 420,
3435
+ 424,
3436
+ 428,
3437
+ 432,
3438
+ 436,
3439
+ 440,
3440
+ 444,
3441
+ 448,
3442
+ 452,
3443
+ 456,
3444
+ 460,
3445
+ 464,
3446
+ 468,
3447
+ 472,
3448
+ 476,
3449
+ 480,
3450
+ 484,
3451
+ 488,
3452
+ 492,
3453
+ 496,
3454
+ 500,
3455
+ 504,
3456
+ 508,
3457
+ 512,
3458
+ 516,
3459
+ 520,
3460
+ 524,
3461
+ 528,
3462
+ 532,
3463
+ 536,
3464
+ 540,
3465
+ 544,
3466
+ 548,
3467
+ 552,
3468
+ 556,
3469
+ 560,
3470
+ 564,
3471
+ 568,
3472
+ 572,
3473
+ 576,
3474
+ 580,
3475
+ 584,
3476
+ 588,
3477
+ 592,
3478
+ 596,
3479
+ 600,
3480
+ 604,
3481
+ 608,
3482
+ 612,
3483
+ 616,
3484
+ 620,
3485
+ 624,
3486
+ 628,
3487
+ 632,
3488
+ 636,
3489
+ 640,
3490
+ 644,
3491
+ 648,
3492
+ 652,
3493
+ 656,
3494
+ 660,
3495
+ 664,
3496
+ 668,
3497
+ 672,
3498
+ 676,
3499
+ 680,
3500
+ 684,
3501
+ 688,
3502
+ 692,
3503
+ 696,
3504
+ 700,
3505
+ 704,
3506
+ 708,
3507
+ 712,
3508
+ 716,
3509
+ 720,
3510
+ 724,
3511
+ 728,
3512
+ 732,
3513
+ 736,
3514
+ 738
3515
+ ],
3516
+ "cameras": [
3517
+ "front_camera",
3518
+ "top_camera"
3519
+ ],
3520
+ "rgb_bulk_read_indices": [
3521
+ 0,
3522
+ 739
3523
+ ],
3524
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
3525
+ "action_and_proprio_read": "all authorized indices"
3526
+ },
3527
+ {
3528
+ "demo_id": "demo_12",
3529
+ "machine_rgb_indices": [
3530
+ 0,
3531
+ 1,
3532
+ 2,
3533
+ 3,
3534
+ 4,
3535
+ 5,
3536
+ 6,
3537
+ 7,
3538
+ 8,
3539
+ 9,
3540
+ 10,
3541
+ 11,
3542
+ 12,
3543
+ 13,
3544
+ 14,
3545
+ 15,
3546
+ 16,
3547
+ 17,
3548
+ 18,
3549
+ 19,
3550
+ 20,
3551
+ 21,
3552
+ 22,
3553
+ 23,
3554
+ 24,
3555
+ 25,
3556
+ 26,
3557
+ 27,
3558
+ 28,
3559
+ 29,
3560
+ 30,
3561
+ 31,
3562
+ 32,
3563
+ 33,
3564
+ 34,
3565
+ 35,
3566
+ 36,
3567
+ 37,
3568
+ 38,
3569
+ 39,
3570
+ 40,
3571
+ 41,
3572
+ 42,
3573
+ 43,
3574
+ 44,
3575
+ 45,
3576
+ 46,
3577
+ 47,
3578
+ 48,
3579
+ 49,
3580
+ 50,
3581
+ 51,
3582
+ 52,
3583
+ 53,
3584
+ 54,
3585
+ 55,
3586
+ 56,
3587
+ 57,
3588
+ 58,
3589
+ 59,
3590
+ 60,
3591
+ 61,
3592
+ 62,
3593
+ 63,
3594
+ 64,
3595
+ 65,
3596
+ 66,
3597
+ 67,
3598
+ 68,
3599
+ 69,
3600
+ 70,
3601
+ 71,
3602
+ 72,
3603
+ 73,
3604
+ 74,
3605
+ 75,
3606
+ 76,
3607
+ 77,
3608
+ 78,
3609
+ 79,
3610
+ 80,
3611
+ 84,
3612
+ 88,
3613
+ 92,
3614
+ 96,
3615
+ 100,
3616
+ 104,
3617
+ 108,
3618
+ 112,
3619
+ 116,
3620
+ 120,
3621
+ 124,
3622
+ 128,
3623
+ 132,
3624
+ 136,
3625
+ 140,
3626
+ 144,
3627
+ 148,
3628
+ 152,
3629
+ 156,
3630
+ 160,
3631
+ 164,
3632
+ 168,
3633
+ 172,
3634
+ 176,
3635
+ 180,
3636
+ 184,
3637
+ 188,
3638
+ 192,
3639
+ 196,
3640
+ 200,
3641
+ 204,
3642
+ 208,
3643
+ 212,
3644
+ 216,
3645
+ 220,
3646
+ 224,
3647
+ 228,
3648
+ 232,
3649
+ 236,
3650
+ 240,
3651
+ 244,
3652
+ 248,
3653
+ 252,
3654
+ 256,
3655
+ 260,
3656
+ 264,
3657
+ 268,
3658
+ 272,
3659
+ 276,
3660
+ 280,
3661
+ 284,
3662
+ 288,
3663
+ 292,
3664
+ 296,
3665
+ 300,
3666
+ 304,
3667
+ 308,
3668
+ 312,
3669
+ 316,
3670
+ 320,
3671
+ 324,
3672
+ 328,
3673
+ 332,
3674
+ 336,
3675
+ 340,
3676
+ 344,
3677
+ 348,
3678
+ 352,
3679
+ 356,
3680
+ 360,
3681
+ 364,
3682
+ 368,
3683
+ 372,
3684
+ 376,
3685
+ 380,
3686
+ 384,
3687
+ 388,
3688
+ 392,
3689
+ 396,
3690
+ 400,
3691
+ 404,
3692
+ 408,
3693
+ 412,
3694
+ 416,
3695
+ 420,
3696
+ 424,
3697
+ 428,
3698
+ 432,
3699
+ 436,
3700
+ 440,
3701
+ 444,
3702
+ 448,
3703
+ 452,
3704
+ 456,
3705
+ 460,
3706
+ 464,
3707
+ 468,
3708
+ 472,
3709
+ 476,
3710
+ 480,
3711
+ 484,
3712
+ 488,
3713
+ 492,
3714
+ 496,
3715
+ 500,
3716
+ 504,
3717
+ 508,
3718
+ 512,
3719
+ 516,
3720
+ 520,
3721
+ 524,
3722
+ 528,
3723
+ 532,
3724
+ 536,
3725
+ 540,
3726
+ 544,
3727
+ 548,
3728
+ 552,
3729
+ 556,
3730
+ 560,
3731
+ 564,
3732
+ 568,
3733
+ 572,
3734
+ 576,
3735
+ 580,
3736
+ 584,
3737
+ 588,
3738
+ 592,
3739
+ 596,
3740
+ 600,
3741
+ 604,
3742
+ 608,
3743
+ 612,
3744
+ 616,
3745
+ 620,
3746
+ 624,
3747
+ 628,
3748
+ 632,
3749
+ 636,
3750
+ 640,
3751
+ 644,
3752
+ 648,
3753
+ 652,
3754
+ 656,
3755
+ 660,
3756
+ 664,
3757
+ 668,
3758
+ 672,
3759
+ 676,
3760
+ 680,
3761
+ 684,
3762
+ 688,
3763
+ 692,
3764
+ 696,
3765
+ 700,
3766
+ 704,
3767
+ 708,
3768
+ 712,
3769
+ 716,
3770
+ 720,
3771
+ 724,
3772
+ 728,
3773
+ 732,
3774
+ 736,
3775
+ 740,
3776
+ 744,
3777
+ 748,
3778
+ 752,
3779
+ 756,
3780
+ 760,
3781
+ 764,
3782
+ 768,
3783
+ 772,
3784
+ 776,
3785
+ 780,
3786
+ 784,
3787
+ 788,
3788
+ 792,
3789
+ 796,
3790
+ 800,
3791
+ 804,
3792
+ 808,
3793
+ 812,
3794
+ 816,
3795
+ 820,
3796
+ 824,
3797
+ 828,
3798
+ 832,
3799
+ 836,
3800
+ 840,
3801
+ 844,
3802
+ 848,
3803
+ 852,
3804
+ 856,
3805
+ 860,
3806
+ 864,
3807
+ 868,
3808
+ 872,
3809
+ 876,
3810
+ 880,
3811
+ 884,
3812
+ 888,
3813
+ 892,
3814
+ 896,
3815
+ 900,
3816
+ 904,
3817
+ 908,
3818
+ 912,
3819
+ 916,
3820
+ 920,
3821
+ 924,
3822
+ 928,
3823
+ 932,
3824
+ 936,
3825
+ 940,
3826
+ 944,
3827
+ 948,
3828
+ 952,
3829
+ 956,
3830
+ 960,
3831
+ 964,
3832
+ 968,
3833
+ 972,
3834
+ 976,
3835
+ 980,
3836
+ 984,
3837
+ 988,
3838
+ 992,
3839
+ 996,
3840
+ 1000,
3841
+ 1004,
3842
+ 1005
3843
+ ],
3844
+ "cameras": [
3845
+ "front_camera",
3846
+ "top_camera"
3847
+ ],
3848
+ "rgb_bulk_read_indices": [
3849
+ 0,
3850
+ 1006
3851
+ ],
3852
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
3853
+ "action_and_proprio_read": "all authorized indices"
3854
+ },
3855
+ {
3856
+ "demo_id": "demo_13",
3857
+ "machine_rgb_indices": [
3858
+ 0,
3859
+ 1,
3860
+ 2,
3861
+ 3,
3862
+ 4,
3863
+ 5,
3864
+ 6,
3865
+ 7,
3866
+ 8,
3867
+ 9,
3868
+ 10,
3869
+ 11,
3870
+ 12,
3871
+ 13,
3872
+ 14,
3873
+ 15,
3874
+ 16,
3875
+ 17,
3876
+ 18,
3877
+ 19,
3878
+ 20,
3879
+ 21,
3880
+ 22,
3881
+ 23,
3882
+ 24,
3883
+ 25,
3884
+ 26,
3885
+ 27,
3886
+ 28,
3887
+ 29,
3888
+ 30,
3889
+ 31,
3890
+ 32,
3891
+ 33,
3892
+ 34,
3893
+ 35,
3894
+ 36,
3895
+ 37,
3896
+ 38,
3897
+ 39,
3898
+ 40,
3899
+ 41,
3900
+ 42,
3901
+ 43,
3902
+ 44,
3903
+ 45,
3904
+ 46,
3905
+ 47,
3906
+ 48,
3907
+ 49,
3908
+ 50,
3909
+ 51,
3910
+ 52,
3911
+ 53,
3912
+ 54,
3913
+ 55,
3914
+ 56,
3915
+ 57,
3916
+ 58,
3917
+ 59,
3918
+ 60,
3919
+ 61,
3920
+ 62,
3921
+ 63,
3922
+ 64,
3923
+ 65,
3924
+ 66,
3925
+ 67,
3926
+ 68,
3927
+ 69,
3928
+ 70,
3929
+ 71,
3930
+ 72,
3931
+ 73,
3932
+ 74,
3933
+ 75,
3934
+ 76,
3935
+ 77,
3936
+ 78,
3937
+ 79,
3938
+ 80,
3939
+ 84,
3940
+ 88,
3941
+ 92,
3942
+ 96,
3943
+ 100,
3944
+ 104,
3945
+ 108,
3946
+ 112,
3947
+ 116,
3948
+ 120,
3949
+ 124,
3950
+ 128,
3951
+ 132,
3952
+ 136,
3953
+ 140,
3954
+ 144,
3955
+ 148,
3956
+ 152,
3957
+ 156,
3958
+ 160,
3959
+ 164,
3960
+ 168,
3961
+ 172,
3962
+ 176,
3963
+ 180,
3964
+ 184,
3965
+ 188,
3966
+ 192,
3967
+ 196,
3968
+ 200,
3969
+ 204,
3970
+ 208,
3971
+ 212,
3972
+ 216,
3973
+ 220,
3974
+ 224,
3975
+ 228,
3976
+ 232,
3977
+ 236,
3978
+ 240,
3979
+ 244,
3980
+ 248,
3981
+ 252,
3982
+ 256,
3983
+ 260,
3984
+ 264,
3985
+ 268,
3986
+ 272,
3987
+ 276,
3988
+ 280,
3989
+ 284,
3990
+ 288,
3991
+ 292,
3992
+ 296,
3993
+ 300,
3994
+ 304,
3995
+ 308,
3996
+ 312,
3997
+ 316,
3998
+ 320,
3999
+ 324,
4000
+ 328,
4001
+ 332,
4002
+ 336,
4003
+ 340,
4004
+ 344,
4005
+ 348,
4006
+ 352,
4007
+ 356,
4008
+ 360,
4009
+ 364,
4010
+ 368,
4011
+ 372,
4012
+ 376,
4013
+ 380,
4014
+ 384,
4015
+ 388,
4016
+ 392,
4017
+ 396,
4018
+ 400,
4019
+ 404,
4020
+ 408,
4021
+ 412,
4022
+ 416,
4023
+ 420,
4024
+ 424,
4025
+ 428,
4026
+ 432,
4027
+ 436,
4028
+ 440,
4029
+ 444,
4030
+ 448,
4031
+ 452,
4032
+ 456,
4033
+ 460,
4034
+ 464,
4035
+ 468,
4036
+ 472,
4037
+ 476,
4038
+ 480,
4039
+ 484,
4040
+ 488,
4041
+ 492,
4042
+ 496,
4043
+ 500,
4044
+ 504,
4045
+ 508,
4046
+ 512,
4047
+ 516,
4048
+ 520,
4049
+ 524,
4050
+ 528,
4051
+ 532,
4052
+ 536,
4053
+ 540,
4054
+ 544,
4055
+ 548,
4056
+ 552,
4057
+ 556,
4058
+ 560,
4059
+ 564,
4060
+ 568,
4061
+ 572,
4062
+ 576,
4063
+ 580,
4064
+ 584,
4065
+ 588,
4066
+ 592,
4067
+ 596,
4068
+ 600,
4069
+ 604,
4070
+ 608,
4071
+ 612,
4072
+ 616,
4073
+ 620,
4074
+ 624,
4075
+ 628,
4076
+ 632,
4077
+ 636,
4078
+ 640,
4079
+ 644,
4080
+ 648,
4081
+ 652,
4082
+ 656,
4083
+ 660,
4084
+ 664,
4085
+ 668,
4086
+ 672,
4087
+ 676,
4088
+ 680,
4089
+ 684,
4090
+ 688,
4091
+ 692,
4092
+ 696,
4093
+ 700,
4094
+ 704,
4095
+ 708,
4096
+ 712,
4097
+ 716,
4098
+ 720,
4099
+ 724,
4100
+ 728,
4101
+ 732,
4102
+ 736,
4103
+ 740,
4104
+ 744,
4105
+ 748,
4106
+ 752,
4107
+ 756,
4108
+ 760,
4109
+ 764,
4110
+ 768,
4111
+ 772,
4112
+ 776,
4113
+ 780,
4114
+ 784,
4115
+ 788,
4116
+ 792,
4117
+ 796,
4118
+ 800,
4119
+ 804,
4120
+ 808,
4121
+ 812
4122
+ ],
4123
+ "cameras": [
4124
+ "front_camera",
4125
+ "top_camera"
4126
+ ],
4127
+ "rgb_bulk_read_indices": [
4128
+ 0,
4129
+ 813
4130
+ ],
4131
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
4132
+ "action_and_proprio_read": "all authorized indices"
4133
+ },
4134
+ {
4135
+ "demo_id": "demo_14",
4136
+ "machine_rgb_indices": [
4137
+ 0,
4138
+ 1,
4139
+ 2,
4140
+ 3,
4141
+ 4,
4142
+ 5,
4143
+ 6,
4144
+ 7,
4145
+ 8,
4146
+ 9,
4147
+ 10,
4148
+ 11,
4149
+ 12,
4150
+ 13,
4151
+ 14,
4152
+ 15,
4153
+ 16,
4154
+ 17,
4155
+ 18,
4156
+ 19,
4157
+ 20,
4158
+ 21,
4159
+ 22,
4160
+ 23,
4161
+ 24,
4162
+ 25,
4163
+ 26,
4164
+ 27,
4165
+ 28,
4166
+ 29,
4167
+ 30,
4168
+ 31,
4169
+ 32,
4170
+ 33,
4171
+ 34,
4172
+ 35,
4173
+ 36,
4174
+ 37,
4175
+ 38,
4176
+ 39,
4177
+ 40,
4178
+ 41,
4179
+ 42,
4180
+ 43,
4181
+ 44,
4182
+ 45,
4183
+ 46,
4184
+ 47,
4185
+ 48,
4186
+ 49,
4187
+ 50,
4188
+ 51,
4189
+ 52,
4190
+ 53,
4191
+ 54,
4192
+ 55,
4193
+ 56,
4194
+ 57,
4195
+ 58,
4196
+ 59,
4197
+ 60,
4198
+ 61,
4199
+ 62,
4200
+ 63,
4201
+ 64,
4202
+ 65,
4203
+ 66,
4204
+ 67,
4205
+ 68,
4206
+ 69,
4207
+ 70,
4208
+ 71,
4209
+ 72,
4210
+ 73,
4211
+ 74,
4212
+ 75,
4213
+ 76,
4214
+ 77,
4215
+ 78,
4216
+ 79,
4217
+ 80,
4218
+ 84,
4219
+ 88,
4220
+ 92,
4221
+ 96,
4222
+ 100,
4223
+ 104,
4224
+ 108,
4225
+ 112,
4226
+ 116,
4227
+ 120,
4228
+ 124,
4229
+ 128,
4230
+ 132,
4231
+ 136,
4232
+ 140,
4233
+ 144,
4234
+ 148,
4235
+ 152,
4236
+ 156,
4237
+ 160,
4238
+ 164,
4239
+ 168,
4240
+ 172,
4241
+ 176,
4242
+ 180,
4243
+ 184,
4244
+ 188,
4245
+ 192,
4246
+ 196,
4247
+ 200,
4248
+ 204,
4249
+ 208,
4250
+ 212,
4251
+ 216,
4252
+ 220,
4253
+ 224,
4254
+ 228,
4255
+ 232,
4256
+ 236,
4257
+ 240,
4258
+ 244,
4259
+ 248,
4260
+ 252,
4261
+ 256,
4262
+ 260,
4263
+ 264,
4264
+ 268,
4265
+ 272,
4266
+ 276,
4267
+ 280,
4268
+ 284,
4269
+ 288,
4270
+ 292,
4271
+ 296,
4272
+ 300,
4273
+ 304,
4274
+ 308,
4275
+ 312,
4276
+ 316,
4277
+ 320,
4278
+ 324,
4279
+ 328,
4280
+ 332,
4281
+ 336,
4282
+ 340,
4283
+ 344,
4284
+ 348,
4285
+ 352,
4286
+ 356,
4287
+ 360,
4288
+ 364,
4289
+ 368,
4290
+ 372,
4291
+ 376,
4292
+ 380,
4293
+ 384,
4294
+ 388,
4295
+ 392,
4296
+ 396,
4297
+ 400,
4298
+ 404,
4299
+ 408,
4300
+ 412,
4301
+ 416,
4302
+ 420,
4303
+ 424,
4304
+ 428,
4305
+ 432,
4306
+ 436,
4307
+ 440,
4308
+ 444,
4309
+ 448,
4310
+ 452,
4311
+ 456,
4312
+ 460,
4313
+ 464,
4314
+ 468,
4315
+ 472,
4316
+ 476,
4317
+ 480,
4318
+ 484,
4319
+ 488,
4320
+ 492,
4321
+ 496,
4322
+ 500,
4323
+ 504,
4324
+ 508,
4325
+ 512,
4326
+ 516,
4327
+ 520,
4328
+ 524,
4329
+ 528,
4330
+ 532,
4331
+ 536,
4332
+ 540,
4333
+ 544,
4334
+ 548,
4335
+ 552,
4336
+ 556,
4337
+ 560,
4338
+ 564,
4339
+ 568,
4340
+ 572,
4341
+ 576,
4342
+ 580,
4343
+ 584,
4344
+ 588,
4345
+ 592,
4346
+ 596,
4347
+ 600,
4348
+ 604,
4349
+ 608,
4350
+ 612,
4351
+ 616,
4352
+ 620,
4353
+ 624,
4354
+ 628,
4355
+ 632,
4356
+ 636,
4357
+ 640,
4358
+ 644,
4359
+ 648,
4360
+ 652,
4361
+ 656,
4362
+ 660,
4363
+ 664,
4364
+ 668,
4365
+ 672,
4366
+ 676,
4367
+ 680,
4368
+ 684,
4369
+ 688,
4370
+ 692,
4371
+ 696,
4372
+ 700,
4373
+ 704,
4374
+ 708,
4375
+ 712,
4376
+ 716,
4377
+ 720,
4378
+ 724,
4379
+ 728,
4380
+ 732,
4381
+ 736,
4382
+ 740,
4383
+ 744,
4384
+ 748,
4385
+ 752,
4386
+ 756,
4387
+ 760,
4388
+ 764,
4389
+ 768,
4390
+ 772,
4391
+ 776,
4392
+ 780,
4393
+ 784,
4394
+ 788,
4395
+ 792,
4396
+ 796,
4397
+ 800,
4398
+ 804,
4399
+ 808,
4400
+ 812,
4401
+ 816,
4402
+ 820,
4403
+ 824,
4404
+ 828,
4405
+ 832,
4406
+ 836,
4407
+ 840,
4408
+ 844,
4409
+ 848,
4410
+ 852,
4411
+ 856,
4412
+ 860,
4413
+ 864,
4414
+ 868,
4415
+ 872,
4416
+ 876,
4417
+ 880,
4418
+ 884,
4419
+ 888,
4420
+ 892,
4421
+ 896,
4422
+ 900,
4423
+ 904,
4424
+ 908,
4425
+ 912,
4426
+ 916,
4427
+ 920,
4428
+ 924,
4429
+ 928,
4430
+ 932,
4431
+ 936,
4432
+ 940,
4433
+ 944,
4434
+ 948,
4435
+ 952,
4436
+ 956,
4437
+ 960,
4438
+ 964,
4439
+ 968,
4440
+ 972,
4441
+ 976,
4442
+ 980,
4443
+ 984,
4444
+ 988,
4445
+ 992,
4446
+ 996,
4447
+ 1000,
4448
+ 1004,
4449
+ 1008,
4450
+ 1012,
4451
+ 1016,
4452
+ 1020,
4453
+ 1024,
4454
+ 1028,
4455
+ 1032,
4456
+ 1036,
4457
+ 1040,
4458
+ 1044,
4459
+ 1048,
4460
+ 1052,
4461
+ 1056,
4462
+ 1060,
4463
+ 1064,
4464
+ 1068,
4465
+ 1072,
4466
+ 1076,
4467
+ 1080,
4468
+ 1082
4469
+ ],
4470
+ "cameras": [
4471
+ "front_camera",
4472
+ "top_camera"
4473
+ ],
4474
+ "rgb_bulk_read_indices": [
4475
+ 0,
4476
+ 1083
4477
+ ],
4478
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
4479
+ "action_and_proprio_read": "all authorized indices"
4480
+ },
4481
+ {
4482
+ "demo_id": "demo_15",
4483
+ "machine_rgb_indices": [
4484
+ 0,
4485
+ 1,
4486
+ 2,
4487
+ 3,
4488
+ 4,
4489
+ 5,
4490
+ 6,
4491
+ 7,
4492
+ 8,
4493
+ 9,
4494
+ 10,
4495
+ 11,
4496
+ 12,
4497
+ 13,
4498
+ 14,
4499
+ 15,
4500
+ 16,
4501
+ 17,
4502
+ 18,
4503
+ 19,
4504
+ 20,
4505
+ 21,
4506
+ 22,
4507
+ 23,
4508
+ 24,
4509
+ 25,
4510
+ 26,
4511
+ 27,
4512
+ 28,
4513
+ 29,
4514
+ 30,
4515
+ 31,
4516
+ 32,
4517
+ 33,
4518
+ 34,
4519
+ 35,
4520
+ 36,
4521
+ 37,
4522
+ 38,
4523
+ 39,
4524
+ 40,
4525
+ 41,
4526
+ 42,
4527
+ 43,
4528
+ 44,
4529
+ 45,
4530
+ 46,
4531
+ 47,
4532
+ 48,
4533
+ 49,
4534
+ 50,
4535
+ 51,
4536
+ 52,
4537
+ 53,
4538
+ 54,
4539
+ 55,
4540
+ 56,
4541
+ 57,
4542
+ 58,
4543
+ 59,
4544
+ 60,
4545
+ 61,
4546
+ 62,
4547
+ 63,
4548
+ 64,
4549
+ 65,
4550
+ 66,
4551
+ 67,
4552
+ 68,
4553
+ 69,
4554
+ 70,
4555
+ 71,
4556
+ 72,
4557
+ 73,
4558
+ 74,
4559
+ 75,
4560
+ 76,
4561
+ 77,
4562
+ 78,
4563
+ 79,
4564
+ 80,
4565
+ 84,
4566
+ 88,
4567
+ 92,
4568
+ 96,
4569
+ 100,
4570
+ 104,
4571
+ 108,
4572
+ 112,
4573
+ 116,
4574
+ 120,
4575
+ 124,
4576
+ 128,
4577
+ 132,
4578
+ 136,
4579
+ 140,
4580
+ 144,
4581
+ 148,
4582
+ 152,
4583
+ 156,
4584
+ 160,
4585
+ 164,
4586
+ 168,
4587
+ 172,
4588
+ 176,
4589
+ 180,
4590
+ 184,
4591
+ 188,
4592
+ 192,
4593
+ 196,
4594
+ 200,
4595
+ 204,
4596
+ 208,
4597
+ 212,
4598
+ 216,
4599
+ 220,
4600
+ 224,
4601
+ 228,
4602
+ 232,
4603
+ 236,
4604
+ 240,
4605
+ 244,
4606
+ 248,
4607
+ 252,
4608
+ 256,
4609
+ 260,
4610
+ 264,
4611
+ 268,
4612
+ 272,
4613
+ 276,
4614
+ 280,
4615
+ 284,
4616
+ 288,
4617
+ 292,
4618
+ 296,
4619
+ 300,
4620
+ 304,
4621
+ 308,
4622
+ 312,
4623
+ 316,
4624
+ 320,
4625
+ 324,
4626
+ 328,
4627
+ 332,
4628
+ 336,
4629
+ 340,
4630
+ 344,
4631
+ 348,
4632
+ 352,
4633
+ 356,
4634
+ 360,
4635
+ 364,
4636
+ 368,
4637
+ 372,
4638
+ 376,
4639
+ 380,
4640
+ 384,
4641
+ 388,
4642
+ 392,
4643
+ 396,
4644
+ 400,
4645
+ 404,
4646
+ 408,
4647
+ 412,
4648
+ 416,
4649
+ 420,
4650
+ 424,
4651
+ 428,
4652
+ 432,
4653
+ 436,
4654
+ 440,
4655
+ 444,
4656
+ 448,
4657
+ 452,
4658
+ 456,
4659
+ 460,
4660
+ 464,
4661
+ 468,
4662
+ 472,
4663
+ 476,
4664
+ 480,
4665
+ 484,
4666
+ 488,
4667
+ 492,
4668
+ 496,
4669
+ 500,
4670
+ 504,
4671
+ 508,
4672
+ 512,
4673
+ 516,
4674
+ 520,
4675
+ 524,
4676
+ 528,
4677
+ 532,
4678
+ 536,
4679
+ 540,
4680
+ 544,
4681
+ 548,
4682
+ 552,
4683
+ 556,
4684
+ 560,
4685
+ 564,
4686
+ 568,
4687
+ 572,
4688
+ 576,
4689
+ 580,
4690
+ 584,
4691
+ 588,
4692
+ 592,
4693
+ 596,
4694
+ 600,
4695
+ 604,
4696
+ 608,
4697
+ 612,
4698
+ 616,
4699
+ 620,
4700
+ 624,
4701
+ 628,
4702
+ 632,
4703
+ 636,
4704
+ 640,
4705
+ 644,
4706
+ 648,
4707
+ 652,
4708
+ 656,
4709
+ 660,
4710
+ 664,
4711
+ 668,
4712
+ 672,
4713
+ 676,
4714
+ 680,
4715
+ 684,
4716
+ 688,
4717
+ 692,
4718
+ 696,
4719
+ 700,
4720
+ 704,
4721
+ 708,
4722
+ 712,
4723
+ 716,
4724
+ 720,
4725
+ 724,
4726
+ 728,
4727
+ 732,
4728
+ 736,
4729
+ 740,
4730
+ 744,
4731
+ 748,
4732
+ 752,
4733
+ 756,
4734
+ 760,
4735
+ 764,
4736
+ 768,
4737
+ 772,
4738
+ 776,
4739
+ 780,
4740
+ 784,
4741
+ 788,
4742
+ 791
4743
+ ],
4744
+ "cameras": [
4745
+ "front_camera",
4746
+ "top_camera"
4747
+ ],
4748
+ "rgb_bulk_read_indices": [
4749
+ 0,
4750
+ 792
4751
+ ],
4752
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
4753
+ "action_and_proprio_read": "all authorized indices"
4754
+ },
4755
+ {
4756
+ "demo_id": "demo_16",
4757
+ "machine_rgb_indices": [
4758
+ 0,
4759
+ 1,
4760
+ 2,
4761
+ 3,
4762
+ 4,
4763
+ 5,
4764
+ 6,
4765
+ 7,
4766
+ 8,
4767
+ 9,
4768
+ 10,
4769
+ 11,
4770
+ 12,
4771
+ 13,
4772
+ 14,
4773
+ 15,
4774
+ 16,
4775
+ 17,
4776
+ 18,
4777
+ 19,
4778
+ 20,
4779
+ 21,
4780
+ 22,
4781
+ 23,
4782
+ 24,
4783
+ 25,
4784
+ 26,
4785
+ 27,
4786
+ 28,
4787
+ 29,
4788
+ 30,
4789
+ 31,
4790
+ 32,
4791
+ 33,
4792
+ 34,
4793
+ 35,
4794
+ 36,
4795
+ 37,
4796
+ 38,
4797
+ 39,
4798
+ 40,
4799
+ 41,
4800
+ 42,
4801
+ 43,
4802
+ 44,
4803
+ 45,
4804
+ 46,
4805
+ 47,
4806
+ 48,
4807
+ 49,
4808
+ 50,
4809
+ 51,
4810
+ 52,
4811
+ 53,
4812
+ 54,
4813
+ 55,
4814
+ 56,
4815
+ 57,
4816
+ 58,
4817
+ 59,
4818
+ 60,
4819
+ 61,
4820
+ 62,
4821
+ 63,
4822
+ 64,
4823
+ 65,
4824
+ 66,
4825
+ 67,
4826
+ 68,
4827
+ 69,
4828
+ 70,
4829
+ 71,
4830
+ 72,
4831
+ 73,
4832
+ 74,
4833
+ 75,
4834
+ 76,
4835
+ 77,
4836
+ 78,
4837
+ 79,
4838
+ 80,
4839
+ 84,
4840
+ 88,
4841
+ 92,
4842
+ 96,
4843
+ 100,
4844
+ 104,
4845
+ 108,
4846
+ 112,
4847
+ 116,
4848
+ 120,
4849
+ 124,
4850
+ 128,
4851
+ 132,
4852
+ 136,
4853
+ 140,
4854
+ 144,
4855
+ 148,
4856
+ 152,
4857
+ 156,
4858
+ 160,
4859
+ 164,
4860
+ 168,
4861
+ 172,
4862
+ 176,
4863
+ 180,
4864
+ 184,
4865
+ 188,
4866
+ 192,
4867
+ 196,
4868
+ 200,
4869
+ 204,
4870
+ 208,
4871
+ 212,
4872
+ 216,
4873
+ 220,
4874
+ 224,
4875
+ 228,
4876
+ 232,
4877
+ 236,
4878
+ 240,
4879
+ 244,
4880
+ 248,
4881
+ 252,
4882
+ 256,
4883
+ 260,
4884
+ 264,
4885
+ 268,
4886
+ 272,
4887
+ 276,
4888
+ 280,
4889
+ 284,
4890
+ 288,
4891
+ 292,
4892
+ 296,
4893
+ 300,
4894
+ 304,
4895
+ 308,
4896
+ 312,
4897
+ 316,
4898
+ 320,
4899
+ 324,
4900
+ 328,
4901
+ 332,
4902
+ 336,
4903
+ 340,
4904
+ 344,
4905
+ 348,
4906
+ 352,
4907
+ 356,
4908
+ 360,
4909
+ 364,
4910
+ 368,
4911
+ 372,
4912
+ 376,
4913
+ 380,
4914
+ 384,
4915
+ 388,
4916
+ 392,
4917
+ 396,
4918
+ 400,
4919
+ 404,
4920
+ 408,
4921
+ 412,
4922
+ 416,
4923
+ 420,
4924
+ 424,
4925
+ 428,
4926
+ 432,
4927
+ 436,
4928
+ 440,
4929
+ 444,
4930
+ 448,
4931
+ 452,
4932
+ 456,
4933
+ 460,
4934
+ 464,
4935
+ 468,
4936
+ 472,
4937
+ 476,
4938
+ 480,
4939
+ 484,
4940
+ 488,
4941
+ 492,
4942
+ 496,
4943
+ 500,
4944
+ 504,
4945
+ 508,
4946
+ 512,
4947
+ 516,
4948
+ 520,
4949
+ 524,
4950
+ 528,
4951
+ 532,
4952
+ 536,
4953
+ 540,
4954
+ 544,
4955
+ 548,
4956
+ 552,
4957
+ 556,
4958
+ 560,
4959
+ 564,
4960
+ 568,
4961
+ 572,
4962
+ 576,
4963
+ 580,
4964
+ 584,
4965
+ 588,
4966
+ 592,
4967
+ 596,
4968
+ 600,
4969
+ 604,
4970
+ 608,
4971
+ 612,
4972
+ 616,
4973
+ 620,
4974
+ 624,
4975
+ 628,
4976
+ 632,
4977
+ 636,
4978
+ 640,
4979
+ 644,
4980
+ 648,
4981
+ 652,
4982
+ 656,
4983
+ 660,
4984
+ 664,
4985
+ 668,
4986
+ 672,
4987
+ 676,
4988
+ 680,
4989
+ 684,
4990
+ 688,
4991
+ 692,
4992
+ 696,
4993
+ 700,
4994
+ 704,
4995
+ 708,
4996
+ 712,
4997
+ 716,
4998
+ 720,
4999
+ 724,
5000
+ 728,
5001
+ 732,
5002
+ 736,
5003
+ 740,
5004
+ 744,
5005
+ 748,
5006
+ 752,
5007
+ 756,
5008
+ 760,
5009
+ 764,
5010
+ 768,
5011
+ 772,
5012
+ 776,
5013
+ 780,
5014
+ 784,
5015
+ 788,
5016
+ 792,
5017
+ 796,
5018
+ 800,
5019
+ 804,
5020
+ 808,
5021
+ 812,
5022
+ 816,
5023
+ 820,
5024
+ 824,
5025
+ 828,
5026
+ 832,
5027
+ 836,
5028
+ 840,
5029
+ 844,
5030
+ 848,
5031
+ 852,
5032
+ 856,
5033
+ 860
5034
+ ],
5035
+ "cameras": [
5036
+ "front_camera",
5037
+ "top_camera"
5038
+ ],
5039
+ "rgb_bulk_read_indices": [
5040
+ 0,
5041
+ 861
5042
+ ],
5043
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
5044
+ "action_and_proprio_read": "all authorized indices"
5045
+ },
5046
+ {
5047
+ "demo_id": "demo_17",
5048
+ "machine_rgb_indices": [
5049
+ 0,
5050
+ 1,
5051
+ 2,
5052
+ 3,
5053
+ 4,
5054
+ 5,
5055
+ 6,
5056
+ 7,
5057
+ 8,
5058
+ 9,
5059
+ 10,
5060
+ 11,
5061
+ 12,
5062
+ 13,
5063
+ 14,
5064
+ 15,
5065
+ 16,
5066
+ 17,
5067
+ 18,
5068
+ 19,
5069
+ 20,
5070
+ 21,
5071
+ 22,
5072
+ 23,
5073
+ 24,
5074
+ 25,
5075
+ 26,
5076
+ 27,
5077
+ 28,
5078
+ 29,
5079
+ 30,
5080
+ 31,
5081
+ 32,
5082
+ 33,
5083
+ 34,
5084
+ 35,
5085
+ 36,
5086
+ 37,
5087
+ 38,
5088
+ 39,
5089
+ 40,
5090
+ 41,
5091
+ 42,
5092
+ 43,
5093
+ 44,
5094
+ 45,
5095
+ 46,
5096
+ 47,
5097
+ 48,
5098
+ 49,
5099
+ 50,
5100
+ 51,
5101
+ 52,
5102
+ 53,
5103
+ 54,
5104
+ 55,
5105
+ 56,
5106
+ 57,
5107
+ 58,
5108
+ 59,
5109
+ 60,
5110
+ 61,
5111
+ 62,
5112
+ 63,
5113
+ 64,
5114
+ 65,
5115
+ 66,
5116
+ 67,
5117
+ 68,
5118
+ 69,
5119
+ 70,
5120
+ 71,
5121
+ 72,
5122
+ 73,
5123
+ 74,
5124
+ 75,
5125
+ 76,
5126
+ 77,
5127
+ 78,
5128
+ 79,
5129
+ 80,
5130
+ 84,
5131
+ 88,
5132
+ 92,
5133
+ 96,
5134
+ 100,
5135
+ 104,
5136
+ 108,
5137
+ 112,
5138
+ 116,
5139
+ 120,
5140
+ 124,
5141
+ 128,
5142
+ 132,
5143
+ 136,
5144
+ 140,
5145
+ 144,
5146
+ 148,
5147
+ 152,
5148
+ 156,
5149
+ 160,
5150
+ 164,
5151
+ 168,
5152
+ 172,
5153
+ 176,
5154
+ 180,
5155
+ 184,
5156
+ 188,
5157
+ 192,
5158
+ 196,
5159
+ 200,
5160
+ 204,
5161
+ 208,
5162
+ 212,
5163
+ 216,
5164
+ 220,
5165
+ 224,
5166
+ 228,
5167
+ 232,
5168
+ 236,
5169
+ 240,
5170
+ 244,
5171
+ 248,
5172
+ 252,
5173
+ 256,
5174
+ 260,
5175
+ 264,
5176
+ 268,
5177
+ 272,
5178
+ 276,
5179
+ 280,
5180
+ 284,
5181
+ 288,
5182
+ 292,
5183
+ 296,
5184
+ 300,
5185
+ 304,
5186
+ 308,
5187
+ 312,
5188
+ 316,
5189
+ 320,
5190
+ 324,
5191
+ 328,
5192
+ 332,
5193
+ 336,
5194
+ 340,
5195
+ 344,
5196
+ 348,
5197
+ 352,
5198
+ 356,
5199
+ 360,
5200
+ 364,
5201
+ 368,
5202
+ 372,
5203
+ 376,
5204
+ 380,
5205
+ 384,
5206
+ 388,
5207
+ 392,
5208
+ 396,
5209
+ 400,
5210
+ 404,
5211
+ 408,
5212
+ 412,
5213
+ 416,
5214
+ 420,
5215
+ 424,
5216
+ 428,
5217
+ 432,
5218
+ 436,
5219
+ 440,
5220
+ 444,
5221
+ 448,
5222
+ 452,
5223
+ 456,
5224
+ 460,
5225
+ 464,
5226
+ 468,
5227
+ 472,
5228
+ 476,
5229
+ 480,
5230
+ 484,
5231
+ 488,
5232
+ 492,
5233
+ 496,
5234
+ 500,
5235
+ 504,
5236
+ 508,
5237
+ 512,
5238
+ 516,
5239
+ 520,
5240
+ 524,
5241
+ 528,
5242
+ 532,
5243
+ 536,
5244
+ 540,
5245
+ 544,
5246
+ 548,
5247
+ 552,
5248
+ 556,
5249
+ 560,
5250
+ 564,
5251
+ 568,
5252
+ 572,
5253
+ 576,
5254
+ 580,
5255
+ 584,
5256
+ 588,
5257
+ 592,
5258
+ 596,
5259
+ 600,
5260
+ 604,
5261
+ 608,
5262
+ 612,
5263
+ 616,
5264
+ 620,
5265
+ 624,
5266
+ 628,
5267
+ 632,
5268
+ 636,
5269
+ 640,
5270
+ 644,
5271
+ 648,
5272
+ 652,
5273
+ 656,
5274
+ 660,
5275
+ 664,
5276
+ 668,
5277
+ 672,
5278
+ 676,
5279
+ 680,
5280
+ 684,
5281
+ 688,
5282
+ 692,
5283
+ 696,
5284
+ 700,
5285
+ 704,
5286
+ 708,
5287
+ 712,
5288
+ 716,
5289
+ 720,
5290
+ 724,
5291
+ 728,
5292
+ 732,
5293
+ 736,
5294
+ 740,
5295
+ 744,
5296
+ 748,
5297
+ 752,
5298
+ 756,
5299
+ 760,
5300
+ 764,
5301
+ 768,
5302
+ 772,
5303
+ 776,
5304
+ 780,
5305
+ 784,
5306
+ 788,
5307
+ 792,
5308
+ 796,
5309
+ 800,
5310
+ 804,
5311
+ 808,
5312
+ 812,
5313
+ 816,
5314
+ 820,
5315
+ 824,
5316
+ 828,
5317
+ 832,
5318
+ 836,
5319
+ 840,
5320
+ 844,
5321
+ 848,
5322
+ 852,
5323
+ 856,
5324
+ 860,
5325
+ 864,
5326
+ 868,
5327
+ 872,
5328
+ 876,
5329
+ 880,
5330
+ 884,
5331
+ 888,
5332
+ 892,
5333
+ 896,
5334
+ 900,
5335
+ 904,
5336
+ 908,
5337
+ 912,
5338
+ 916,
5339
+ 920,
5340
+ 924,
5341
+ 928,
5342
+ 932,
5343
+ 936,
5344
+ 938
5345
+ ],
5346
+ "cameras": [
5347
+ "front_camera",
5348
+ "top_camera"
5349
+ ],
5350
+ "rgb_bulk_read_indices": [
5351
+ 0,
5352
+ 939
5353
+ ],
5354
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
5355
+ "action_and_proprio_read": "all authorized indices"
5356
+ },
5357
+ {
5358
+ "demo_id": "demo_18",
5359
+ "machine_rgb_indices": [
5360
+ 0,
5361
+ 1,
5362
+ 2,
5363
+ 3,
5364
+ 4,
5365
+ 5,
5366
+ 6,
5367
+ 7,
5368
+ 8,
5369
+ 9,
5370
+ 10,
5371
+ 11,
5372
+ 12,
5373
+ 13,
5374
+ 14,
5375
+ 15,
5376
+ 16,
5377
+ 17,
5378
+ 18,
5379
+ 19,
5380
+ 20,
5381
+ 21,
5382
+ 22,
5383
+ 23,
5384
+ 24,
5385
+ 25,
5386
+ 26,
5387
+ 27,
5388
+ 28,
5389
+ 29,
5390
+ 30,
5391
+ 31,
5392
+ 32,
5393
+ 33,
5394
+ 34,
5395
+ 35,
5396
+ 36,
5397
+ 37,
5398
+ 38,
5399
+ 39,
5400
+ 40,
5401
+ 41,
5402
+ 42,
5403
+ 43,
5404
+ 44,
5405
+ 45,
5406
+ 46,
5407
+ 47,
5408
+ 48,
5409
+ 49,
5410
+ 50,
5411
+ 51,
5412
+ 52,
5413
+ 53,
5414
+ 54,
5415
+ 55,
5416
+ 56,
5417
+ 57,
5418
+ 58,
5419
+ 59,
5420
+ 60,
5421
+ 61,
5422
+ 62,
5423
+ 63,
5424
+ 64,
5425
+ 65,
5426
+ 66,
5427
+ 67,
5428
+ 68,
5429
+ 69,
5430
+ 70,
5431
+ 71,
5432
+ 72,
5433
+ 73,
5434
+ 74,
5435
+ 75,
5436
+ 76,
5437
+ 77,
5438
+ 78,
5439
+ 79,
5440
+ 80,
5441
+ 84,
5442
+ 88,
5443
+ 92,
5444
+ 96,
5445
+ 100,
5446
+ 104,
5447
+ 108,
5448
+ 112,
5449
+ 116,
5450
+ 120,
5451
+ 124,
5452
+ 128,
5453
+ 132,
5454
+ 136,
5455
+ 140,
5456
+ 144,
5457
+ 148,
5458
+ 152,
5459
+ 156,
5460
+ 160,
5461
+ 164,
5462
+ 168,
5463
+ 172,
5464
+ 176,
5465
+ 180,
5466
+ 184,
5467
+ 188,
5468
+ 192,
5469
+ 196,
5470
+ 200,
5471
+ 204,
5472
+ 208,
5473
+ 212,
5474
+ 216,
5475
+ 220,
5476
+ 224,
5477
+ 228,
5478
+ 232,
5479
+ 236,
5480
+ 240,
5481
+ 244,
5482
+ 248,
5483
+ 252,
5484
+ 256,
5485
+ 260,
5486
+ 264,
5487
+ 268,
5488
+ 272,
5489
+ 276,
5490
+ 280,
5491
+ 284,
5492
+ 288,
5493
+ 292,
5494
+ 296,
5495
+ 300,
5496
+ 304,
5497
+ 308,
5498
+ 312,
5499
+ 316,
5500
+ 320,
5501
+ 324,
5502
+ 328,
5503
+ 332,
5504
+ 336,
5505
+ 340,
5506
+ 344,
5507
+ 348,
5508
+ 352,
5509
+ 356,
5510
+ 360,
5511
+ 364,
5512
+ 368,
5513
+ 372,
5514
+ 376,
5515
+ 380,
5516
+ 384,
5517
+ 388,
5518
+ 392,
5519
+ 396,
5520
+ 400,
5521
+ 404,
5522
+ 408,
5523
+ 412,
5524
+ 416,
5525
+ 420,
5526
+ 424,
5527
+ 428,
5528
+ 432,
5529
+ 436,
5530
+ 440,
5531
+ 444,
5532
+ 448,
5533
+ 452,
5534
+ 456,
5535
+ 460,
5536
+ 464,
5537
+ 468,
5538
+ 472,
5539
+ 476,
5540
+ 480,
5541
+ 484,
5542
+ 488,
5543
+ 492,
5544
+ 496,
5545
+ 500,
5546
+ 504,
5547
+ 508,
5548
+ 512,
5549
+ 516,
5550
+ 520,
5551
+ 524,
5552
+ 528,
5553
+ 532,
5554
+ 536,
5555
+ 540,
5556
+ 544,
5557
+ 548,
5558
+ 552,
5559
+ 556,
5560
+ 560,
5561
+ 564,
5562
+ 568,
5563
+ 572,
5564
+ 576,
5565
+ 580,
5566
+ 584,
5567
+ 588,
5568
+ 592,
5569
+ 596,
5570
+ 600,
5571
+ 604,
5572
+ 608,
5573
+ 612,
5574
+ 616,
5575
+ 620,
5576
+ 624,
5577
+ 628,
5578
+ 632,
5579
+ 636,
5580
+ 640,
5581
+ 644,
5582
+ 648,
5583
+ 652,
5584
+ 656,
5585
+ 660,
5586
+ 664,
5587
+ 668,
5588
+ 671
5589
+ ],
5590
+ "cameras": [
5591
+ "front_camera",
5592
+ "top_camera"
5593
+ ],
5594
+ "rgb_bulk_read_indices": [
5595
+ 0,
5596
+ 672
5597
+ ],
5598
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
5599
+ "action_and_proprio_read": "all authorized indices"
5600
+ },
5601
+ {
5602
+ "demo_id": "demo_19",
5603
+ "machine_rgb_indices": [
5604
+ 0,
5605
+ 1,
5606
+ 2,
5607
+ 3,
5608
+ 4,
5609
+ 5,
5610
+ 6,
5611
+ 7,
5612
+ 8,
5613
+ 9,
5614
+ 10,
5615
+ 11,
5616
+ 12,
5617
+ 13,
5618
+ 14,
5619
+ 15,
5620
+ 16,
5621
+ 17,
5622
+ 18,
5623
+ 19,
5624
+ 20,
5625
+ 21,
5626
+ 22,
5627
+ 23,
5628
+ 24,
5629
+ 25,
5630
+ 26,
5631
+ 27,
5632
+ 28,
5633
+ 29,
5634
+ 30,
5635
+ 31,
5636
+ 32,
5637
+ 33,
5638
+ 34,
5639
+ 35,
5640
+ 36,
5641
+ 37,
5642
+ 38,
5643
+ 39,
5644
+ 40,
5645
+ 41,
5646
+ 42,
5647
+ 43,
5648
+ 44,
5649
+ 45,
5650
+ 46,
5651
+ 47,
5652
+ 48,
5653
+ 49,
5654
+ 50,
5655
+ 51,
5656
+ 52,
5657
+ 53,
5658
+ 54,
5659
+ 55,
5660
+ 56,
5661
+ 57,
5662
+ 58,
5663
+ 59,
5664
+ 60,
5665
+ 61,
5666
+ 62,
5667
+ 63,
5668
+ 64,
5669
+ 65,
5670
+ 66,
5671
+ 67,
5672
+ 68,
5673
+ 69,
5674
+ 70,
5675
+ 71,
5676
+ 72,
5677
+ 73,
5678
+ 74,
5679
+ 75,
5680
+ 76,
5681
+ 77,
5682
+ 78,
5683
+ 79,
5684
+ 80,
5685
+ 84,
5686
+ 88,
5687
+ 92,
5688
+ 96,
5689
+ 100,
5690
+ 104,
5691
+ 108,
5692
+ 112,
5693
+ 116,
5694
+ 120,
5695
+ 124,
5696
+ 128,
5697
+ 132,
5698
+ 136,
5699
+ 140,
5700
+ 144,
5701
+ 148,
5702
+ 152,
5703
+ 156,
5704
+ 160,
5705
+ 164,
5706
+ 168,
5707
+ 172,
5708
+ 176,
5709
+ 180,
5710
+ 184,
5711
+ 188,
5712
+ 192,
5713
+ 196,
5714
+ 200,
5715
+ 204,
5716
+ 208,
5717
+ 212,
5718
+ 216,
5719
+ 220,
5720
+ 224,
5721
+ 228,
5722
+ 232,
5723
+ 236,
5724
+ 240,
5725
+ 244,
5726
+ 248,
5727
+ 252,
5728
+ 256,
5729
+ 260,
5730
+ 264,
5731
+ 268,
5732
+ 272,
5733
+ 276,
5734
+ 280,
5735
+ 284,
5736
+ 288,
5737
+ 292,
5738
+ 296,
5739
+ 300,
5740
+ 304,
5741
+ 308,
5742
+ 312,
5743
+ 316,
5744
+ 320,
5745
+ 324,
5746
+ 328,
5747
+ 332,
5748
+ 336,
5749
+ 340,
5750
+ 344,
5751
+ 348,
5752
+ 352,
5753
+ 356,
5754
+ 360,
5755
+ 364,
5756
+ 368,
5757
+ 372,
5758
+ 376,
5759
+ 380,
5760
+ 384,
5761
+ 388,
5762
+ 392,
5763
+ 396,
5764
+ 400,
5765
+ 404,
5766
+ 408,
5767
+ 412,
5768
+ 416,
5769
+ 420,
5770
+ 424,
5771
+ 428,
5772
+ 432,
5773
+ 436,
5774
+ 440,
5775
+ 444,
5776
+ 448,
5777
+ 452,
5778
+ 456,
5779
+ 460,
5780
+ 464,
5781
+ 468,
5782
+ 472,
5783
+ 476,
5784
+ 480,
5785
+ 484,
5786
+ 488,
5787
+ 492,
5788
+ 496,
5789
+ 500,
5790
+ 504,
5791
+ 508,
5792
+ 512,
5793
+ 516,
5794
+ 520,
5795
+ 524,
5796
+ 528,
5797
+ 532,
5798
+ 536,
5799
+ 540,
5800
+ 544,
5801
+ 548,
5802
+ 552,
5803
+ 556,
5804
+ 560,
5805
+ 564,
5806
+ 568,
5807
+ 572,
5808
+ 576,
5809
+ 580,
5810
+ 584,
5811
+ 588,
5812
+ 592,
5813
+ 596,
5814
+ 600,
5815
+ 604,
5816
+ 608,
5817
+ 612,
5818
+ 616,
5819
+ 620,
5820
+ 624,
5821
+ 628,
5822
+ 632,
5823
+ 636,
5824
+ 640,
5825
+ 644,
5826
+ 648,
5827
+ 652,
5828
+ 656,
5829
+ 660,
5830
+ 664,
5831
+ 668,
5832
+ 672,
5833
+ 676,
5834
+ 680,
5835
+ 684,
5836
+ 688,
5837
+ 692,
5838
+ 696,
5839
+ 700,
5840
+ 704,
5841
+ 708,
5842
+ 712,
5843
+ 716,
5844
+ 720,
5845
+ 724,
5846
+ 728,
5847
+ 732,
5848
+ 736,
5849
+ 740,
5850
+ 744,
5851
+ 748,
5852
+ 752,
5853
+ 756,
5854
+ 760,
5855
+ 764,
5856
+ 768,
5857
+ 772,
5858
+ 776,
5859
+ 780,
5860
+ 784,
5861
+ 788,
5862
+ 792,
5863
+ 796,
5864
+ 800,
5865
+ 804,
5866
+ 808,
5867
+ 812,
5868
+ 816,
5869
+ 820,
5870
+ 824,
5871
+ 828,
5872
+ 832,
5873
+ 836,
5874
+ 840,
5875
+ 844,
5876
+ 848,
5877
+ 852,
5878
+ 856,
5879
+ 860,
5880
+ 864,
5881
+ 868,
5882
+ 872,
5883
+ 876,
5884
+ 880,
5885
+ 884,
5886
+ 888,
5887
+ 892,
5888
+ 896,
5889
+ 900,
5890
+ 904,
5891
+ 908,
5892
+ 912,
5893
+ 916,
5894
+ 920,
5895
+ 924,
5896
+ 928,
5897
+ 932,
5898
+ 936,
5899
+ 940,
5900
+ 944,
5901
+ 948,
5902
+ 949
5903
+ ],
5904
+ "cameras": [
5905
+ "front_camera",
5906
+ "top_camera"
5907
+ ],
5908
+ "rgb_bulk_read_indices": [
5909
+ 0,
5910
+ 950
5911
+ ],
5912
+ "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.",
5913
+ "action_and_proprio_read": "all authorized indices"
5914
+ }
5915
+ ]
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/model_tool_manifest.yaml ADDED
@@ -0,0 +1,200 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "task-local-model-tool-manifest-v1",
3
+ "task_id": "DualArmClothCylinderWipe-v1",
4
+ "worker": "Agent-D20-E20-Compiled",
5
+ "stage": "INDEPENDENT_REHEARSAL_CANDIDATE",
6
+ "candidate_status": "See exact rehearsal receipts outside immutable bundle",
7
+ "models": {
8
+ "coding_model": {
9
+ "provider": "OpenAI",
10
+ "interface_identity": "Codex, based on GPT-6 per supplied role",
11
+ "exact_checkpoint": "not exposed",
12
+ "weights_modified": false
13
+ },
14
+ "runtime_neural_models": [],
15
+ "pretrained_tool_weight_references": [],
16
+ "neural_finetuning": false,
17
+ "note": "No neural inference or weight updates. Runtime uses D20 action/reference memories, fixed image segmentation and a classical empirical camera-motion matrix."
18
+ },
19
+ "data_provenance": {
20
+ "authorized_root": "/demonstrations",
21
+ "manifest_path": "/demo_manifest.json",
22
+ "manifest_sha256": "9dd6aef427025bab9c5fc3da5d7a384fea1d391a2996f7b1fc8d63c26039eca8",
23
+ "contract_path": "/task_contract.json",
24
+ "contract_sha256": "7aedc431397ee14e47e58a03f308646e9b594c932d3b66ae6ac264638f97b1c6",
25
+ "demo_ids": [
26
+ "demo_00",
27
+ "demo_01",
28
+ "demo_02",
29
+ "demo_03",
30
+ "demo_04",
31
+ "demo_05",
32
+ "demo_06",
33
+ "demo_07",
34
+ "demo_08",
35
+ "demo_09",
36
+ "demo_10",
37
+ "demo_11",
38
+ "demo_12",
39
+ "demo_13",
40
+ "demo_14",
41
+ "demo_15",
42
+ "demo_16",
43
+ "demo_17",
44
+ "demo_18",
45
+ "demo_19"
46
+ ],
47
+ "demo_count": 20,
48
+ "all_action_vectors_analyzed": 17559,
49
+ "lookup_records": 5613,
50
+ "exact_visual_inspection_log": "../demo_analysis.md",
51
+ "exact_descriptor_indices": "memory_provenance.json",
52
+ "source_verification": "Runner supplies verified demo manifest separately; source lineage hashes were read from the released manifest, not independently re-established.",
53
+ "additional_compilation": "All20 authorized D20: complete action/q references; strict dark-mask front/top hand locations and translation maps; initial front/left/top red masks; hand permutation; experimental local linear silhouette rotation maps (enabled only by config)."
54
+ },
55
+ "tools_used": [
56
+ {
57
+ "name": "functions.exec / exec_command",
58
+ "purpose": "Scoped shell/Python execution, file creation, syntax and synthetic checks",
59
+ "version": "host tool version not exposed"
60
+ },
61
+ {
62
+ "name": "view_image",
63
+ "purpose": "Inspect authorized D20 contact sheets and legal exploration camera evidence",
64
+ "version": "host tool version not exposed"
65
+ },
66
+ {
67
+ "name": "worker_api.API",
68
+ "path": "/worker_api.py",
69
+ "sha256": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e",
70
+ "purpose": "Authorized demo reads and all legal exploration/rehearsal/budget methods; native score overwrite attempt correctly rejected."
71
+ },
72
+ {
73
+ "name": "Python",
74
+ "version": "3.10.20",
75
+ "purpose": "Offline analysis, compilation, draft controller and checks"
76
+ },
77
+ {
78
+ "name": "NumPy",
79
+ "version": "2.2.6",
80
+ "purpose": "Array statistics, fixed descriptors, lookup memory and retrieval"
81
+ },
82
+ {
83
+ "name": "OpenCV",
84
+ "package": "opencv-python",
85
+ "version": "4.13.0.92",
86
+ "purpose": "Fixed resizing/color thresholds, contact-sheet annotation and image encoding; no neural models"
87
+ },
88
+ {
89
+ "name": "h5py",
90
+ "version": "3.16.0",
91
+ "purpose": "Authorized sanitized HDF5 reads"
92
+ },
93
+ {
94
+ "name": "Python standard library",
95
+ "version": "3.10.20",
96
+ "modules": [
97
+ "importlib",
98
+ "json",
99
+ "pathlib",
100
+ "platform",
101
+ "hashlib",
102
+ "time",
103
+ "py_compile",
104
+ "importlib.metadata"
105
+ ],
106
+ "purpose": "Loading, documentation, provenance and validation"
107
+ },
108
+ {
109
+ "name": "bash and shell utilities",
110
+ "version": "not separately pinned; see runner common lock",
111
+ "commands": [
112
+ "cat",
113
+ "mkdir",
114
+ "find",
115
+ "pwd",
116
+ "pkill",
117
+ "ls",
118
+ "du"
119
+ ],
120
+ "purpose": "Workspace files and process management"
121
+ }
122
+ ],
123
+ "dependencies": {
124
+ "runtime": {
125
+ "python": "3.10.20",
126
+ "numpy": "2.2.6",
127
+ "opencv-python": "4.13.0.92"
128
+ },
129
+ "offline_build_additional": {
130
+ "h5py": "3.16.0",
131
+ "worker_api": "/worker_api.py",
132
+ "authorized_mounts": [
133
+ "/task_contract.json",
134
+ "/demo_manifest.json",
135
+ "/demonstrations"
136
+ ],
137
+ "scipy": "Classical linear assignment for hand permutation only; not a runtime dependency"
138
+ },
139
+ "common_environment_lock": "supplied separately by runner"
140
+ },
141
+ "validation": {
142
+ "historical_independent_rehearsals": [
143
+ {
144
+ "episode": 2,
145
+ "bundle_hash": "dd5587f008e37611fcbc3a0ebf66e613da68f03676a0709899a6ae8076f46e1f",
146
+ "independent": true,
147
+ "valid": true,
148
+ "status": "finished",
149
+ "success": false,
150
+ "score_source": "native_step_feedback"
151
+ },
152
+ {
153
+ "episode": 9,
154
+ "bundle_hash": "571ff4ab6cd265095fbce825c5e1f6e540a5833e353495b3e1dc3315167b7642",
155
+ "independent": true,
156
+ "valid": true,
157
+ "status": "finished",
158
+ "success": false,
159
+ "score_source": "native_step_feedback"
160
+ },
161
+ {
162
+ "episode": 15,
163
+ "bundle_hash": "f38665687a975c5ffac74f7897be02f8eba443aee6bf775f4425be68e61fec10",
164
+ "independent": true,
165
+ "valid": true,
166
+ "status": "finished",
167
+ "success": false,
168
+ "score_source": "native_step_feedback"
169
+ }
170
+ ],
171
+ "current_version": "Must be assessed by exact-bundle API rehearsal receipt",
172
+ "audit": "../exploration/findings.md"
173
+ },
174
+ "known_limitations": [
175
+ "No internal success detector; native feedback is authoritative.",
176
+ "Second-hand image components can be ambiguous or occluded; first-hand image feedback is disabled.",
177
+ "Cloth contact, orientation and coverage remain unreliable.",
178
+ "Reference end is not proof of completion.",
179
+ "No hidden state, simulator kinematics, camera calibration or other-task data used."
180
+ ],
181
+ "artifacts_sha256": {
182
+ "config.json": "2df7008f70ae93f61b80734cbe30775a0f8ca000b7943f9771aeca045ea82e6f",
183
+ "controller.py": "89548a24fc0a2da39125ee84c0cf22ccad5643ba37a25c43c230174fa9cf04d3",
184
+ "features.py": "8799317eb461e6ee780da3342c5d665fe2af4e93c48c3be578b9f2b0e03bf377",
185
+ "findings.md": "77ccdd7ddbe2ec43b56ab5bf32a4b2c4f1de676b161a2e7d52ceedd97dcdeed8",
186
+ "hand_mapping.json": "84c7fc6cafeca877a400e3dc4aacac8876eebed562d915a7fd17ec2b72eab0a5",
187
+ "handoff.md": "4eb0bf6fbf954d877f961f4e130f5546ccee9564c9658a292347e429a3ba63d6",
188
+ "initial_red.npz": "fe3455c0e9224e221e40eb6a446aa1613beb486bf79b5508d5310470e4084b20",
189
+ "local_versions.json": "1fa379e5b7359568c47fe024729942318c0b681067190c7ce439af75aa4bef81",
190
+ "memory.npz": "2ddf1fb6fc2200d0ce6f7720a81deddcf4b9081f48f57babf5827e17365e6809",
191
+ "memory_provenance.json": "274171c9401a581a7a0ecdcd576a2135e9eec127e31ffc7f23c7c3580e2c0e35",
192
+ "pose.py": "bb5821e10ddf4159d901897fad3e0c906762ee17496c0bf790a968e7bbac3dfe",
193
+ "pose_reference.npz": "991f445b7c1490ce1a19f96ec55e14a209df7f1507143c11dd1f308da1e9cdf3",
194
+ "reference.npz": "acd95e4126695717a9c8487b2f65ac18ce5222aa99fa8b8dce85d5b670da764b",
195
+ "requirements.txt": "499e0528a037f06bf49cacbe43203e90deaa66788d137d8c6d6e57d2247ea820",
196
+ "skills.md": "3757dcb836302d6eafc74bf539572f865de944eadd8d0e21e551f4a40c84258b",
197
+ "vision.py": "51fbceaf3c2041b411ed59a12938722a03937710631bd25a14e04b6d9f135227",
198
+ "visual_reference.npz": "0a6ab9fdad61a26dc8a5542a5bd06da7a842d470b8776814237be3ff5bfe3e85"
199
+ }
200
+ }
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/policy_runner.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Frozen-program entry point; no development agent and no reset capability."""
2
+ import importlib.util
3
+ import sys
4
+
5
+ sys.path.insert(0,'/artifact')
6
+ sys.path.insert(0,'/')
7
+ from worker_api import API
8
+
9
+
10
+ def main():
11
+ spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py')
12
+ module=importlib.util.module_from_spec(spec)
13
+ spec.loader.exec_module(module)
14
+ module.reset_episode()
15
+ api=API()
16
+ result=api.latest_observation()
17
+ while not (result['terminated'] or result['truncated'] or result['horizon_reached']):
18
+ obs=dict(result['observation'],step_id=result['step_id'])
19
+ action=module.act(obs)
20
+ if action is None:break
21
+ response=api.execute_actions([action])
22
+ result=response['steps'][-1]
23
+
24
+
25
+ if __name__=='__main__':main()
agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/pose.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Fixed second-hand silhouette and fingertip descriptors, no learned vision."""
2
+ import cv2,numpy as np
3
+ ROIS={'front_camera':(150,55,320,190),'top_camera':(95,0,240,155)}
4
+ def feature(im,cam,expected=None):
5
+ im=cv2.resize(np.asarray(im).squeeze(),(320,240) if cam=='front_camera' else (240,320),interpolation=cv2.INTER_AREA)
6
+ hi=im.max(2);lo=im.min(2);mask=((hi<65)&((hi.astype(float)-lo)<18)).astype(np.uint8)
7
+ if cam=='top_camera':cv2.circle(mask,(120,160),18,0,-1)
8
+ x0,y0,x1,y1=ROIS[cam];roi=mask[y0:y1,x0:x1];n,lab,st,ct=cv2.connectedComponentsWithStats(roi,8)
9
+ out=np.full(7,np.nan,np.float32)
10
+ if n<=1:return out
11
+ score=np.log(np.maximum(st[1:,cv2.CC_STAT_AREA],1)).astype(float)
12
+ if expected is not None and np.isfinite(expected).all():score-=np.linalg.norm(ct[1:]+[x0,y0]-expected,axis=1)/12
13
+ k=1+np.argmax(score)
14
+ if st[k,cv2.CC_STAT_AREA]<12:return out
15
+ center=ct[k]+[x0,y0];yy,xx=np.nonzero(lab==k);xx=xx-xx.mean();yy=yy-yy.mean();vx=np.mean(xx*xx);vy=np.mean(yy*yy);xy=np.mean(xx*yy);tr=max(vx+vy,1.)
16
+ out[:5]=[center[0],center[1],10*(vx-vy)/tr,20*xy/tr,5*np.log(tr+1)]
17
+ white=((lo>180)&((hi.astype(float)-lo)<35)).astype(np.uint8);nw,_,sw,cw=cv2.connectedComponentsWithStats(white,8)
18
+ ids=[j for j in range(1,nw) if 3<=sw[j,cv2.CC_STAT_AREA]<=40 and 8<np.linalg.norm(cw[j]-center)<38]
19
+ if len(ids)>=2:
20
+ vecs=cw[ids]-center;lengths=np.linalg.norm(vecs,axis=1);unit=vecs/lengths[:,None];groups=unit@unit.T>.5
21
+ counts=groups.sum(1);scores=counts+.01*(groups@lengths/np.maximum(counts,1));best=int(np.argmax(scores));cluster=groups[best]
22
+ if counts[best]>=2:
23
+ tips=np.mean(cw[np.asarray(ids)[cluster]],axis=0);vec=tips-center;length=np.linalg.norm(vec)
24
+ if length>3:out[5:]=10*vec/length
25
+ return out