diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/build_reference.cpython-310.pyc b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/build_reference.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9e90d998f4fc0124f940ac52ef68119876129ef7 Binary files /dev/null and b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/build_reference.cpython-310.pyc differ diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/check_synthetic.cpython-310.pyc b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/check_synthetic.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..413c821b972bdfe7fea30b78ebf02e00c5fa1ffc Binary files /dev/null and b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/check_synthetic.cpython-310.pyc differ diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/controller.cpython-310.pyc b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/controller.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b59f60494a459b71f5dc1633f88a3a46244c7cfe Binary files /dev/null and b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/__pycache__/controller.cpython-310.pyc differ diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/build_reference.py b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/build_reference.py new file mode 100644 index 0000000000000000000000000000000000000000..02cc2d7c7cdafd236521a49574ec500e20300833 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/build_reference.py @@ -0,0 +1,26 @@ +"""Offline reference compilation from the 20 authorized demos only. No fitting.""" +import importlib.util,json,sys +from pathlib import Path +import numpy as np +sys.path.insert(0,str(Path(__file__).resolve().parent)) +from controller import image_features,CAMERAS +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() +manifest=json.load(open('/demo_manifest.json')) +assert len(manifest['episodes'])==20 +rows={k:[] for k in ['features','qpos','qvel','actions','demo','frame']};audit=[] +for di,e in enumerate(manifest['episodes']): + n=e['length'];fields=['actions','obs/agent/qpos','obs/agent/qvel'];d=api.read_demo(e['demo_id'],fields=fields) + 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]}) + for start in range(21,n,64): + stop=min(n,start+64) + imgs=api.read_demo(e['demo_id'],start,stop,fields=['obs/sensor_data/'+c+'/rgb' for c in CAMERAS]) + for t in range(start,stop,2): + rows['features'].append(image_features({c:imgs['obs/sensor_data/'+c+'/rgb'][t-start] for c in CAMERAS})) + rows['qpos'].append(d['obs/agent/qpos'][t]);rows['qvel'].append(d['obs/agent/qvel'][t]) + rows['actions'].append(d['actions'][t:min(t+2,n)].mean(0));rows['demo'].append(di);rows['frame'].append(t) + print(e['demo_id'],len(indices),flush=True) +b={k:np.asarray(v,dtype=np.int32 if k in ['demo','frame'] else np.float32) for k,v in rows.items()} +b['qscale']=np.maximum(np.std(b['qpos'],axis=0),.20);b['vscale']=np.maximum(np.std(b['qvel'],axis=0),.10) +np.savez_compressed(Path(__file__).with_name('reference_bank.npz'),**b) +json.dump(audit,open(Path(__file__).with_name('reference_index.json'),'w'),indent=2) +print('bank',len(b['actions']),flush=True) diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/check_synthetic.py b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/check_synthetic.py new file mode 100644 index 0000000000000000000000000000000000000000..fe17d3d3709dfec6973854a3580e3afe17283c5e --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/check_synthetic.py @@ -0,0 +1,43 @@ +"""Syntax/data-integrity and synthetic-input checks only; no environment.""" +import json,sys,time,py_compile +from pathlib import Path +import numpy as np +sys.path.insert(0,str(Path(__file__).resolve().parent)) +import controller as c +root=Path(__file__).resolve().parent +for name in ['controller.py','build_reference.py','check_synthetic.py']: + py_compile.compile(str(root/name),doraise=True) +checks=[] +def ok(name,condition): + assert condition,name + checks.append(name) +def obs(color=100,batch=False): + rgb={k:np.full((320,240,3) if k=='top_camera' else (240,320,3),color,np.uint8) for k in c.CAMERAS} + if batch:rgb={k:v[None] for k,v in rgb.items()} + 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} +x=c.Controller();b=x.bank +ok('bank covers all 20 demo IDs',np.array_equal(np.unique(b['demo']),np.arange(20))) +ok('reference vectors legal',b['actions'].shape==(4696,22) and np.isfinite(b['actions']).all() and np.max(abs(b['actions']))<=1) +ok('reference features finite',np.isfinite(b['features']).all()) +t=time.perf_counter();a=x.act(obs());latency=time.perf_counter()-t +ok('synthetic runtime shape and bounds',a.shape==(22,) and a.dtype==np.float32 and np.isfinite(a).all() and max(abs(a))<=1) +x.reset_episode();a2=x.act(obs(batch=True));ok('HWC and 1HWC equivalence',np.array_equal(a,a2)) +y=obs();y['proprioception']['agent/qpos'][0]=np.nan;ok('invalid numeric input returns zeros',np.array_equal(x.act(y),np.zeros(22))) +y=obs();del y['rgb']['left_camera'];ok('missing camera returns zeros',np.array_equal(x.act(y),np.zeros(22))) +y=obs();y['step_id']=2000;ok('native horizon terminates',x.act(y) is None) +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()) +# A wholly fabricated reference fixture checks observation sensitivity, not task skill. +def fixture(rgb_difference): + x=c.Controller.__new__(c.Controller) + o0,o1=obs(50),obs(200 if rgb_difference else 50) + q=np.zeros((2,23),np.float32) + if not rgb_difference:q[1,:7]=.5;o1['proprioception']['agent/qpos'][:7]=.5 + act=np.zeros((2,22),np.float32);act[:,0]=[.08,-.08] + 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])} + x.reset_episode();a=x.act(o0);x.reset_episode();b=x.act(o1) + return a,b +for modality in ['RGB','proprioception']: + a,b=fixture(modality=='RGB');ok('current '+modality+' changes selected action in synthetic fixture',a[0]>.05 and b[0]<-.05) +c.reset_episode();ok('public module entry point',c.act(obs()).shape==(22,)) +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'} +(root/'synthetic_check_results.json').write_text(json.dumps(result,indent=2)+'\n');print(json.dumps(result,indent=2)) diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/controller.py b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/controller.py new file mode 100644 index 0000000000000000000000000000000000000000..268a3068acdc9ec27038dc74661e8aa220b9bc9b --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/controller.py @@ -0,0 +1,129 @@ +"""Unrehearsed D20 draft: nonparametric RGB/proprio action retrieval. +No environment imports, learned neural weights, seed lookup, or timed replay. +""" +from pathlib import Path +import numpy as np +import cv2 +from localizer import Localizer + +CAMERAS = ('front_camera', 'left_camera', 'robot_camera', 'top_camera') +# Normalized crops selected by visual inspection; extrinsics remain unknown. +CROPS = ((.18,.32,.65,.90), (.28,.25,.95,.95), (0.,0.,1.,1.), (.10,.40,.95,.98)) + +def image_features(rgb): + out = [] + for name, (x0,y0,x1,y1) in zip(CAMERAS,CROPS): + im = np.asarray(rgb[name]) + if im.ndim == 4 and im.shape[0] == 1: + im = im[0] + if im.ndim != 3 or im.shape[2] != 3 or min(im.shape[:2]) < 16 or im.dtype != np.uint8: + raise ValueError('Expected uint8 RGB HWC or 1HWC') + h,w = im.shape[:2] + crop = im[int(y0*h):int(y1*h),int(x0*w):int(x1*w)] + small = cv2.resize(crop,(12,12),interpolation=cv2.INTER_AREA).astype(np.float32)/255. + # Red excess helps distinguish the chips package; it is not an object detector. + red = np.maximum(small[:,:,0] - np.maximum(small[:,:,1],small[:,:,2]),0.) + out.append(np.concatenate([small,red[:,:,None]],axis=2).reshape(-1)) + return np.stack(out) + +class Controller: + def __init__(self): + with np.load(Path(__file__).with_name('reference_bank.npz'),allow_pickle=False) as z: + self.bank = {k:z[k] for k in z.files} + self.localizer = Localizer() + self.reset_episode() + + def reset_episode(self): + self.target_hint = None + self.scene_penalty = np.zeros(20,dtype=np.float32) + self.calls = 0 + self.last_index = None + self.visits = np.zeros(len(self.bank['actions']),dtype=np.int32) + self.status = 'reset; untested draft' + + def act(self, obs): + # The charged initial hold is owned by the runner. No warmup is inserted. + try: + self.calls += 1 + if 'observation' in obs: + outer = obs + obs = dict(outer['observation']) + obs['step_id'] = outer.get('step_id', self.calls) + step = int(obs.get('step_id', self.calls)) + if step >= 650: + self.status = 'native horizon reached; no success claim' + return None + if step <= 21: + self.status = 'settling clutter; legal zero deltas' + return np.zeros(22,dtype=np.float32) + if step < 1: + raise ValueError('step_id must start at one after runner hold') + p = obs['proprioception'] + q = np.asarray(p['agent/qpos'],dtype=np.float32).reshape(-1) + v = np.asarray(p['agent/qvel'],dtype=np.float32).reshape(-1) + if q.shape != (23,) or v.shape != (23,) or not np.isfinite(q).all() or not np.isfinite(v).all(): + raise ValueError('Invalid proprioception') + f = image_features(obs['rgb']) + except (KeyError,ValueError,TypeError,OverflowError): + self.status = 'invalid legal observation; zero deltas' + return np.zeros(22,dtype=np.float32) + b = self.bank + if self.target_hint is None and step <= 80: + found = self.localizer.locate(obs['rgb']['left_camera']) + if found is not None and found['matches'] >= 5: + self.target_hint = found + lb = self.localizer.bank + axes = np.array([lb[f'axis_{i}'] for i in range(20)]) + delta = (lb['centers']-np.array(found['center']))/100. + self.scene_penalty = .5*np.sum(delta*delta,axis=1) + .7*(1.-np.abs(axes@np.array(found['axis']))) + qerr = ((b['qpos']-q)/b['qscale'])**2 + arm = np.mean(qerr[:,:7],axis=1) + hand = np.mean(qerr[:,7:],axis=1) + vel = np.mean(np.minimum(((b['qvel']-v)/b['vscale'])**2,9.),axis=1) + vd = np.mean((b['features']-f)**2,axis=2) + # Wrist camera has rendering artifacts and receives lower weight. + visual = vd @ np.array([.30,.30,.10,.30],dtype=np.float32) + red_dist = np.mean((b['features'][:,:,3::4]-f[:,3::4])**2,axis=(1,2)) + cost = 12.*visual + 30.*red_dist + .25*arm + .18*hand + .015*vel + cost += self.scene_penalty[b['demo']] + base_cost = cost.copy() + if self.last_index is not None: + j = self.last_index + same = b['demo'] == b['demo'][j] + distance = np.abs(b['frame']-b['frame'][j]) + cost += np.where(same,.015*np.minimum(distance/40.,4.),.12) + cost += .001*np.minimum(self.visits,80) + cost += np.where(np.isin(b['demo'],[0,3,7,12,19]),100.,0.) + j = int(np.argmin(cost)) + # Deliberately uncalibrated support checks; do not improvise large motions. + arm_rms = float(np.sqrt(np.mean((b['qpos'][j,:7]-q[:7])**2))) + if visual[j] > .12 or arm_rms > .65 or base_cost[j] > 2.5: + self.last_index = None + self.status = 'outside reference coverage; zero deltas' + return np.zeros(22,dtype=np.float32) + # Only blend nearby samples with compatible arm commands and hand pose. + eligible = np.flatnonzero((np.linalg.norm(b['actions'][:,:6]-b['actions'][j,:6],axis=1)<.12) + & (np.mean((b['qpos'][:,7:]-b['qpos'][j,7:])**2,axis=1)<.04)) + ids = np.array([j]) + weight = np.exp(-(cost[ids]-np.min(cost[ids]))/.025) + action = np.sum(b['actions'][ids]*weight[:,None],axis=0)/weight.sum() + self.visits[j] += 1 + self.last_index = j + self.status = 'observation-conditioned retrieval; completion unknown' + # Single contract action part: arm translation, arm rotation, 16 dex deltas. + return np.clip(action,-1.,1.).astype(np.float32) + +_controller = None + +def reset_episode(): + global _controller + if _controller is None: + _controller = Controller() + else: + _controller.reset_episode() + +def act(obs): + global _controller + if _controller is None: + reset_episode() + return _controller.act(obs) diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/demo_manifest.json b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/demo_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..e4ff6beebab891b80a1ea9a578825dfd66c5d283 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/demo_manifest.json @@ -0,0 +1,1488 @@ +{ + "task_id": "ClutterGrasp-v1", + "status": "released", + "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data", + "lineage_status": "pinned_comparator", + "episodes": [ + { + "demo_id": "demo_00", + "file": "demo_00.h5", + "length": 936, + "fields": [ + { + "path": "actions", + "shape": [ + 936, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 937, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 937, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 937, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 937, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 937, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 937, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "dab48831f079e1c40fa3e9696aa39edff47e4e022d142c7767e2e1535135795e", + "source_sha256": "55248d8a5853918dea2736deae5ca3d87cd7a217decc5c5414a1c04ff872db9c", + "view_sha256": "bb87560299133fded4b00d572f0e1735abb77f64b225619b7d9ad106e91d0ded" + }, + { + "demo_id": "demo_01", + "file": "demo_01.h5", + "length": 318, + "fields": [ + { + "path": "actions", + "shape": [ + 318, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 319, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 319, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 319, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 319, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 319, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 319, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "5c656f6b5c439c3ee4c9d9edadd53873d0d587ec0dc99a0e5d944cfa3cbb8591", + "source_sha256": "ba9f86626955ffb48a871e34470389e09ccff50f66ed00abc39c6204498491ea", + "view_sha256": "15050afcb690f2fedd109b0f3b3e7cf27a86e5ec1a27bc7e65a6dade6b017aa0" + }, + { + "demo_id": "demo_02", + "file": "demo_02.h5", + "length": 405, + "fields": [ + { + "path": "actions", + "shape": [ + 405, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 406, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 406, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 406, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 406, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 406, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 406, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "f5ee0d01a13f2ec7fd185109ecccc76ff47c188f2a5fa796528e211c2d36db72", + "source_sha256": "a8c9ccca94755fd4eca40f492c37eafb0e696307baeb849e36776bc74e9698d0", + "view_sha256": "3adf8a2cdda877ab9148f101dc12306f5e6a27385a0266d4c4dcd210f77ef512" + }, + { + "demo_id": "demo_03", + "file": "demo_03.h5", + "length": 1040, + "fields": [ + { + "path": "actions", + "shape": [ + 1040, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 1041, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 1041, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1041, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1041, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 1041, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1041, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "1afb18dfeb547127a15601caef162514e88afadd740e37031973ead8174dccfe", + "source_sha256": "982062e5cec6d5ab97fbe1e379fa94ff3ec85ff2e8eb2ca724d0ffda21c287aa", + "view_sha256": "11aa54f027b3e9cb5e08b72010dd2df99b64ea687d65b0781c0fec9e2812a4b1" + }, + { + "demo_id": "demo_04", + "file": "demo_04.h5", + "length": 301, + "fields": [ + { + "path": "actions", + "shape": [ + 301, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 302, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 302, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 302, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 302, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 302, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 302, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "ba85d9b7138933b0bcefe696d61faf6becaac28dd6f8d25ee45e3cbd9c2117b5", + "source_sha256": "9357bddce0221366f9b55ea2deb97aff87c197b728bc2e74bb7ca9a7e2375999", + "view_sha256": "d4eaad0568dba1bddabf2bbbb31cbbe367c2b46d0828d5cd81866cccebc68a5d" + }, + { + "demo_id": "demo_05", + "file": "demo_05.h5", + "length": 292, + "fields": [ + { + "path": "actions", + "shape": [ + 292, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 293, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 293, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 293, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 293, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 293, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 293, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "b233b5e852f19f08fc83e12714e6c599645f4aa799185c8fa83cba959ad41f15", + "source_sha256": "e6b2f01b11500983672a69a19109ec4e2b097b7026dd9a0e2e4a7d552166ef86", + "view_sha256": "6d450eae8f6c4144b902a5fee7e7e5f17195565c02db660ab51c61b26ae772c6" + }, + { + "demo_id": "demo_06", + "file": "demo_06.h5", + "length": 240, + "fields": [ + { + "path": "actions", + "shape": [ + 240, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 241, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 241, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 241, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 241, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 241, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 241, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "b383c493ba96ffad34bb63a88204086a7537bb2758f5ca6bd9f298e6fcdaf37e", + "source_sha256": "eb350905e6870180aa7b486aed156ce0275240ecea52a3f50bd934df4f59e4bb", + "view_sha256": "5f4b9bd7d4d632a6bec7272c822ec98fe316b5a9d274a0700cfcf415c56d39c9" + }, + { + "demo_id": "demo_07", + "file": "demo_07.h5", + "length": 1019, + "fields": [ + { + "path": "actions", + "shape": [ + 1019, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 1020, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 1020, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1020, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1020, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 1020, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1020, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "dc689ee3a11f685b4ce1af0170e3df8b513565344a21a30560040f12134f17e7", + "source_sha256": "2dae4b7e0f65fdd6d87f31506d764d3e3d5ffdaeb019a1bad5750897c70d7215", + "view_sha256": "e7f47f8773c2981f4b7a6890c53fae2537ca949c187f7feb2da0371a64f27482" + }, + { + "demo_id": "demo_08", + "file": "demo_08.h5", + "length": 228, + "fields": [ + { + "path": "actions", + "shape": [ + 228, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 229, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 229, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 229, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 229, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 229, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 229, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "9ba741d3b267f2929eee6612771932dcbad71154db201136193efb9a182c8a77", + "source_sha256": "1d63d092341b7df28ee7767f235e4043a27f6e15bf21745871e6a84eb3506665", + "view_sha256": "a6c0b85e08dcc2760aa816439e224e9f34d2825fb0502c7aaee7c535b74a63c7" + }, + { + "demo_id": "demo_09", + "file": "demo_09.h5", + "length": 441, + "fields": [ + { + "path": "actions", + "shape": [ + 441, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 442, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 442, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 442, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 442, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 442, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 442, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "00265cf3b670e4f8c55d81e14645ecd8ea09ad48759bb4f709f26bf88fa8aba4", + "source_sha256": "d0dd5888511d07b0f4280247031a7412f5c47da8a7e5162fee75a5005083f2ad", + "view_sha256": "a150d4ba98ef65704f14437632bbe96fb95f75a1a2460c1d18b788c4472f24f2" + }, + { + "demo_id": "demo_10", + "file": "demo_10.h5", + "length": 245, + "fields": [ + { + "path": "actions", + "shape": [ + 245, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 246, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 246, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 246, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 246, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 246, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 246, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "0ce0ae6235e9a8c02526fb6e6d27aaa006672800f2c42183ffe84b15e601ab1b", + "source_sha256": "aeffde5e07b66b97dca58c0282d2c5e205806ab5828977f0514db19b29cde198", + "view_sha256": "3450f14a479ea22a86a7e0257e7eb7638045550904a736a4619be0602e20014b" + }, + { + "demo_id": "demo_11", + "file": "demo_11.h5", + "length": 378, + "fields": [ + { + "path": "actions", + "shape": [ + 378, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 379, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 379, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 379, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 379, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 379, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 379, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "8e089d9a3c04d4591de174f354198162760a9e86f8a77bf58bbcf45524a96d52", + "source_sha256": "7a2dcab7b6159c0846dc4c20e908319bceadc13eb7c90e97eaf95bca86dd235f", + "view_sha256": "e3604c389cc4940ea84e647c6ca846a47ee7cdf4ac6fcf2299d2f179c1a61ed5" + }, + { + "demo_id": "demo_12", + "file": "demo_12.h5", + "length": 1015, + "fields": [ + { + "path": "actions", + "shape": [ + 1015, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 1016, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 1016, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1016, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1016, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 1016, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1016, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "6431fbf1351024117942895439c9965f3be2fab2eb63d24779e741544c7f64bb", + "source_sha256": "2f2268c255c99f0d6df3fa9d88ceb77d85b308cbd872310abfbf0bdf4989f3c4", + "view_sha256": "61baf52c80fbca72fb9577b6bd81821d4cbe0bd7de9f6797b4f16f277374c7de" + }, + { + "demo_id": "demo_13", + "file": "demo_13.h5", + "length": 389, + "fields": [ + { + "path": "actions", + "shape": [ + 389, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 390, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 390, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 390, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 390, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 390, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 390, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "c54faeb87f90e5126fca09043e52a23db3cbb010b50ed89e569bc72dc49eeb4d", + "source_sha256": "dd98a788620a930a892f07cd6c22d6dc2637953f0cb403994f8c704e40f9b104", + "view_sha256": "e32e0f5e84f0090a2ed273faceeeeb295dd393ef7e3eb12a58d8b146427d468a" + }, + { + "demo_id": "demo_14", + "file": "demo_14.h5", + "length": 231, + "fields": [ + { + "path": "actions", + "shape": [ + 231, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 232, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 232, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 232, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 232, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 232, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 232, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "6394d9f802d46d3f752e947234abe8ea3d493e213c127977491614451799e53b", + "source_sha256": "dcda657996ff8d4a7f482c0d38a1825fe627772e4550e7df13acd83cdcfa7c1e", + "view_sha256": "bc6796fe94025443a9f7fc67e6e6fcec80cc604fe406437572a4d3125171266f" + }, + { + "demo_id": "demo_15", + "file": "demo_15.h5", + "length": 356, + "fields": [ + { + "path": "actions", + "shape": [ + 356, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 357, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 357, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 357, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 357, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 357, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 357, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "91e57e6d6f3a974d2713ea2081635a8964d61ae76c76654b08122514916e7cf7", + "source_sha256": "f1531f5227d037ebb48210817c57aedc1779eb406be8c3846f2780d31faa580a", + "view_sha256": "c9e7826aa6bcf33363929fefc6e5cb2580dac300376bedbc6156bf0622d21351" + }, + { + "demo_id": "demo_16", + "file": "demo_16.h5", + "length": 224, + "fields": [ + { + "path": "actions", + "shape": [ + 224, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 225, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 225, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 225, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 225, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 225, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 225, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "696196f0b593da9da6186401c0c76b47da0986a34ce3b4c6ed3e890d867906fc", + "source_sha256": "181cc7503796c1603dc01c6462f6cc7742c3b200535841411a06cc799494f8c2", + "view_sha256": "6abd01b1f01bed9a59d06695dec06b508a3d642e2987428cb4af805abb30cf32" + }, + { + "demo_id": "demo_17", + "file": "demo_17.h5", + "length": 439, + "fields": [ + { + "path": "actions", + "shape": [ + 439, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 440, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 440, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 440, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 440, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 440, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 440, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "d18e87622374747359a904766f02a36270732f7c1b0e6279ed2eaa573a43546e", + "source_sha256": "c9fbfa00fd88aaad9575e17ff3002e55eca7fc988bdc2a2e0b812964a1611feb", + "view_sha256": "ada460f2cc65d1e5cdb35107c68f0e8d429419cc4ab15315e9f61b48906e929c" + }, + { + "demo_id": "demo_18", + "file": "demo_18.h5", + "length": 498, + "fields": [ + { + "path": "actions", + "shape": [ + 498, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 499, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 499, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 499, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 499, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 499, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 499, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "4b6184fa834edddaa06983811889f8aa4e0709a356017fbaf277668f3f644a08", + "source_sha256": "7f839a9a8fd9b3c51f95f19cc9b67678cfff859e0de25a10f02f0061145ec57e", + "view_sha256": "2c9b2ccb54f14a8b2943019ba8f1f063b950dd93aa23551ab17f74853553821f" + }, + { + "demo_id": "demo_19", + "file": "demo_19.h5", + "length": 807, + "fields": [ + { + "path": "actions", + "shape": [ + 807, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 808, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 808, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 808, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 808, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 808, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 808, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "a548a3c0b1176a3ad2aca3f62ca319e0d67f7c810040c8be4c94b7325e6f526f", + "source_sha256": "3bcb1d949f69156f113b478d9abfb3346551d32c3f139f2180e219a93b295bfe", + "view_sha256": "f19ef24f0605a5de54c7f40c53e2e5e7f2b87781190eb17d3e25a6145f49535f" + } + ] +} diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/environment.lock b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/environment.lock new file mode 100644 index 0000000000000000000000000000000000000000..b2237f47d93aa4c3efad07728ae6acd137912d6d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/environment.lock @@ -0,0 +1,249 @@ +absl-py==2.4.0 +accelerate==1.13.0 +addict==2.4.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.13.5 +aiosignal==1.4.0 +annotated-types==0.7.0 +anyio==4.13.0 +anytree==2.13.0 +asttokens==3.0.1 +async-timeout==5.0.1 +attrs==26.1.0 +av==15.1.0 +blinker==1.9.0 +casadi==3.7.2 +certifi==2026.4.22 +cffi==2.0.0 +charset-normalizer==3.4.7 +click==8.3.3 +cloudpickle==3.1.2 +cmake==4.1.3 +coacd==1.0.11 +colorama==0.4.6 +colorlog==6.10.1 +comm==0.2.3 +ConfigArgParse==1.7.5 +contourpy==1.3.2 +cuda-bindings==12.9.4 +cuda-pathfinder==1.5.4 +cycler==0.12.1 +dacite==1.9.2 +dash==4.1.0 +dataclasses-json==0.6.7 +datasets==4.8.5 +decorator==5.2.1 +deepdiff==8.6.2 +Deprecated==1.3.1 +diffusers==0.35.2 +dill==0.4.1 +docstring_parser==0.18.0 +draccus==0.10.0 +einops==0.8.2 +embreex==4.4.0 +etils==1.13.0 +evdev==1.9.3 +exceptiongroup==1.3.1 +executing==2.2.1 +Farama-Notifications==0.0.6 +fast_simplification==0.1.13 +fastjsonschema==2.21.2 +filelock==3.29.0 +Flask==3.1.3 +fonttools==4.63.0 +freetype-py==2.5.1 +frozenlist==1.8.0 +fsspec==2026.2.0 +genesis-world @ file:///data/gck/genesis-world +git-filter-repo==2.47.0 +gitdb==4.0.12 +GitPython==3.1.50 +glfw==2.10.0 +gs-madrona==0.0.5 +gstaichi==3.3.0 +gym==0.26.2 +gym-notices==0.1.0 +gymnasium==1.3.0 +h11==0.16.0 +h5py==3.16.0 +hf-xet==1.5.0 +hf_transfer==0.1.9 +httpcore==1.0.9 +httpx==0.28.1 +huggingface-hub==0.35.3 +idna==3.15 +ImageIO==2.37.3 +imageio-ffmpeg==0.6.0 +importlib_metadata==9.0.0 +importlib_resources==7.1.0 +inquirerpy==0.3.4 +ipython==8.39.0 +ipywidgets==8.1.8 +itsdangerous==2.2.0 +jedi==0.20.0 +Jinja2==3.1.6 +joblib==1.5.3 +jsonlines==4.0.0 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +jupyter_core==5.9.1 +jupyterlab_widgets==3.0.16 +kiwisolver==1.5.0 +lazy-loader==0.5 +lerobot==0.4.4 +libigl==2.6.2 +llvmlite==0.47.0 +loguru==0.7.3 +lxml==6.1.0 +manifold3d==3.4.1 +-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder +mapbox_earcut==2.0.0 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +marshmallow==3.26.2 +matplotlib==3.10.9 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mergedeep==1.3.4 +moviepy==2.2.1 +mpmath==1.3.0 +msgspec==0.21.1 +mujoco==3.8.1 +multidict==6.7.1 +multiprocess==0.70.19 +mypy_extensions==1.1.0 +nbformat==5.10.4 +nest-asyncio==1.6.0 +networkx==3.4.2 +ninja==1.13.0 +nlopt==2.10.0 +numba==0.65.1 +numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d +nvidia-cublas-cu12==12.8.4.1 +nvidia-cuda-cupti-cu12==12.8.90 +nvidia-cuda-nvrtc-cu12==12.8.93 +nvidia-cuda-runtime-cu12==12.8.90 +nvidia-cudnn-cu12==9.10.2.21 +nvidia-cufft-cu12==11.3.3.83 +nvidia-cufile-cu12==1.13.1.3 +nvidia-curand-cu12==10.3.9.90 +nvidia-cusolver-cu12==11.7.3.90 +nvidia-cusparse-cu12==12.5.8.93 +nvidia-cusparselt-cu12==0.7.1 +nvidia-nccl-cu12==2.27.5 +nvidia-nvjitlink-cu12==12.8.93 +nvidia-nvshmem-cu12==3.4.5 +nvidia-nvtx-cu12==12.8.90 +open3d==0.19.0 +opencv-python==4.13.0.92 +opencv-python-headless==4.12.0.88 +OpenEXR==3.4.11 +orderly-set==5.5.0 +packaging==25.0 +pandas==2.3.3 +parso==0.8.7 +pexpect==4.9.0 +pfzy==0.3.4 +pillow==11.3.0 +pin==4.0.0 +pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work +platformdirs==4.9.6 +plotly==5.24.1 +polyscope==2.6.1 +proglog==0.1.12 +prompt_toolkit==3.0.52 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +pure_eval==0.2.3 +py-cpuinfo==9.0.0 +py-spy==0.4.2 +pyarrow==24.0.0 +pycollada==0.9.3 +pycparser==3.0 +pydantic==2.13.4 +pydantic_core==2.46.4 +PyGEL3D==0.6.1 +pyglet==2.1.14 +pygltflib==1.16.0 +Pygments==2.20.0 +pymeshlab==2025.7.post1 +pynput==1.8.2 +PyOpenGL==3.1.10 +pyparsing==3.3.2 +pyperclip==1.11.0 +PyQt6==6.11.0 +PyQt6-Qt6==6.11.0 +PyQt6_sip==13.11.1 +pyquaternion==0.9.9 +pyserial==3.5 +pysplashsurf==0.12.0.2 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +python-xlib==0.33 +pytransform3d==3.15.0 +pytz==2026.2 +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 +PyYAML==6.0.3 +pyyaml-include==1.4.1 +referencing==0.37.0 +regex==2026.5.9 +requests==2.34.2 +rerun-sdk==0.26.2 +retrying==1.4.2 +rich==14.3.4 +rpds-py==0.30.0 +rtree==1.4.1 +safetensors==0.7.0 +sapien==3.0.3 +scikit-image==0.25.2 +scikit-learn==1.7.2 +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 +sentry-sdk==2.60.0 +setuptools==80.10.2 +shapely==2.1.2 +six==1.17.0 +smmap==5.0.3 +stack-data==0.6.3 +svg.path==7.0 +sympy==1.14.0 +tenacity==9.1.4 +termcolor==3.3.0 +tetgen==0.8.4 +threadpoolctl==3.6.0 +tifffile==2025.5.10 +timm==1.0.27 +toml==0.10.2 +torch==2.10.0 +torchaudio==2.11.0 +torchcodec==0.10.0 +torchvision==0.25.0 +tqdm==4.67.3 +traitlets==5.15.0 +transforms3d==0.4.2 +trimesh==4.12.2 +triton==3.6.0 +typeguard==4.5.2 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +tyro==1.0.13 +tzdata==2026.2 +urllib3==2.7.0 +vhacdx==0.0.10 +viser==1.0.27 +vtk==9.6.1 +wandb==0.24.2 +wcwidth==0.7.0 +websockets==16.0 +Werkzeug==3.1.8 +wheel==0.46.3 +widgetsnbextension==4.0.15 +wrapt==2.1.2 +xxhash==3.7.0 +yarl==1.23.0 +yourdfpy==0.0.60 +z3-solver==4.16.0.0 +zipp==3.23.1 +zstandard==0.25.0 diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/findings.md b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/findings.md new file mode 100644 index 0000000000000000000000000000000000000000..14a5167e6ac2ec985fd9b6578ee718d24f7a94cd --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/findings.md @@ -0,0 +1,16 @@ +# Offline findings + +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. + +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. + +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. + +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. + +## Live exploration update +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. + +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. + +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. diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/freeze_manifest.json b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/freeze_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..29b4ccd33317abc36917d87cfc458eae027cfdc5 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/freeze_manifest.json @@ -0,0 +1,142 @@ +{ + "files": { + "__pycache__/build_reference.cpython-310.pyc": "69078541856ec99f2691d9d5fc58ce547ce51915d2ad3c123cff03e896ff6046", + "__pycache__/check_synthetic.cpython-310.pyc": "513ef8be9ec286c717dd0d1f3dc3424be618f9c0e0ca1854a2b97805ef1bb18e", + "__pycache__/controller.cpython-310.pyc": "da6e47b1606384f5b8faa99f959a321c52e76342bc7b54150c4be61b3f4f01ad", + "build_reference.py": "6780056dc19f08562bfaa545e12d322556062922b56524b274a9c987b8b29f8b", + "check_synthetic.py": "2906c2036f1292a3b67a5ebfb0e71ee00c5af4cee1d83be4746969c7a6efff69", + "controller.py": "9ed34516e7b01e98bc77da608405dc2d7844a71778b776545d0819ed7983e628", + "demo_manifest.json": "4440bd5aa3d3098c67e025eb69840d932251cda94cee9d05a209537c9ab3ec8f", + "demonstrations_readonly/demo_00.h5": "bb87560299133fded4b00d572f0e1735abb77f64b225619b7d9ad106e91d0ded", + "demonstrations_readonly/demo_01.h5": "15050afcb690f2fedd109b0f3b3e7cf27a86e5ec1a27bc7e65a6dade6b017aa0", + "demonstrations_readonly/demo_02.h5": "3adf8a2cdda877ab9148f101dc12306f5e6a27385a0266d4c4dcd210f77ef512", + "demonstrations_readonly/demo_03.h5": "11aa54f027b3e9cb5e08b72010dd2df99b64ea687d65b0781c0fec9e2812a4b1", + "demonstrations_readonly/demo_04.h5": "d4eaad0568dba1bddabf2bbbb31cbbe367c2b46d0828d5cd81866cccebc68a5d", + "demonstrations_readonly/demo_05.h5": "6d450eae8f6c4144b902a5fee7e7e5f17195565c02db660ab51c61b26ae772c6", + "demonstrations_readonly/demo_06.h5": "5f4b9bd7d4d632a6bec7272c822ec98fe316b5a9d274a0700cfcf415c56d39c9", + "demonstrations_readonly/demo_07.h5": "e7f47f8773c2981f4b7a6890c53fae2537ca949c187f7feb2da0371a64f27482", + "demonstrations_readonly/demo_08.h5": "a6c0b85e08dcc2760aa816439e224e9f34d2825fb0502c7aaee7c535b74a63c7", + "demonstrations_readonly/demo_09.h5": "a150d4ba98ef65704f14437632bbe96fb95f75a1a2460c1d18b788c4472f24f2", + "demonstrations_readonly/demo_10.h5": "3450f14a479ea22a86a7e0257e7eb7638045550904a736a4619be0602e20014b", + "demonstrations_readonly/demo_11.h5": "e3604c389cc4940ea84e647c6ca846a47ee7cdf4ac6fcf2299d2f179c1a61ed5", + "demonstrations_readonly/demo_12.h5": "61baf52c80fbca72fb9577b6bd81821d4cbe0bd7de9f6797b4f16f277374c7de", + "demonstrations_readonly/demo_13.h5": "e32e0f5e84f0090a2ed273faceeeeb295dd393ef7e3eb12a58d8b146427d468a", + "demonstrations_readonly/demo_14.h5": "bc6796fe94025443a9f7fc67e6e6fcec80cc604fe406437572a4d3125171266f", + "demonstrations_readonly/demo_15.h5": "c9e7826aa6bcf33363929fefc6e5cb2580dac300376bedbc6156bf0622d21351", + "demonstrations_readonly/demo_16.h5": "6abd01b1f01bed9a59d06695dec06b508a3d642e2987428cb4af805abb30cf32", + "demonstrations_readonly/demo_17.h5": "ada460f2cc65d1e5cdb35107c68f0e8d429419cc4ab15315e9f61b48906e929c", + "demonstrations_readonly/demo_18.h5": "2c9b2ccb54f14a8b2943019ba8f1f063b950dd93aa23551ab17f74853553821f", + "demonstrations_readonly/demo_19.h5": "f19ef24f0605a5de54c7f40c53e2e5e7f2b87781190eb17d3e25a6145f49535f", + "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa", + "findings.md": "3d227523c7a145f6722005bd05aa7b54a5981f12dcd15074c86a03353c459265", + "handoff.md": "4fd6863e950f049fb2af0d228ddbc559fb39a55b345d3b095156c3de808c845b", + "localizer.py": "22572067de204558380295e0785d2d5d246e0eb22dfd416d29de08cad9db2a20", + "model_tool_manifest.yaml": "d94dc140b81b1cada29f57386e6d18a842a303281f894181c34d7137503ed2f2", + "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e", + "reference_bank.npz": "ee1dce57d4eb359ad2a8be436d0309084d06554b5b66ae846e028dbe819d6e99", + "reference_index.json": "7d131d9149bd44611135a0d5907782e40507746feb5d77abd4d17bbe8c81a92b", + "skills.md": "1be37edfdfaf3854778c953fb5708da5075d315090c28ccf12e5f09d15c13281", + "synthetic_check_results.json": "3c40c782b752d6df436fa8a9b26855a99fb43b42cbfe44526ecc758717b2c833", + "target_templates.npz": "3685ea42102b906c4588d2d2427c6e94b0158d95cfdc576efae2aaf5c364d437", + "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e" + }, + "bundle_hash": "9acacf6127730bb8b2263bea815d3af534d8b4c18ee43b03d2818cb5adc3da4e", + "exploration_ledger_hash": "cb611343649476aa559da3a74b9b1c7c7c7050c4d9824ce051a845f568a1daaf", + "entrypoint": "controller.reset_episode(); controller.act(obs)", + "selection": { + "rule": "exact-version success rate, valid rehearsal count, recency", + "rehearsals": [ + { + "bundle_hash": "87748d9f132ec51251b7e2a2e230e1e965871c7ad4701833259b6f3ffcd78dca", + "episode": 4, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "9acacf6127730bb8b2263bea815d3af534d8b4c18ee43b03d2818cb5adc3da4e", + "episode": 7, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": true, + "valid": true + }, + { + "bundle_hash": "1ec537f1f76fd717c63618817ae774cb9f1ae8508f300df66928fb86b53d9089", + "episode": 13, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "episode": 14, + "bundle_hash": "1ec537f1f76fd717c63618817ae774cb9f1ae8508f300df66928fb86b53d9089", + "independent": true, + "valid": false, + "status": "infrastructure_interrupted", + "success": false, + "score_source": "interrupted_no_score", + "recovery": "durable_rehearsal_request_and_charged_episode; no replay" + }, + { + "episode": 15, + "bundle_hash": "1ec537f1f76fd717c63618817ae774cb9f1ae8508f300df66928fb86b53d9089", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 16, + "bundle_hash": "1ec537f1f76fd717c63618817ae774cb9f1ae8508f300df66928fb86b53d9089", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 17, + "bundle_hash": "47059014cae71082fdb0f366ff7081f53df066a4af4f753a99423f7d698ae1d5", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 18, + "bundle_hash": "47059014cae71082fdb0f366ff7081f53df066a4af4f753a99423f7d698ae1d5", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 19, + "bundle_hash": "47059014cae71082fdb0f366ff7081f53df066a4af4f753a99423f7d698ae1d5", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 20, + "bundle_hash": "47059014cae71082fdb0f366ff7081f53df066a4af4f753a99423f7d698ae1d5", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + } + ] + } +} diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/handoff.md b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/handoff.md new file mode 100644 index 0000000000000000000000000000000000000000..5923f5abcd767b1ad2a5895e2a186d73e883fb67 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/handoff.md @@ -0,0 +1,9 @@ +# Runtime handoff + +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. + +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. + +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. + +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. diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/localizer.py b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/localizer.py new file mode 100644 index 0000000000000000000000000000000000000000..a719c54f77dd67ef9d97ee434c66ef9002ee1bc3 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/localizer.py @@ -0,0 +1,29 @@ +"""Fixed SIFT templates of this task's chips can; no neural model.""" +from pathlib import Path +import cv2,numpy as np +class Localizer: + def __init__(self): + z=np.load(Path(__file__).with_name('target_templates.npz'));self.bank={k:z[k] for k in z.files} + self.sift=cv2.SIFT_create(nfeatures=1200,contrastThreshold=.012,edgeThreshold=15);self.matcher=cv2.BFMatcher() + def locate(self,rgb): + im=np.asarray(rgb);im=im[0] if im.ndim==4 else im + im=cv2.resize(cv2.resize(im,(320,240),interpolation=cv2.INTER_AREA),(640,480)) + k,d=self.sift.detectAndCompute(cv2.cvtColor(im,cv2.COLOR_RGB2GRAY),None) + if d is None:return None + points=np.array([p.pt for p in k],np.float32);best=None + for i in range(20): + if len(self.bank[f'des_{i}'])<4:continue + matches=self.matcher.knnMatch(self.bank[f'des_{i}'],d,k=2) + pairs=[a for a,b in matches if a.distance<.72*b.distance and a.distance<260] + pairs=list({p.trainIdx:p for p in sorted(pairs,key=lambda p:-p.distance)}.values()) + if len(pairs)<4:continue + src=self.bank[f'pts_{i}'][[p.queryIdx for p in pairs]];dst=points[[p.trainIdx for p in pairs]] + m,mask=cv2.estimateAffinePartial2D(src,dst,method=cv2.RANSAC,ransacReprojThreshold=3,maxIters=1000) + if m is None:continue + n=int(mask.sum());scale=np.linalg.norm(m[:,0]);center=m[:,2] + if n<4 or not .650]);score=n-.2*err + if best is None or score>best['score']: + axis=m[:,:2]@self.bank[f'axis_{i}'];axis=axis/np.linalg.norm(axis) + best={'center':center.tolist(),'axis':axis.tolist(),'matches':n,'score':float(score),'template':i} + return best diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/model_tool_manifest.yaml b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/model_tool_manifest.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fbb19332622a7dc360e33bc1054688753d9614b8 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/model_tool_manifest.yaml @@ -0,0 +1,146 @@ +{ + "stage": "LEGAL E20 EXPLORATION", + "status": "experimental; independent rehearsal pending", + "task_id": "ClutterGrasp-v1", + "model": { + "coding_model": "Provider-hosted Codex assistant; exact deployed model/weight identifier not exposed", + "weight_updates": false, + "additional_neural_models_loaded": [], + "frozen_weight_references": [], + "note": "No pretrained tool weights loaded or changed; no neural finetuning." + }, + "runtime": { + "python": "3.10.20", + "numpy": "2.2.6", + "cv2_loaded_version": "4.12.0", + "required": [ + "Python standard library", + "NumPy", + "OpenCV" + ], + "data_files": [ + "reference_bank.npz", + "target_templates.npz" + ], + "network_required": false, + "code_files": [ + "controller.py", + "localizer.py" + ] + }, + "offline_dependencies": { + "h5py": "3.16.0", + "worker_api": "/worker_api.py API.read_demo only", + "installed_distribution_versions": { + "numpy": "2.2.6", + "h5py": "3.16.0", + "opencv-python": "4.13.0.92", + "opencv-python-headless": "4.12.0.88", + "scipy": "1.15.3", + "torch": "2.10.0" + }, + "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." + }, + "actual_tools": [ + { + "name": "functions.exec / exec_command / write_stdin", + "use": "local shell, file authoring, Python offline scripts and synthetic checks", + "version": "tool service version not exposed" + }, + { + "name": "functions.exec / view_image", + "use": "visually inspect all 20 contact sheets", + "version": "tool service version not exposed" + }, + { + "name": "Python standard library", + "use": "importlib, pathlib, json, hashlib, platform, sys, time, py_compile, importlib.metadata" + }, + { + "name": "NumPy", + "version": "2.2.6", + "use": "numeric sequence statistics, handcrafted descriptors, nonparametric retrieval, synthetic inputs" + }, + { + "name": "OpenCV", + "version": "4.12.0", + "use": "image resize/crops, contact sheet rendering, fixed red-excess descriptors" + }, + { + "name": "h5py", + "version": "3.16.0", + "use": "authorized HDF5 reads within API.read_demo" + }, + { + "name": "API.read_demo", + "sha256": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e", + "use": "local authorized RGB, qpos/qvel, action reads; no RPC calls" + }, + { + "name": "worker_api.API", + "use": "budget_status, next_episode, execute_actions, finish_episode, rehearse, score_rehearsal, freeze; only legal task interaction" + } + ], + "provenance": { + "contract_sha256": "08a3f60239efe641a9fa77e4d0041e80724741a181371bc11a0a16f1e80741d3", + "input_manifest_sha256": "1513b3c32b58886c53b3a9b0460f4b835dba8800ef849ccb7698e910c8d0b077", + "authorized_demo_ids": [ + "demo_00", + "demo_01", + "demo_02", + "demo_03", + "demo_04", + "demo_05", + "demo_06", + "demo_07", + "demo_08", + "demo_09", + "demo_10", + "demo_11", + "demo_12", + "demo_13", + "demo_14", + "demo_15", + "demo_16", + "demo_17", + "demo_18", + "demo_19" + ], + "source": "Only the 20 /demonstrations files named by supplied manifest", + "visual_inspection_record": "../demo_analysis.md and ../evidence/statistics.json", + "numeric_inspection_record": [ + "../evidence/statistics.json", + "../evidence/action_sequences.json", + "../evidence/velocity_statistics.json" + ], + "reference_computational_indices": "reference_index.json", + "reference_samples": 4696, + "construction": "build_reference.py; fixed handcrafted image descriptors and stored two-row action means; no optimization or neural fitting", + "runner_supplied_later": [ + "verified demo manifest", + "common environment lock" + ], + "target_templates": "All20 authorized demos, left_camera observation21; manual image-axis masks in exploration/template_annotations.json; fixed SIFT, no neural optimization" + }, + "validation": { + "completed_slots": 6, + "valid_independent_rehearsal_episodes": [ + 4 + ], + "interactive_native_success_episodes": [ + 6 + ], + "current_behavior_independently_rehearsed": false, + "frozen": false + }, + "limits": [ + "No internet or audited provider proxy request attempted; proxy capability unverified.", + "No simulator, hidden states, task-specific expert/controller, or other task data used.", + "Initial combined text tool output was truncated; full authorized manifest parsed locally afterward.", + "RGB features are coarse; wrist rendering artifacts and target occlusion can cause retrieval ambiguity.", + "Hand joint permutation and camera calibration are unknown.", + "Coverage thresholds and action blending are uncalibrated; policy may stall or continue moving after a grasp.", + "No success detector; None denotes horizon exhaustion only.", + "No external weight provenance needed because no additional neural model was loaded." + ] +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/policy_runner.py b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/policy_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..e49448d6245feb7818ae505f1061708ab97c6ead --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/policy_runner.py @@ -0,0 +1,25 @@ +"""Frozen-program entry point; no development agent and no reset capability.""" +import importlib.util +import sys + +sys.path.insert(0,'/artifact') +sys.path.insert(0,'/') +from worker_api import API + + +def main(): + spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py') + module=importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + module.reset_episode() + api=API() + result=api.latest_observation() + while not (result['terminated'] or result['truncated'] or result['horizon_reached']): + obs=dict(result['observation'],step_id=result['step_id']) + action=module.act(obs) + if action is None:break + response=api.execute_actions([action]) + result=response['steps'][-1] + + +if __name__=='__main__':main() diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/reference_index.json b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/reference_index.json new file mode 100644 index 0000000000000000000000000000000000000000..2d9bac3a9d7bb6b8a5ce608f2a98815434978aa6 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/reference_index.json @@ -0,0 +1,23622 @@ +[ + { + "demo_id": "demo_00", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355, + 357, + 359, + 361, + 363, + 365, + 367, + 369, + 371, + 373, + 375, + 377, + 379, + 381, + 383, + 385, + 387, + 389, + 391, + 393, + 395, + 397, + 399, + 401, + 403, + 405, + 407, + 409, + 411, + 413, + 415, + 417, + 419, + 421, + 423, + 425, + 427, + 429, + 431, + 433, + 435, + 437, + 439, + 441, + 443, + 445, + 447, + 449, + 451, + 453, + 455, + 457, + 459, + 461, + 463, + 465, + 467, + 469, + 471, + 473, + 475, + 477, + 479, + 481, + 483, + 485, + 487, + 489, + 491, + 493, + 495, + 497, + 499, + 501, + 503, + 505, + 507, + 509, + 511, + 513, + 515, + 517, + 519, + 521, + 523, + 525, + 527, + 529, + 531, + 533, + 535, + 537, + 539, + 541, + 543, + 545, + 547, + 549, + 551, + 553, + 555, + 557, + 559, + 561, + 563, + 565, + 567, + 569, + 571, + 573, + 575, + 577, + 579, + 581, + 583, + 585, + 587, + 589, + 591, + 593, + 595, + 597, + 599, + 601, + 603, + 605, + 607, + 609, + 611, + 613, + 615, + 617, + 619, + 621, + 623, + 625, + 627, + 629, + 631, + 633, + 635, + 637, + 639, + 641, + 643, + 645, + 647, + 649, + 651, + 653, + 655, + 657, + 659, + 661, + 663, + 665, + 667, + 669, + 671, + 673, + 675, + 677, + 679, + 681, + 683, + 685, + 687, + 689, + 691, + 693, + 695, + 697, + 699, + 701, + 703, + 705, + 707, + 709, + 711, + 713, + 715, + 717, + 719, + 721, + 723, + 725, + 727, + 729, + 731, + 733, + 735, + 737, + 739, + 741, + 743, + 745, + 747, + 749, + 751, + 753, + 755, + 757, + 759, + 761, + 763, + 765, + 767, + 769, + 771, + 773, + 775, + 777, + 779, + 781, + 783, + 785, + 787, + 789, + 791, + 793, + 795, + 797, + 799, + 801, + 803, + 805, + 807, + 809, + 811, + 813, + 815, + 817, + 819, + 821, + 823, + 825, + 827, + 829, + 831, + 833, + 835, + 837, + 839, + 841, + 843, + 845, + 847, + 849, + 851, + 853, + 855, + 857, + 859, + 861, + 863, + 865, + 867, + 869, + 871, + 873, + 875, + 877, + 879, + 881, + 883, + 885, + 887, + 889, + 891, + 893, + 895, + 897, + 899, + 901, + 903, + 905, + 907, + 909, + 911, + 913, + 915, + 917, + 919, + 921, + 923, + 925, + 927, + 929, + 931, + 933, + 935 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 357 + ], + [ + 357, + 359 + ], + [ + 359, + 361 + ], + [ + 361, + 363 + ], + [ + 363, + 365 + ], + [ + 365, + 367 + ], + [ + 367, + 369 + ], + [ + 369, + 371 + ], + [ + 371, + 373 + ], + [ + 373, + 375 + ], + [ + 375, + 377 + ], + [ + 377, + 379 + ], + [ + 379, + 381 + ], + [ + 381, + 383 + ], + [ + 383, + 385 + ], + [ + 385, + 387 + ], + [ + 387, + 389 + ], + [ + 389, + 391 + ], + [ + 391, + 393 + ], + [ + 393, + 395 + ], + [ + 395, + 397 + ], + [ + 397, + 399 + ], + [ + 399, + 401 + ], + [ + 401, + 403 + ], + [ + 403, + 405 + ], + [ + 405, + 407 + ], + [ + 407, + 409 + ], + [ + 409, + 411 + ], + [ + 411, + 413 + ], + [ + 413, + 415 + ], + [ + 415, + 417 + ], + [ + 417, + 419 + ], + [ + 419, + 421 + ], + [ + 421, + 423 + ], + [ + 423, + 425 + ], + [ + 425, + 427 + ], + [ + 427, + 429 + ], + [ + 429, + 431 + ], + [ + 431, + 433 + ], + [ + 433, + 435 + ], + [ + 435, + 437 + ], + [ + 437, + 439 + ], + [ + 439, + 441 + ], + [ + 441, + 443 + ], + [ + 443, + 445 + ], + [ + 445, + 447 + ], + [ + 447, + 449 + ], + [ + 449, + 451 + ], + [ + 451, + 453 + ], + [ + 453, + 455 + ], + [ + 455, + 457 + ], + [ + 457, + 459 + ], + [ + 459, + 461 + ], + [ + 461, + 463 + ], + [ + 463, + 465 + ], + [ + 465, + 467 + ], + [ + 467, + 469 + ], + [ + 469, + 471 + ], + [ + 471, + 473 + ], + [ + 473, + 475 + ], + [ + 475, + 477 + ], + [ + 477, + 479 + ], + [ + 479, + 481 + ], + [ + 481, + 483 + ], + [ + 483, + 485 + ], + [ + 485, + 487 + ], + [ + 487, + 489 + ], + [ + 489, + 491 + ], + [ + 491, + 493 + ], + [ + 493, + 495 + ], + [ + 495, + 497 + ], + [ + 497, + 499 + ], + [ + 499, + 501 + ], + [ + 501, + 503 + ], + [ + 503, + 505 + ], + [ + 505, + 507 + ], + [ + 507, + 509 + ], + [ + 509, + 511 + ], + [ + 511, + 513 + ], + [ + 513, + 515 + ], + [ + 515, + 517 + ], + [ + 517, + 519 + ], + [ + 519, + 521 + ], + [ + 521, + 523 + ], + [ + 523, + 525 + ], + [ + 525, + 527 + ], + [ + 527, + 529 + ], + [ + 529, + 531 + ], + [ + 531, + 533 + ], + [ + 533, + 535 + ], + [ + 535, + 537 + ], + [ + 537, + 539 + ], + [ + 539, + 541 + ], + [ + 541, + 543 + ], + [ + 543, + 545 + ], + [ + 545, + 547 + ], + [ + 547, + 549 + ], + [ + 549, + 551 + ], + [ + 551, + 553 + ], + [ + 553, + 555 + ], + [ + 555, + 557 + ], + [ + 557, + 559 + ], + [ + 559, + 561 + ], + [ + 561, + 563 + ], + [ + 563, + 565 + ], + [ + 565, + 567 + ], + [ + 567, + 569 + ], + [ + 569, + 571 + ], + [ + 571, + 573 + ], + [ + 573, + 575 + ], + [ + 575, + 577 + ], + [ + 577, + 579 + ], + [ + 579, + 581 + ], + [ + 581, + 583 + ], + [ + 583, + 585 + ], + [ + 585, + 587 + ], + [ + 587, + 589 + ], + [ + 589, + 591 + ], + [ + 591, + 593 + ], + [ + 593, + 595 + ], + [ + 595, + 597 + ], + [ + 597, + 599 + ], + [ + 599, + 601 + ], + [ + 601, + 603 + ], + [ + 603, + 605 + ], + [ + 605, + 607 + ], + [ + 607, + 609 + ], + [ + 609, + 611 + ], + [ + 611, + 613 + ], + [ + 613, + 615 + ], + [ + 615, + 617 + ], + [ + 617, + 619 + ], + [ + 619, + 621 + ], + [ + 621, + 623 + ], + [ + 623, + 625 + ], + [ + 625, + 627 + ], + [ + 627, + 629 + ], + [ + 629, + 631 + ], + [ + 631, + 633 + ], + [ + 633, + 635 + ], + [ + 635, + 637 + ], + [ + 637, + 639 + ], + [ + 639, + 641 + ], + [ + 641, + 643 + ], + [ + 643, + 645 + ], + [ + 645, + 647 + ], + [ + 647, + 649 + ], + [ + 649, + 651 + ], + [ + 651, + 653 + ], + [ + 653, + 655 + ], + [ + 655, + 657 + ], + [ + 657, + 659 + ], + [ + 659, + 661 + ], + [ + 661, + 663 + ], + [ + 663, + 665 + ], + [ + 665, + 667 + ], + [ + 667, + 669 + ], + [ + 669, + 671 + ], + [ + 671, + 673 + ], + [ + 673, + 675 + ], + [ + 675, + 677 + ], + [ + 677, + 679 + ], + [ + 679, + 681 + ], + [ + 681, + 683 + ], + [ + 683, + 685 + ], + [ + 685, + 687 + ], + [ + 687, + 689 + ], + [ + 689, + 691 + ], + [ + 691, + 693 + ], + [ + 693, + 695 + ], + [ + 695, + 697 + ], + [ + 697, + 699 + ], + [ + 699, + 701 + ], + [ + 701, + 703 + ], + [ + 703, + 705 + ], + [ + 705, + 707 + ], + [ + 707, + 709 + ], + [ + 709, + 711 + ], + [ + 711, + 713 + ], + [ + 713, + 715 + ], + [ + 715, + 717 + ], + [ + 717, + 719 + ], + [ + 719, + 721 + ], + [ + 721, + 723 + ], + [ + 723, + 725 + ], + [ + 725, + 727 + ], + [ + 727, + 729 + ], + [ + 729, + 731 + ], + [ + 731, + 733 + ], + [ + 733, + 735 + ], + [ + 735, + 737 + ], + [ + 737, + 739 + ], + [ + 739, + 741 + ], + [ + 741, + 743 + ], + [ + 743, + 745 + ], + [ + 745, + 747 + ], + [ + 747, + 749 + ], + [ + 749, + 751 + ], + [ + 751, + 753 + ], + [ + 753, + 755 + ], + [ + 755, + 757 + ], + [ + 757, + 759 + ], + [ + 759, + 761 + ], + [ + 761, + 763 + ], + [ + 763, + 765 + ], + [ + 765, + 767 + ], + [ + 767, + 769 + ], + [ + 769, + 771 + ], + [ + 771, + 773 + ], + [ + 773, + 775 + ], + [ + 775, + 777 + ], + [ + 777, + 779 + ], + [ + 779, + 781 + ], + [ + 781, + 783 + ], + [ + 783, + 785 + ], + [ + 785, + 787 + ], + [ + 787, + 789 + ], + [ + 789, + 791 + ], + [ + 791, + 793 + ], + [ + 793, + 795 + ], + [ + 795, + 797 + ], + [ + 797, + 799 + ], + [ + 799, + 801 + ], + [ + 801, + 803 + ], + [ + 803, + 805 + ], + [ + 805, + 807 + ], + [ + 807, + 809 + ], + [ + 809, + 811 + ], + [ + 811, + 813 + ], + [ + 813, + 815 + ], + [ + 815, + 817 + ], + [ + 817, + 819 + ], + [ + 819, + 821 + ], + [ + 821, + 823 + ], + [ + 823, + 825 + ], + [ + 825, + 827 + ], + [ + 827, + 829 + ], + [ + 829, + 831 + ], + [ + 831, + 833 + ], + [ + 833, + 835 + ], + [ + 835, + 837 + ], + [ + 837, + 839 + ], + [ + 839, + 841 + ], + [ + 841, + 843 + ], + [ + 843, + 845 + ], + [ + 845, + 847 + ], + [ + 847, + 849 + ], + [ + 849, + 851 + ], + [ + 851, + 853 + ], + [ + 853, + 855 + ], + [ + 855, + 857 + ], + [ + 857, + 859 + ], + [ + 859, + 861 + ], + [ + 861, + 863 + ], + [ + 863, + 865 + ], + [ + 865, + 867 + ], + [ + 867, + 869 + ], + [ + 869, + 871 + ], + [ + 871, + 873 + ], + [ + 873, + 875 + ], + [ + 875, + 877 + ], + [ + 877, + 879 + ], + [ + 879, + 881 + ], + [ + 881, + 883 + ], + [ + 883, + 885 + ], + [ + 885, + 887 + ], + [ + 887, + 889 + ], + [ + 889, + 891 + ], + [ + 891, + 893 + ], + [ + 893, + 895 + ], + [ + 895, + 897 + ], + [ + 897, + 899 + ], + [ + 899, + 901 + ], + [ + 901, + 903 + ], + [ + 903, + 905 + ], + [ + 905, + 907 + ], + [ + 907, + 909 + ], + [ + 909, + 911 + ], + [ + 911, + 913 + ], + [ + 913, + 915 + ], + [ + 915, + 917 + ], + [ + 917, + 919 + ], + [ + 919, + 921 + ], + [ + 921, + 923 + ], + [ + 923, + 925 + ], + [ + 925, + 927 + ], + [ + 927, + 929 + ], + [ + 929, + 931 + ], + [ + 931, + 933 + ], + [ + 933, + 935 + ], + [ + 935, + 936 + ] + ] + }, + { + "demo_id": "demo_01", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 318 + ] + ] + }, + { + "demo_id": "demo_02", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355, + 357, + 359, + 361, + 363, + 365, + 367, + 369, + 371, + 373, + 375, + 377, + 379, + 381, + 383, + 385, + 387, + 389, + 391, + 393, + 395, + 397, + 399, + 401, + 403 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 357 + ], + [ + 357, + 359 + ], + [ + 359, + 361 + ], + [ + 361, + 363 + ], + [ + 363, + 365 + ], + [ + 365, + 367 + ], + [ + 367, + 369 + ], + [ + 369, + 371 + ], + [ + 371, + 373 + ], + [ + 373, + 375 + ], + [ + 375, + 377 + ], + [ + 377, + 379 + ], + [ + 379, + 381 + ], + [ + 381, + 383 + ], + [ + 383, + 385 + ], + [ + 385, + 387 + ], + [ + 387, + 389 + ], + [ + 389, + 391 + ], + [ + 391, + 393 + ], + [ + 393, + 395 + ], + [ + 395, + 397 + ], + [ + 397, + 399 + ], + [ + 399, + 401 + ], + [ + 401, + 403 + ], + [ + 403, + 405 + ] + ] + }, + { + "demo_id": "demo_03", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355, + 357, + 359, + 361, + 363, + 365, + 367, + 369, + 371, + 373, + 375, + 377, + 379, + 381, + 383, + 385, + 387, + 389, + 391, + 393, + 395, + 397, + 399, + 401, + 403, + 405, + 407, + 409, + 411, + 413, + 415, + 417, + 419, + 421, + 423, + 425, + 427, + 429, + 431, + 433, + 435, + 437, + 439, + 441, + 443, + 445, + 447, + 449, + 451, + 453, + 455, + 457, + 459, + 461, + 463, + 465, + 467, + 469, + 471, + 473, + 475, + 477, + 479, + 481, + 483, + 485, + 487, + 489, + 491, + 493, + 495, + 497, + 499, + 501, + 503, + 505, + 507, + 509, + 511, + 513, + 515, + 517, + 519, + 521, + 523, + 525, + 527, + 529, + 531, + 533, + 535, + 537, + 539, + 541, + 543, + 545, + 547, + 549, + 551, + 553, + 555, + 557, + 559, + 561, + 563, + 565, + 567, + 569, + 571, + 573, + 575, + 577, + 579, + 581, + 583, + 585, + 587, + 589, + 591, + 593, + 595, + 597, + 599, + 601, + 603, + 605, + 607, + 609, + 611, + 613, + 615, + 617, + 619, + 621, + 623, + 625, + 627, + 629, + 631, + 633, + 635, + 637, + 639, + 641, + 643, + 645, + 647, + 649, + 651, + 653, + 655, + 657, + 659, + 661, + 663, + 665, + 667, + 669, + 671, + 673, + 675, + 677, + 679, + 681, + 683, + 685, + 687, + 689, + 691, + 693, + 695, + 697, + 699, + 701, + 703, + 705, + 707, + 709, + 711, + 713, + 715, + 717, + 719, + 721, + 723, + 725, + 727, + 729, + 731, + 733, + 735, + 737, + 739, + 741, + 743, + 745, + 747, + 749, + 751, + 753, + 755, + 757, + 759, + 761, + 763, + 765, + 767, + 769, + 771, + 773, + 775, + 777, + 779, + 781, + 783, + 785, + 787, + 789, + 791, + 793, + 795, + 797, + 799, + 801, + 803, + 805, + 807, + 809, + 811, + 813, + 815, + 817, + 819, + 821, + 823, + 825, + 827, + 829, + 831, + 833, + 835, + 837, + 839, + 841, + 843, + 845, + 847, + 849, + 851, + 853, + 855, + 857, + 859, + 861, + 863, + 865, + 867, + 869, + 871, + 873, + 875, + 877, + 879, + 881, + 883, + 885, + 887, + 889, + 891, + 893, + 895, + 897, + 899, + 901, + 903, + 905, + 907, + 909, + 911, + 913, + 915, + 917, + 919, + 921, + 923, + 925, + 927, + 929, + 931, + 933, + 935, + 937, + 939, + 941, + 943, + 945, + 947, + 949, + 951, + 953, + 955, + 957, + 959, + 961, + 963, + 965, + 967, + 969, + 971, + 973, + 975, + 977, + 979, + 981, + 983, + 985, + 987, + 989, + 991, + 993, + 995, + 997, + 999, + 1001, + 1003, + 1005, + 1007, + 1009, + 1011, + 1013, + 1015, + 1017, + 1019, + 1021, + 1023, + 1025, + 1027, + 1029, + 1031, + 1033, + 1035, + 1037, + 1039 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 357 + ], + [ + 357, + 359 + ], + [ + 359, + 361 + ], + [ + 361, + 363 + ], + [ + 363, + 365 + ], + [ + 365, + 367 + ], + [ + 367, + 369 + ], + [ + 369, + 371 + ], + [ + 371, + 373 + ], + [ + 373, + 375 + ], + [ + 375, + 377 + ], + [ + 377, + 379 + ], + [ + 379, + 381 + ], + [ + 381, + 383 + ], + [ + 383, + 385 + ], + [ + 385, + 387 + ], + [ + 387, + 389 + ], + [ + 389, + 391 + ], + [ + 391, + 393 + ], + [ + 393, + 395 + ], + [ + 395, + 397 + ], + [ + 397, + 399 + ], + [ + 399, + 401 + ], + [ + 401, + 403 + ], + [ + 403, + 405 + ], + [ + 405, + 407 + ], + [ + 407, + 409 + ], + [ + 409, + 411 + ], + [ + 411, + 413 + ], + [ + 413, + 415 + ], + [ + 415, + 417 + ], + [ + 417, + 419 + ], + [ + 419, + 421 + ], + [ + 421, + 423 + ], + [ + 423, + 425 + ], + [ + 425, + 427 + ], + [ + 427, + 429 + ], + [ + 429, + 431 + ], + [ + 431, + 433 + ], + [ + 433, + 435 + ], + [ + 435, + 437 + ], + [ + 437, + 439 + ], + [ + 439, + 441 + ], + [ + 441, + 443 + ], + [ + 443, + 445 + ], + [ + 445, + 447 + ], + [ + 447, + 449 + ], + [ + 449, + 451 + ], + [ + 451, + 453 + ], + [ + 453, + 455 + ], + [ + 455, + 457 + ], + [ + 457, + 459 + ], + [ + 459, + 461 + ], + [ + 461, + 463 + ], + [ + 463, + 465 + ], + [ + 465, + 467 + ], + [ + 467, + 469 + ], + [ + 469, + 471 + ], + [ + 471, + 473 + ], + [ + 473, + 475 + ], + [ + 475, + 477 + ], + [ + 477, + 479 + ], + [ + 479, + 481 + ], + [ + 481, + 483 + ], + [ + 483, + 485 + ], + [ + 485, + 487 + ], + [ + 487, + 489 + ], + [ + 489, + 491 + ], + [ + 491, + 493 + ], + [ + 493, + 495 + ], + [ + 495, + 497 + ], + [ + 497, + 499 + ], + [ + 499, + 501 + ], + [ + 501, + 503 + ], + [ + 503, + 505 + ], + [ + 505, + 507 + ], + [ + 507, + 509 + ], + [ + 509, + 511 + ], + [ + 511, + 513 + ], + [ + 513, + 515 + ], + [ + 515, + 517 + ], + [ + 517, + 519 + ], + [ + 519, + 521 + ], + [ + 521, + 523 + ], + [ + 523, + 525 + ], + [ + 525, + 527 + ], + [ + 527, + 529 + ], + [ + 529, + 531 + ], + [ + 531, + 533 + ], + [ + 533, + 535 + ], + [ + 535, + 537 + ], + [ + 537, + 539 + ], + [ + 539, + 541 + ], + [ + 541, + 543 + ], + [ + 543, + 545 + ], + [ + 545, + 547 + ], + [ + 547, + 549 + ], + [ + 549, + 551 + ], + [ + 551, + 553 + ], + [ + 553, + 555 + ], + [ + 555, + 557 + ], + [ + 557, + 559 + ], + [ + 559, + 561 + ], + [ + 561, + 563 + ], + [ + 563, + 565 + ], + [ + 565, + 567 + ], + [ + 567, + 569 + ], + [ + 569, + 571 + ], + [ + 571, + 573 + ], + [ + 573, + 575 + ], + [ + 575, + 577 + ], + [ + 577, + 579 + ], + [ + 579, + 581 + ], + [ + 581, + 583 + ], + [ + 583, + 585 + ], + [ + 585, + 587 + ], + [ + 587, + 589 + ], + [ + 589, + 591 + ], + [ + 591, + 593 + ], + [ + 593, + 595 + ], + [ + 595, + 597 + ], + [ + 597, + 599 + ], + [ + 599, + 601 + ], + [ + 601, + 603 + ], + [ + 603, + 605 + ], + [ + 605, + 607 + ], + [ + 607, + 609 + ], + [ + 609, + 611 + ], + [ + 611, + 613 + ], + [ + 613, + 615 + ], + [ + 615, + 617 + ], + [ + 617, + 619 + ], + [ + 619, + 621 + ], + [ + 621, + 623 + ], + [ + 623, + 625 + ], + [ + 625, + 627 + ], + [ + 627, + 629 + ], + [ + 629, + 631 + ], + [ + 631, + 633 + ], + [ + 633, + 635 + ], + [ + 635, + 637 + ], + [ + 637, + 639 + ], + [ + 639, + 641 + ], + [ + 641, + 643 + ], + [ + 643, + 645 + ], + [ + 645, + 647 + ], + [ + 647, + 649 + ], + [ + 649, + 651 + ], + [ + 651, + 653 + ], + [ + 653, + 655 + ], + [ + 655, + 657 + ], + [ + 657, + 659 + ], + [ + 659, + 661 + ], + [ + 661, + 663 + ], + [ + 663, + 665 + ], + [ + 665, + 667 + ], + [ + 667, + 669 + ], + [ + 669, + 671 + ], + [ + 671, + 673 + ], + [ + 673, + 675 + ], + [ + 675, + 677 + ], + [ + 677, + 679 + ], + [ + 679, + 681 + ], + [ + 681, + 683 + ], + [ + 683, + 685 + ], + [ + 685, + 687 + ], + [ + 687, + 689 + ], + [ + 689, + 691 + ], + [ + 691, + 693 + ], + [ + 693, + 695 + ], + [ + 695, + 697 + ], + [ + 697, + 699 + ], + [ + 699, + 701 + ], + [ + 701, + 703 + ], + [ + 703, + 705 + ], + [ + 705, + 707 + ], + [ + 707, + 709 + ], + [ + 709, + 711 + ], + [ + 711, + 713 + ], + [ + 713, + 715 + ], + [ + 715, + 717 + ], + [ + 717, + 719 + ], + [ + 719, + 721 + ], + [ + 721, + 723 + ], + [ + 723, + 725 + ], + [ + 725, + 727 + ], + [ + 727, + 729 + ], + [ + 729, + 731 + ], + [ + 731, + 733 + ], + [ + 733, + 735 + ], + [ + 735, + 737 + ], + [ + 737, + 739 + ], + [ + 739, + 741 + ], + [ + 741, + 743 + ], + [ + 743, + 745 + ], + [ + 745, + 747 + ], + [ + 747, + 749 + ], + [ + 749, + 751 + ], + [ + 751, + 753 + ], + [ + 753, + 755 + ], + [ + 755, + 757 + ], + [ + 757, + 759 + ], + [ + 759, + 761 + ], + [ + 761, + 763 + ], + [ + 763, + 765 + ], + [ + 765, + 767 + ], + [ + 767, + 769 + ], + [ + 769, + 771 + ], + [ + 771, + 773 + ], + [ + 773, + 775 + ], + [ + 775, + 777 + ], + [ + 777, + 779 + ], + [ + 779, + 781 + ], + [ + 781, + 783 + ], + [ + 783, + 785 + ], + [ + 785, + 787 + ], + [ + 787, + 789 + ], + [ + 789, + 791 + ], + [ + 791, + 793 + ], + [ + 793, + 795 + ], + [ + 795, + 797 + ], + [ + 797, + 799 + ], + [ + 799, + 801 + ], + [ + 801, + 803 + ], + [ + 803, + 805 + ], + [ + 805, + 807 + ], + [ + 807, + 809 + ], + [ + 809, + 811 + ], + [ + 811, + 813 + ], + [ + 813, + 815 + ], + [ + 815, + 817 + ], + [ + 817, + 819 + ], + [ + 819, + 821 + ], + [ + 821, + 823 + ], + [ + 823, + 825 + ], + [ + 825, + 827 + ], + [ + 827, + 829 + ], + [ + 829, + 831 + ], + [ + 831, + 833 + ], + [ + 833, + 835 + ], + [ + 835, + 837 + ], + [ + 837, + 839 + ], + [ + 839, + 841 + ], + [ + 841, + 843 + ], + [ + 843, + 845 + ], + [ + 845, + 847 + ], + [ + 847, + 849 + ], + [ + 849, + 851 + ], + [ + 851, + 853 + ], + [ + 853, + 855 + ], + [ + 855, + 857 + ], + [ + 857, + 859 + ], + [ + 859, + 861 + ], + [ + 861, + 863 + ], + [ + 863, + 865 + ], + [ + 865, + 867 + ], + [ + 867, + 869 + ], + [ + 869, + 871 + ], + [ + 871, + 873 + ], + [ + 873, + 875 + ], + [ + 875, + 877 + ], + [ + 877, + 879 + ], + [ + 879, + 881 + ], + [ + 881, + 883 + ], + [ + 883, + 885 + ], + [ + 885, + 887 + ], + [ + 887, + 889 + ], + [ + 889, + 891 + ], + [ + 891, + 893 + ], + [ + 893, + 895 + ], + [ + 895, + 897 + ], + [ + 897, + 899 + ], + [ + 899, + 901 + ], + [ + 901, + 903 + ], + [ + 903, + 905 + ], + [ + 905, + 907 + ], + [ + 907, + 909 + ], + [ + 909, + 911 + ], + [ + 911, + 913 + ], + [ + 913, + 915 + ], + [ + 915, + 917 + ], + [ + 917, + 919 + ], + [ + 919, + 921 + ], + [ + 921, + 923 + ], + [ + 923, + 925 + ], + [ + 925, + 927 + ], + [ + 927, + 929 + ], + [ + 929, + 931 + ], + [ + 931, + 933 + ], + [ + 933, + 935 + ], + [ + 935, + 937 + ], + [ + 937, + 939 + ], + [ + 939, + 941 + ], + [ + 941, + 943 + ], + [ + 943, + 945 + ], + [ + 945, + 947 + ], + [ + 947, + 949 + ], + [ + 949, + 951 + ], + [ + 951, + 953 + ], + [ + 953, + 955 + ], + [ + 955, + 957 + ], + [ + 957, + 959 + ], + [ + 959, + 961 + ], + [ + 961, + 963 + ], + [ + 963, + 965 + ], + [ + 965, + 967 + ], + [ + 967, + 969 + ], + [ + 969, + 971 + ], + [ + 971, + 973 + ], + [ + 973, + 975 + ], + [ + 975, + 977 + ], + [ + 977, + 979 + ], + [ + 979, + 981 + ], + [ + 981, + 983 + ], + [ + 983, + 985 + ], + [ + 985, + 987 + ], + [ + 987, + 989 + ], + [ + 989, + 991 + ], + [ + 991, + 993 + ], + [ + 993, + 995 + ], + [ + 995, + 997 + ], + [ + 997, + 999 + ], + [ + 999, + 1001 + ], + [ + 1001, + 1003 + ], + [ + 1003, + 1005 + ], + [ + 1005, + 1007 + ], + [ + 1007, + 1009 + ], + [ + 1009, + 1011 + ], + [ + 1011, + 1013 + ], + [ + 1013, + 1015 + ], + [ + 1015, + 1017 + ], + [ + 1017, + 1019 + ], + [ + 1019, + 1021 + ], + [ + 1021, + 1023 + ], + [ + 1023, + 1025 + ], + [ + 1025, + 1027 + ], + [ + 1027, + 1029 + ], + [ + 1029, + 1031 + ], + [ + 1031, + 1033 + ], + [ + 1033, + 1035 + ], + [ + 1035, + 1037 + ], + [ + 1037, + 1039 + ], + [ + 1039, + 1040 + ] + ] + }, + { + "demo_id": "demo_04", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ] + ] + }, + { + "demo_id": "demo_05", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 292 + ] + ] + }, + { + "demo_id": "demo_06", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 240 + ] + ] + }, + { + "demo_id": "demo_07", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355, + 357, + 359, + 361, + 363, + 365, + 367, + 369, + 371, + 373, + 375, + 377, + 379, + 381, + 383, + 385, + 387, + 389, + 391, + 393, + 395, + 397, + 399, + 401, + 403, + 405, + 407, + 409, + 411, + 413, + 415, + 417, + 419, + 421, + 423, + 425, + 427, + 429, + 431, + 433, + 435, + 437, + 439, + 441, + 443, + 445, + 447, + 449, + 451, + 453, + 455, + 457, + 459, + 461, + 463, + 465, + 467, + 469, + 471, + 473, + 475, + 477, + 479, + 481, + 483, + 485, + 487, + 489, + 491, + 493, + 495, + 497, + 499, + 501, + 503, + 505, + 507, + 509, + 511, + 513, + 515, + 517, + 519, + 521, + 523, + 525, + 527, + 529, + 531, + 533, + 535, + 537, + 539, + 541, + 543, + 545, + 547, + 549, + 551, + 553, + 555, + 557, + 559, + 561, + 563, + 565, + 567, + 569, + 571, + 573, + 575, + 577, + 579, + 581, + 583, + 585, + 587, + 589, + 591, + 593, + 595, + 597, + 599, + 601, + 603, + 605, + 607, + 609, + 611, + 613, + 615, + 617, + 619, + 621, + 623, + 625, + 627, + 629, + 631, + 633, + 635, + 637, + 639, + 641, + 643, + 645, + 647, + 649, + 651, + 653, + 655, + 657, + 659, + 661, + 663, + 665, + 667, + 669, + 671, + 673, + 675, + 677, + 679, + 681, + 683, + 685, + 687, + 689, + 691, + 693, + 695, + 697, + 699, + 701, + 703, + 705, + 707, + 709, + 711, + 713, + 715, + 717, + 719, + 721, + 723, + 725, + 727, + 729, + 731, + 733, + 735, + 737, + 739, + 741, + 743, + 745, + 747, + 749, + 751, + 753, + 755, + 757, + 759, + 761, + 763, + 765, + 767, + 769, + 771, + 773, + 775, + 777, + 779, + 781, + 783, + 785, + 787, + 789, + 791, + 793, + 795, + 797, + 799, + 801, + 803, + 805, + 807, + 809, + 811, + 813, + 815, + 817, + 819, + 821, + 823, + 825, + 827, + 829, + 831, + 833, + 835, + 837, + 839, + 841, + 843, + 845, + 847, + 849, + 851, + 853, + 855, + 857, + 859, + 861, + 863, + 865, + 867, + 869, + 871, + 873, + 875, + 877, + 879, + 881, + 883, + 885, + 887, + 889, + 891, + 893, + 895, + 897, + 899, + 901, + 903, + 905, + 907, + 909, + 911, + 913, + 915, + 917, + 919, + 921, + 923, + 925, + 927, + 929, + 931, + 933, + 935, + 937, + 939, + 941, + 943, + 945, + 947, + 949, + 951, + 953, + 955, + 957, + 959, + 961, + 963, + 965, + 967, + 969, + 971, + 973, + 975, + 977, + 979, + 981, + 983, + 985, + 987, + 989, + 991, + 993, + 995, + 997, + 999, + 1001, + 1003, + 1005, + 1007, + 1009, + 1011, + 1013, + 1015, + 1017 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 357 + ], + [ + 357, + 359 + ], + [ + 359, + 361 + ], + [ + 361, + 363 + ], + [ + 363, + 365 + ], + [ + 365, + 367 + ], + [ + 367, + 369 + ], + [ + 369, + 371 + ], + [ + 371, + 373 + ], + [ + 373, + 375 + ], + [ + 375, + 377 + ], + [ + 377, + 379 + ], + [ + 379, + 381 + ], + [ + 381, + 383 + ], + [ + 383, + 385 + ], + [ + 385, + 387 + ], + [ + 387, + 389 + ], + [ + 389, + 391 + ], + [ + 391, + 393 + ], + [ + 393, + 395 + ], + [ + 395, + 397 + ], + [ + 397, + 399 + ], + [ + 399, + 401 + ], + [ + 401, + 403 + ], + [ + 403, + 405 + ], + [ + 405, + 407 + ], + [ + 407, + 409 + ], + [ + 409, + 411 + ], + [ + 411, + 413 + ], + [ + 413, + 415 + ], + [ + 415, + 417 + ], + [ + 417, + 419 + ], + [ + 419, + 421 + ], + [ + 421, + 423 + ], + [ + 423, + 425 + ], + [ + 425, + 427 + ], + [ + 427, + 429 + ], + [ + 429, + 431 + ], + [ + 431, + 433 + ], + [ + 433, + 435 + ], + [ + 435, + 437 + ], + [ + 437, + 439 + ], + [ + 439, + 441 + ], + [ + 441, + 443 + ], + [ + 443, + 445 + ], + [ + 445, + 447 + ], + [ + 447, + 449 + ], + [ + 449, + 451 + ], + [ + 451, + 453 + ], + [ + 453, + 455 + ], + [ + 455, + 457 + ], + [ + 457, + 459 + ], + [ + 459, + 461 + ], + [ + 461, + 463 + ], + [ + 463, + 465 + ], + [ + 465, + 467 + ], + [ + 467, + 469 + ], + [ + 469, + 471 + ], + [ + 471, + 473 + ], + [ + 473, + 475 + ], + [ + 475, + 477 + ], + [ + 477, + 479 + ], + [ + 479, + 481 + ], + [ + 481, + 483 + ], + [ + 483, + 485 + ], + [ + 485, + 487 + ], + [ + 487, + 489 + ], + [ + 489, + 491 + ], + [ + 491, + 493 + ], + [ + 493, + 495 + ], + [ + 495, + 497 + ], + [ + 497, + 499 + ], + [ + 499, + 501 + ], + [ + 501, + 503 + ], + [ + 503, + 505 + ], + [ + 505, + 507 + ], + [ + 507, + 509 + ], + [ + 509, + 511 + ], + [ + 511, + 513 + ], + [ + 513, + 515 + ], + [ + 515, + 517 + ], + [ + 517, + 519 + ], + [ + 519, + 521 + ], + [ + 521, + 523 + ], + [ + 523, + 525 + ], + [ + 525, + 527 + ], + [ + 527, + 529 + ], + [ + 529, + 531 + ], + [ + 531, + 533 + ], + [ + 533, + 535 + ], + [ + 535, + 537 + ], + [ + 537, + 539 + ], + [ + 539, + 541 + ], + [ + 541, + 543 + ], + [ + 543, + 545 + ], + [ + 545, + 547 + ], + [ + 547, + 549 + ], + [ + 549, + 551 + ], + [ + 551, + 553 + ], + [ + 553, + 555 + ], + [ + 555, + 557 + ], + [ + 557, + 559 + ], + [ + 559, + 561 + ], + [ + 561, + 563 + ], + [ + 563, + 565 + ], + [ + 565, + 567 + ], + [ + 567, + 569 + ], + [ + 569, + 571 + ], + [ + 571, + 573 + ], + [ + 573, + 575 + ], + [ + 575, + 577 + ], + [ + 577, + 579 + ], + [ + 579, + 581 + ], + [ + 581, + 583 + ], + [ + 583, + 585 + ], + [ + 585, + 587 + ], + [ + 587, + 589 + ], + [ + 589, + 591 + ], + [ + 591, + 593 + ], + [ + 593, + 595 + ], + [ + 595, + 597 + ], + [ + 597, + 599 + ], + [ + 599, + 601 + ], + [ + 601, + 603 + ], + [ + 603, + 605 + ], + [ + 605, + 607 + ], + [ + 607, + 609 + ], + [ + 609, + 611 + ], + [ + 611, + 613 + ], + [ + 613, + 615 + ], + [ + 615, + 617 + ], + [ + 617, + 619 + ], + [ + 619, + 621 + ], + [ + 621, + 623 + ], + [ + 623, + 625 + ], + [ + 625, + 627 + ], + [ + 627, + 629 + ], + [ + 629, + 631 + ], + [ + 631, + 633 + ], + [ + 633, + 635 + ], + [ + 635, + 637 + ], + [ + 637, + 639 + ], + [ + 639, + 641 + ], + [ + 641, + 643 + ], + [ + 643, + 645 + ], + [ + 645, + 647 + ], + [ + 647, + 649 + ], + [ + 649, + 651 + ], + [ + 651, + 653 + ], + [ + 653, + 655 + ], + [ + 655, + 657 + ], + [ + 657, + 659 + ], + [ + 659, + 661 + ], + [ + 661, + 663 + ], + [ + 663, + 665 + ], + [ + 665, + 667 + ], + [ + 667, + 669 + ], + [ + 669, + 671 + ], + [ + 671, + 673 + ], + [ + 673, + 675 + ], + [ + 675, + 677 + ], + [ + 677, + 679 + ], + [ + 679, + 681 + ], + [ + 681, + 683 + ], + [ + 683, + 685 + ], + [ + 685, + 687 + ], + [ + 687, + 689 + ], + [ + 689, + 691 + ], + [ + 691, + 693 + ], + [ + 693, + 695 + ], + [ + 695, + 697 + ], + [ + 697, + 699 + ], + [ + 699, + 701 + ], + [ + 701, + 703 + ], + [ + 703, + 705 + ], + [ + 705, + 707 + ], + [ + 707, + 709 + ], + [ + 709, + 711 + ], + [ + 711, + 713 + ], + [ + 713, + 715 + ], + [ + 715, + 717 + ], + [ + 717, + 719 + ], + [ + 719, + 721 + ], + [ + 721, + 723 + ], + [ + 723, + 725 + ], + [ + 725, + 727 + ], + [ + 727, + 729 + ], + [ + 729, + 731 + ], + [ + 731, + 733 + ], + [ + 733, + 735 + ], + [ + 735, + 737 + ], + [ + 737, + 739 + ], + [ + 739, + 741 + ], + [ + 741, + 743 + ], + [ + 743, + 745 + ], + [ + 745, + 747 + ], + [ + 747, + 749 + ], + [ + 749, + 751 + ], + [ + 751, + 753 + ], + [ + 753, + 755 + ], + [ + 755, + 757 + ], + [ + 757, + 759 + ], + [ + 759, + 761 + ], + [ + 761, + 763 + ], + [ + 763, + 765 + ], + [ + 765, + 767 + ], + [ + 767, + 769 + ], + [ + 769, + 771 + ], + [ + 771, + 773 + ], + [ + 773, + 775 + ], + [ + 775, + 777 + ], + [ + 777, + 779 + ], + [ + 779, + 781 + ], + [ + 781, + 783 + ], + [ + 783, + 785 + ], + [ + 785, + 787 + ], + [ + 787, + 789 + ], + [ + 789, + 791 + ], + [ + 791, + 793 + ], + [ + 793, + 795 + ], + [ + 795, + 797 + ], + [ + 797, + 799 + ], + [ + 799, + 801 + ], + [ + 801, + 803 + ], + [ + 803, + 805 + ], + [ + 805, + 807 + ], + [ + 807, + 809 + ], + [ + 809, + 811 + ], + [ + 811, + 813 + ], + [ + 813, + 815 + ], + [ + 815, + 817 + ], + [ + 817, + 819 + ], + [ + 819, + 821 + ], + [ + 821, + 823 + ], + [ + 823, + 825 + ], + [ + 825, + 827 + ], + [ + 827, + 829 + ], + [ + 829, + 831 + ], + [ + 831, + 833 + ], + [ + 833, + 835 + ], + [ + 835, + 837 + ], + [ + 837, + 839 + ], + [ + 839, + 841 + ], + [ + 841, + 843 + ], + [ + 843, + 845 + ], + [ + 845, + 847 + ], + [ + 847, + 849 + ], + [ + 849, + 851 + ], + [ + 851, + 853 + ], + [ + 853, + 855 + ], + [ + 855, + 857 + ], + [ + 857, + 859 + ], + [ + 859, + 861 + ], + [ + 861, + 863 + ], + [ + 863, + 865 + ], + [ + 865, + 867 + ], + [ + 867, + 869 + ], + [ + 869, + 871 + ], + [ + 871, + 873 + ], + [ + 873, + 875 + ], + [ + 875, + 877 + ], + [ + 877, + 879 + ], + [ + 879, + 881 + ], + [ + 881, + 883 + ], + [ + 883, + 885 + ], + [ + 885, + 887 + ], + [ + 887, + 889 + ], + [ + 889, + 891 + ], + [ + 891, + 893 + ], + [ + 893, + 895 + ], + [ + 895, + 897 + ], + [ + 897, + 899 + ], + [ + 899, + 901 + ], + [ + 901, + 903 + ], + [ + 903, + 905 + ], + [ + 905, + 907 + ], + [ + 907, + 909 + ], + [ + 909, + 911 + ], + [ + 911, + 913 + ], + [ + 913, + 915 + ], + [ + 915, + 917 + ], + [ + 917, + 919 + ], + [ + 919, + 921 + ], + [ + 921, + 923 + ], + [ + 923, + 925 + ], + [ + 925, + 927 + ], + [ + 927, + 929 + ], + [ + 929, + 931 + ], + [ + 931, + 933 + ], + [ + 933, + 935 + ], + [ + 935, + 937 + ], + [ + 937, + 939 + ], + [ + 939, + 941 + ], + [ + 941, + 943 + ], + [ + 943, + 945 + ], + [ + 945, + 947 + ], + [ + 947, + 949 + ], + [ + 949, + 951 + ], + [ + 951, + 953 + ], + [ + 953, + 955 + ], + [ + 955, + 957 + ], + [ + 957, + 959 + ], + [ + 959, + 961 + ], + [ + 961, + 963 + ], + [ + 963, + 965 + ], + [ + 965, + 967 + ], + [ + 967, + 969 + ], + [ + 969, + 971 + ], + [ + 971, + 973 + ], + [ + 973, + 975 + ], + [ + 975, + 977 + ], + [ + 977, + 979 + ], + [ + 979, + 981 + ], + [ + 981, + 983 + ], + [ + 983, + 985 + ], + [ + 985, + 987 + ], + [ + 987, + 989 + ], + [ + 989, + 991 + ], + [ + 991, + 993 + ], + [ + 993, + 995 + ], + [ + 995, + 997 + ], + [ + 997, + 999 + ], + [ + 999, + 1001 + ], + [ + 1001, + 1003 + ], + [ + 1003, + 1005 + ], + [ + 1005, + 1007 + ], + [ + 1007, + 1009 + ], + [ + 1009, + 1011 + ], + [ + 1011, + 1013 + ], + [ + 1013, + 1015 + ], + [ + 1015, + 1017 + ], + [ + 1017, + 1019 + ] + ] + }, + { + "demo_id": "demo_08", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 228 + ] + ] + }, + { + "demo_id": "demo_09", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355, + 357, + 359, + 361, + 363, + 365, + 367, + 369, + 371, + 373, + 375, + 377, + 379, + 381, + 383, + 385, + 387, + 389, + 391, + 393, + 395, + 397, + 399, + 401, + 403, + 405, + 407, + 409, + 411, + 413, + 415, + 417, + 419, + 421, + 423, + 425, + 427, + 429, + 431, + 433, + 435, + 437, + 439 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 357 + ], + [ + 357, + 359 + ], + [ + 359, + 361 + ], + [ + 361, + 363 + ], + [ + 363, + 365 + ], + [ + 365, + 367 + ], + [ + 367, + 369 + ], + [ + 369, + 371 + ], + [ + 371, + 373 + ], + [ + 373, + 375 + ], + [ + 375, + 377 + ], + [ + 377, + 379 + ], + [ + 379, + 381 + ], + [ + 381, + 383 + ], + [ + 383, + 385 + ], + [ + 385, + 387 + ], + [ + 387, + 389 + ], + [ + 389, + 391 + ], + [ + 391, + 393 + ], + [ + 393, + 395 + ], + [ + 395, + 397 + ], + [ + 397, + 399 + ], + [ + 399, + 401 + ], + [ + 401, + 403 + ], + [ + 403, + 405 + ], + [ + 405, + 407 + ], + [ + 407, + 409 + ], + [ + 409, + 411 + ], + [ + 411, + 413 + ], + [ + 413, + 415 + ], + [ + 415, + 417 + ], + [ + 417, + 419 + ], + [ + 419, + 421 + ], + [ + 421, + 423 + ], + [ + 423, + 425 + ], + [ + 425, + 427 + ], + [ + 427, + 429 + ], + [ + 429, + 431 + ], + [ + 431, + 433 + ], + [ + 433, + 435 + ], + [ + 435, + 437 + ], + [ + 437, + 439 + ], + [ + 439, + 441 + ] + ] + }, + { + "demo_id": "demo_10", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ] + ] + }, + { + "demo_id": "demo_11", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355, + 357, + 359, + 361, + 363, + 365, + 367, + 369, + 371, + 373, + 375, + 377 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 357 + ], + [ + 357, + 359 + ], + [ + 359, + 361 + ], + [ + 361, + 363 + ], + [ + 363, + 365 + ], + [ + 365, + 367 + ], + [ + 367, + 369 + ], + [ + 369, + 371 + ], + [ + 371, + 373 + ], + [ + 373, + 375 + ], + [ + 375, + 377 + ], + [ + 377, + 378 + ] + ] + }, + { + "demo_id": "demo_12", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355, + 357, + 359, + 361, + 363, + 365, + 367, + 369, + 371, + 373, + 375, + 377, + 379, + 381, + 383, + 385, + 387, + 389, + 391, + 393, + 395, + 397, + 399, + 401, + 403, + 405, + 407, + 409, + 411, + 413, + 415, + 417, + 419, + 421, + 423, + 425, + 427, + 429, + 431, + 433, + 435, + 437, + 439, + 441, + 443, + 445, + 447, + 449, + 451, + 453, + 455, + 457, + 459, + 461, + 463, + 465, + 467, + 469, + 471, + 473, + 475, + 477, + 479, + 481, + 483, + 485, + 487, + 489, + 491, + 493, + 495, + 497, + 499, + 501, + 503, + 505, + 507, + 509, + 511, + 513, + 515, + 517, + 519, + 521, + 523, + 525, + 527, + 529, + 531, + 533, + 535, + 537, + 539, + 541, + 543, + 545, + 547, + 549, + 551, + 553, + 555, + 557, + 559, + 561, + 563, + 565, + 567, + 569, + 571, + 573, + 575, + 577, + 579, + 581, + 583, + 585, + 587, + 589, + 591, + 593, + 595, + 597, + 599, + 601, + 603, + 605, + 607, + 609, + 611, + 613, + 615, + 617, + 619, + 621, + 623, + 625, + 627, + 629, + 631, + 633, + 635, + 637, + 639, + 641, + 643, + 645, + 647, + 649, + 651, + 653, + 655, + 657, + 659, + 661, + 663, + 665, + 667, + 669, + 671, + 673, + 675, + 677, + 679, + 681, + 683, + 685, + 687, + 689, + 691, + 693, + 695, + 697, + 699, + 701, + 703, + 705, + 707, + 709, + 711, + 713, + 715, + 717, + 719, + 721, + 723, + 725, + 727, + 729, + 731, + 733, + 735, + 737, + 739, + 741, + 743, + 745, + 747, + 749, + 751, + 753, + 755, + 757, + 759, + 761, + 763, + 765, + 767, + 769, + 771, + 773, + 775, + 777, + 779, + 781, + 783, + 785, + 787, + 789, + 791, + 793, + 795, + 797, + 799, + 801, + 803, + 805, + 807, + 809, + 811, + 813, + 815, + 817, + 819, + 821, + 823, + 825, + 827, + 829, + 831, + 833, + 835, + 837, + 839, + 841, + 843, + 845, + 847, + 849, + 851, + 853, + 855, + 857, + 859, + 861, + 863, + 865, + 867, + 869, + 871, + 873, + 875, + 877, + 879, + 881, + 883, + 885, + 887, + 889, + 891, + 893, + 895, + 897, + 899, + 901, + 903, + 905, + 907, + 909, + 911, + 913, + 915, + 917, + 919, + 921, + 923, + 925, + 927, + 929, + 931, + 933, + 935, + 937, + 939, + 941, + 943, + 945, + 947, + 949, + 951, + 953, + 955, + 957, + 959, + 961, + 963, + 965, + 967, + 969, + 971, + 973, + 975, + 977, + 979, + 981, + 983, + 985, + 987, + 989, + 991, + 993, + 995, + 997, + 999, + 1001, + 1003, + 1005, + 1007, + 1009, + 1011, + 1013 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 357 + ], + [ + 357, + 359 + ], + [ + 359, + 361 + ], + [ + 361, + 363 + ], + [ + 363, + 365 + ], + [ + 365, + 367 + ], + [ + 367, + 369 + ], + [ + 369, + 371 + ], + [ + 371, + 373 + ], + [ + 373, + 375 + ], + [ + 375, + 377 + ], + [ + 377, + 379 + ], + [ + 379, + 381 + ], + [ + 381, + 383 + ], + [ + 383, + 385 + ], + [ + 385, + 387 + ], + [ + 387, + 389 + ], + [ + 389, + 391 + ], + [ + 391, + 393 + ], + [ + 393, + 395 + ], + [ + 395, + 397 + ], + [ + 397, + 399 + ], + [ + 399, + 401 + ], + [ + 401, + 403 + ], + [ + 403, + 405 + ], + [ + 405, + 407 + ], + [ + 407, + 409 + ], + [ + 409, + 411 + ], + [ + 411, + 413 + ], + [ + 413, + 415 + ], + [ + 415, + 417 + ], + [ + 417, + 419 + ], + [ + 419, + 421 + ], + [ + 421, + 423 + ], + [ + 423, + 425 + ], + [ + 425, + 427 + ], + [ + 427, + 429 + ], + [ + 429, + 431 + ], + [ + 431, + 433 + ], + [ + 433, + 435 + ], + [ + 435, + 437 + ], + [ + 437, + 439 + ], + [ + 439, + 441 + ], + [ + 441, + 443 + ], + [ + 443, + 445 + ], + [ + 445, + 447 + ], + [ + 447, + 449 + ], + [ + 449, + 451 + ], + [ + 451, + 453 + ], + [ + 453, + 455 + ], + [ + 455, + 457 + ], + [ + 457, + 459 + ], + [ + 459, + 461 + ], + [ + 461, + 463 + ], + [ + 463, + 465 + ], + [ + 465, + 467 + ], + [ + 467, + 469 + ], + [ + 469, + 471 + ], + [ + 471, + 473 + ], + [ + 473, + 475 + ], + [ + 475, + 477 + ], + [ + 477, + 479 + ], + [ + 479, + 481 + ], + [ + 481, + 483 + ], + [ + 483, + 485 + ], + [ + 485, + 487 + ], + [ + 487, + 489 + ], + [ + 489, + 491 + ], + [ + 491, + 493 + ], + [ + 493, + 495 + ], + [ + 495, + 497 + ], + [ + 497, + 499 + ], + [ + 499, + 501 + ], + [ + 501, + 503 + ], + [ + 503, + 505 + ], + [ + 505, + 507 + ], + [ + 507, + 509 + ], + [ + 509, + 511 + ], + [ + 511, + 513 + ], + [ + 513, + 515 + ], + [ + 515, + 517 + ], + [ + 517, + 519 + ], + [ + 519, + 521 + ], + [ + 521, + 523 + ], + [ + 523, + 525 + ], + [ + 525, + 527 + ], + [ + 527, + 529 + ], + [ + 529, + 531 + ], + [ + 531, + 533 + ], + [ + 533, + 535 + ], + [ + 535, + 537 + ], + [ + 537, + 539 + ], + [ + 539, + 541 + ], + [ + 541, + 543 + ], + [ + 543, + 545 + ], + [ + 545, + 547 + ], + [ + 547, + 549 + ], + [ + 549, + 551 + ], + [ + 551, + 553 + ], + [ + 553, + 555 + ], + [ + 555, + 557 + ], + [ + 557, + 559 + ], + [ + 559, + 561 + ], + [ + 561, + 563 + ], + [ + 563, + 565 + ], + [ + 565, + 567 + ], + [ + 567, + 569 + ], + [ + 569, + 571 + ], + [ + 571, + 573 + ], + [ + 573, + 575 + ], + [ + 575, + 577 + ], + [ + 577, + 579 + ], + [ + 579, + 581 + ], + [ + 581, + 583 + ], + [ + 583, + 585 + ], + [ + 585, + 587 + ], + [ + 587, + 589 + ], + [ + 589, + 591 + ], + [ + 591, + 593 + ], + [ + 593, + 595 + ], + [ + 595, + 597 + ], + [ + 597, + 599 + ], + [ + 599, + 601 + ], + [ + 601, + 603 + ], + [ + 603, + 605 + ], + [ + 605, + 607 + ], + [ + 607, + 609 + ], + [ + 609, + 611 + ], + [ + 611, + 613 + ], + [ + 613, + 615 + ], + [ + 615, + 617 + ], + [ + 617, + 619 + ], + [ + 619, + 621 + ], + [ + 621, + 623 + ], + [ + 623, + 625 + ], + [ + 625, + 627 + ], + [ + 627, + 629 + ], + [ + 629, + 631 + ], + [ + 631, + 633 + ], + [ + 633, + 635 + ], + [ + 635, + 637 + ], + [ + 637, + 639 + ], + [ + 639, + 641 + ], + [ + 641, + 643 + ], + [ + 643, + 645 + ], + [ + 645, + 647 + ], + [ + 647, + 649 + ], + [ + 649, + 651 + ], + [ + 651, + 653 + ], + [ + 653, + 655 + ], + [ + 655, + 657 + ], + [ + 657, + 659 + ], + [ + 659, + 661 + ], + [ + 661, + 663 + ], + [ + 663, + 665 + ], + [ + 665, + 667 + ], + [ + 667, + 669 + ], + [ + 669, + 671 + ], + [ + 671, + 673 + ], + [ + 673, + 675 + ], + [ + 675, + 677 + ], + [ + 677, + 679 + ], + [ + 679, + 681 + ], + [ + 681, + 683 + ], + [ + 683, + 685 + ], + [ + 685, + 687 + ], + [ + 687, + 689 + ], + [ + 689, + 691 + ], + [ + 691, + 693 + ], + [ + 693, + 695 + ], + [ + 695, + 697 + ], + [ + 697, + 699 + ], + [ + 699, + 701 + ], + [ + 701, + 703 + ], + [ + 703, + 705 + ], + [ + 705, + 707 + ], + [ + 707, + 709 + ], + [ + 709, + 711 + ], + [ + 711, + 713 + ], + [ + 713, + 715 + ], + [ + 715, + 717 + ], + [ + 717, + 719 + ], + [ + 719, + 721 + ], + [ + 721, + 723 + ], + [ + 723, + 725 + ], + [ + 725, + 727 + ], + [ + 727, + 729 + ], + [ + 729, + 731 + ], + [ + 731, + 733 + ], + [ + 733, + 735 + ], + [ + 735, + 737 + ], + [ + 737, + 739 + ], + [ + 739, + 741 + ], + [ + 741, + 743 + ], + [ + 743, + 745 + ], + [ + 745, + 747 + ], + [ + 747, + 749 + ], + [ + 749, + 751 + ], + [ + 751, + 753 + ], + [ + 753, + 755 + ], + [ + 755, + 757 + ], + [ + 757, + 759 + ], + [ + 759, + 761 + ], + [ + 761, + 763 + ], + [ + 763, + 765 + ], + [ + 765, + 767 + ], + [ + 767, + 769 + ], + [ + 769, + 771 + ], + [ + 771, + 773 + ], + [ + 773, + 775 + ], + [ + 775, + 777 + ], + [ + 777, + 779 + ], + [ + 779, + 781 + ], + [ + 781, + 783 + ], + [ + 783, + 785 + ], + [ + 785, + 787 + ], + [ + 787, + 789 + ], + [ + 789, + 791 + ], + [ + 791, + 793 + ], + [ + 793, + 795 + ], + [ + 795, + 797 + ], + [ + 797, + 799 + ], + [ + 799, + 801 + ], + [ + 801, + 803 + ], + [ + 803, + 805 + ], + [ + 805, + 807 + ], + [ + 807, + 809 + ], + [ + 809, + 811 + ], + [ + 811, + 813 + ], + [ + 813, + 815 + ], + [ + 815, + 817 + ], + [ + 817, + 819 + ], + [ + 819, + 821 + ], + [ + 821, + 823 + ], + [ + 823, + 825 + ], + [ + 825, + 827 + ], + [ + 827, + 829 + ], + [ + 829, + 831 + ], + [ + 831, + 833 + ], + [ + 833, + 835 + ], + [ + 835, + 837 + ], + [ + 837, + 839 + ], + [ + 839, + 841 + ], + [ + 841, + 843 + ], + [ + 843, + 845 + ], + [ + 845, + 847 + ], + [ + 847, + 849 + ], + [ + 849, + 851 + ], + [ + 851, + 853 + ], + [ + 853, + 855 + ], + [ + 855, + 857 + ], + [ + 857, + 859 + ], + [ + 859, + 861 + ], + [ + 861, + 863 + ], + [ + 863, + 865 + ], + [ + 865, + 867 + ], + [ + 867, + 869 + ], + [ + 869, + 871 + ], + [ + 871, + 873 + ], + [ + 873, + 875 + ], + [ + 875, + 877 + ], + [ + 877, + 879 + ], + [ + 879, + 881 + ], + [ + 881, + 883 + ], + [ + 883, + 885 + ], + [ + 885, + 887 + ], + [ + 887, + 889 + ], + [ + 889, + 891 + ], + [ + 891, + 893 + ], + [ + 893, + 895 + ], + [ + 895, + 897 + ], + [ + 897, + 899 + ], + [ + 899, + 901 + ], + [ + 901, + 903 + ], + [ + 903, + 905 + ], + [ + 905, + 907 + ], + [ + 907, + 909 + ], + [ + 909, + 911 + ], + [ + 911, + 913 + ], + [ + 913, + 915 + ], + [ + 915, + 917 + ], + [ + 917, + 919 + ], + [ + 919, + 921 + ], + [ + 921, + 923 + ], + [ + 923, + 925 + ], + [ + 925, + 927 + ], + [ + 927, + 929 + ], + [ + 929, + 931 + ], + [ + 931, + 933 + ], + [ + 933, + 935 + ], + [ + 935, + 937 + ], + [ + 937, + 939 + ], + [ + 939, + 941 + ], + [ + 941, + 943 + ], + [ + 943, + 945 + ], + [ + 945, + 947 + ], + [ + 947, + 949 + ], + [ + 949, + 951 + ], + [ + 951, + 953 + ], + [ + 953, + 955 + ], + [ + 955, + 957 + ], + [ + 957, + 959 + ], + [ + 959, + 961 + ], + [ + 961, + 963 + ], + [ + 963, + 965 + ], + [ + 965, + 967 + ], + [ + 967, + 969 + ], + [ + 969, + 971 + ], + [ + 971, + 973 + ], + [ + 973, + 975 + ], + [ + 975, + 977 + ], + [ + 977, + 979 + ], + [ + 979, + 981 + ], + [ + 981, + 983 + ], + [ + 983, + 985 + ], + [ + 985, + 987 + ], + [ + 987, + 989 + ], + [ + 989, + 991 + ], + [ + 991, + 993 + ], + [ + 993, + 995 + ], + [ + 995, + 997 + ], + [ + 997, + 999 + ], + [ + 999, + 1001 + ], + [ + 1001, + 1003 + ], + [ + 1003, + 1005 + ], + [ + 1005, + 1007 + ], + [ + 1007, + 1009 + ], + [ + 1009, + 1011 + ], + [ + 1011, + 1013 + ], + [ + 1013, + 1015 + ] + ] + }, + { + "demo_id": "demo_13", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355, + 357, + 359, + 361, + 363, + 365, + 367, + 369, + 371, + 373, + 375, + 377, + 379, + 381, + 383, + 385, + 387 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 357 + ], + [ + 357, + 359 + ], + [ + 359, + 361 + ], + [ + 361, + 363 + ], + [ + 363, + 365 + ], + [ + 365, + 367 + ], + [ + 367, + 369 + ], + [ + 369, + 371 + ], + [ + 371, + 373 + ], + [ + 373, + 375 + ], + [ + 375, + 377 + ], + [ + 377, + 379 + ], + [ + 379, + 381 + ], + [ + 381, + 383 + ], + [ + 383, + 385 + ], + [ + 385, + 387 + ], + [ + 387, + 389 + ] + ] + }, + { + "demo_id": "demo_14", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ] + ] + }, + { + "demo_id": "demo_15", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 356 + ] + ] + }, + { + "demo_id": "demo_16", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 224 + ] + ] + }, + { + "demo_id": "demo_17", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355, + 357, + 359, + 361, + 363, + 365, + 367, + 369, + 371, + 373, + 375, + 377, + 379, + 381, + 383, + 385, + 387, + 389, + 391, + 393, + 395, + 397, + 399, + 401, + 403, + 405, + 407, + 409, + 411, + 413, + 415, + 417, + 419, + 421, + 423, + 425, + 427, + 429, + 431, + 433, + 435, + 437 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 357 + ], + [ + 357, + 359 + ], + [ + 359, + 361 + ], + [ + 361, + 363 + ], + [ + 363, + 365 + ], + [ + 365, + 367 + ], + [ + 367, + 369 + ], + [ + 369, + 371 + ], + [ + 371, + 373 + ], + [ + 373, + 375 + ], + [ + 375, + 377 + ], + [ + 377, + 379 + ], + [ + 379, + 381 + ], + [ + 381, + 383 + ], + [ + 383, + 385 + ], + [ + 385, + 387 + ], + [ + 387, + 389 + ], + [ + 389, + 391 + ], + [ + 391, + 393 + ], + [ + 393, + 395 + ], + [ + 395, + 397 + ], + [ + 397, + 399 + ], + [ + 399, + 401 + ], + [ + 401, + 403 + ], + [ + 403, + 405 + ], + [ + 405, + 407 + ], + [ + 407, + 409 + ], + [ + 409, + 411 + ], + [ + 411, + 413 + ], + [ + 413, + 415 + ], + [ + 415, + 417 + ], + [ + 417, + 419 + ], + [ + 419, + 421 + ], + [ + 421, + 423 + ], + [ + 423, + 425 + ], + [ + 425, + 427 + ], + [ + 427, + 429 + ], + [ + 429, + 431 + ], + [ + 431, + 433 + ], + [ + 433, + 435 + ], + [ + 435, + 437 + ], + [ + 437, + 439 + ] + ] + }, + { + "demo_id": "demo_18", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355, + 357, + 359, + 361, + 363, + 365, + 367, + 369, + 371, + 373, + 375, + 377, + 379, + 381, + 383, + 385, + 387, + 389, + 391, + 393, + 395, + 397, + 399, + 401, + 403, + 405, + 407, + 409, + 411, + 413, + 415, + 417, + 419, + 421, + 423, + 425, + 427, + 429, + 431, + 433, + 435, + 437, + 439, + 441, + 443, + 445, + 447, + 449, + 451, + 453, + 455, + 457, + 459, + 461, + 463, + 465, + 467, + 469, + 471, + 473, + 475, + 477, + 479, + 481, + 483, + 485, + 487, + 489, + 491, + 493, + 495, + 497 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 357 + ], + [ + 357, + 359 + ], + [ + 359, + 361 + ], + [ + 361, + 363 + ], + [ + 363, + 365 + ], + [ + 365, + 367 + ], + [ + 367, + 369 + ], + [ + 369, + 371 + ], + [ + 371, + 373 + ], + [ + 373, + 375 + ], + [ + 375, + 377 + ], + [ + 377, + 379 + ], + [ + 379, + 381 + ], + [ + 381, + 383 + ], + [ + 383, + 385 + ], + [ + 385, + 387 + ], + [ + 387, + 389 + ], + [ + 389, + 391 + ], + [ + 391, + 393 + ], + [ + 393, + 395 + ], + [ + 395, + 397 + ], + [ + 397, + 399 + ], + [ + 399, + 401 + ], + [ + 401, + 403 + ], + [ + 403, + 405 + ], + [ + 405, + 407 + ], + [ + 407, + 409 + ], + [ + 409, + 411 + ], + [ + 411, + 413 + ], + [ + 413, + 415 + ], + [ + 415, + 417 + ], + [ + 417, + 419 + ], + [ + 419, + 421 + ], + [ + 421, + 423 + ], + [ + 423, + 425 + ], + [ + 425, + 427 + ], + [ + 427, + 429 + ], + [ + 429, + 431 + ], + [ + 431, + 433 + ], + [ + 433, + 435 + ], + [ + 435, + 437 + ], + [ + 437, + 439 + ], + [ + 439, + 441 + ], + [ + 441, + 443 + ], + [ + 443, + 445 + ], + [ + 445, + 447 + ], + [ + 447, + 449 + ], + [ + 449, + 451 + ], + [ + 451, + 453 + ], + [ + 453, + 455 + ], + [ + 455, + 457 + ], + [ + 457, + 459 + ], + [ + 459, + 461 + ], + [ + 461, + 463 + ], + [ + 463, + 465 + ], + [ + 465, + 467 + ], + [ + 467, + 469 + ], + [ + 469, + 471 + ], + [ + 471, + 473 + ], + [ + 473, + 475 + ], + [ + 475, + 477 + ], + [ + 477, + 479 + ], + [ + 479, + 481 + ], + [ + 481, + 483 + ], + [ + 483, + 485 + ], + [ + 485, + 487 + ], + [ + 487, + 489 + ], + [ + 489, + 491 + ], + [ + 491, + 493 + ], + [ + 493, + 495 + ], + [ + 495, + 497 + ], + [ + 497, + 498 + ] + ] + }, + { + "demo_id": "demo_19", + "computational_rgb_frames": [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 35, + 37, + 39, + 41, + 43, + 45, + 47, + 49, + 51, + 53, + 55, + 57, + 59, + 61, + 63, + 65, + 67, + 69, + 71, + 73, + 75, + 77, + 79, + 81, + 83, + 85, + 87, + 89, + 91, + 93, + 95, + 97, + 99, + 101, + 103, + 105, + 107, + 109, + 111, + 113, + 115, + 117, + 119, + 121, + 123, + 125, + 127, + 129, + 131, + 133, + 135, + 137, + 139, + 141, + 143, + 145, + 147, + 149, + 151, + 153, + 155, + 157, + 159, + 161, + 163, + 165, + 167, + 169, + 171, + 173, + 175, + 177, + 179, + 181, + 183, + 185, + 187, + 189, + 191, + 193, + 195, + 197, + 199, + 201, + 203, + 205, + 207, + 209, + 211, + 213, + 215, + 217, + 219, + 221, + 223, + 225, + 227, + 229, + 231, + 233, + 235, + 237, + 239, + 241, + 243, + 245, + 247, + 249, + 251, + 253, + 255, + 257, + 259, + 261, + 263, + 265, + 267, + 269, + 271, + 273, + 275, + 277, + 279, + 281, + 283, + 285, + 287, + 289, + 291, + 293, + 295, + 297, + 299, + 301, + 303, + 305, + 307, + 309, + 311, + 313, + 315, + 317, + 319, + 321, + 323, + 325, + 327, + 329, + 331, + 333, + 335, + 337, + 339, + 341, + 343, + 345, + 347, + 349, + 351, + 353, + 355, + 357, + 359, + 361, + 363, + 365, + 367, + 369, + 371, + 373, + 375, + 377, + 379, + 381, + 383, + 385, + 387, + 389, + 391, + 393, + 395, + 397, + 399, + 401, + 403, + 405, + 407, + 409, + 411, + 413, + 415, + 417, + 419, + 421, + 423, + 425, + 427, + 429, + 431, + 433, + 435, + 437, + 439, + 441, + 443, + 445, + 447, + 449, + 451, + 453, + 455, + 457, + 459, + 461, + 463, + 465, + 467, + 469, + 471, + 473, + 475, + 477, + 479, + 481, + 483, + 485, + 487, + 489, + 491, + 493, + 495, + 497, + 499, + 501, + 503, + 505, + 507, + 509, + 511, + 513, + 515, + 517, + 519, + 521, + 523, + 525, + 527, + 529, + 531, + 533, + 535, + 537, + 539, + 541, + 543, + 545, + 547, + 549, + 551, + 553, + 555, + 557, + 559, + 561, + 563, + 565, + 567, + 569, + 571, + 573, + 575, + 577, + 579, + 581, + 583, + 585, + 587, + 589, + 591, + 593, + 595, + 597, + 599, + 601, + 603, + 605, + 607, + 609, + 611, + 613, + 615, + 617, + 619, + 621, + 623, + 625, + 627, + 629, + 631, + 633, + 635, + 637, + 639, + 641, + 643, + 645, + 647, + 649, + 651, + 653, + 655, + 657, + 659, + 661, + 663, + 665, + 667, + 669, + 671, + 673, + 675, + 677, + 679, + 681, + 683, + 685, + 687, + 689, + 691, + 693, + 695, + 697, + 699, + 701, + 703, + 705, + 707, + 709, + 711, + 713, + 715, + 717, + 719, + 721, + 723, + 725, + 727, + 729, + 731, + 733, + 735, + 737, + 739, + 741, + 743, + 745, + 747, + 749, + 751, + 753, + 755, + 757, + 759, + 761, + 763, + 765, + 767, + 769, + 771, + 773, + 775, + 777, + 779, + 781, + 783, + 785, + 787, + 789, + 791, + 793, + 795, + 797, + 799, + 801, + 803, + 805 + ], + "label_intervals": [ + [ + 21, + 23 + ], + [ + 23, + 25 + ], + [ + 25, + 27 + ], + [ + 27, + 29 + ], + [ + 29, + 31 + ], + [ + 31, + 33 + ], + [ + 33, + 35 + ], + [ + 35, + 37 + ], + [ + 37, + 39 + ], + [ + 39, + 41 + ], + [ + 41, + 43 + ], + [ + 43, + 45 + ], + [ + 45, + 47 + ], + [ + 47, + 49 + ], + [ + 49, + 51 + ], + [ + 51, + 53 + ], + [ + 53, + 55 + ], + [ + 55, + 57 + ], + [ + 57, + 59 + ], + [ + 59, + 61 + ], + [ + 61, + 63 + ], + [ + 63, + 65 + ], + [ + 65, + 67 + ], + [ + 67, + 69 + ], + [ + 69, + 71 + ], + [ + 71, + 73 + ], + [ + 73, + 75 + ], + [ + 75, + 77 + ], + [ + 77, + 79 + ], + [ + 79, + 81 + ], + [ + 81, + 83 + ], + [ + 83, + 85 + ], + [ + 85, + 87 + ], + [ + 87, + 89 + ], + [ + 89, + 91 + ], + [ + 91, + 93 + ], + [ + 93, + 95 + ], + [ + 95, + 97 + ], + [ + 97, + 99 + ], + [ + 99, + 101 + ], + [ + 101, + 103 + ], + [ + 103, + 105 + ], + [ + 105, + 107 + ], + [ + 107, + 109 + ], + [ + 109, + 111 + ], + [ + 111, + 113 + ], + [ + 113, + 115 + ], + [ + 115, + 117 + ], + [ + 117, + 119 + ], + [ + 119, + 121 + ], + [ + 121, + 123 + ], + [ + 123, + 125 + ], + [ + 125, + 127 + ], + [ + 127, + 129 + ], + [ + 129, + 131 + ], + [ + 131, + 133 + ], + [ + 133, + 135 + ], + [ + 135, + 137 + ], + [ + 137, + 139 + ], + [ + 139, + 141 + ], + [ + 141, + 143 + ], + [ + 143, + 145 + ], + [ + 145, + 147 + ], + [ + 147, + 149 + ], + [ + 149, + 151 + ], + [ + 151, + 153 + ], + [ + 153, + 155 + ], + [ + 155, + 157 + ], + [ + 157, + 159 + ], + [ + 159, + 161 + ], + [ + 161, + 163 + ], + [ + 163, + 165 + ], + [ + 165, + 167 + ], + [ + 167, + 169 + ], + [ + 169, + 171 + ], + [ + 171, + 173 + ], + [ + 173, + 175 + ], + [ + 175, + 177 + ], + [ + 177, + 179 + ], + [ + 179, + 181 + ], + [ + 181, + 183 + ], + [ + 183, + 185 + ], + [ + 185, + 187 + ], + [ + 187, + 189 + ], + [ + 189, + 191 + ], + [ + 191, + 193 + ], + [ + 193, + 195 + ], + [ + 195, + 197 + ], + [ + 197, + 199 + ], + [ + 199, + 201 + ], + [ + 201, + 203 + ], + [ + 203, + 205 + ], + [ + 205, + 207 + ], + [ + 207, + 209 + ], + [ + 209, + 211 + ], + [ + 211, + 213 + ], + [ + 213, + 215 + ], + [ + 215, + 217 + ], + [ + 217, + 219 + ], + [ + 219, + 221 + ], + [ + 221, + 223 + ], + [ + 223, + 225 + ], + [ + 225, + 227 + ], + [ + 227, + 229 + ], + [ + 229, + 231 + ], + [ + 231, + 233 + ], + [ + 233, + 235 + ], + [ + 235, + 237 + ], + [ + 237, + 239 + ], + [ + 239, + 241 + ], + [ + 241, + 243 + ], + [ + 243, + 245 + ], + [ + 245, + 247 + ], + [ + 247, + 249 + ], + [ + 249, + 251 + ], + [ + 251, + 253 + ], + [ + 253, + 255 + ], + [ + 255, + 257 + ], + [ + 257, + 259 + ], + [ + 259, + 261 + ], + [ + 261, + 263 + ], + [ + 263, + 265 + ], + [ + 265, + 267 + ], + [ + 267, + 269 + ], + [ + 269, + 271 + ], + [ + 271, + 273 + ], + [ + 273, + 275 + ], + [ + 275, + 277 + ], + [ + 277, + 279 + ], + [ + 279, + 281 + ], + [ + 281, + 283 + ], + [ + 283, + 285 + ], + [ + 285, + 287 + ], + [ + 287, + 289 + ], + [ + 289, + 291 + ], + [ + 291, + 293 + ], + [ + 293, + 295 + ], + [ + 295, + 297 + ], + [ + 297, + 299 + ], + [ + 299, + 301 + ], + [ + 301, + 303 + ], + [ + 303, + 305 + ], + [ + 305, + 307 + ], + [ + 307, + 309 + ], + [ + 309, + 311 + ], + [ + 311, + 313 + ], + [ + 313, + 315 + ], + [ + 315, + 317 + ], + [ + 317, + 319 + ], + [ + 319, + 321 + ], + [ + 321, + 323 + ], + [ + 323, + 325 + ], + [ + 325, + 327 + ], + [ + 327, + 329 + ], + [ + 329, + 331 + ], + [ + 331, + 333 + ], + [ + 333, + 335 + ], + [ + 335, + 337 + ], + [ + 337, + 339 + ], + [ + 339, + 341 + ], + [ + 341, + 343 + ], + [ + 343, + 345 + ], + [ + 345, + 347 + ], + [ + 347, + 349 + ], + [ + 349, + 351 + ], + [ + 351, + 353 + ], + [ + 353, + 355 + ], + [ + 355, + 357 + ], + [ + 357, + 359 + ], + [ + 359, + 361 + ], + [ + 361, + 363 + ], + [ + 363, + 365 + ], + [ + 365, + 367 + ], + [ + 367, + 369 + ], + [ + 369, + 371 + ], + [ + 371, + 373 + ], + [ + 373, + 375 + ], + [ + 375, + 377 + ], + [ + 377, + 379 + ], + [ + 379, + 381 + ], + [ + 381, + 383 + ], + [ + 383, + 385 + ], + [ + 385, + 387 + ], + [ + 387, + 389 + ], + [ + 389, + 391 + ], + [ + 391, + 393 + ], + [ + 393, + 395 + ], + [ + 395, + 397 + ], + [ + 397, + 399 + ], + [ + 399, + 401 + ], + [ + 401, + 403 + ], + [ + 403, + 405 + ], + [ + 405, + 407 + ], + [ + 407, + 409 + ], + [ + 409, + 411 + ], + [ + 411, + 413 + ], + [ + 413, + 415 + ], + [ + 415, + 417 + ], + [ + 417, + 419 + ], + [ + 419, + 421 + ], + [ + 421, + 423 + ], + [ + 423, + 425 + ], + [ + 425, + 427 + ], + [ + 427, + 429 + ], + [ + 429, + 431 + ], + [ + 431, + 433 + ], + [ + 433, + 435 + ], + [ + 435, + 437 + ], + [ + 437, + 439 + ], + [ + 439, + 441 + ], + [ + 441, + 443 + ], + [ + 443, + 445 + ], + [ + 445, + 447 + ], + [ + 447, + 449 + ], + [ + 449, + 451 + ], + [ + 451, + 453 + ], + [ + 453, + 455 + ], + [ + 455, + 457 + ], + [ + 457, + 459 + ], + [ + 459, + 461 + ], + [ + 461, + 463 + ], + [ + 463, + 465 + ], + [ + 465, + 467 + ], + [ + 467, + 469 + ], + [ + 469, + 471 + ], + [ + 471, + 473 + ], + [ + 473, + 475 + ], + [ + 475, + 477 + ], + [ + 477, + 479 + ], + [ + 479, + 481 + ], + [ + 481, + 483 + ], + [ + 483, + 485 + ], + [ + 485, + 487 + ], + [ + 487, + 489 + ], + [ + 489, + 491 + ], + [ + 491, + 493 + ], + [ + 493, + 495 + ], + [ + 495, + 497 + ], + [ + 497, + 499 + ], + [ + 499, + 501 + ], + [ + 501, + 503 + ], + [ + 503, + 505 + ], + [ + 505, + 507 + ], + [ + 507, + 509 + ], + [ + 509, + 511 + ], + [ + 511, + 513 + ], + [ + 513, + 515 + ], + [ + 515, + 517 + ], + [ + 517, + 519 + ], + [ + 519, + 521 + ], + [ + 521, + 523 + ], + [ + 523, + 525 + ], + [ + 525, + 527 + ], + [ + 527, + 529 + ], + [ + 529, + 531 + ], + [ + 531, + 533 + ], + [ + 533, + 535 + ], + [ + 535, + 537 + ], + [ + 537, + 539 + ], + [ + 539, + 541 + ], + [ + 541, + 543 + ], + [ + 543, + 545 + ], + [ + 545, + 547 + ], + [ + 547, + 549 + ], + [ + 549, + 551 + ], + [ + 551, + 553 + ], + [ + 553, + 555 + ], + [ + 555, + 557 + ], + [ + 557, + 559 + ], + [ + 559, + 561 + ], + [ + 561, + 563 + ], + [ + 563, + 565 + ], + [ + 565, + 567 + ], + [ + 567, + 569 + ], + [ + 569, + 571 + ], + [ + 571, + 573 + ], + [ + 573, + 575 + ], + [ + 575, + 577 + ], + [ + 577, + 579 + ], + [ + 579, + 581 + ], + [ + 581, + 583 + ], + [ + 583, + 585 + ], + [ + 585, + 587 + ], + [ + 587, + 589 + ], + [ + 589, + 591 + ], + [ + 591, + 593 + ], + [ + 593, + 595 + ], + [ + 595, + 597 + ], + [ + 597, + 599 + ], + [ + 599, + 601 + ], + [ + 601, + 603 + ], + [ + 603, + 605 + ], + [ + 605, + 607 + ], + [ + 607, + 609 + ], + [ + 609, + 611 + ], + [ + 611, + 613 + ], + [ + 613, + 615 + ], + [ + 615, + 617 + ], + [ + 617, + 619 + ], + [ + 619, + 621 + ], + [ + 621, + 623 + ], + [ + 623, + 625 + ], + [ + 625, + 627 + ], + [ + 627, + 629 + ], + [ + 629, + 631 + ], + [ + 631, + 633 + ], + [ + 633, + 635 + ], + [ + 635, + 637 + ], + [ + 637, + 639 + ], + [ + 639, + 641 + ], + [ + 641, + 643 + ], + [ + 643, + 645 + ], + [ + 645, + 647 + ], + [ + 647, + 649 + ], + [ + 649, + 651 + ], + [ + 651, + 653 + ], + [ + 653, + 655 + ], + [ + 655, + 657 + ], + [ + 657, + 659 + ], + [ + 659, + 661 + ], + [ + 661, + 663 + ], + [ + 663, + 665 + ], + [ + 665, + 667 + ], + [ + 667, + 669 + ], + [ + 669, + 671 + ], + [ + 671, + 673 + ], + [ + 673, + 675 + ], + [ + 675, + 677 + ], + [ + 677, + 679 + ], + [ + 679, + 681 + ], + [ + 681, + 683 + ], + [ + 683, + 685 + ], + [ + 685, + 687 + ], + [ + 687, + 689 + ], + [ + 689, + 691 + ], + [ + 691, + 693 + ], + [ + 693, + 695 + ], + [ + 695, + 697 + ], + [ + 697, + 699 + ], + [ + 699, + 701 + ], + [ + 701, + 703 + ], + [ + 703, + 705 + ], + [ + 705, + 707 + ], + [ + 707, + 709 + ], + [ + 709, + 711 + ], + [ + 711, + 713 + ], + [ + 713, + 715 + ], + [ + 715, + 717 + ], + [ + 717, + 719 + ], + [ + 719, + 721 + ], + [ + 721, + 723 + ], + [ + 723, + 725 + ], + [ + 725, + 727 + ], + [ + 727, + 729 + ], + [ + 729, + 731 + ], + [ + 731, + 733 + ], + [ + 733, + 735 + ], + [ + 735, + 737 + ], + [ + 737, + 739 + ], + [ + 739, + 741 + ], + [ + 741, + 743 + ], + [ + 743, + 745 + ], + [ + 745, + 747 + ], + [ + 747, + 749 + ], + [ + 749, + 751 + ], + [ + 751, + 753 + ], + [ + 753, + 755 + ], + [ + 755, + 757 + ], + [ + 757, + 759 + ], + [ + 759, + 761 + ], + [ + 761, + 763 + ], + [ + 763, + 765 + ], + [ + 765, + 767 + ], + [ + 767, + 769 + ], + [ + 769, + 771 + ], + [ + 771, + 773 + ], + [ + 773, + 775 + ], + [ + 775, + 777 + ], + [ + 777, + 779 + ], + [ + 779, + 781 + ], + [ + 781, + 783 + ], + [ + 783, + 785 + ], + [ + 785, + 787 + ], + [ + 787, + 789 + ], + [ + 789, + 791 + ], + [ + 791, + 793 + ], + [ + 793, + 795 + ], + [ + 795, + 797 + ], + [ + 797, + 799 + ], + [ + 799, + 801 + ], + [ + 801, + 803 + ], + [ + 803, + 805 + ], + [ + 805, + 807 + ] + ] + } +] \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/skills.md b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/skills.md new file mode 100644 index 0000000000000000000000000000000000000000..d7dc4bfdaf2ac6c35d1739e2483242d622e145d3 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/skills.md @@ -0,0 +1,10 @@ +# Implemented controller mechanisms + +- Legally wait for initial clutter settling within the charged native steps. +- Compare four camera images and23-dimensional joint position/velocity against authorized demonstration observations. +- Optionally localize the chips can using fixed SIFT descriptors, manually annotated demo target masks, and RANSAC; reject weak matches. +- Bias reference scenes using supported target center and unsigned image axis; retrieve bounded actions using current image/proprio similarity and continuity. +- Preserve normalized translation, negative rotation scale, and16 dex joint delta ordering by retaining demonstration action ordering. +- Stop at the policy limit; hold on unsupported/malformed observations. + +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. diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/synthetic_check_results.json b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/synthetic_check_results.json new file mode 100644 index 0000000000000000000000000000000000000000..5341787b93369f47edf9b5bbdd5cd581c23ef7f1 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/synthetic_check_results.json @@ -0,0 +1,22 @@ +{ + "status": "passed", + "scope": "syntax, reference integrity, synthetic inputs only", + "checks": [ + "bank covers all 20 demo IDs", + "reference vectors legal", + "reference features finite", + "synthetic runtime shape and bounds", + "HWC and 1HWC equivalence", + "invalid numeric input returns zeros", + "missing camera returns zeros", + "native horizon terminates", + "reset clears temporal state", + "current RGB changes selected action in synthetic fixture", + "current proprioception changes selected action in synthetic fixture", + "public module entry point" + ], + "synthetic_actual_bank_call_seconds": 0.02191037405282259, + "environment_calls": 0, + "rehearsals": 0, + "task_success": "unknown" +} diff --git a/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/worker_api.py b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/worker_api.py new file mode 100644 index 0000000000000000000000000000000000000000..ff137d1c68cb70a1549326d2d22b430c9cf4e20c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/ClutterGrasp-v1/frozen/worker_api.py @@ -0,0 +1,81 @@ +"""Standalone worker client; safe to mount without the runner package.""" +import base64 +import json +import socket +import struct +import uuid +import os +from pathlib import Path + +import numpy as np + + +def array_hook(value): + if value.get('__array__') is True: + dtype=np.dtype(value['dtype']) + if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service') + raw=base64.b64decode(value['data'],validate=True) + return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy() + return value + + +class API: + def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'): + self.socket_path=socket_path + self.demo_root=Path(demo_root) + self.manifest=Path(manifest) + + def call(self,method,arguments=None,request_id=None): + # Caller can persist a request ID before sending. Never automatically retry. + request_id=request_id or str(uuid.uuid4()) + request={'request_id':request_id,'method':method,'arguments':arguments or {}} + if os.environ.get('AGENT_E20_RPC_TOKEN'): + request['token']=os.environ['AGENT_E20_RPC_TOKEN'] + payload=json.dumps(request,allow_nan=False).encode() + if len(payload)>65536:raise ValueError('request too large') + with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s: + s.settimeout(1810);s.connect(self.socket_path) + s.sendall(struct.pack('!I',len(payload))+payload) + def exact(n): + chunks=[] + while n: + chunk=s.recv(min(n,1024*1024)) + if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID') + chunks.append(chunk);n-=len(chunk) + return b''.join(chunks) + length=struct.unpack('!I',exact(4))[0] + if length>64*1024*1024:raise RuntimeError('response too large') + result=json.loads(exact(length),object_hook=array_hook) + if not result['ok']:raise RuntimeError(result['error']) + return result['result'] + + def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id) + def latest_observation(self):return self.call('latest_observation') + def execute_actions(self,actions,request_id=None): + return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id) + def finish_episode(self):return self.call('finish_episode') + def budget_status(self):return self.call('budget_status') + def rehearse(self,candidate='candidate',request_id=None): + return self.call('rehearse',{'candidate':candidate},request_id) + def score_rehearsal(self,episode,visible_success,evidence): + return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence}) + def freeze(self):return self.call('freeze') + + def read_demo(self,demo_id,start=0,stop=None,fields=None): + import h5py + manifest=json.loads(self.manifest.read_text()) + if manifest.get('status') not in ('released','released_for_offline_analysis'): + raise RuntimeError('demonstrations not released by trusted preflight') + entries={e['demo_id']:e for e in manifest['episodes']} + if demo_id not in entries:raise ValueError('unauthorized demo ID') + entry=entries[demo_id] + allowed={f['path'] for f in entry['fields']} + fields=sorted(allowed) if fields is None else fields + if not set(fields)<=allowed:raise ValueError('unauthorized demo field') + stop=entry['length']+1 if stop is None else stop + if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start25)&(a[:,:,2]-a[:,:,0]>25)).astype('uint8');cyan[:210]=0;cyan[440:]=0 + n,l,stats,cent=cv2.connectedComponentsWithStats(cyan) + 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]) + white=((a.min(2)>180)&(a.max(2)-a.min(2)<50)).astype('uint8');white[:210]=0;white[440:]=0 + n,l,stats,cent=cv2.connectedComponentsWithStats(white);i=1+np.argmax(stats[1:,4]);ys,xs=np.where(l==i) + rect=cv2.minAreaRect(np.column_stack([xs,ys]).astype('float32'));center=np.array(rect[0]);angle=rect[2] + if angle>45:angle-=90 + return center,boundary,np.deg2rad(angle) +def offset(pos,delta): + 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 + return p +def act(obs): + global _phase,_ticks,_calls,_progress,_grasp,_place + if int(obs.get('step_id',_calls+1))>=200:return None + _calls+=1 + try: + cur=np.array([_k.fk(np.asarray(obs['proprioception'][f'agent/panda-{i}/qpos']).reshape(-1)) for i in range(2)]) + if _grasp is None: + center,boundary,theta=locate(obs['rgb']['top_camera']) + with np.load(Path(__file__).with_name('pose_bank.npz')) as b: + 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'])]) + _grasp=np.median(gs,axis=0);_place=np.median(ps,axis=0) + for i,dy in enumerate([-.08,.08]): + delta=np.array([-np.sin(theta)*dy,(np.cos(theta)-1)*dy])*SCALE + tmp=offset(_grasp,delta);_grasp[i]=tmp[i] + _grasp[:,2]=.124;_place[:,2]=.124 + except (KeyError,ValueError,IndexError):return None + _ticks+=1;_progress=float(_phase*20+_ticks) + target=_grasp.copy();grip=1.;limit=.15 + if _phase==0:target[:,2]=.24 + elif _phase==1:pass + elif _phase==2:grip=-1 + elif _phase==3:target[:,2]=.20;grip=-1;limit=.18 + elif _phase==4:target=_place.copy();target[:,2]=.20;grip=-1;limit=.18 + elif _phase==5:target=_place.copy();grip=-1;limit=.095 + elif _phase==6:target=_place.copy();limit=.095 + elif _phase==7:target=_place.copy();target[:,2]=.30;limit=.12 + else:return None + err=target-cur + a=np.zeros(14,dtype=np.float32) + for i in range(2): + e=err[i];d=np.array([e[1],-e[0],e[2]]) if i==0 else np.array([-e[1],e[0],e[2]]) + a[i*7:i*7+3]=np.clip(d*5,-limit,limit);a[i*7+6]=grip + # Pose convergence, with bounded dwell and phase timeout. + done=np.max(np.abs(err))<.006 + if _phase in (2,6):done=_ticks>=10 + if (done and _ticks>=3) or _ticks>65: + _phase+=1;_ticks=0 + return a diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/demo_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/demo_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..12b6373c8655e5cb0e106c56f1d04d7acf87c52b --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/demo_manifest.json @@ -0,0 +1,2168 @@ +{ + "task_id": "DualArmClothAlign-v1", + "status": "released", + "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data", + "lineage_status": "pinned_comparator", + "episodes": [ + { + "demo_id": "demo_00", + "file": "demo_00.h5", + "length": 168, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 168, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 168, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 169, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 169, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 169, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 169, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 169, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "3672539a609ce43b397620e17b3116fa4699c3812f6541cc3ede93744545157b", + "source_sha256": "7365c2a0e0c672f4234c39033a989a4ff9cecae18ea510bcba53b750993d5499", + "view_sha256": "456d2a24fbb18a5b3e111acc58f7263427c0265e5391dd6f5eb8932a5a58543d" + }, + { + "demo_id": "demo_01", + "file": "demo_01.h5", + "length": 162, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 162, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 162, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 163, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "60b2b6f4f1e13f9e2027f3bd06fd06f823dfb425b84d962a1c9fcb76dc7db086", + "source_sha256": "09ccf232cbfc3a8cada003a722617fce280c9f666ed54aada4fb61d9e75ac16e", + "view_sha256": "a78f192db52739a9e081b8038a5c963663bc11f637abed13b00ce595af2bc659" + }, + { + "demo_id": "demo_02", + "file": "demo_02.h5", + "length": 170, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 170, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 170, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 171, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 171, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 171, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 171, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 171, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 171, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 171, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 171, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 171, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "057d2dab9f20409b6cb3c80c5309aa8f63f652c0af5e63488c9e5bf22cec8052", + "source_sha256": "fb5cc69f04063d7c8a1de88a0430af68dc127fd6b9242c29fcf32af435e9899a", + "view_sha256": "8af1f34451cc0b26d2f5ff1a93c5484bcf0361d3a5bbaea468a1f37df8bd3d65" + }, + { + "demo_id": "demo_03", + "file": "demo_03.h5", + "length": 152, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 152, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 152, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 153, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 153, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 153, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 153, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 153, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 153, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 153, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 153, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 153, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "1f73d36a80ecff41f3b2e5796a35104683c00d5472cb28ee0ca31791ccc43aad", + "source_sha256": "b560fbb160f29a10773870019b243c1f027ee2a1dbdb499945329b5be35134fb", + "view_sha256": "576c73578682dafaa5ae8d410a7559e606978fcb9f56078856e2718a75343370" + }, + { + "demo_id": "demo_04", + "file": "demo_04.h5", + "length": 166, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 166, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 166, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 167, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 167, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 167, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 167, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 167, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 167, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 167, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 167, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 167, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "6c58a084c3799f93b4b44d4162f0d62dbe5c21c4afbc9c879cbf9de1e8c93aa4", + "source_sha256": "6ab424d50f5e3cf308bfcc314a6e229b69c7cf6071179f2ff13e7e57b47f5760", + "view_sha256": "939099f6c7ac3409bdcf0d11ea381026a96e28e22c159b799321fde2210b93ec" + }, + { + "demo_id": "demo_05", + "file": "demo_05.h5", + "length": 165, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 165, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 165, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 166, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 166, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 166, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 166, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 166, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 166, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 166, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 166, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 166, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "347f4c447b4362505d18bd6b444f83d9aa9bb609b81be90048168d546e3d43bf", + "source_sha256": "eb7d0e04684746bd06043c0db8d12c4baee92654a27351c89a030a90ee5c1f9b", + "view_sha256": "82635a1c0a1b1811aa9bda43c63b775e09c9d25bd31e36a3f794f24f16115908" + }, + { + "demo_id": "demo_06", + "file": "demo_06.h5", + "length": 160, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 160, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 160, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 161, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 161, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 161, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 161, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 161, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 161, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 161, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 161, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 161, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "9fb7a7644ae03c72887c4c4a62ec0b2c995bd7096a16d863213ea1b97355d89c", + "source_sha256": "016d98f04e1f5b07b76e8fa324aa94948a70d213bd0a02758eb56dd8e875ce1b", + "view_sha256": "d9303d6cf9dabca256ae055b85a1e8acaf75233e37409a0a2d282f885bf275ca" + }, + { + "demo_id": "demo_07", + "file": "demo_07.h5", + "length": 152, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 152, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 152, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 153, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 153, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 153, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 153, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 153, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 153, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 153, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 153, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 153, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "4e09265e7c310ea87159566c6244b1b9b34c79b92eb58e71f35f295b8c0705f6", + "source_sha256": "22df792bbbebc1d6523a5402d5f7e914b8a9b4407ad93d5c62c10c7055688d68", + "view_sha256": "f96ed392e2e5b1ad7eb91a0c570b9e588ac27c6b0769a685e933166611331433" + }, + { + "demo_id": "demo_08", + "file": "demo_08.h5", + "length": 153, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 153, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 153, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 154, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 154, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 154, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 154, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 154, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 154, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 154, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 154, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 154, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e9ae108735147651ecb8c8a2c74e30c2535309718bd24d3ade760a9b7ffdcbbe", + "source_sha256": "041fb3330378080c7a1ade9e70b0af130d5ba8d781720dd3c32f35ebab9c4861", + "view_sha256": "2f50dce70ad8fa0073b8d6356ca1f4e1f0ecf8a6b0d22a3a0d5038c377ab5aac" + }, + { + "demo_id": "demo_09", + "file": "demo_09.h5", + "length": 161, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 161, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 161, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 162, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 162, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 162, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 162, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 162, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 162, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 162, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 162, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 162, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "227b48d6260c24cdc8a2c995967259029ce935795c48291659f4384e7a2e8995", + "source_sha256": "b12c605fa57040eb9f0c70e63e9fcb45897ca10563c09a26be7dfbd85b22874e", + "view_sha256": "8fb0b7f110bd32c7fffad58888bd4e7bf9ec13f12bfee43a9775a76bc0502928" + }, + { + "demo_id": "demo_10", + "file": "demo_10.h5", + "length": 160, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 160, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 160, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 161, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 161, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 161, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 161, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 161, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 161, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 161, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 161, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 161, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "3cc3121256e4c97128533ef82e516314ac391822d60a93798361c5d9273005b5", + "source_sha256": "bdd941e9225b90f0a4d2bbf0d616ba9ec3d650f98a0ecac0d8fa312dbc01683e", + "view_sha256": "58cd333860028850d81bf311197d20674946cdbc4db2ad7f184ae22eabc88d0f" + }, + { + "demo_id": "demo_11", + "file": "demo_11.h5", + "length": 167, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 167, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 167, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 168, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 168, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 168, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 168, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 168, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 168, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 168, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 168, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 168, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "98acb58fa819c32e0cab8a7b8c12bdb14bda72b604207f5424451e51ffe6744d", + "source_sha256": "48e4610dbcaff34c359fd0278558937e96872798e8f285259a43376f5360d430", + "view_sha256": "346df61ccddcfd7c3df0b12eb0836074eca3d034a17b292348e6c1695ff7dca9" + }, + { + "demo_id": "demo_12", + "file": "demo_12.h5", + "length": 157, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 157, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 157, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 158, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 158, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 158, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 158, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 158, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 158, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 158, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 158, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 158, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e1b97e78d0a8aa3db2b82729a7b5210ac922a127870f90e50c253ef7634dbf95", + "source_sha256": "030d4f33e04338ff183603b3f1ba1673435f429e8a0828d52a2cf56766e42483", + "view_sha256": "398fd7f869bdcb7aa090bc9218acb6655b18187803dee2214cf030e8b7084d04" + }, + { + "demo_id": "demo_13", + "file": "demo_13.h5", + "length": 171, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 171, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 171, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 172, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 172, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 172, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 172, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 172, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 172, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 172, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 172, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 172, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "d95be3c68d1b95f9f30b08c31a64d8bedf7207ff98b122ac49ebb3301564cd04", + "source_sha256": "8858ef14621b49479a3c28b5b831c856aaa65edb9100c7bdfec0b7b5ca2c7035", + "view_sha256": "3bcc1c7929217d37fe883bd6840afb6c16220b3fb6b48d9fd14a990629093096" + }, + { + "demo_id": "demo_14", + "file": "demo_14.h5", + "length": 163, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 163, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 163, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 164, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 164, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 164, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 164, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 164, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 164, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 164, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 164, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 164, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "b2f0cd336b13fd7e129df439b451458bbf39856c9a0d88befd7c5a95d2019fc2", + "source_sha256": "5e74314740066ece8161e1df277f147c3409b07f36a23da04d537405b465fb73", + "view_sha256": "63b597cd36ab040baeb5bd14914c33e3b884de5869d6dacc574ebc2ae6aafad6" + }, + { + "demo_id": "demo_15", + "file": "demo_15.h5", + "length": 162, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 162, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 162, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 163, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "91c51f28c6c84f6d7b53bfac0dcff030842c001ac768550006d11327706dfc71", + "source_sha256": "3480479d135b8700cc75717ff6a15e51702563edada16b7e2fbdb58f7ed74e1f", + "view_sha256": "02e1532de48b7f7266290c531d9f8b253a3ccdd8be85046b5f3dbf7ded36f0c9" + }, + { + "demo_id": "demo_16", + "file": "demo_16.h5", + "length": 162, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 162, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 162, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 163, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "c44f651176033f22af8692f60146884cddc485acb12ca3d0c4c9cbd220788654", + "source_sha256": "e6267fa0c1cb1a6567ecef08b242378b3b0cb7ac4b5153d8cd8ca16b0ea85af4", + "view_sha256": "4185a6768958e97f3e3996f2f63cff389ad9a35ba788c7383ef961a31d341131" + }, + { + "demo_id": "demo_17", + "file": "demo_17.h5", + "length": 158, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 158, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 158, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 159, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 159, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 159, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 159, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 159, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 159, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 159, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 159, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 159, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "04221c8546e3fe235b73171d83ddb03218a94d5276bd1d18a1eae2d117e39eae", + "source_sha256": "5ebc22fad3923f1fb0a2ffd4cc108aeb076fec92b8b85e8112ab08615bf9a9a8", + "view_sha256": "e597657b5a3da5ca2b1888feae94dad410a2dbd39daf9770e7f22a1df0dde36d" + }, + { + "demo_id": "demo_18", + "file": "demo_18.h5", + "length": 158, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 158, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 158, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 159, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 159, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 159, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 159, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 159, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 159, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 159, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 159, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 159, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "28012245c2961d595f6df8149e5a858154989fa3ceb676bd9c7b80aae93c3011", + "source_sha256": "a7cf765747e51e4d195bcd52740dfa21383c3f75fbc8afc823e40a3fc909f599", + "view_sha256": "4801b027ea4a5426bff931b6ef5b8fd368e9c2955e8222f468a94d4757a4c043" + }, + { + "demo_id": "demo_19", + "file": "demo_19.h5", + "length": 168, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 168, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 168, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 169, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 169, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 169, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 169, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 169, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e498c4b62daad4ab589b19c14cbc9c42edfce8ddf3fbcb10996a673277380a32", + "source_sha256": "f354eae66a91995dddb55ba788b625c0af48973d85cf43a81803d50d96a3f926", + "view_sha256": "af315f650ea314988f83b6ac13fec9ef0ec2acac5dffefe40d73d9e1af5afc3b" + } + ] +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/environment.lock b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/environment.lock new file mode 100644 index 0000000000000000000000000000000000000000..b2237f47d93aa4c3efad07728ae6acd137912d6d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/environment.lock @@ -0,0 +1,249 @@ +absl-py==2.4.0 +accelerate==1.13.0 +addict==2.4.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.13.5 +aiosignal==1.4.0 +annotated-types==0.7.0 +anyio==4.13.0 +anytree==2.13.0 +asttokens==3.0.1 +async-timeout==5.0.1 +attrs==26.1.0 +av==15.1.0 +blinker==1.9.0 +casadi==3.7.2 +certifi==2026.4.22 +cffi==2.0.0 +charset-normalizer==3.4.7 +click==8.3.3 +cloudpickle==3.1.2 +cmake==4.1.3 +coacd==1.0.11 +colorama==0.4.6 +colorlog==6.10.1 +comm==0.2.3 +ConfigArgParse==1.7.5 +contourpy==1.3.2 +cuda-bindings==12.9.4 +cuda-pathfinder==1.5.4 +cycler==0.12.1 +dacite==1.9.2 +dash==4.1.0 +dataclasses-json==0.6.7 +datasets==4.8.5 +decorator==5.2.1 +deepdiff==8.6.2 +Deprecated==1.3.1 +diffusers==0.35.2 +dill==0.4.1 +docstring_parser==0.18.0 +draccus==0.10.0 +einops==0.8.2 +embreex==4.4.0 +etils==1.13.0 +evdev==1.9.3 +exceptiongroup==1.3.1 +executing==2.2.1 +Farama-Notifications==0.0.6 +fast_simplification==0.1.13 +fastjsonschema==2.21.2 +filelock==3.29.0 +Flask==3.1.3 +fonttools==4.63.0 +freetype-py==2.5.1 +frozenlist==1.8.0 +fsspec==2026.2.0 +genesis-world @ file:///data/gck/genesis-world +git-filter-repo==2.47.0 +gitdb==4.0.12 +GitPython==3.1.50 +glfw==2.10.0 +gs-madrona==0.0.5 +gstaichi==3.3.0 +gym==0.26.2 +gym-notices==0.1.0 +gymnasium==1.3.0 +h11==0.16.0 +h5py==3.16.0 +hf-xet==1.5.0 +hf_transfer==0.1.9 +httpcore==1.0.9 +httpx==0.28.1 +huggingface-hub==0.35.3 +idna==3.15 +ImageIO==2.37.3 +imageio-ffmpeg==0.6.0 +importlib_metadata==9.0.0 +importlib_resources==7.1.0 +inquirerpy==0.3.4 +ipython==8.39.0 +ipywidgets==8.1.8 +itsdangerous==2.2.0 +jedi==0.20.0 +Jinja2==3.1.6 +joblib==1.5.3 +jsonlines==4.0.0 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +jupyter_core==5.9.1 +jupyterlab_widgets==3.0.16 +kiwisolver==1.5.0 +lazy-loader==0.5 +lerobot==0.4.4 +libigl==2.6.2 +llvmlite==0.47.0 +loguru==0.7.3 +lxml==6.1.0 +manifold3d==3.4.1 +-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder +mapbox_earcut==2.0.0 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +marshmallow==3.26.2 +matplotlib==3.10.9 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mergedeep==1.3.4 +moviepy==2.2.1 +mpmath==1.3.0 +msgspec==0.21.1 +mujoco==3.8.1 +multidict==6.7.1 +multiprocess==0.70.19 +mypy_extensions==1.1.0 +nbformat==5.10.4 +nest-asyncio==1.6.0 +networkx==3.4.2 +ninja==1.13.0 +nlopt==2.10.0 +numba==0.65.1 +numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d +nvidia-cublas-cu12==12.8.4.1 +nvidia-cuda-cupti-cu12==12.8.90 +nvidia-cuda-nvrtc-cu12==12.8.93 +nvidia-cuda-runtime-cu12==12.8.90 +nvidia-cudnn-cu12==9.10.2.21 +nvidia-cufft-cu12==11.3.3.83 +nvidia-cufile-cu12==1.13.1.3 +nvidia-curand-cu12==10.3.9.90 +nvidia-cusolver-cu12==11.7.3.90 +nvidia-cusparse-cu12==12.5.8.93 +nvidia-cusparselt-cu12==0.7.1 +nvidia-nccl-cu12==2.27.5 +nvidia-nvjitlink-cu12==12.8.93 +nvidia-nvshmem-cu12==3.4.5 +nvidia-nvtx-cu12==12.8.90 +open3d==0.19.0 +opencv-python==4.13.0.92 +opencv-python-headless==4.12.0.88 +OpenEXR==3.4.11 +orderly-set==5.5.0 +packaging==25.0 +pandas==2.3.3 +parso==0.8.7 +pexpect==4.9.0 +pfzy==0.3.4 +pillow==11.3.0 +pin==4.0.0 +pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work +platformdirs==4.9.6 +plotly==5.24.1 +polyscope==2.6.1 +proglog==0.1.12 +prompt_toolkit==3.0.52 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +pure_eval==0.2.3 +py-cpuinfo==9.0.0 +py-spy==0.4.2 +pyarrow==24.0.0 +pycollada==0.9.3 +pycparser==3.0 +pydantic==2.13.4 +pydantic_core==2.46.4 +PyGEL3D==0.6.1 +pyglet==2.1.14 +pygltflib==1.16.0 +Pygments==2.20.0 +pymeshlab==2025.7.post1 +pynput==1.8.2 +PyOpenGL==3.1.10 +pyparsing==3.3.2 +pyperclip==1.11.0 +PyQt6==6.11.0 +PyQt6-Qt6==6.11.0 +PyQt6_sip==13.11.1 +pyquaternion==0.9.9 +pyserial==3.5 +pysplashsurf==0.12.0.2 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +python-xlib==0.33 +pytransform3d==3.15.0 +pytz==2026.2 +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 +PyYAML==6.0.3 +pyyaml-include==1.4.1 +referencing==0.37.0 +regex==2026.5.9 +requests==2.34.2 +rerun-sdk==0.26.2 +retrying==1.4.2 +rich==14.3.4 +rpds-py==0.30.0 +rtree==1.4.1 +safetensors==0.7.0 +sapien==3.0.3 +scikit-image==0.25.2 +scikit-learn==1.7.2 +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 +sentry-sdk==2.60.0 +setuptools==80.10.2 +shapely==2.1.2 +six==1.17.0 +smmap==5.0.3 +stack-data==0.6.3 +svg.path==7.0 +sympy==1.14.0 +tenacity==9.1.4 +termcolor==3.3.0 +tetgen==0.8.4 +threadpoolctl==3.6.0 +tifffile==2025.5.10 +timm==1.0.27 +toml==0.10.2 +torch==2.10.0 +torchaudio==2.11.0 +torchcodec==0.10.0 +torchvision==0.25.0 +tqdm==4.67.3 +traitlets==5.15.0 +transforms3d==0.4.2 +trimesh==4.12.2 +triton==3.6.0 +typeguard==4.5.2 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +tyro==1.0.13 +tzdata==2026.2 +urllib3==2.7.0 +vhacdx==0.0.10 +viser==1.0.27 +vtk==9.6.1 +wandb==0.24.2 +wcwidth==0.7.0 +websockets==16.0 +Werkzeug==3.1.8 +wheel==0.46.3 +widgetsnbextension==4.0.15 +wrapt==2.1.2 +xxhash==3.7.0 +yarl==1.23.0 +yourdfpy==0.0.60 +z3-solver==4.16.0.0 +zipp==3.23.1 +zstandard==0.25.0 diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/features.py b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/features.py new file mode 100644 index 0000000000000000000000000000000000000000..028ce0042b67830baae07d7b1ebeef2616e67c98 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/features.py @@ -0,0 +1,24 @@ +"""Fixed, non-neural descriptors of legal observations.""" +import cv2 +import numpy as np +CAMERAS = ('top_camera', 'front_camera') +PATHS = tuple(f'agent/panda-{i}/{s}' for i in range(2) for s in ('qpos','qvel')) +def image_feature(value): + a = np.asarray(value) + if a.ndim == 4 and a.shape[0] == 1: a = a[0] + if a.ndim != 3 or a.shape[2] != 3: raise ValueError('Expected RGB HWC or 1HWC') + if not np.isfinite(a).all(): raise ValueError('Nonfinite RGB') + small = cv2.resize(a.astype(np.float32)/255., (24,32), interpolation=cv2.INTER_AREA) + # Cyan boundary pixels are thin; pooling preserves their location. + x=a.astype(np.float32)/255. + cyan=((x[:,:,1]-x[:,:,0]>.10)&(x[:,:,2]-x[:,:,0]>.10)).astype(np.float32) + cyan=cv2.resize(cyan,(24,32),interpolation=cv2.INTER_AREA) + return np.concatenate([small.reshape(-1), 4*cyan.reshape(-1)]).astype(np.float32) +def proprio_feature(obs): + out=[] + for p in PATHS: + x=np.asarray(obs['proprioception'][p],dtype=np.float32).reshape(-1) + if x.size!=9 or not np.isfinite(x).all(): raise ValueError('Invalid proprioception') + scale=np.array([.35]*7+[.025]*2) if p.endswith('qpos') else np.array([2.]*7+[.2]*2) + out.extend(x/scale) + return np.asarray(out,dtype=np.float32) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/findings.md b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/findings.md new file mode 100644 index 0000000000000000000000000000000000000000..5618326cca51b81411293a316f089b5df7d03a0e --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/findings.md @@ -0,0 +1,20 @@ +# Findings: D20 + legal E20 exploration + +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. + +## Development evidence through episode 10 +- 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. +- Episode 2: a progress-clock penalty escaped dwell; native success true at128. +- Episode 3: that retrieval version independently ran validly but returned native success false. +- 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. +- 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. +- Episode 6: exact matched-template geometric bundle f944ba4d76fb251f0188e25c242883255251dd335e81d1a62d2e14602a061615 independently completed validly with native success true. +- 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. + +## Localization and pose +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. + +## Grasp, timing, recovery and limits +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. + +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. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/freeze_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/freeze_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..3f6472f51fb6c3a822a7c9007c067adfd4709157 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/freeze_manifest.json @@ -0,0 +1,160 @@ +{ + "files": { + "__pycache__/build_bank.cpython-310.pyc": "1e1308e65ec965382460e45df7c9f00e720a9b6340979075dc162ad2f209d6c8", + "__pycache__/check_synthetic.cpython-310.pyc": "978157f2337f0aec11e50d1b4f16453b8e0640762cbf9a169aaa28f9b7edc444", + "__pycache__/controller.cpython-310.pyc": "8953a70dd239bc2637c21f353b76a02925f2d825bbf8f18c54e0e7335c1ae35f", + "__pycache__/features.cpython-310.pyc": "3cbe0768f28f321051f75316fe194c16770371a22a4839fbb37e21c3496fa7e6", + "build_bank.py": "7b53f161de256be9d84d4e9acdeb0d5418667f9e1fba5a4bb78c41ab7b52492f", + "check_synthetic.py": "aa5690aae64b68d3c98a5915236f074d66a271a199b77861bad3bbf2780542a1", + "controller.py": "653f1c9b8aea0ec7c1c6353b728f3c4acea5b2c2e26f1566bf18b01fa91238f7", + "demo_bank.npz": "f91679dadcac278cc50c0f1deaa68c4b446345ccd34687305d65b0e713e5afa0", + "demo_manifest.json": "a8996d00c8a9f89dd9ea0135c9b8ce53230632df57e01b9246a27c658339b544", + "demonstrations_readonly/demo_00.h5": "456d2a24fbb18a5b3e111acc58f7263427c0265e5391dd6f5eb8932a5a58543d", + "demonstrations_readonly/demo_01.h5": "a78f192db52739a9e081b8038a5c963663bc11f637abed13b00ce595af2bc659", + "demonstrations_readonly/demo_02.h5": "8af1f34451cc0b26d2f5ff1a93c5484bcf0361d3a5bbaea468a1f37df8bd3d65", + "demonstrations_readonly/demo_03.h5": "576c73578682dafaa5ae8d410a7559e606978fcb9f56078856e2718a75343370", + "demonstrations_readonly/demo_04.h5": "939099f6c7ac3409bdcf0d11ea381026a96e28e22c159b799321fde2210b93ec", + "demonstrations_readonly/demo_05.h5": "82635a1c0a1b1811aa9bda43c63b775e09c9d25bd31e36a3f794f24f16115908", + "demonstrations_readonly/demo_06.h5": "d9303d6cf9dabca256ae055b85a1e8acaf75233e37409a0a2d282f885bf275ca", + "demonstrations_readonly/demo_07.h5": "f96ed392e2e5b1ad7eb91a0c570b9e588ac27c6b0769a685e933166611331433", + "demonstrations_readonly/demo_08.h5": "2f50dce70ad8fa0073b8d6356ca1f4e1f0ecf8a6b0d22a3a0d5038c377ab5aac", + "demonstrations_readonly/demo_09.h5": "8fb0b7f110bd32c7fffad58888bd4e7bf9ec13f12bfee43a9775a76bc0502928", + "demonstrations_readonly/demo_10.h5": "58cd333860028850d81bf311197d20674946cdbc4db2ad7f184ae22eabc88d0f", + "demonstrations_readonly/demo_11.h5": "346df61ccddcfd7c3df0b12eb0836074eca3d034a17b292348e6c1695ff7dca9", + "demonstrations_readonly/demo_12.h5": "398fd7f869bdcb7aa090bc9218acb6655b18187803dee2214cf030e8b7084d04", + "demonstrations_readonly/demo_13.h5": "3bcc1c7929217d37fe883bd6840afb6c16220b3fb6b48d9fd14a990629093096", + "demonstrations_readonly/demo_14.h5": "63b597cd36ab040baeb5bd14914c33e3b884de5869d6dacc574ebc2ae6aafad6", + "demonstrations_readonly/demo_15.h5": "02e1532de48b7f7266290c531d9f8b253a3ccdd8be85046b5f3dbf7ded36f0c9", + "demonstrations_readonly/demo_16.h5": "4185a6768958e97f3e3996f2f63cff389ad9a35ba788c7383ef961a31d341131", + "demonstrations_readonly/demo_17.h5": "e597657b5a3da5ca2b1888feae94dad410a2dbd39daf9770e7f22a1df0dde36d", + "demonstrations_readonly/demo_18.h5": "4801b027ea4a5426bff931b6ef5b8fd368e9c2955e8222f468a94d4757a4c043", + "demonstrations_readonly/demo_19.h5": "af315f650ea314988f83b6ac13fec9ef0ec2acac5dffefe40d73d9e1af5afc3b", + "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa", + "features.py": "6eb6ae5cd10c117094bb5621ad16d393dd67bce4e5ecbb7107de06fc54805b14", + "findings.md": "1c6f47087b64645be328e3e90f7e9d6bedd6bae1a74d53d19b730dd31821cd9d", + "handoff.md": "b73b5655eec7c9f8b78da81bd31298b9c5990047e0015cc9f4b75fe8693ab0e9", + "kinematics.py": "76234da2a5b13b3c5cb71c877e9b420792d1f0d660fee1fe137001d1609a125d", + "model_tool_manifest.yaml": "b8ea44d379592fee6a712dfa4ecfc844b43769538a27de366b7400b7df3e5013", + "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e", + "pose_bank.npz": "881f46abd17df8ef8ab81d016d96b5c032f3df86032c2a3c28b2ca3fc14a83e7", + "skills.md": "786865a3382b0d98a3c3f26e5313f59eac51930d93a3b6801f7cf0d044e5dc32", + "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e" + }, + "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836", + "exploration_ledger_hash": "693476dc98fc6281dc8038c4e533f0c89f66cb838f0039a88ed793ce5c0a706b", + "entrypoint": "controller.reset_episode(); controller.act(obs)", + "selection": { + "rule": "exact-version success rate, valid rehearsal count, recency", + "rehearsals": [ + { + "bundle_hash": "8ceaa73ee45ef08f62a73c996388a4654af8164bb7676524a1663cad4d466bb6", + "episode": 3, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "f944ba4d76fb251f0188e25c242883255251dd335e81d1a62d2e14602a061615", + "episode": 6, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": true, + "valid": true + }, + { + "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836", + "episode": 11, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": true, + "valid": true + }, + { + "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836", + "episode": 12, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": true, + "valid": true + }, + { + "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836", + "episode": 13, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": true, + "valid": true + }, + { + "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836", + "episode": 14, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": true, + "valid": true + }, + { + "episode": 15, + "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836", + "independent": true, + "valid": false, + "status": "infrastructure_interrupted", + "success": false, + "score_source": "interrupted_no_score", + "recovery": "durable_rehearsal_request_and_charged_episode; no replay" + }, + { + "episode": 16, + "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 17, + "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 18, + "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 19, + "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 20, + "bundle_hash": "5cdc343418d47948d52659d3adaaa1eecfd559705165645ea7a63294ae711836", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + } + ] + } +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/handoff.md b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/handoff.md new file mode 100644 index 0000000000000000000000000000000000000000..25f0ffe27162665b2cd8f9df5af3f38e05139511 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/handoff.md @@ -0,0 +1,4 @@ +# Handoff +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. + +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. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/kinematics.py b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/kinematics.py new file mode 100644 index 0000000000000000000000000000000000000000..90085584334f72121af35068794c9f1513fe0f48 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/kinematics.py @@ -0,0 +1,12 @@ +import numpy as np +def fk(q): + t=np.eye(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]): + c,s=np.cos(theta),np.sin(theta);ca,sa=np.cos(al),np.sin(al) + 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]]) + return (t@np.array([0,0,.107,1]))[:3] +if __name__=='__main__': + z=np.load('candidate/demo_bank.npz');q=z['q'];a=z['a'];p=z['progress'];scale=np.array([.35]*7+[.025]*2) + for i in range(2): + 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 + 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)) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/model_tool_manifest.yaml b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/model_tool_manifest.yaml new file mode 100644 index 0000000000000000000000000000000000000000..759491f06e7e15a4c8532cb67417416e9ba6b256 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/model_tool_manifest.yaml @@ -0,0 +1,52 @@ +{ + "status": "final_documentation_pending_exact_rehearsals", + "task": "DualArmClothAlign-v1", + "python": "3.10.20", + "runtime_dependencies": { + "numpy": "2.2.6", + "opencv-python": "4.13.0.92" + }, + "offline_dependencies": { + "h5py": "3.16.0" + }, + "tools_used": [ + "functions.exec / local shell and Python", + "functions tools.view_image / local contact sheet viewing", + "worker_api.API.read_demo / authorized local HDF5 reads", + "Python standard library: importlib,json,pathlib,platform,hashlib,importlib.metadata,py_compile" + ], + "provenance": "20 task-authorized demos: non-neural placement-pose bank, RGB boundary calibration and generic Panda FK; legal exploration episodes1-5 informed revisions.", + "neural_finetuning": false, + "pretrained_weight_references": [], + "weight_policy": "No pretrained tool/model weights modified; no neural inference dependencies loaded by controller", + "environment_episodes": 10, + "internet_calls": 0, + "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.", + "limitations": [ + "Initial RGB segmentation assumes visible cloth and boundary in table ROI", + "Joint feedback uses generic kinematics calibrated against legal demos", + "No verified grasp-failure recovery", + "Successful episode does not guarantee general performance" + ], + "runner_owned": [ + "verified demo manifest", + "common environment lock" + ], + "artifact_sha256": { + "check_synthetic.py": "aa5690aae64b68d3c98a5915236f074d66a271a199b77861bad3bbf2780542a1", + "findings.md": "1c6f47087b64645be328e3e90f7e9d6bedd6bae1a74d53d19b730dd31821cd9d", + "demo_bank.npz": "f91679dadcac278cc50c0f1deaa68c4b446345ccd34687305d65b0e713e5afa0", + "handoff.md": "b73b5655eec7c9f8b78da81bd31298b9c5990047e0015cc9f4b75fe8693ab0e9", + "pose_bank.npz": "881f46abd17df8ef8ab81d016d96b5c032f3df86032c2a3c28b2ca3fc14a83e7", + "build_bank.py": "7b53f161de256be9d84d4e9acdeb0d5418667f9e1fba5a4bb78c41ab7b52492f", + "controller.py": "653f1c9b8aea0ec7c1c6353b728f3c4acea5b2c2e26f1566bf18b01fa91238f7", + "skills.md": "786865a3382b0d98a3c3f26e5313f59eac51930d93a3b6801f7cf0d044e5dc32", + "kinematics.py": "76234da2a5b13b3c5cb71c877e9b420792d1f0d660fee1fe137001d1609a125d", + "features.py": "6eb6ae5cd10c117094bb5621ad16d393dd67bce4e5ecbb7107de06fc54805b14" + }, + "runtime_assets": [ + "controller.py", + "kinematics.py", + "pose_bank.npz" + ] +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/policy_runner.py b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/policy_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..e49448d6245feb7818ae505f1061708ab97c6ead --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/policy_runner.py @@ -0,0 +1,25 @@ +"""Frozen-program entry point; no development agent and no reset capability.""" +import importlib.util +import sys + +sys.path.insert(0,'/artifact') +sys.path.insert(0,'/') +from worker_api import API + + +def main(): + spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py') + module=importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + module.reset_episode() + api=API() + result=api.latest_observation() + while not (result['terminated'] or result['truncated'] or result['horizon_reached']): + obs=dict(result['observation'],step_id=result['step_id']) + action=module.act(obs) + if action is None:break + response=api.execute_actions([action]) + result=response['steps'][-1] + + +if __name__=='__main__':main() diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/skills.md b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/skills.md new file mode 100644 index 0000000000000000000000000000000000000000..e3bd5df4fde81db2711f5089dc39fcfa1de0fa74 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/skills.md @@ -0,0 +1,7 @@ +# Implemented controller skills +1. Localize initial cloth center/angle and cyan boundary from legal top RGB. +2. Transform shared demo-derived grasp/placement geometry using RGB localization. +3. Servo current joint-state FK through approach, descent, closure, lift, transfer, lowering, release and retraction. +4. Advance on pose convergence with bounded dwell/timeout; respect native14-component ordering, action limits and horizon. + +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. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/worker_api.py b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/worker_api.py new file mode 100644 index 0000000000000000000000000000000000000000..ff137d1c68cb70a1549326d2d22b430c9cf4e20c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothAlign-v1/frozen/worker_api.py @@ -0,0 +1,81 @@ +"""Standalone worker client; safe to mount without the runner package.""" +import base64 +import json +import socket +import struct +import uuid +import os +from pathlib import Path + +import numpy as np + + +def array_hook(value): + if value.get('__array__') is True: + dtype=np.dtype(value['dtype']) + if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service') + raw=base64.b64decode(value['data'],validate=True) + return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy() + return value + + +class API: + def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'): + self.socket_path=socket_path + self.demo_root=Path(demo_root) + self.manifest=Path(manifest) + + def call(self,method,arguments=None,request_id=None): + # Caller can persist a request ID before sending. Never automatically retry. + request_id=request_id or str(uuid.uuid4()) + request={'request_id':request_id,'method':method,'arguments':arguments or {}} + if os.environ.get('AGENT_E20_RPC_TOKEN'): + request['token']=os.environ['AGENT_E20_RPC_TOKEN'] + payload=json.dumps(request,allow_nan=False).encode() + if len(payload)>65536:raise ValueError('request too large') + with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s: + s.settimeout(1810);s.connect(self.socket_path) + s.sendall(struct.pack('!I',len(payload))+payload) + def exact(n): + chunks=[] + while n: + chunk=s.recv(min(n,1024*1024)) + if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID') + chunks.append(chunk);n-=len(chunk) + return b''.join(chunks) + length=struct.unpack('!I',exact(4))[0] + if length>64*1024*1024:raise RuntimeError('response too large') + result=json.loads(exact(length),object_hook=array_hook) + if not result['ok']:raise RuntimeError(result['error']) + return result['result'] + + def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id) + def latest_observation(self):return self.call('latest_observation') + def execute_actions(self,actions,request_id=None): + return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id) + def finish_episode(self):return self.call('finish_episode') + def budget_status(self):return self.call('budget_status') + def rehearse(self,candidate='candidate',request_id=None): + return self.call('rehearse',{'candidate':candidate},request_id) + def score_rehearsal(self,episode,visible_success,evidence): + return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence}) + def freeze(self):return self.call('freeze') + + def read_demo(self,demo_id,start=0,stop=None,fields=None): + import h5py + manifest=json.loads(self.manifest.read_text()) + if manifest.get('status') not in ('released','released_for_offline_analysis'): + raise RuntimeError('demonstrations not released by trusted preflight') + entries={e['demo_id']:e for e in manifest['episodes']} + if demo_id not in entries:raise ValueError('unauthorized demo ID') + entry=entries[demo_id] + allowed={f['path'] for f in entry['fields']} + fields=sorted(allowed) if fields is None else fields + if not set(fields)<=allowed:raise ValueError('unauthorized demo field') + stop=entry['length']+1 if stop is None else stop + if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start120)&(r>1.8*g)&(r>1.8*b)).astype(np.float32) + return cv2.resize(mask,(60,80) if cam=='top_camera' else (80,60),interpolation=cv2.INTER_AREA).ravel() +def act(obs): + 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 + if 'observation' in obs:obs=dict(obs['observation'],step_id=obs.get('step_id',_calls+1)) + if int(obs.get('step_id',_calls+1))>=1200 or _calls>=1199:return None + if _ids is not None and _phase>=len(_ids):return None + _calls+=1 + try:q,v=_features.proprio_feature(obs['proprioception']) + except (ValueError,KeyError,TypeError):return np.zeros(44,np.float32) + db=_database() + if _ids is None: + allowed=np.asarray(_CFG['allowed_demos'],int);scores=np.zeros(len(allowed));seen=0 + for ci,cam in enumerate(('front_camera','left_camera','top_camera')): + if cam in obs['rgb']: + f=_red_feature(obs['rgb'][cam],cam);scores+=np.mean(abs(_INITIAL_RED[allowed,ci]-f),axis=1);seen+=1 + if not seen:return np.zeros(44,np.float32) + di=int(allowed[np.argmin(scores)]) + _ids=np.flatnonzero(_REF['demo']==di) + t=min(int(_phase),len(_ids)-1);ix=_ids[t] + action=_REF['a'][ix].copy() + _last_visual_error=[];_last_correction=[] + points=np.full((2,2,2),np.nan,np.float32) + if _track_points is None:_track_points=_VR['points'][ix].copy() + for ci,cam in enumerate(_features.CAMERAS): + if cam in obs['rgb']: + prior=np.where(np.isfinite(_track_points[ci]),_track_points[ci],_VR['points'][ix,ci]) + if _lost_count>10:prior[1]=_VR['points'][ix,ci,1] + measured=_vision.locate(obs['rgb'][cam],cam,prior) + for rob in range(2): + 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 + points[ci]=measured;_track_points[ci]=np.where(np.isfinite(measured),measured,_track_points[ci]) + if t>=_CFG['visual_start']: + for rob,ao in enumerate([0,22]): + target=_VR['points'][ix,:,rob,:].reshape(4);current=points[:,rob,:].reshape(4) + valid=np.isfinite(target)&np.isfinite(current);err=target[valid]-current[valid] + correction=np.zeros(3) + if valid.sum()>=2 and np.max(abs(err))<_CFG['error_gate'] and rob in _CFG['visual_robots']: + err=np.sign(err)*np.maximum(abs(err)-_CFG['deadband'],0) + j=_VR['J'][rob][:,valid] + correction=_CFG['gain']*np.linalg.solve(j@j.T+np.eye(3),j@err) + correction=np.clip(correction,-_CFG['cap'],_CFG['cap']) + _last_visual_error.append((target-current).tolist());_last_correction.append(correction.tolist()) + pose_correction=np.zeros(3);pose_pause=False;_last_pose_error=None;_last_pose_correction=[0.,0.,0.] + if _CFG.get('pose_feedback',False) and t>=_CFG['visual_start']: + measured=np.full((2,5),np.nan) + for ci,cam in enumerate(_features.CAMERAS): + if cam in obs['rgb']: + f=_pose.feature(obs['rgb'][cam],cam,points[ci,1]) + x0,y0,x1,y1=_pose.ROIS[cam] + 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=4 and abs(hand_delta)<.4 and np.max(abs(error[valid]))<30: + j=_POSE['rotation_J'][ix][:,valid] + if np.linalg.norm(j)>.5: + e=error[valid];e=np.sign(e)*np.maximum(abs(e)-.3,0) + raw=np.linalg.solve(j@j.T+np.eye(3),j@e) + pose_correction=np.clip(_CFG.get('pose_gain',.15)*raw,-_CFG.get('pose_cap',.06),_CFG.get('pose_cap',.06)) + pose_pause=float(np.sqrt(np.mean((j.T@raw)**2)))>_CFG.get('pose_pause',8.) + _last_pose_correction=pose_correction.tolist() + pace=1.0 + if _last_visual_error and np.isfinite(_VR['points'][ix,:,1,:]).sum()>=2: + e=np.asarray(_last_visual_error[1]);finite=np.isfinite(e) + if finite.any(): + _lost_count=0;_memory_correction=np.asarray(_last_correction[1]) + if np.max(abs(e[finite]))>_CFG.get('pace_threshold',8):pace=_CFG.get('pace_floor',1.0) + else: + _lost_count+=1;pace=_CFG.get('pace_floor',1.0) + if _lost_count<=10:_last_correction[1]=np.clip(_memory_correction,-.1,.1).tolist() + if pose_pause:pace=0. + _pause_count=_pause_count+1 if pace==0 else 0 + if _pause_count>80:pace=.25 + remaining=1200-int(obs.get('step_id',_calls)) + if len(_ids)-_phase>=remaining-5:pace=1.0 + grip=action[6:22].copy() + action*=pace + if _CFG.get('preserve_grasp',False):action[6:22]=grip + for rob,ao in enumerate([0,22]): + if _last_correction:action[ao:ao+3]+=np.asarray(_last_correction[rob]) + action[25:28]+=pose_correction + if _CFG.get('hand_feedback',False): + for rob,(qo,ao) in enumerate([(0,0),(23,22)]): + qi=qo+7+_HAND_MAP[rob] + goal=_REF['q'][ix,qi]+_REF['a'][ix,ao+6:ao+22] + action[ao+6:ao+22]=goal-q[qi] + _phase+=pace + # Record provenance-compatible nearest sampled frame for exploration harness. + 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) + return _last_action diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/demo_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/demo_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..f2333530fedca942d8182f09e99d11acb8d8bdad --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/demo_manifest.json @@ -0,0 +1,2248 @@ +{ + "task_id": "DualArmClothCylinderWipe-v1", + "status": "released", + "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data", + "lineage_status": "pinned_comparator", + "episodes": [ + { + "demo_id": "demo_00", + "file": "demo_00.h5", + "length": 907, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 907, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 907, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 908, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 908, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 908, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 908, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 908, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 908, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 908, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 908, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 908, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "66ba4567184b90c2383f06ec0e0d80019cb16d538216fd8ffd874d1c657e9dc5", + "source_sha256": "b4c2d5f842cfa19cd34377117f69713727951755982dd1a892dc90bda3b0beae", + "view_sha256": "857e133eef8d4357fc22d7aaf14be0ba4ea353911c498f060fd4bc9a4f174d88" + }, + { + "demo_id": "demo_01", + "file": "demo_01.h5", + "length": 684, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 684, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 684, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 685, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 685, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 685, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 685, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 685, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 685, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 685, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 685, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 685, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "aeae190b5d3f1d6ff9682cc4dfda7128c8f8fece74db1fc8372ad138e2d2764e", + "source_sha256": "460904083bf9d777fbf17068e1078e12700487f50f8f43ffc1141fc2d68befa2", + "view_sha256": "11748bc6e750637eaa2cb29b65a3601c790028298ae0fbe2554c0ba448ae9acc" + }, + { + "demo_id": "demo_02", + "file": "demo_02.h5", + "length": 1087, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1087, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1087, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1088, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1088, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1088, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1088, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1088, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1088, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1088, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1088, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1088, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "ab4bfbd01d1fdcb63ee1c1452112b0d923530c775079556fedd1fe46c4b9f177", + "source_sha256": "205b95456ab349aa37eaa07fb58abaab997452670264ce535cc1dd12e9959d5e", + "view_sha256": "fe1d2f68f149e995b440860aecc4560c11191380d105bf4111acec9d0300f568" + }, + { + "demo_id": "demo_03", + "file": "demo_03.h5", + "length": 698, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 698, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 698, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 699, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 699, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 699, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 699, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 699, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 699, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 699, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 699, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 699, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e95795efb1b906da0f9c660b535cdf1c91bf8f773f968dc9263a7133b01debb5", + "source_sha256": "abaa0a5f377dc2e9c2b41e36af8e06af3a869371fc49378832f4a7a2be1d5f06", + "view_sha256": "21a6eb85d0c7c105b3f8b2d8be5926f0870406c02a9aed4cd98163c80559fc1e" + }, + { + "demo_id": "demo_04", + "file": "demo_04.h5", + "length": 959, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 959, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 959, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 960, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 960, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 960, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 960, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 960, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 960, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 960, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 960, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 960, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "b5f29a807512daa96fc8518518bcf31c48eb7bbe570d3507c7b10797f8dfd5d4", + "source_sha256": "5783b70d506e6d10fa36b476d3e6a287d6f24ab50e903a26130d945f22c8a1cc", + "view_sha256": "f86a74aee0fd38cbcab5bf16b04e498db4464f559cf1fdee235b78aab2e17d78" + }, + { + "demo_id": "demo_05", + "file": "demo_05.h5", + "length": 881, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 881, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 881, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 882, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 882, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 882, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 882, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 882, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 882, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 882, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 882, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 882, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "4b690c14a52b060e795eb00145515e054bf67e9b0d2e4c1a63ffcee3083b18e8", + "source_sha256": "fe92df81404a574b8f19a65d3fd99e53675ba62d342d0a6c13b1bc8dbb764667", + "view_sha256": "4fe7eea530ee51d44ca4a2eec9f43187219fb43f76648af43a334bb31dc3a0ee" + }, + { + "demo_id": "demo_06", + "file": "demo_06.h5", + "length": 722, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 722, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 722, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 723, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 723, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 723, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 723, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 723, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 723, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 723, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 723, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 723, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "1334b5b1862fce2d5815870e976c2763f37da91abfa24c5984324862f9d32b6c", + "source_sha256": "163fb93203e1d84b1b90017ac770e67b1013907bb7e03b374b5df11ab1e8bf49", + "view_sha256": "11eea8b547ebefa498eb0e105c46ebbc1b2407a42edfeee8968239269c4f969b" + }, + { + "demo_id": "demo_07", + "file": "demo_07.h5", + "length": 800, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 800, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 800, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 801, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 801, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 801, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 801, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 801, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 801, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 801, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 801, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 801, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "530299b6e41cb652846cb6ae305b814d215ba193be9f9a53e8176b082c539206", + "source_sha256": "be4041e3bf2fc5a7d4aea4d652991707e5e6d759b870b08091f662330e089362", + "view_sha256": "c2ca348843a77d6cc9ab922a9f8047eed9e62b2a1b7375336b2724c569ebd09f" + }, + { + "demo_id": "demo_08", + "file": "demo_08.h5", + "length": 979, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 979, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 979, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 980, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 980, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 980, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 980, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 980, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 980, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 980, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 980, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 980, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "4cc51508b60f0d9e2a7c9fb09ac47bfe21e3b49b690d3f61721de88b6e80b264", + "source_sha256": "ee428a715fef3e167958e7304343e5346a9d3fb779a54b4af2d9ee54fb2c4458", + "view_sha256": "415ca77a9f780a6b6e7594706d7f87f0080aec676ee5392270407af80c31a04e" + }, + { + "demo_id": "demo_09", + "file": "demo_09.h5", + "length": 963, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 963, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 963, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 964, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 964, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 964, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 964, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 964, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 964, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 964, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 964, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 964, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "cddbde74cfc1a65aad15c82bca64dcbb7e953444166d5f68c4ccb7c522f79cb8", + "source_sha256": "898d58176ed106de008147dfc58ea4fc53ead5ba6b02c8ad58082fa413a7bf76", + "view_sha256": "17ee2e6d9f1c2c3da4b3a8d5cce65e432c44bcea17e66e55631b1cd30a33c248" + }, + { + "demo_id": "demo_10", + "file": "demo_10.h5", + "length": 1024, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1024, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1024, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1025, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1025, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1025, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1025, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1025, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1025, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1025, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1025, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1025, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "7717a531b21a97ad1f689e6b0273b503a57321dde7444798e94c8a97d6a7c695", + "source_sha256": "3988efc994d5f10d52501d924cae8b9a7d6c80509a31635c8442852264d10017", + "view_sha256": "afe0196e37f4c3183f6ea09d52a219a73877b6e0ba8376602b73bae286b83e87" + }, + { + "demo_id": "demo_11", + "file": "demo_11.h5", + "length": 739, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 739, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 739, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 740, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 740, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 740, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 740, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 740, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 740, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 740, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 740, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 740, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "86428d6f1bbec6cf2d62c0c9a1c24df0c37d9be7666b1a330706fe4ca1014d69", + "source_sha256": "609585e0738af98bbb143e86b7ab37e237cc3ca2ab12df2db1d40310917f296f", + "view_sha256": "d7d2c9106c74884e0b663612d1c299a91c94056be74c6e45f7c17c54d8fbdd44" + }, + { + "demo_id": "demo_12", + "file": "demo_12.h5", + "length": 1006, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1006, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1006, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1007, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1007, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1007, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1007, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1007, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1007, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1007, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1007, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1007, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "d2f37788f07b2423bde5bed4150b25ef9601d6d596a8015818daa723e97a1a3f", + "source_sha256": "cd4e69c8c97bd0276a1d22cf1b1940e95ccc1e3ced077623cc3a9ddaca7f8281", + "view_sha256": "ad08117dfe0821efc8f4cc73cab2ff55d8d490742502317981307529d678a98c" + }, + { + "demo_id": "demo_13", + "file": "demo_13.h5", + "length": 813, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 813, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 813, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 814, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 814, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 814, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 814, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 814, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 814, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 814, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 814, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 814, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "4e63ae18660b1de1ea63695972a72713d371f27591e14bd45d47b6e3a08a97e4", + "source_sha256": "00329de52c196479d299971ae7140539bc75f9d39e3eae22f409491a390d2a15", + "view_sha256": "e60cae5127641174b55e97759588645b131280b3c0defb98171112865aaf538d" + }, + { + "demo_id": "demo_14", + "file": "demo_14.h5", + "length": 1083, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 1083, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 1083, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 1084, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 1084, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 1084, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 1084, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 1084, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 1084, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 1084, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 1084, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 1084, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "d908055f3279aef2688a9561aa890843ca8f9d2010799fb2b5d030a98ec1e0f9", + "source_sha256": "54a6d57642731ed03a46aec3b68ad24451a74bb32b1020979ce229bf2edafc44", + "view_sha256": "3ed814e475afa5e4945718e46b98ee8c3972da3dfd946f5784123efff09edb4b" + }, + { + "demo_id": "demo_15", + "file": "demo_15.h5", + "length": 792, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 792, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 792, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 793, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 793, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 793, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 793, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 793, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 793, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 793, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 793, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 793, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "291ddb408b7fa58179b14c9773ff4353fc9207969b16739b561b538b30d84d3c", + "source_sha256": "53c4dfa60dac9315dfebc5bed223dd616113a6566675dee6dcbdf8a195788503", + "view_sha256": "b9857213962f7d008b50420ac7f391a527cf05f167600b1e38ffe6692237792c" + }, + { + "demo_id": "demo_16", + "file": "demo_16.h5", + "length": 861, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 861, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 861, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 862, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 862, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 862, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 862, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 862, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 862, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 862, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 862, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 862, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "989cbf6e67b56e29c06777c1b1149b54b96350bb05c88ae584bfdba3394765d8", + "source_sha256": "594d6945e87f3482d0ab06964543f197bd699937ef6b11ce19a1724ee43a14aa", + "view_sha256": "9f73a9235fcc44b46bbb8ad633286809cae1f44bf8adfa0e07cf4a88effdaa81" + }, + { + "demo_id": "demo_17", + "file": "demo_17.h5", + "length": 939, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 939, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 939, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 940, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 940, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 940, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 940, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 940, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 940, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 940, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 940, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 940, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "5109ca3c7d69561877c7b590d0904db09d42fe9c3ed1b9fb3e67abff0c267c99", + "source_sha256": "b5ec38d3b4470e0bd5bc2c11fb34680afc4cc4b2095c015192fa3078430bd7bb", + "view_sha256": "e1ad7a6af509ba475878a993937c511457c2226b71d4a6854a579da6adc8605e" + }, + { + "demo_id": "demo_18", + "file": "demo_18.h5", + "length": 672, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 672, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 672, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 673, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 673, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 673, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 673, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 673, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 673, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 673, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 673, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 673, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "2f86fb5e58d0cf1d3813cb3e7f6385e0a168d724391bab1e2840283f682d31ec", + "source_sha256": "c8d992789b00479e2b66e3fb47721ead13fd57bc1b07005847ce90a5a5aefaca", + "view_sha256": "36b9d42561092da568d2ab88053470667cbe10552bc46c31ce2ffb1718da2285" + }, + { + "demo_id": "demo_19", + "file": "demo_19.h5", + "length": 950, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 950, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 950, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 951, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 951, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 951, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 951, + 1, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 951, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 951, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 951, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 951, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 951, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e438761a070e527bb26a308200f083beca344c7cbed47923759c52de6295f380", + "source_sha256": "8bd3f8c13cde58c0850e060f83a4b37df41adae887982d239fcc8b10a28ada61", + "view_sha256": "f1eae1052616368ead5cb45d6332a3a13531ceacfc8585d2b74dcee585975560" + } + ] +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/environment.lock b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/environment.lock new file mode 100644 index 0000000000000000000000000000000000000000..b2237f47d93aa4c3efad07728ae6acd137912d6d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/environment.lock @@ -0,0 +1,249 @@ +absl-py==2.4.0 +accelerate==1.13.0 +addict==2.4.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.13.5 +aiosignal==1.4.0 +annotated-types==0.7.0 +anyio==4.13.0 +anytree==2.13.0 +asttokens==3.0.1 +async-timeout==5.0.1 +attrs==26.1.0 +av==15.1.0 +blinker==1.9.0 +casadi==3.7.2 +certifi==2026.4.22 +cffi==2.0.0 +charset-normalizer==3.4.7 +click==8.3.3 +cloudpickle==3.1.2 +cmake==4.1.3 +coacd==1.0.11 +colorama==0.4.6 +colorlog==6.10.1 +comm==0.2.3 +ConfigArgParse==1.7.5 +contourpy==1.3.2 +cuda-bindings==12.9.4 +cuda-pathfinder==1.5.4 +cycler==0.12.1 +dacite==1.9.2 +dash==4.1.0 +dataclasses-json==0.6.7 +datasets==4.8.5 +decorator==5.2.1 +deepdiff==8.6.2 +Deprecated==1.3.1 +diffusers==0.35.2 +dill==0.4.1 +docstring_parser==0.18.0 +draccus==0.10.0 +einops==0.8.2 +embreex==4.4.0 +etils==1.13.0 +evdev==1.9.3 +exceptiongroup==1.3.1 +executing==2.2.1 +Farama-Notifications==0.0.6 +fast_simplification==0.1.13 +fastjsonschema==2.21.2 +filelock==3.29.0 +Flask==3.1.3 +fonttools==4.63.0 +freetype-py==2.5.1 +frozenlist==1.8.0 +fsspec==2026.2.0 +genesis-world @ file:///data/gck/genesis-world +git-filter-repo==2.47.0 +gitdb==4.0.12 +GitPython==3.1.50 +glfw==2.10.0 +gs-madrona==0.0.5 +gstaichi==3.3.0 +gym==0.26.2 +gym-notices==0.1.0 +gymnasium==1.3.0 +h11==0.16.0 +h5py==3.16.0 +hf-xet==1.5.0 +hf_transfer==0.1.9 +httpcore==1.0.9 +httpx==0.28.1 +huggingface-hub==0.35.3 +idna==3.15 +ImageIO==2.37.3 +imageio-ffmpeg==0.6.0 +importlib_metadata==9.0.0 +importlib_resources==7.1.0 +inquirerpy==0.3.4 +ipython==8.39.0 +ipywidgets==8.1.8 +itsdangerous==2.2.0 +jedi==0.20.0 +Jinja2==3.1.6 +joblib==1.5.3 +jsonlines==4.0.0 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +jupyter_core==5.9.1 +jupyterlab_widgets==3.0.16 +kiwisolver==1.5.0 +lazy-loader==0.5 +lerobot==0.4.4 +libigl==2.6.2 +llvmlite==0.47.0 +loguru==0.7.3 +lxml==6.1.0 +manifold3d==3.4.1 +-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder +mapbox_earcut==2.0.0 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +marshmallow==3.26.2 +matplotlib==3.10.9 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mergedeep==1.3.4 +moviepy==2.2.1 +mpmath==1.3.0 +msgspec==0.21.1 +mujoco==3.8.1 +multidict==6.7.1 +multiprocess==0.70.19 +mypy_extensions==1.1.0 +nbformat==5.10.4 +nest-asyncio==1.6.0 +networkx==3.4.2 +ninja==1.13.0 +nlopt==2.10.0 +numba==0.65.1 +numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d +nvidia-cublas-cu12==12.8.4.1 +nvidia-cuda-cupti-cu12==12.8.90 +nvidia-cuda-nvrtc-cu12==12.8.93 +nvidia-cuda-runtime-cu12==12.8.90 +nvidia-cudnn-cu12==9.10.2.21 +nvidia-cufft-cu12==11.3.3.83 +nvidia-cufile-cu12==1.13.1.3 +nvidia-curand-cu12==10.3.9.90 +nvidia-cusolver-cu12==11.7.3.90 +nvidia-cusparse-cu12==12.5.8.93 +nvidia-cusparselt-cu12==0.7.1 +nvidia-nccl-cu12==2.27.5 +nvidia-nvjitlink-cu12==12.8.93 +nvidia-nvshmem-cu12==3.4.5 +nvidia-nvtx-cu12==12.8.90 +open3d==0.19.0 +opencv-python==4.13.0.92 +opencv-python-headless==4.12.0.88 +OpenEXR==3.4.11 +orderly-set==5.5.0 +packaging==25.0 +pandas==2.3.3 +parso==0.8.7 +pexpect==4.9.0 +pfzy==0.3.4 +pillow==11.3.0 +pin==4.0.0 +pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work +platformdirs==4.9.6 +plotly==5.24.1 +polyscope==2.6.1 +proglog==0.1.12 +prompt_toolkit==3.0.52 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +pure_eval==0.2.3 +py-cpuinfo==9.0.0 +py-spy==0.4.2 +pyarrow==24.0.0 +pycollada==0.9.3 +pycparser==3.0 +pydantic==2.13.4 +pydantic_core==2.46.4 +PyGEL3D==0.6.1 +pyglet==2.1.14 +pygltflib==1.16.0 +Pygments==2.20.0 +pymeshlab==2025.7.post1 +pynput==1.8.2 +PyOpenGL==3.1.10 +pyparsing==3.3.2 +pyperclip==1.11.0 +PyQt6==6.11.0 +PyQt6-Qt6==6.11.0 +PyQt6_sip==13.11.1 +pyquaternion==0.9.9 +pyserial==3.5 +pysplashsurf==0.12.0.2 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +python-xlib==0.33 +pytransform3d==3.15.0 +pytz==2026.2 +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 +PyYAML==6.0.3 +pyyaml-include==1.4.1 +referencing==0.37.0 +regex==2026.5.9 +requests==2.34.2 +rerun-sdk==0.26.2 +retrying==1.4.2 +rich==14.3.4 +rpds-py==0.30.0 +rtree==1.4.1 +safetensors==0.7.0 +sapien==3.0.3 +scikit-image==0.25.2 +scikit-learn==1.7.2 +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 +sentry-sdk==2.60.0 +setuptools==80.10.2 +shapely==2.1.2 +six==1.17.0 +smmap==5.0.3 +stack-data==0.6.3 +svg.path==7.0 +sympy==1.14.0 +tenacity==9.1.4 +termcolor==3.3.0 +tetgen==0.8.4 +threadpoolctl==3.6.0 +tifffile==2025.5.10 +timm==1.0.27 +toml==0.10.2 +torch==2.10.0 +torchaudio==2.11.0 +torchcodec==0.10.0 +torchvision==0.25.0 +tqdm==4.67.3 +traitlets==5.15.0 +transforms3d==0.4.2 +trimesh==4.12.2 +triton==3.6.0 +typeguard==4.5.2 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +tyro==1.0.13 +tzdata==2026.2 +urllib3==2.7.0 +vhacdx==0.0.10 +viser==1.0.27 +vtk==9.6.1 +wandb==0.24.2 +wcwidth==0.7.0 +websockets==16.0 +Werkzeug==3.1.8 +wheel==0.46.3 +widgetsnbextension==4.0.15 +wrapt==2.1.2 +xxhash==3.7.0 +yarl==1.23.0 +yourdfpy==0.0.60 +z3-solver==4.16.0.0 +zipp==3.23.1 +zstandard==0.25.0 diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/features.py b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/features.py new file mode 100644 index 0000000000000000000000000000000000000000..e5eba8b80d54cdd471144bdfc62dce5865dfbe4d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/features.py @@ -0,0 +1,30 @@ +"""Fixed, non-neural descriptors shared by offline compilation and act().""" +import cv2 +import numpy as np +CAMERAS = ('front_camera', 'top_camera') +ROBOTS = ('panda_leaphand-1', 'panda_leaphand_left-0') + +def image_feature(image): + im = np.asarray(image) + if im.ndim == 4 and im.shape[0] == 1: + im = im[0] + if im.ndim != 3 or im.shape[2] != 3 or im.dtype != np.uint8: + raise ValueError('Expected uint8 HWC or 1HWC RGB') + # Spatial layout is retained; no camera/root calibration is assumed. + rgb = im.astype(np.float32) / 255.0 + red = ((rgb[:,:,0] > .45) & (rgb[:,:,0] > 1.5*rgb[:,:,1]) & + (rgb[:,:,0] > 1.5*rgb[:,:,2])).astype(np.float32) + white = ((rgb.min(axis=2) > .6) & (np.ptp(rgb,axis=2) < .2)).astype(np.float32) + def small(x): + return cv2.resize(x, (16,12), interpolation=cv2.INTER_AREA).reshape(-1) + return np.concatenate((small(rgb)/.20, small(red)/.035, small(white)/.30)).astype(np.float32) + +def proprio_feature(proprio): + q=[];v=[] + for robot in ROBOTS: + for name, dest in [('qpos',q),('qvel',v)]: + x = np.asarray(proprio['agent/'+robot+'/'+name],dtype=np.float32).reshape(-1) + if x.size != 23 or not np.isfinite(x).all(): + raise ValueError('Expected 23 finite joint values') + dest.append(x) + return np.concatenate(q), np.concatenate(v) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/findings.md b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/findings.md new file mode 100644 index 0000000000000000000000000000000000000000..62c5da76886047b69fcb251bd73176fba0c8df69 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/findings.md @@ -0,0 +1,12 @@ +# Findings available before this snapshot +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. +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. +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. +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. +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. +Independent rehearsal results preceding this snapshot: +{"bundle_hash": "dd5587f008e37611fcbc3a0ebf66e613da68f03676a0709899a6ae8076f46e1f", "episode": 2, "independent": true, "score_source": "native_step_feedback", "status": "finished", "success": false, "valid": true} +{"bundle_hash": "571ff4ab6cd265095fbce825c5e1f6e540a5833e353495b3e1dc3315167b7642", "episode": 9, "independent": true, "score_source": "native_step_feedback", "status": "finished", "success": false, "valid": true} +{"bundle_hash": "f38665687a975c5ffac74f7897be02f8eba443aee6bf775f4425be68e61fec10", "episode": 15, "independent": true, "score_source": "native_step_feedback", "status": "finished", "success": false, "valid": true} + +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. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/freeze_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/freeze_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..9329bbc1c405cb079614f56d2c93763959ca62b2 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/freeze_manifest.json @@ -0,0 +1,118 @@ +{ + "files": { + "config.json": "2df7008f70ae93f61b80734cbe30775a0f8ca000b7943f9771aeca045ea82e6f", + "controller.py": "89548a24fc0a2da39125ee84c0cf22ccad5643ba37a25c43c230174fa9cf04d3", + "demo_manifest.json": "6a63e02a597f5a405c7163fd72ec547ae690c266562f031cfa0a0b840dcd0d6b", + "demonstrations_readonly/demo_00.h5": "857e133eef8d4357fc22d7aaf14be0ba4ea353911c498f060fd4bc9a4f174d88", + "demonstrations_readonly/demo_01.h5": "11748bc6e750637eaa2cb29b65a3601c790028298ae0fbe2554c0ba448ae9acc", + "demonstrations_readonly/demo_02.h5": "fe1d2f68f149e995b440860aecc4560c11191380d105bf4111acec9d0300f568", + "demonstrations_readonly/demo_03.h5": "21a6eb85d0c7c105b3f8b2d8be5926f0870406c02a9aed4cd98163c80559fc1e", + "demonstrations_readonly/demo_04.h5": "f86a74aee0fd38cbcab5bf16b04e498db4464f559cf1fdee235b78aab2e17d78", + "demonstrations_readonly/demo_05.h5": "4fe7eea530ee51d44ca4a2eec9f43187219fb43f76648af43a334bb31dc3a0ee", + "demonstrations_readonly/demo_06.h5": "11eea8b547ebefa498eb0e105c46ebbc1b2407a42edfeee8968239269c4f969b", + "demonstrations_readonly/demo_07.h5": "c2ca348843a77d6cc9ab922a9f8047eed9e62b2a1b7375336b2724c569ebd09f", + "demonstrations_readonly/demo_08.h5": "415ca77a9f780a6b6e7594706d7f87f0080aec676ee5392270407af80c31a04e", + "demonstrations_readonly/demo_09.h5": "17ee2e6d9f1c2c3da4b3a8d5cce65e432c44bcea17e66e55631b1cd30a33c248", + "demonstrations_readonly/demo_10.h5": "afe0196e37f4c3183f6ea09d52a219a73877b6e0ba8376602b73bae286b83e87", + "demonstrations_readonly/demo_11.h5": "d7d2c9106c74884e0b663612d1c299a91c94056be74c6e45f7c17c54d8fbdd44", + "demonstrations_readonly/demo_12.h5": "ad08117dfe0821efc8f4cc73cab2ff55d8d490742502317981307529d678a98c", + "demonstrations_readonly/demo_13.h5": "e60cae5127641174b55e97759588645b131280b3c0defb98171112865aaf538d", + "demonstrations_readonly/demo_14.h5": "3ed814e475afa5e4945718e46b98ee8c3972da3dfd946f5784123efff09edb4b", + "demonstrations_readonly/demo_15.h5": "b9857213962f7d008b50420ac7f391a527cf05f167600b1e38ffe6692237792c", + "demonstrations_readonly/demo_16.h5": "9f73a9235fcc44b46bbb8ad633286809cae1f44bf8adfa0e07cf4a88effdaa81", + "demonstrations_readonly/demo_17.h5": "e1ad7a6af509ba475878a993937c511457c2226b71d4a6854a579da6adc8605e", + "demonstrations_readonly/demo_18.h5": "36b9d42561092da568d2ab88053470667cbe10552bc46c31ce2ffb1718da2285", + "demonstrations_readonly/demo_19.h5": "f1eae1052616368ead5cb45d6332a3a13531ceacfc8585d2b74dcee585975560", + "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa", + "features.py": "8799317eb461e6ee780da3342c5d665fe2af4e93c48c3be578b9f2b0e03bf377", + "findings.md": "77ccdd7ddbe2ec43b56ab5bf32a4b2c4f1de676b161a2e7d52ceedd97dcdeed8", + "hand_mapping.json": "84c7fc6cafeca877a400e3dc4aacac8876eebed562d915a7fd17ec2b72eab0a5", + "handoff.md": "4eb0bf6fbf954d877f961f4e130f5546ccee9564c9658a292347e429a3ba63d6", + "initial_red.npz": "fe3455c0e9224e221e40eb6a446aa1613beb486bf79b5508d5310470e4084b20", + "local_versions.json": "1fa379e5b7359568c47fe024729942318c0b681067190c7ce439af75aa4bef81", + "memory.npz": "2ddf1fb6fc2200d0ce6f7720a81deddcf4b9081f48f57babf5827e17365e6809", + "memory_provenance.json": "274171c9401a581a7a0ecdcd576a2135e9eec127e31ffc7f23c7c3580e2c0e35", + "model_tool_manifest.yaml": "167f945ddb379d9cb4adc11434d0592d39e091340a06d65f1d32f0665cede890", + "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e", + "pose.py": "bb5821e10ddf4159d901897fad3e0c906762ee17496c0bf790a968e7bbac3dfe", + "pose_reference.npz": "991f445b7c1490ce1a19f96ec55e14a209df7f1507143c11dd1f308da1e9cdf3", + "reference.npz": "acd95e4126695717a9c8487b2f65ac18ce5222aa99fa8b8dce85d5b670da764b", + "requirements.txt": "499e0528a037f06bf49cacbe43203e90deaa66788d137d8c6d6e57d2247ea820", + "skills.md": "3757dcb836302d6eafc74bf539572f865de944eadd8d0e21e551f4a40c84258b", + "vision.py": "51fbceaf3c2041b411ed59a12938722a03937710631bd25a14e04b6d9f135227", + "visual_reference.npz": "0a6ab9fdad61a26dc8a5542a5bd06da7a842d470b8776814237be3ff5bfe3e85", + "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e" + }, + "bundle_hash": "455034685104f527967fcac141a0cf6eb9c4a8cf7660cec582b83210b3934b07", + "exploration_ledger_hash": "6da67eaa0cc66ab2e7c85282af8da6421b8ba98426574cb2f9eda9cfbebbc5d7", + "entrypoint": "controller.reset_episode(); controller.act(obs)", + "selection": { + "rule": "exact-version success rate, valid rehearsal count, recency", + "rehearsals": [ + { + "bundle_hash": "dd5587f008e37611fcbc3a0ebf66e613da68f03676a0709899a6ae8076f46e1f", + "episode": 2, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "571ff4ab6cd265095fbce825c5e1f6e540a5833e353495b3e1dc3315167b7642", + "episode": 9, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "f38665687a975c5ffac74f7897be02f8eba443aee6bf775f4425be68e61fec10", + "episode": 15, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "episode": 17, + "bundle_hash": "455034685104f527967fcac141a0cf6eb9c4a8cf7660cec582b83210b3934b07", + "independent": true, + "valid": false, + "status": "infrastructure_interrupted", + "success": false, + "score_source": "interrupted_no_score", + "recovery": "durable_rehearsal_request_and_charged_episode; no replay" + }, + { + "episode": 18, + "bundle_hash": "455034685104f527967fcac141a0cf6eb9c4a8cf7660cec582b83210b3934b07", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 19, + "bundle_hash": "455034685104f527967fcac141a0cf6eb9c4a8cf7660cec582b83210b3934b07", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 20, + "bundle_hash": "455034685104f527967fcac141a0cf6eb9c4a8cf7660cec582b83210b3934b07", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + } + ] + } +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/hand_mapping.json b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/hand_mapping.json new file mode 100644 index 0000000000000000000000000000000000000000..2332d24c3b03ea19661f4e0510d87eb5a9bd2ab3 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/hand_mapping.json @@ -0,0 +1,119 @@ +{ + "source": "All20 authorized D20 action and proprio records, frames>=100; constant-target residual matching; second robot opening subsets. No assumed joint permutation.", + "robots": [ + { + "robot": 0, + "action_to_hand_qpos": [ + 4, + 0, + 8, + 12, + 5, + 1, + 9, + 13, + 6, + 2, + 10, + 14, + 3, + 7, + 11, + 15 + ], + "p99_absolute_target_deviation": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "median_target": [ + 0.0, + 1.25, + 1.25, + 1.25, + 0.0, + 1.25, + 1.25, + 1.25, + 0.0, + 1.25, + 1.25, + 1.25, + 1.0, + 0.0, + 1.75, + 1.75 + ] + }, + { + "robot": 1, + "action_to_hand_qpos": [ + 4, + 0, + 8, + 12, + 5, + 1, + 9, + 13, + 6, + 2, + 10, + 14, + 3, + 7, + 11, + 15 + ], + "p99_absolute_target_deviation": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "median_target": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + } + ] +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/handoff.md b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/handoff.md new file mode 100644 index 0000000000000000000000000000000000000000..44bc73080ba3a96debfce782cf5c59f977632058 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/handoff.md @@ -0,0 +1,5 @@ +# Handoff +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. +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. +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. +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. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/local_versions.json b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/local_versions.json new file mode 100644 index 0000000000000000000000000000000000000000..a899e558bcb47cd3e7c464707bb0c73705d8b67c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/local_versions.json @@ -0,0 +1,6 @@ +{ + "python": "3.10.20", + "numpy": "2.2.6", + "opencv-python": "4.13.0.92", + "h5py": "3.16.0" +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/memory_provenance.json b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/memory_provenance.json new file mode 100644 index 0000000000000000000000000000000000000000..f9626f22ad4361918e49555f705516720f7d5420 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/memory_provenance.json @@ -0,0 +1,5915 @@ +[ + { + "demo_id": "demo_00", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 904, + 906 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 907 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_01", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 683 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 684 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_02", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 904, + 908, + 912, + 916, + 920, + 924, + 928, + 932, + 936, + 940, + 944, + 948, + 952, + 956, + 960, + 964, + 968, + 972, + 976, + 980, + 984, + 988, + 992, + 996, + 1000, + 1004, + 1008, + 1012, + 1016, + 1020, + 1024, + 1028, + 1032, + 1036, + 1040, + 1044, + 1048, + 1052, + 1056, + 1060, + 1064, + 1068, + 1072, + 1076, + 1080, + 1084, + 1086 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 1087 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_03", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 697 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 698 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_04", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 904, + 908, + 912, + 916, + 920, + 924, + 928, + 932, + 936, + 940, + 944, + 948, + 952, + 956, + 958 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 959 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_05", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 881 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_06", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 721 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 722 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_07", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 799 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 800 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_08", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 904, + 908, + 912, + 916, + 920, + 924, + 928, + 932, + 936, + 940, + 944, + 948, + 952, + 956, + 960, + 964, + 968, + 972, + 976, + 978 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 979 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_09", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 904, + 908, + 912, + 916, + 920, + 924, + 928, + 932, + 936, + 940, + 944, + 948, + 952, + 956, + 960, + 962 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 963 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_10", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 904, + 908, + 912, + 916, + 920, + 924, + 928, + 932, + 936, + 940, + 944, + 948, + 952, + 956, + 960, + 964, + 968, + 972, + 976, + 980, + 984, + 988, + 992, + 996, + 1000, + 1004, + 1008, + 1012, + 1016, + 1020, + 1023 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 1024 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_11", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 738 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 739 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_12", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 904, + 908, + 912, + 916, + 920, + 924, + 928, + 932, + 936, + 940, + 944, + 948, + 952, + 956, + 960, + 964, + 968, + 972, + 976, + 980, + 984, + 988, + 992, + 996, + 1000, + 1004, + 1005 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 1006 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_13", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 813 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_14", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 904, + 908, + 912, + 916, + 920, + 924, + 928, + 932, + 936, + 940, + 944, + 948, + 952, + 956, + 960, + 964, + 968, + 972, + 976, + 980, + 984, + 988, + 992, + 996, + 1000, + 1004, + 1008, + 1012, + 1016, + 1020, + 1024, + 1028, + 1032, + 1036, + 1040, + 1044, + 1048, + 1052, + 1056, + 1060, + 1064, + 1068, + 1072, + 1076, + 1080, + 1082 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 1083 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_15", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 791 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 792 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_16", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 861 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_17", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 904, + 908, + 912, + 916, + 920, + 924, + 928, + 932, + 936, + 938 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 939 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_18", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 671 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 672 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + }, + { + "demo_id": "demo_19", + "machine_rgb_indices": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 904, + 908, + 912, + 916, + 920, + 924, + 928, + 932, + 936, + 940, + 944, + 948, + 949 + ], + "cameras": [ + "front_camera", + "top_camera" + ], + "rgb_bulk_read_indices": [ + 0, + 950 + ], + "note": "All RGB frames loaded in bulk to avoid repeated HDF5 decompression; descriptor indices listed separately, not all visually inspected.", + "action_and_proprio_read": "all authorized indices" + } +] \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/model_tool_manifest.yaml b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/model_tool_manifest.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d9d5ab7ab78e270f7c4f9ab64348851a6b985f16 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/model_tool_manifest.yaml @@ -0,0 +1,200 @@ +{ + "schema": "task-local-model-tool-manifest-v1", + "task_id": "DualArmClothCylinderWipe-v1", + "worker": "Agent-D20-E20-Compiled", + "stage": "INDEPENDENT_REHEARSAL_CANDIDATE", + "candidate_status": "See exact rehearsal receipts outside immutable bundle", + "models": { + "coding_model": { + "provider": "OpenAI", + "interface_identity": "Codex, based on GPT-6 per supplied role", + "exact_checkpoint": "not exposed", + "weights_modified": false + }, + "runtime_neural_models": [], + "pretrained_tool_weight_references": [], + "neural_finetuning": false, + "note": "No neural inference or weight updates. Runtime uses D20 action/reference memories, fixed image segmentation and a classical empirical camera-motion matrix." + }, + "data_provenance": { + "authorized_root": "/demonstrations", + "manifest_path": "/demo_manifest.json", + "manifest_sha256": "9dd6aef427025bab9c5fc3da5d7a384fea1d391a2996f7b1fc8d63c26039eca8", + "contract_path": "/task_contract.json", + "contract_sha256": "7aedc431397ee14e47e58a03f308646e9b594c932d3b66ae6ac264638f97b1c6", + "demo_ids": [ + "demo_00", + "demo_01", + "demo_02", + "demo_03", + "demo_04", + "demo_05", + "demo_06", + "demo_07", + "demo_08", + "demo_09", + "demo_10", + "demo_11", + "demo_12", + "demo_13", + "demo_14", + "demo_15", + "demo_16", + "demo_17", + "demo_18", + "demo_19" + ], + "demo_count": 20, + "all_action_vectors_analyzed": 17559, + "lookup_records": 5613, + "exact_visual_inspection_log": "../demo_analysis.md", + "exact_descriptor_indices": "memory_provenance.json", + "source_verification": "Runner supplies verified demo manifest separately; source lineage hashes were read from the released manifest, not independently re-established.", + "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)." + }, + "tools_used": [ + { + "name": "functions.exec / exec_command", + "purpose": "Scoped shell/Python execution, file creation, syntax and synthetic checks", + "version": "host tool version not exposed" + }, + { + "name": "view_image", + "purpose": "Inspect authorized D20 contact sheets and legal exploration camera evidence", + "version": "host tool version not exposed" + }, + { + "name": "worker_api.API", + "path": "/worker_api.py", + "sha256": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e", + "purpose": "Authorized demo reads and all legal exploration/rehearsal/budget methods; native score overwrite attempt correctly rejected." + }, + { + "name": "Python", + "version": "3.10.20", + "purpose": "Offline analysis, compilation, draft controller and checks" + }, + { + "name": "NumPy", + "version": "2.2.6", + "purpose": "Array statistics, fixed descriptors, lookup memory and retrieval" + }, + { + "name": "OpenCV", + "package": "opencv-python", + "version": "4.13.0.92", + "purpose": "Fixed resizing/color thresholds, contact-sheet annotation and image encoding; no neural models" + }, + { + "name": "h5py", + "version": "3.16.0", + "purpose": "Authorized sanitized HDF5 reads" + }, + { + "name": "Python standard library", + "version": "3.10.20", + "modules": [ + "importlib", + "json", + "pathlib", + "platform", + "hashlib", + "time", + "py_compile", + "importlib.metadata" + ], + "purpose": "Loading, documentation, provenance and validation" + }, + { + "name": "bash and shell utilities", + "version": "not separately pinned; see runner common lock", + "commands": [ + "cat", + "mkdir", + "find", + "pwd", + "pkill", + "ls", + "du" + ], + "purpose": "Workspace files and process management" + } + ], + "dependencies": { + "runtime": { + "python": "3.10.20", + "numpy": "2.2.6", + "opencv-python": "4.13.0.92" + }, + "offline_build_additional": { + "h5py": "3.16.0", + "worker_api": "/worker_api.py", + "authorized_mounts": [ + "/task_contract.json", + "/demo_manifest.json", + "/demonstrations" + ], + "scipy": "Classical linear assignment for hand permutation only; not a runtime dependency" + }, + "common_environment_lock": "supplied separately by runner" + }, + "validation": { + "historical_independent_rehearsals": [ + { + "episode": 2, + "bundle_hash": "dd5587f008e37611fcbc3a0ebf66e613da68f03676a0709899a6ae8076f46e1f", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 9, + "bundle_hash": "571ff4ab6cd265095fbce825c5e1f6e540a5833e353495b3e1dc3315167b7642", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 15, + "bundle_hash": "f38665687a975c5ffac74f7897be02f8eba443aee6bf775f4425be68e61fec10", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + } + ], + "current_version": "Must be assessed by exact-bundle API rehearsal receipt", + "audit": "../exploration/findings.md" + }, + "known_limitations": [ + "No internal success detector; native feedback is authoritative.", + "Second-hand image components can be ambiguous or occluded; first-hand image feedback is disabled.", + "Cloth contact, orientation and coverage remain unreliable.", + "Reference end is not proof of completion.", + "No hidden state, simulator kinematics, camera calibration or other-task data used." + ], + "artifacts_sha256": { + "config.json": "2df7008f70ae93f61b80734cbe30775a0f8ca000b7943f9771aeca045ea82e6f", + "controller.py": "89548a24fc0a2da39125ee84c0cf22ccad5643ba37a25c43c230174fa9cf04d3", + "features.py": "8799317eb461e6ee780da3342c5d665fe2af4e93c48c3be578b9f2b0e03bf377", + "findings.md": "77ccdd7ddbe2ec43b56ab5bf32a4b2c4f1de676b161a2e7d52ceedd97dcdeed8", + "hand_mapping.json": "84c7fc6cafeca877a400e3dc4aacac8876eebed562d915a7fd17ec2b72eab0a5", + "handoff.md": "4eb0bf6fbf954d877f961f4e130f5546ccee9564c9658a292347e429a3ba63d6", + "initial_red.npz": "fe3455c0e9224e221e40eb6a446aa1613beb486bf79b5508d5310470e4084b20", + "local_versions.json": "1fa379e5b7359568c47fe024729942318c0b681067190c7ce439af75aa4bef81", + "memory.npz": "2ddf1fb6fc2200d0ce6f7720a81deddcf4b9081f48f57babf5827e17365e6809", + "memory_provenance.json": "274171c9401a581a7a0ecdcd576a2135e9eec127e31ffc7f23c7c3580e2c0e35", + "pose.py": "bb5821e10ddf4159d901897fad3e0c906762ee17496c0bf790a968e7bbac3dfe", + "pose_reference.npz": "991f445b7c1490ce1a19f96ec55e14a209df7f1507143c11dd1f308da1e9cdf3", + "reference.npz": "acd95e4126695717a9c8487b2f65ac18ce5222aa99fa8b8dce85d5b670da764b", + "requirements.txt": "499e0528a037f06bf49cacbe43203e90deaa66788d137d8c6d6e57d2247ea820", + "skills.md": "3757dcb836302d6eafc74bf539572f865de944eadd8d0e21e551f4a40c84258b", + "vision.py": "51fbceaf3c2041b411ed59a12938722a03937710631bd25a14e04b6d9f135227", + "visual_reference.npz": "0a6ab9fdad61a26dc8a5542a5bd06da7a842d470b8776814237be3ff5bfe3e85" + } +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/policy_runner.py b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/policy_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..e49448d6245feb7818ae505f1061708ab97c6ead --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/policy_runner.py @@ -0,0 +1,25 @@ +"""Frozen-program entry point; no development agent and no reset capability.""" +import importlib.util +import sys + +sys.path.insert(0,'/artifact') +sys.path.insert(0,'/') +from worker_api import API + + +def main(): + spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py') + module=importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + module.reset_episode() + api=API() + result=api.latest_observation() + while not (result['terminated'] or result['truncated'] or result['horizon_reached']): + obs=dict(result['observation'],step_id=result['step_id']) + action=module.act(obs) + if action is None:break + response=api.execute_actions([action]) + result=response['steps'][-1] + + +if __name__=='__main__':main() diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/pose.py b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/pose.py new file mode 100644 index 0000000000000000000000000000000000000000..dcb4c64027c4d0a53c4bcc1e239f706c5eb81edd --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/pose.py @@ -0,0 +1,25 @@ +"""Fixed second-hand silhouette and fingertip descriptors, no learned vision.""" +import cv2,numpy as np +ROIS={'front_camera':(150,55,320,190),'top_camera':(95,0,240,155)} +def feature(im,cam,expected=None): + im=cv2.resize(np.asarray(im).squeeze(),(320,240) if cam=='front_camera' else (240,320),interpolation=cv2.INTER_AREA) + hi=im.max(2);lo=im.min(2);mask=((hi<65)&((hi.astype(float)-lo)<18)).astype(np.uint8) + if cam=='top_camera':cv2.circle(mask,(120,160),18,0,-1) + x0,y0,x1,y1=ROIS[cam];roi=mask[y0:y1,x0:x1];n,lab,st,ct=cv2.connectedComponentsWithStats(roi,8) + out=np.full(7,np.nan,np.float32) + if n<=1:return out + score=np.log(np.maximum(st[1:,cv2.CC_STAT_AREA],1)).astype(float) + if expected is not None and np.isfinite(expected).all():score-=np.linalg.norm(ct[1:]+[x0,y0]-expected,axis=1)/12 + k=1+np.argmax(score) + if st[k,cv2.CC_STAT_AREA]<12:return out + 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.) + out[:5]=[center[0],center[1],10*(vx-vy)/tr,20*xy/tr,5*np.log(tr+1)] + white=((lo>180)&((hi.astype(float)-lo)<35)).astype(np.uint8);nw,_,sw,cw=cv2.connectedComponentsWithStats(white,8) + ids=[j for j in range(1,nw) if 3<=sw[j,cv2.CC_STAT_AREA]<=40 and 8=2: + vecs=cw[ids]-center;lengths=np.linalg.norm(vecs,axis=1);unit=vecs/lengths[:,None];groups=unit@unit.T>.5 + counts=groups.sum(1);scores=counts+.01*(groups@lengths/np.maximum(counts,1));best=int(np.argmax(scores));cluster=groups[best] + if counts[best]>=2: + tips=np.mean(cw[np.asarray(ids)[cluster]],axis=0);vec=tips-center;length=np.linalg.norm(vec) + if length>3:out[5:]=10*vec/length + return out diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/requirements.txt b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..c447bf4ced783dc6fef854906bfd86bbe1740aba --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/requirements.txt @@ -0,0 +1,2 @@ +numpy==2.2.6 +opencv-python==4.13.0.92 diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/skills.md b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/skills.md new file mode 100644 index 0000000000000000000000000000000000000000..bba8a19b3694894361f328ad40c32eff3ca921e8 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/skills.md @@ -0,0 +1,7 @@ +# Task-local runtime skills +Use the real post-hold RGB and joint observations. Select one of the authorized D20 references by initial red-mask mismatch across front, left and top cameras. +Follow its native action sequence. Track dark second-hand components in front/top images, using the last valid position as a temporal prior. Apply bounded translation correction from the classical D20 camera-motion fit. The first arm remains on its reference path because its hand is often occluded by cloth. +Pause reference progress when image error exceeds eight pixels. Briefly retain bounded corrections during missing detections; resume quarter-speed after prolonged pauses. A remaining-horizon guard prioritizes advancing the reference when time is short. These are recovery attempts, not guaranteed recovery. +Use the D20-inferred action-to-joint permutation to re-evaluate hand commands from observed joint positions. This preserves the demonstrated joint goals during recovery pauses; emitted values remain normalized delta commands, clipped to the native bounds. +Return None at reference end or native step1200 (including the charged hold). Neither stopping nor apparent cloth contact declares success. +Orientation follows demonstration actions; experimental silhouette-orientation feedback is disabled. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/vision.py b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/vision.py new file mode 100644 index 0000000000000000000000000000000000000000..27efbeed56c0a51ecdb927baa129b0de4ba8426a --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/vision.py @@ -0,0 +1,25 @@ +import cv2,numpy as np +# All coordinates in fixed resized camera images; not world calibration. +ROIS={'front_camera':[(60,60,175,185),(150,55,320,190)],'top_camera':[(95,175,240,320),(95,0,240,155)]} +def locate(im,cam,expected=None): + size=(320,240) if cam=='front_camera' else (240,320) + im=cv2.resize(np.asarray(im).squeeze(),size,interpolation=cv2.INTER_AREA) + hi=im.max(2);lo=im.min(2);mask=((hi<65)&((hi.astype(float)-lo)<18)).astype(np.uint8) + if cam=='top_camera':cv2.circle(mask,(120,160),18,0,-1) + points=[] + for ri,(x0,y0,x1,y1) in enumerate(ROIS[cam]): + roi=mask[y0:y1,x0:x1];n,l,st,ct=cv2.connectedComponentsWithStats(roi,8) + if n<=1:points.append([np.nan,np.nan]);continue + score=np.log(np.maximum(st[1:,cv2.CC_STAT_AREA],1)).astype(float) + if expected is not None and np.isfinite(expected[ri]).all():score-=np.linalg.norm(ct[1:]+[x0,y0]-expected[ri],axis=1)/12 + k=1+np.argmax(score);xy=ct[k]+[x0,y0] + if st[k,cv2.CC_STAT_AREA]<12:xy[:]=np.nan + points.append(xy) + return np.array(points,np.float32) +if __name__=='__main__': + import sys + for p in sys.argv[1:]: + cam='top_camera' if 'top' in p else 'front_camera';im=cv2.imread(p)[...,::-1];pts=locate(im,cam);im=cv2.resize(im,(320,240) if cam=='front_camera' else (240,320)) + for xy in pts: + if np.isfinite(xy).all():cv2.circle(im,tuple(np.rint(xy).astype(int)),5,(255,0,255),1) + cv2.imwrite(p+'.loc.jpg',im[...,::-1]);print(p,pts.tolist()) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/worker_api.py b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/worker_api.py new file mode 100644 index 0000000000000000000000000000000000000000..ff137d1c68cb70a1549326d2d22b430c9cf4e20c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmClothCylinderWipe-v1/frozen/worker_api.py @@ -0,0 +1,81 @@ +"""Standalone worker client; safe to mount without the runner package.""" +import base64 +import json +import socket +import struct +import uuid +import os +from pathlib import Path + +import numpy as np + + +def array_hook(value): + if value.get('__array__') is True: + dtype=np.dtype(value['dtype']) + if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service') + raw=base64.b64decode(value['data'],validate=True) + return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy() + return value + + +class API: + def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'): + self.socket_path=socket_path + self.demo_root=Path(demo_root) + self.manifest=Path(manifest) + + def call(self,method,arguments=None,request_id=None): + # Caller can persist a request ID before sending. Never automatically retry. + request_id=request_id or str(uuid.uuid4()) + request={'request_id':request_id,'method':method,'arguments':arguments or {}} + if os.environ.get('AGENT_E20_RPC_TOKEN'): + request['token']=os.environ['AGENT_E20_RPC_TOKEN'] + payload=json.dumps(request,allow_nan=False).encode() + if len(payload)>65536:raise ValueError('request too large') + with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s: + s.settimeout(1810);s.connect(self.socket_path) + s.sendall(struct.pack('!I',len(payload))+payload) + def exact(n): + chunks=[] + while n: + chunk=s.recv(min(n,1024*1024)) + if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID') + chunks.append(chunk);n-=len(chunk) + return b''.join(chunks) + length=struct.unpack('!I',exact(4))[0] + if length>64*1024*1024:raise RuntimeError('response too large') + result=json.loads(exact(length),object_hook=array_hook) + if not result['ok']:raise RuntimeError(result['error']) + return result['result'] + + def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id) + def latest_observation(self):return self.call('latest_observation') + def execute_actions(self,actions,request_id=None): + return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id) + def finish_episode(self):return self.call('finish_episode') + def budget_status(self):return self.call('budget_status') + def rehearse(self,candidate='candidate',request_id=None): + return self.call('rehearse',{'candidate':candidate},request_id) + def score_rehearsal(self,episode,visible_success,evidence): + return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence}) + def freeze(self):return self.call('freeze') + + def read_demo(self,demo_id,start=0,stop=None,fields=None): + import h5py + manifest=json.loads(self.manifest.read_text()) + if manifest.get('status') not in ('released','released_for_offline_analysis'): + raise RuntimeError('demonstrations not released by trusted preflight') + entries={e['demo_id']:e for e in manifest['episodes']} + if demo_id not in entries:raise ValueError('unauthorized demo ID') + entry=entries[demo_id] + allowed={f['path'] for f in entry['fields']} + fields=sorted(allowed) if fields is None else fields + if not set(fields)<=allowed:raise ValueError('unauthorized demo field') + stop=entry['length']+1 if stop is None else stop + if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start0,i].min().item(),store['target'][store['valid'][:,i]>0,i].max().item()) for i in range(8)]) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/check_synthetic.py b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/check_synthetic.py new file mode 100644 index 0000000000000000000000000000000000000000..d3ad51062e506ae5acc52b96fc8b464404693005 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/check_synthetic.py @@ -0,0 +1,36 @@ +"""Syntax/interface checks only; no environment or demonstration rollout.""" +import numpy as np +import controller as c + +def rgb(x): + out={} + for cam in c.CAMERAS: + a=np.full((240,320,3),180,np.uint8) + a[130:138,x:x+8]=[30,70,210] + a[200:208,190:198]=[30,70,210] + out[cam]=a + return out + +actual=c._load() +assert actual['action'].shape==(2584,44) +assert np.isfinite(actual['action']).all() and np.max(abs(actual['action']))<=1 +im0,t0,m0=c.image_features(rgb(65));im1,t1,m1=c.image_features(rgb(95)) +c._memory={'q':np.array([np.zeros(46),np.ones(46)*.2]),'v':np.zeros((2,46)), + 'q_scale':np.ones(46)*.08,'v_scale':np.ones(46)*.1,'im':np.array([im0,im1]), + 'target':np.array([t0,t1]),'valid':np.array([m0,m1]),'action':np.zeros((2,44))} +c._memory['action'][0,0]=.04;c._memory['action'][1,0]=-.04 +p={'agent/'+r+'/'+k:np.zeros(23) for r in c.ROBOTS for k in ['qpos','qvel']} +o={'rgb':rgb(65),'proprioception':p,'instruction':'press two buttons','step_id':1} +a=c.act(o);assert a.shape==(44,) and a.dtype==np.float32 and np.isfinite(a).all() and np.max(abs(a))<=1 +c.reset_episode();assert np.array_equal(a,c.act(o)) +batched=dict(o,rgb={k:v[None] for k,v in o['rgb'].items()});assert np.array_equal(a,c.act(batched)) +qchange=dict(o,proprioception={k:(np.ones(23)*.2 if k.endswith('qpos') else v) for k,v in p.items()}) +assert not np.allclose(a,c.act(qchange)) +mid=dict(o,proprioception={k:(np.ones(23)*.1 if k.endswith('qpos') else v) for k,v in p.items()}) +assert not np.allclose(c.act(mid),c.act(dict(mid,rgb=rgb(95)))) +assert c.act(dict(o,step_id=199)) is not None +assert c.act(dict(o,step_id=200)) is None +assert np.array_equal(c.act(dict(o,rgb={})),np.zeros(44)) +assert np.array_equal(c.act(dict(o,rgb={k:np.zeros_like(v) for k,v in o['rgb'].items()})),np.zeros(44)) +c._memory=actual +print('PASS: artifact schema; synthetic shape, bounds, RGB/proprio response, batch, reset, missing/blank RGB, horizon. No rollout or task-success test.') diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/controller.py b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/controller.py new file mode 100644 index 0000000000000000000000000000000000000000..2723db403c25c1ca1d44aeb7c06ad38061958a96 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/controller.py @@ -0,0 +1,85 @@ +"""Unrehearsed D20 observation-conditioned action interpolation; no neural model.""" +from pathlib import Path +import numpy as np +import cv2 + +ROBOTS = ('panda_leaphand-1', 'panda_leaphand_left-0') +CAMERAS = ('front_camera', 'top_camera') +_memory = None + +def reset_episode(): + """No trajectory index or scene identity is retained between calls/episodes.""" + global _initial_target + _initial_target = None + +def image_features(rgb): + appearance, targets, visible = [], [], [] + for cam in CAMERAS: + im = np.asarray(rgb[cam]) + if im.ndim == 4 and im.shape[0] == 1: + im = im[0] + if im.ndim != 3 or im.shape[2] != 3 or im.dtype != np.uint8: + raise ValueError('Expected uint8 HWC or 1HWC RGB') + appearance.extend((cv2.resize(im, (32, 24), interpolation=cv2.INTER_AREA).astype(np.float32)/255).ravel()) + h, w = im.shape[:2] + hsv = cv2.cvtColor(im, cv2.COLOR_RGB2HSV) + mask = cv2.inRange(hsv, np.array([95,70,45]), np.array([135,255,255])) + # Spatial ordering is image-relative, not a robot/world axis conversion. + for half in range(2): + region = mask.copy() + if cam == 'front_camera': + region[:int(.30*h)] = 0 + region[int(.82*h):] = 0 + region[:, :w//2 if half else 0] = 0 + if half == 0: region[:, w//2:] = 0 + else: + if half == 0: region[h//2:] = 0 + else: region[:h//2] = 0 + count, labels, stats, centers = cv2.connectedComponentsWithStats(region) + ids = [i for i in range(1,count) if stats[i,cv2.CC_STAT_AREA] >= 3] + if ids: + i = max(ids, key=lambda j: stats[j,cv2.CC_STAT_AREA]) + targets.extend(centers[i]/[w,h]); visible.extend([1,1]) + else: + targets.extend([0,0]); visible.extend([0,0]) + return (np.asarray(appearance,np.float32), np.asarray(targets,np.float32), np.asarray(visible,np.float32)) + +def _load(): + global _memory + if _memory is None: + with np.load(Path(__file__).with_name('demo_memory.npz'), allow_pickle=False) as f: + _memory = {k:f[k] for k in f.files} + return _memory + + +_initial_target = None +_regdata = None + +def act(obs): + global _initial_target, _regdata + if int(obs.get('step_id',1)) >= 200: return None + out = np.zeros(44,np.float32) + try: + q = np.concatenate([np.asarray(obs['proprioception']['agent/'+r+'/qpos']).reshape(-1) for r in ROBOTS]) + _, target, valid = image_features(obs['rgb']) + except (KeyError,ValueError,TypeError): return out + if _initial_target is None: + if valid.sum()!=8: return out + _initial_target = target.copy() + m = _load() + if _regdata is None: + initial = m['target'][m['frame_index']==0] + _regdata = initial[m['demo_index']] + for arm,ts in [(0,[2,3,4,5]),(1,[0,1,6,7])]: + qs=slice(arm*23,arm*23+7) + # Locally affine non-neural imitation from measured joints and fixed target localization. + dx=np.concatenate([(m['q'][:,qs]-q[qs])/.15,(_regdata[:,ts]-_initial_target[ts])/.025],axis=1) + dist=np.mean(dx[:,:7]**2,axis=1)+np.mean(dx[:,7:]**2,axis=1)*2 + ids=np.argpartition(dist,119)[:120] + x=np.column_stack([np.ones(len(ids)),dx[ids]]) + w=np.exp(-(dist[ids]-dist[ids].min())/max(.1,float(np.median(dist[ids])))) + reg=np.eye(x.shape[1])*.015;reg[0,0]=.00001 + y=m['action'][ids,arm*22:arm*22+3] + coef=np.linalg.solve(x.T@(w[:,None]*x)+reg,x.T@(w[:,None]*y)) + out[arm*22:arm*22+3]=np.clip(coef[0],-.06,.06) + return out diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/demo_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/demo_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..02e9c30519eed8b00b904c85cf1456cc1c021126 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/demo_manifest.json @@ -0,0 +1,2168 @@ +{ + "task_id": "DualArmPressButton-v1", + "status": "released", + "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data", + "lineage_status": "pinned_comparator", + "episodes": [ + { + "demo_id": "demo_00", + "file": "demo_00.h5", + "length": 121, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 121, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 121, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 122, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 122, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 122, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 122, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 122, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 122, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 122, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 122, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 122, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "6aea7db83d6e878342d1f69b04dc6cc9f2b3d3a3472fa62964a4aa79cf3758d1", + "source_sha256": "aa7009939ddbc0b21adfb2467e610467853f9b1cee299b6c1d232563cfa80823", + "view_sha256": "9fd1d03120438a2eb1461edb3d9897701ab0e7c8824c915f5aa408e7d70b75f2" + }, + { + "demo_id": "demo_01", + "file": "demo_01.h5", + "length": 128, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 128, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 128, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 129, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 129, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 129, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 129, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 129, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 129, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 129, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 129, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 129, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "ec90ebe15a9ff97e0d6f5283a3a8ddbb59b84849320284c35332b532c329b4db", + "source_sha256": "6e5cadbf0d1ee811a0a3a45fb74449b73e45d0f1bde9198c96710ccd4efe901d", + "view_sha256": "9c25a4329e7ef18b8a2504c9619535dbcb6c9db33c00f1331aa38d25990999a4" + }, + { + "demo_id": "demo_02", + "file": "demo_02.h5", + "length": 105, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 105, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 105, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 106, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 106, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 106, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 106, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 106, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 106, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 106, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 106, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 106, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "3bff2e183e2bf2528f54699b743b1ce3646aa47b351705d5f3d6ea5fca1c748a", + "source_sha256": "9f6d051cbc316dccc2b8c94d802b7a4606d4af0882e469419239eacbf17da3ed", + "view_sha256": "954e00d47304e22c5e21e41dcd8818d3c9af8ead4096c4b5a774fc283b83a910" + }, + { + "demo_id": "demo_03", + "file": "demo_03.h5", + "length": 139, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 139, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 139, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 140, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "bdedda4acb797889240fe5e385d05fcfb2e932b12e3f0f08fef302ff4043eefe", + "source_sha256": "9bfc82ace6eac4102e08d00fd28fd0246f4d657003c74962c2b23f58cb8275e2", + "view_sha256": "dcf862ecad594698475d93496e26ebabf65e2acd37dd13d5205badb8acedf31e" + }, + { + "demo_id": "demo_04", + "file": "demo_04.h5", + "length": 140, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 140, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 140, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 141, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 141, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 141, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 141, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 141, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 141, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 141, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 141, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 141, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "bbfe736bfd078a9d96eccc0d0deeaa14739d068837278edab8da5cd0944d5ec1", + "source_sha256": "09410e8047b207e502d2f864c9cb8fa3ba781f0c4ad516830729058e32472c43", + "view_sha256": "c310887e13658d85ef8ea70aaccdcb34ca18aa9718de852fd20d6eaa9596d74e" + }, + { + "demo_id": "demo_05", + "file": "demo_05.h5", + "length": 140, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 140, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 140, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 141, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 141, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 141, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 141, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 141, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 141, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 141, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 141, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 141, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "3701d9b889b5cf4fa3c50eb2e68a4d77110746c6a218691b855d43582d3bab65", + "source_sha256": "6b9acb3a6598cd41d317089508a896c67a69b8c527ea0c9864231867c0157af8", + "view_sha256": "faceed3b7ef86cb22e1b2fdd10554b1eb1201bf844d9d22b49b0d689fecaf90e" + }, + { + "demo_id": "demo_06", + "file": "demo_06.h5", + "length": 119, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 119, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 119, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 120, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 120, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 120, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 120, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 120, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 120, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 120, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 120, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 120, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e1def4db88afb114fd92408288f03fdeb5ad8656d3c7b5fcfdf0a1f64d1f6be9", + "source_sha256": "4aa5afb80faaeee457c3efc71e5fa9335e08bc405be58a358f6748a0c66b0f5f", + "view_sha256": "d49fef9c227056bd0d0313d221396d1f9d58a85c2bb27f2e99988d4434bc30d1" + }, + { + "demo_id": "demo_07", + "file": "demo_07.h5", + "length": 150, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 150, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 150, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 151, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 151, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 151, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 151, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 151, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 151, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 151, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 151, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 151, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "1a57698dd0695afa44e010bebddf0b74724b1e9a0bd0c3eabd944778f2f75785", + "source_sha256": "35c3c3272f9eb191b6624bdb8e712685d2b8ff4ecefa724fce23d3fcb9118fdc", + "view_sha256": "c61bb9381d99aa6003f0cd8a1c6c19fa794b218cf7566b48bb3932b61ff8b21a" + }, + { + "demo_id": "demo_08", + "file": "demo_08.h5", + "length": 139, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 139, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 139, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 140, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "7daf6fefb837cbb6c8b961cb595c0a784045ba89f2fef8b441b1f658d752c877", + "source_sha256": "4520fed257ceb05a7b3fc0b54a7db65f96ca2f27ed1f9471ea68f60090154c8c", + "view_sha256": "aed16e56c42daaf719b39cafd4cf44a752c7468c0429d2b4413aad77428cc9af" + }, + { + "demo_id": "demo_09", + "file": "demo_09.h5", + "length": 135, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 135, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 135, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 136, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 136, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 136, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 136, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 136, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 136, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 136, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 136, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 136, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e44fc995deb6811ff2520c60359ec2c6558043fc9a71c10d26684c656db66874", + "source_sha256": "cfa7ac7ebb8ab69aca26d7135bfc129d6ecda024e4fb2d5adf99dc79a066d52b", + "view_sha256": "f2bd8a7b7c8bc26ffa9e3bbfe595930ffa9759583d4c47177d91eb4cb48d5856" + }, + { + "demo_id": "demo_10", + "file": "demo_10.h5", + "length": 132, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 132, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 132, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 133, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 133, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 133, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 133, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 133, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 133, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 133, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 133, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 133, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e9ab7c4218909a95259066b605482391f259f1238e4ac542826bf1c075a4f908", + "source_sha256": "d818aad52c09324f82ba9379e758b87bb84d9199353c4fae5ade186a67da08c5", + "view_sha256": "6a7e6f837d69793fd27c4f6da6e367c2114ac6c8e445550e5d521bebb01a6dd2" + }, + { + "demo_id": "demo_11", + "file": "demo_11.h5", + "length": 118, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 118, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 118, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 119, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 119, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 119, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 119, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 119, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 119, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 119, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 119, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 119, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "37a3886f24db89bff1127d0cc15be7ae6302c283176a6e468393ec7260094a82", + "source_sha256": "957bfe06f73c746b5c320910d3d2c83cb5e2eb9ce19eb9146a011669557073c8", + "view_sha256": "0fc5f612b99fd77bd55d03e4a368ce6c33e4f35e61c4d5e42a32c5cd97121368" + }, + { + "demo_id": "demo_12", + "file": "demo_12.h5", + "length": 125, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 125, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 125, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 126, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 126, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 126, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 126, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 126, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 126, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 126, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 126, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 126, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "af0b38a2f5d1950b4d8ef4775e0c5ffe5ddf9702996e5cb453354382fdfc79d6", + "source_sha256": "8a0a6a891e3f4e7378deacc6e2ce480de34d9c328c998c708c1571ad59b60401", + "view_sha256": "d5539b7c934535d00bb1cfdc7f505b32c24d2b75bfb08d0dabd17162620b186d" + }, + { + "demo_id": "demo_13", + "file": "demo_13.h5", + "length": 135, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 135, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 135, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 136, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 136, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 136, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 136, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 136, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 136, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 136, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 136, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 136, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "fe7510a184642cc7587c3918760338ea34ece3a454315160c1d4602d0143c802", + "source_sha256": "b00952cafbcfbebcdbbf507c946f3e313b79d2e6cb58ae29a0d0c5b80be44d27", + "view_sha256": "85425c64f3da1eee18d4cc7d0cf72a328e2af6424559eb46dad2eb0302ae660a" + }, + { + "demo_id": "demo_14", + "file": "demo_14.h5", + "length": 125, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 125, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 125, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 126, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 126, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 126, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 126, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 126, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 126, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 126, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 126, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 126, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "52f8c00de0a47cf4057bd6d3129e7f6fdd67a50a1865926250c91894d0286438", + "source_sha256": "25566dbc56635718d92e72d10dd5f6dc624d28a0bc35eadf1e810fd28d0e6c83", + "view_sha256": "4d4bf6618c403c9c2538d3b506a60a97f577e706f1ba9ff59413425bbac4c576" + }, + { + "demo_id": "demo_15", + "file": "demo_15.h5", + "length": 122, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 122, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 122, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 123, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 123, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 123, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 123, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 123, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 123, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 123, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 123, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 123, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "eb8a6614f3b89a299a19d506ae5fea1c02886337e8770903b08889b0156a545d", + "source_sha256": "238ff1cb4b4f30cff11f81008bc87fb5c942c894aec3b7f997fff64877b0c500", + "view_sha256": "c7efbd8ef3526c7b8bcb48b6eb61aa2f51a5f4af94c5a746e0be1da39b60700b" + }, + { + "demo_id": "demo_16", + "file": "demo_16.h5", + "length": 126, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 126, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 126, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 127, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 127, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 127, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 127, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 127, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 127, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 127, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 127, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 127, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "c610241ac9fbe9cbf2fc0ffbd057095abfe359cb49ccd6d1a5fdc9ec04181b74", + "source_sha256": "54caf995f476c60af7b2d77a70465de26f2cf650ff6db9e64dd35f780c6f8deb", + "view_sha256": "1530e9fa3a301e2f92ec46d0131b3cdf91074951764958b8acc7d54bb021463e" + }, + { + "demo_id": "demo_17", + "file": "demo_17.h5", + "length": 120, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 120, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 120, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 121, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 121, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 121, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 121, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 121, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 121, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 121, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 121, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 121, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "8ded630d94d0a4c4e2e89f9f15c3a32db2428ad5a72a6781bec62161bbc7fd22", + "source_sha256": "5fb47cd2ade56b4228fcb0df959b0487695e2c5f706c46058c019bb552e9f8dc", + "view_sha256": "78edfc8ccf40df3ec7f95b45ccd475b7f1e02a50d69885c01d3a7d971a2dcd80" + }, + { + "demo_id": "demo_18", + "file": "demo_18.h5", + "length": 126, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 126, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 126, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 127, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 127, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 127, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 127, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 127, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 127, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 127, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 127, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 127, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "4439cbb01de979cd761d2c0cec328ceec1e758d1e35fa4226d5149401f140ad8", + "source_sha256": "50c29c7b4133be338a560b8a9d88169b25cb0a7ee1618564e619a6540bbcd8fd", + "view_sha256": "16a02480219885d1def0df0479f22252612c4af74946711a2c346903b59595c0" + }, + { + "demo_id": "demo_19", + "file": "demo_19.h5", + "length": 139, + "fields": [ + { + "path": "actions/panda_leaphand-1", + "shape": [ + 139, + 22 + ], + "dtype": "float32" + }, + { + "path": "actions/panda_leaphand_left-0", + "shape": [ + 139, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qpos", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand-1/qvel", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qpos", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda_leaphand_left-0/qvel", + "shape": [ + 140, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 140, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 140, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "77bd3c5c984f008f89040efdb5d21bb017dad0724e22fcf8bb09646093252834", + "source_sha256": "1d57ac1c8c6d3affcf0fd0da10993cf58a7453e5d64eb2694cc065b7cdfbbc16", + "view_sha256": "ea82f0f80114976a162f2e3470de0c5fcbcf2f39b9a1d205a4ff9b5a5a87fef6" + } + ] +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/environment.lock b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/environment.lock new file mode 100644 index 0000000000000000000000000000000000000000..b2237f47d93aa4c3efad07728ae6acd137912d6d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/environment.lock @@ -0,0 +1,249 @@ +absl-py==2.4.0 +accelerate==1.13.0 +addict==2.4.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.13.5 +aiosignal==1.4.0 +annotated-types==0.7.0 +anyio==4.13.0 +anytree==2.13.0 +asttokens==3.0.1 +async-timeout==5.0.1 +attrs==26.1.0 +av==15.1.0 +blinker==1.9.0 +casadi==3.7.2 +certifi==2026.4.22 +cffi==2.0.0 +charset-normalizer==3.4.7 +click==8.3.3 +cloudpickle==3.1.2 +cmake==4.1.3 +coacd==1.0.11 +colorama==0.4.6 +colorlog==6.10.1 +comm==0.2.3 +ConfigArgParse==1.7.5 +contourpy==1.3.2 +cuda-bindings==12.9.4 +cuda-pathfinder==1.5.4 +cycler==0.12.1 +dacite==1.9.2 +dash==4.1.0 +dataclasses-json==0.6.7 +datasets==4.8.5 +decorator==5.2.1 +deepdiff==8.6.2 +Deprecated==1.3.1 +diffusers==0.35.2 +dill==0.4.1 +docstring_parser==0.18.0 +draccus==0.10.0 +einops==0.8.2 +embreex==4.4.0 +etils==1.13.0 +evdev==1.9.3 +exceptiongroup==1.3.1 +executing==2.2.1 +Farama-Notifications==0.0.6 +fast_simplification==0.1.13 +fastjsonschema==2.21.2 +filelock==3.29.0 +Flask==3.1.3 +fonttools==4.63.0 +freetype-py==2.5.1 +frozenlist==1.8.0 +fsspec==2026.2.0 +genesis-world @ file:///data/gck/genesis-world +git-filter-repo==2.47.0 +gitdb==4.0.12 +GitPython==3.1.50 +glfw==2.10.0 +gs-madrona==0.0.5 +gstaichi==3.3.0 +gym==0.26.2 +gym-notices==0.1.0 +gymnasium==1.3.0 +h11==0.16.0 +h5py==3.16.0 +hf-xet==1.5.0 +hf_transfer==0.1.9 +httpcore==1.0.9 +httpx==0.28.1 +huggingface-hub==0.35.3 +idna==3.15 +ImageIO==2.37.3 +imageio-ffmpeg==0.6.0 +importlib_metadata==9.0.0 +importlib_resources==7.1.0 +inquirerpy==0.3.4 +ipython==8.39.0 +ipywidgets==8.1.8 +itsdangerous==2.2.0 +jedi==0.20.0 +Jinja2==3.1.6 +joblib==1.5.3 +jsonlines==4.0.0 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +jupyter_core==5.9.1 +jupyterlab_widgets==3.0.16 +kiwisolver==1.5.0 +lazy-loader==0.5 +lerobot==0.4.4 +libigl==2.6.2 +llvmlite==0.47.0 +loguru==0.7.3 +lxml==6.1.0 +manifold3d==3.4.1 +-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder +mapbox_earcut==2.0.0 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +marshmallow==3.26.2 +matplotlib==3.10.9 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mergedeep==1.3.4 +moviepy==2.2.1 +mpmath==1.3.0 +msgspec==0.21.1 +mujoco==3.8.1 +multidict==6.7.1 +multiprocess==0.70.19 +mypy_extensions==1.1.0 +nbformat==5.10.4 +nest-asyncio==1.6.0 +networkx==3.4.2 +ninja==1.13.0 +nlopt==2.10.0 +numba==0.65.1 +numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d +nvidia-cublas-cu12==12.8.4.1 +nvidia-cuda-cupti-cu12==12.8.90 +nvidia-cuda-nvrtc-cu12==12.8.93 +nvidia-cuda-runtime-cu12==12.8.90 +nvidia-cudnn-cu12==9.10.2.21 +nvidia-cufft-cu12==11.3.3.83 +nvidia-cufile-cu12==1.13.1.3 +nvidia-curand-cu12==10.3.9.90 +nvidia-cusolver-cu12==11.7.3.90 +nvidia-cusparse-cu12==12.5.8.93 +nvidia-cusparselt-cu12==0.7.1 +nvidia-nccl-cu12==2.27.5 +nvidia-nvjitlink-cu12==12.8.93 +nvidia-nvshmem-cu12==3.4.5 +nvidia-nvtx-cu12==12.8.90 +open3d==0.19.0 +opencv-python==4.13.0.92 +opencv-python-headless==4.12.0.88 +OpenEXR==3.4.11 +orderly-set==5.5.0 +packaging==25.0 +pandas==2.3.3 +parso==0.8.7 +pexpect==4.9.0 +pfzy==0.3.4 +pillow==11.3.0 +pin==4.0.0 +pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work +platformdirs==4.9.6 +plotly==5.24.1 +polyscope==2.6.1 +proglog==0.1.12 +prompt_toolkit==3.0.52 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +pure_eval==0.2.3 +py-cpuinfo==9.0.0 +py-spy==0.4.2 +pyarrow==24.0.0 +pycollada==0.9.3 +pycparser==3.0 +pydantic==2.13.4 +pydantic_core==2.46.4 +PyGEL3D==0.6.1 +pyglet==2.1.14 +pygltflib==1.16.0 +Pygments==2.20.0 +pymeshlab==2025.7.post1 +pynput==1.8.2 +PyOpenGL==3.1.10 +pyparsing==3.3.2 +pyperclip==1.11.0 +PyQt6==6.11.0 +PyQt6-Qt6==6.11.0 +PyQt6_sip==13.11.1 +pyquaternion==0.9.9 +pyserial==3.5 +pysplashsurf==0.12.0.2 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +python-xlib==0.33 +pytransform3d==3.15.0 +pytz==2026.2 +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 +PyYAML==6.0.3 +pyyaml-include==1.4.1 +referencing==0.37.0 +regex==2026.5.9 +requests==2.34.2 +rerun-sdk==0.26.2 +retrying==1.4.2 +rich==14.3.4 +rpds-py==0.30.0 +rtree==1.4.1 +safetensors==0.7.0 +sapien==3.0.3 +scikit-image==0.25.2 +scikit-learn==1.7.2 +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 +sentry-sdk==2.60.0 +setuptools==80.10.2 +shapely==2.1.2 +six==1.17.0 +smmap==5.0.3 +stack-data==0.6.3 +svg.path==7.0 +sympy==1.14.0 +tenacity==9.1.4 +termcolor==3.3.0 +tetgen==0.8.4 +threadpoolctl==3.6.0 +tifffile==2025.5.10 +timm==1.0.27 +toml==0.10.2 +torch==2.10.0 +torchaudio==2.11.0 +torchcodec==0.10.0 +torchvision==0.25.0 +tqdm==4.67.3 +traitlets==5.15.0 +transforms3d==0.4.2 +trimesh==4.12.2 +triton==3.6.0 +typeguard==4.5.2 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +tyro==1.0.13 +tzdata==2026.2 +urllib3==2.7.0 +vhacdx==0.0.10 +viser==1.0.27 +vtk==9.6.1 +wandb==0.24.2 +wcwidth==0.7.0 +websockets==16.0 +Werkzeug==3.1.8 +wheel==0.46.3 +widgetsnbextension==4.0.15 +wrapt==2.1.2 +xxhash==3.7.0 +yarl==1.23.0 +yourdfpy==0.0.60 +z3-solver==4.16.0.0 +zipp==3.23.1 +zstandard==0.25.0 diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/findings.md b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/findings.md new file mode 100644 index 0000000000000000000000000000000000000000..2e8251994acb18b443ff5a6dc58cc2deda60d44c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/findings.md @@ -0,0 +1,6 @@ +# Local affine comparison snapshot +Only20 authorized demos/2584 action rows supplied memory. No neural training. The current local affine implementation succeeded in interactive episode6 at native step96 and failed episode7 at horizon200. Episode7 exhibited first-arm upward extrapolation saturated+.06 near contact. This is a known risk, not hidden by the translation bound. + +Other variants were explored using this task's legal data only: baseline interactive2 succeeded(step93),3 failed; timed pressure4 and independent-neighbor5 failed; bounded local affine8 failed; endpoint servo10 failed; terminal-feedforward servo11 succeeded(step88),12 failed. Episode1 ended after a harness wrapper error. Independent rehearsals9(bounded affine),13(servo),14(hybrid),15(baseline) all completed valid with native successfalse. Snapshot16 compares the original local affine variant independently. Subsequent results and exact hashes are stored outside candidate. + +Localization: initial front/top blue regions, fixed during episode to survive occlusion; no calibrated camera/world conversion. Pose: current seven measured arm joints independently per arm. Grasp: zero hand commands preserve demonstrated posture. Timing: feedback, not demo replay. Recovery: local feedback only. Failures include stalling, lateral drift, contact-induced joint variation, and regression extrapolation. No guaranteed simultaneous activation. Native sparse success is authoritative when supplied; absent it, only unambiguous legal visual simultaneous-press evidence counts, ambiguityfalse. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/freeze_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/freeze_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..c12c854b235fd5c31e9be2f84b75bbadfd248bf0 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/freeze_manifest.json @@ -0,0 +1,117 @@ +{ + "files": { + "build_memory.py": "d7e6d408a8df1a43b7fd1b5417aa9b3ba52406d9e73aa817243fadf8da8bb6fe", + "check_synthetic.py": "21f53ce4b949f02b077e086cf7addfdf14586f94b4903571c1372e81f7e8ba45", + "controller.py": "1798197fbeb1e74c60a30e1701b1923b70df7fd6a314f3d46fdbec5e72bf874b", + "demo_manifest.json": "68138dc12bd6fdb95b411a79a76993d007b0074131ba4ae0519dbdbb89a142d6", + "demo_memory.npz": "e111ff250b6a8bdbad944425b710f4e1bdc6d3bffbb5cf91a79dc1de2546fd8f", + "demonstrations_readonly/demo_00.h5": "9fd1d03120438a2eb1461edb3d9897701ab0e7c8824c915f5aa408e7d70b75f2", + "demonstrations_readonly/demo_01.h5": "9c25a4329e7ef18b8a2504c9619535dbcb6c9db33c00f1331aa38d25990999a4", + "demonstrations_readonly/demo_02.h5": "954e00d47304e22c5e21e41dcd8818d3c9af8ead4096c4b5a774fc283b83a910", + "demonstrations_readonly/demo_03.h5": "dcf862ecad594698475d93496e26ebabf65e2acd37dd13d5205badb8acedf31e", + "demonstrations_readonly/demo_04.h5": "c310887e13658d85ef8ea70aaccdcb34ca18aa9718de852fd20d6eaa9596d74e", + "demonstrations_readonly/demo_05.h5": "faceed3b7ef86cb22e1b2fdd10554b1eb1201bf844d9d22b49b0d689fecaf90e", + "demonstrations_readonly/demo_06.h5": "d49fef9c227056bd0d0313d221396d1f9d58a85c2bb27f2e99988d4434bc30d1", + "demonstrations_readonly/demo_07.h5": "c61bb9381d99aa6003f0cd8a1c6c19fa794b218cf7566b48bb3932b61ff8b21a", + "demonstrations_readonly/demo_08.h5": "aed16e56c42daaf719b39cafd4cf44a752c7468c0429d2b4413aad77428cc9af", + "demonstrations_readonly/demo_09.h5": "f2bd8a7b7c8bc26ffa9e3bbfe595930ffa9759583d4c47177d91eb4cb48d5856", + "demonstrations_readonly/demo_10.h5": "6a7e6f837d69793fd27c4f6da6e367c2114ac6c8e445550e5d521bebb01a6dd2", + "demonstrations_readonly/demo_11.h5": "0fc5f612b99fd77bd55d03e4a368ce6c33e4f35e61c4d5e42a32c5cd97121368", + "demonstrations_readonly/demo_12.h5": "d5539b7c934535d00bb1cfdc7f505b32c24d2b75bfb08d0dabd17162620b186d", + "demonstrations_readonly/demo_13.h5": "85425c64f3da1eee18d4cc7d0cf72a328e2af6424559eb46dad2eb0302ae660a", + "demonstrations_readonly/demo_14.h5": "4d4bf6618c403c9c2538d3b506a60a97f577e706f1ba9ff59413425bbac4c576", + "demonstrations_readonly/demo_15.h5": "c7efbd8ef3526c7b8bcb48b6eb61aa2f51a5f4af94c5a746e0be1da39b60700b", + "demonstrations_readonly/demo_16.h5": "1530e9fa3a301e2f92ec46d0131b3cdf91074951764958b8acc7d54bb021463e", + "demonstrations_readonly/demo_17.h5": "78edfc8ccf40df3ec7f95b45ccd475b7f1e02a50d69885c01d3a7d971a2dcd80", + "demonstrations_readonly/demo_18.h5": "16a02480219885d1def0df0479f22252612c4af74946711a2c346903b59595c0", + "demonstrations_readonly/demo_19.h5": "ea82f0f80114976a162f2e3470de0c5fcbcf2f39b9a1d205a4ff9b5a5a87fef6", + "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa", + "findings.md": "d2db6271e77b419c68fdc4d210536284d3879b01f8cd180e42b2d12ac4a5940b", + "handoff.md": "7183c22c6df2c02b7d5cd3e57610e6537c80146b2cb15295f64449c1a8c3b5fc", + "model_tool_manifest.yaml": "dce36a8ebf18eb0306050463ccd73742e26db689a43a7c8d01ce2969c2064ce4", + "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e", + "servo_model.npz": "698c8a230be914a8a3060efc8eced3e9286b3fd2c2bfc10f13b276380c660f52", + "skills.md": "6c29105cfdb3866e04fb0475c76950e5eec7dd4275db126cf4a6e2887db24560", + "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e" + }, + "bundle_hash": "b122c7223121da5ae8b554d634c2647cbd107bd11cb24be9c2cf0de4680bbf24", + "exploration_ledger_hash": "287e461ad9c7fb6ce66e6250f04daa1cdbbd01c573f681d44e2c90fd7733aa6a", + "entrypoint": "controller.reset_episode(); controller.act(obs)", + "selection": { + "rule": "exact-version success rate, valid rehearsal count, recency", + "rehearsals": [ + { + "bundle_hash": "153cd1bf18e40891113645bb7f211cb044b35dab247cc2eef5511cc0779cdd69", + "episode": 9, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "5ced6e2d8d8510e3e76bd284f357aa0d1590eec84cb6b093af294091a2134139", + "episode": 13, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "d8a5f453fbbcce660a7283499c98f334fcdc1fa519f56f9259e58d907a095e10", + "episode": 14, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "a9804c08a7fb6729aed286809f55f30600b5a186f24d65b3a803fbabe6b68acc", + "episode": 15, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "b122c7223121da5ae8b554d634c2647cbd107bd11cb24be9c2cf0de4680bbf24", + "episode": 16, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "b122c7223121da5ae8b554d634c2647cbd107bd11cb24be9c2cf0de4680bbf24", + "episode": 17, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "episode": 19, + "bundle_hash": "b122c7223121da5ae8b554d634c2647cbd107bd11cb24be9c2cf0de4680bbf24", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 20, + "bundle_hash": "b122c7223121da5ae8b554d634c2647cbd107bd11cb24be9c2cf0de4680bbf24", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + } + ] + } +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/handoff.md b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/handoff.md new file mode 100644 index 0000000000000000000000000000000000000000..cd42633ba68e537fcfd0f460e7b886e548443bdd --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/handoff.md @@ -0,0 +1,6 @@ +# Local affine runtime +controller.py exports reset_episode() and act(obs). Required offline runtime: Python, NumPy, OpenCV, sibling demo_memory.npz. No network/model services/API/demo reads/development agent at runtime. servo_model.npz and historical build/check scripts are provenance only and not used by current act. + +Supply legal post-hold RGB/proprioception and step_id. Outputs one44-component vector in contract order, translation±.06, rotation/dex deltaszero, None at200. reset_episode clears retained target; descriptor memory persists. All model data comes from20 authorized demonstrations, no neural weights modified. The runner adds verified demo manifest and common lock. + +Rehearsal/freeze evidence is outside candidate to preserve exact bundle hashes: /workspace/evidence/exploration_log.md and /workspace/evidence/rehearsals. Full original D20 analysis: /workspace/demo_analysis.md. Do not equate interactive successes with independent validation. Candidate itself cannot determine official task success. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/model_tool_manifest.yaml b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/model_tool_manifest.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b32a27770a2d3122958368f9d5bb72287b4e9711 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/model_tool_manifest.yaml @@ -0,0 +1,90 @@ +{ + "stage": "AUTHORIZED E20 DEVELOPMENT", + "task_id": "DualArmPressButton-v1", + "status": "local_affine_independent_comparison", + "action_rows": 2584, + "exploration_episodes_spent": 15, + "neural_finetuning": false, + "pretrained_tool_weights_used": [], + "frozen_weight_references": [], + "coding_model": { + "identity": "provided coding assistant; exact backend weight identifier unavailable", + "weights_modified": false + }, + "tools_used": [ + "functions.exec with exec_command/write_stdin: local shell and Python", + "functions.exec with view_image: local contact sheet inspection", + "worker_api.API.read_demo: authorized HDF5 reads only" + ], + "versions": { + "python": "3.10.20", + "numpy": "2.2.6", + "opencv": "4.12.0", + "h5py": "3.16.0" + }, + "runtime_dependencies": [ + "Python", + "numpy", + "opencv-python (cv2)", + "demo_memory.npz" + ], + "offline_dependencies": [ + "h5py", + "/worker_api.py", + "/task_contract.json", + "/demo_manifest.json", + "20 manifest-listed HDF5 files" + ], + "unused_available_tools": [ + "SciPy", + "torch" + ], + "training": "No neural training. Per-action local affine regression over 120 nearest authorized D20 observations per arm, using current arm joints and retained initial blue target locations. Ridge .015; translation clamp \u00b1.06.", + "provenance": { + "contract_sha256": "283d8d3982d783bb4d635efb97ee03a20866329effa5030cecc2058791478291", + "input_manifest_sha256": "5dd0a39aa57b060224c34f88daac55df0c665de254a75383f3b0443319c4a1dc", + "worker_api_sha256": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e", + "demo_ids": [ + "demo_00", + "demo_01", + "demo_02", + "demo_03", + "demo_04", + "demo_05", + "demo_06", + "demo_07", + "demo_08", + "demo_09", + "demo_10", + "demo_11", + "demo_12", + "demo_13", + "demo_14", + "demo_15", + "demo_16", + "demo_17", + "demo_18", + "demo_19" + ], + "selection": "entire provided pinned D20, no extra trajectories", + "field_access": "manifest-authorized RGB/proprioception/action fields via API.read_demo", + "verified_manifest_and_common_lock": "supplied separately by runner; not synthesized here" + }, + "network": { + "used": false, + "restriction": "Internet restricted to audited provider proxy; connectivity untested" + }, + "limitations": [ + "Initial blue segmentation is uncalibrated and can fail", + "No direct contact sensing or success input", + "Linear endpoint prediction may extrapolate", + "Second-arm joint redundancy only approximately handled", + "No explicit lift-and-retry recovery" + ], + "demonstrations_used": 20, + "runtime_artifacts_sha256": { + "controller.py": "1798197fbeb1e74c60a30e1701b1923b70df7fd6a314f3d46fdbec5e72bf874b", + "servo_model.npz": "698c8a230be914a8a3060efc8eced3e9286b3fd2c2bfc10f13b276380c660f52", + "demo_memory.npz": "e111ff250b6a8bdbad944425b710f4e1bdc6d3bffbb5cf91a79dc1de2546fd8f" + } +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/policy_runner.py b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/policy_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..e49448d6245feb7818ae505f1061708ab97c6ead --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/policy_runner.py @@ -0,0 +1,25 @@ +"""Frozen-program entry point; no development agent and no reset capability.""" +import importlib.util +import sys + +sys.path.insert(0,'/artifact') +sys.path.insert(0,'/') +from worker_api import API + + +def main(): + spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py') + module=importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + module.reset_episode() + api=API() + result=api.latest_observation() + while not (result['terminated'] or result['truncated'] or result['horizon_reached']): + obs=dict(result['observation'],step_id=result['step_id']) + action=module.act(obs) + if action is None:break + response=api.execute_actions([action]) + result=response['steps'][-1] + + +if __name__=='__main__':main() diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/skills.md b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/skills.md new file mode 100644 index 0000000000000000000000000000000000000000..906d301bd07426b1774e412f89fe9c41d9eaf5d1 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/skills.md @@ -0,0 +1,2 @@ +# Local affine mechanisms +Localize blue buttons using first legal front/top RGB, retain their four coordinates per arm through occlusion. For each arm, retrieve120 nearby D20 samples using measured seven arm joints and initial target coordinates. Fit a weighted local affine action map with ridge .015 at each call; take the intercept as the current translation command, clamped±.06. Rotation and dex-hand deltas remain zero. Reset initial target between episodes; no time-based trajectory replay. Missing initial detection gives a hold. No contact sensor, explicit success inference or lift/retry recovery. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/worker_api.py b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/worker_api.py new file mode 100644 index 0000000000000000000000000000000000000000..ff137d1c68cb70a1549326d2d22b430c9cf4e20c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmPressButton-v1/frozen/worker_api.py @@ -0,0 +1,81 @@ +"""Standalone worker client; safe to mount without the runner package.""" +import base64 +import json +import socket +import struct +import uuid +import os +from pathlib import Path + +import numpy as np + + +def array_hook(value): + if value.get('__array__') is True: + dtype=np.dtype(value['dtype']) + if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service') + raw=base64.b64decode(value['data'],validate=True) + return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy() + return value + + +class API: + def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'): + self.socket_path=socket_path + self.demo_root=Path(demo_root) + self.manifest=Path(manifest) + + def call(self,method,arguments=None,request_id=None): + # Caller can persist a request ID before sending. Never automatically retry. + request_id=request_id or str(uuid.uuid4()) + request={'request_id':request_id,'method':method,'arguments':arguments or {}} + if os.environ.get('AGENT_E20_RPC_TOKEN'): + request['token']=os.environ['AGENT_E20_RPC_TOKEN'] + payload=json.dumps(request,allow_nan=False).encode() + if len(payload)>65536:raise ValueError('request too large') + with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s: + s.settimeout(1810);s.connect(self.socket_path) + s.sendall(struct.pack('!I',len(payload))+payload) + def exact(n): + chunks=[] + while n: + chunk=s.recv(min(n,1024*1024)) + if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID') + chunks.append(chunk);n-=len(chunk) + return b''.join(chunks) + length=struct.unpack('!I',exact(4))[0] + if length>64*1024*1024:raise RuntimeError('response too large') + result=json.loads(exact(length),object_hook=array_hook) + if not result['ok']:raise RuntimeError(result['error']) + return result['result'] + + def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id) + def latest_observation(self):return self.call('latest_observation') + def execute_actions(self,actions,request_id=None): + return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id) + def finish_episode(self):return self.call('finish_episode') + def budget_status(self):return self.call('budget_status') + def rehearse(self,candidate='candidate',request_id=None): + return self.call('rehearse',{'candidate':candidate},request_id) + def score_rehearsal(self,episode,visible_success,evidence): + return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence}) + def freeze(self):return self.call('freeze') + + def read_demo(self,demo_id,start=0,stop=None,fields=None): + import h5py + manifest=json.loads(self.manifest.read_text()) + if manifest.get('status') not in ('released','released_for_offline_analysis'): + raise RuntimeError('demonstrations not released by trusted preflight') + entries={e['demo_id']:e for e in manifest['episodes']} + if demo_id not in entries:raise ValueError('unauthorized demo ID') + entry=entries[demo_id] + allowed={f['path'] for f in entry['fields']} + fields=sorted(allowed) if fields is None else fields + if not set(fields)<=allowed:raise ValueError('unauthorized demo field') + stop=entry['length']+1 if stop is None else stop + if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start=c._LOW) and np.all(a<=c._HIGH) +c.reset_episode();t=time.perf_counter();a=c.act(obs);latency=time.perf_counter()-t;legal(a);checks.append('real_library_with_artificial_zero_observation_returns_legal_hold') +assert c.last_diagnostics['mode']=='hold_out_of_distribution' +saved=c._db +# Fabricated library exercises retrieval; this is not a dynamics model. +n=128;q=np.zeros((n,52),np.float32);a=np.zeros((n,50),np.float32);a[:,3]=.2;a[:,46]=1.00003 +c._db={'q':q,'v':q.copy(),'a':a,'rgb':np.zeros((n,4800),np.uint8),'phase':np.zeros(n,np.float32),'scale':np.ones(52,np.float32)} +c.reset_episode();out=c.act(obs);legal(out);assert out[3]==np.float32(.2) and out[46]==1;checks.append('synthetic_retrieval_and_clipping') +obs['rgb']={k:v[None] for k,v in obs['rgb'].items()};legal(c.act(obs));checks.append('batched_rgb') +obs['proprioception'][c._QPATH[0]][0]=.01;out=c.act(obs);assert np.isclose(out[0],.01);checks.append('measured_base_feedback') +obs['rgb']={k:np.full_like(v,255) for k,v in obs['rgb'].items()};out=c.act(obs);legal(out);assert c.last_diagnostics['mode']=='hold_out_of_distribution';checks.append('changed_rgb_changes_to_hold') +obs['rgb']={};out=c.act(obs);legal(out);assert c.last_diagnostics['mode']=='hold_missing_observation';checks.append('missing_rgb_hold') +obs['proprioception'][c._QPATH[0]][:3]=[100,-100,100];legal(c.act(obs));checks.append('extreme_base_float32_bounds') +obs['proprioception'][c._QPATH[0]][0]=np.nan;assert c.act(obs) is None;checks.append('invalid_qpos_finish') +obs['step_id']=750;assert c.act(obs) is None;checks.append('native_budget_guard') +c.reset_episode();assert c._phase is None and c._last_step is None;checks.append('reset_clears_episode_state') +c._db=saved +result={'scope':'syntax and artificial-input checks only; no dynamics, no real task testing','passed':checks,'syntax':'all candidate Python files compile','first_call_with_library_load_seconds':latency,'note':'Timing on artificial input includes file loading; not native-rate validation'} +(root/'synthetic_checks.json').write_text(json.dumps(result,indent=2));print(json.dumps(result,indent=2)) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/compilation_access.json b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/compilation_access.json new file mode 100644 index 0000000000000000000000000000000000000000..c2c82c1cf73be62c37817856c349da54dea9c958 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/compilation_access.json @@ -0,0 +1,362 @@ +[ + { + "demo_id": "demo_00", + "machine_rgb_frames_inclusive": [ + 0, + 481 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 480 + ] + }, + { + "demo_id": "demo_01", + "machine_rgb_frames_inclusive": [ + 0, + 479 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 478 + ] + }, + { + "demo_id": "demo_02", + "machine_rgb_frames_inclusive": [ + 0, + 480 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 479 + ] + }, + { + "demo_id": "demo_03", + "machine_rgb_frames_inclusive": [ + 0, + 479 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 478 + ] + }, + { + "demo_id": "demo_04", + "machine_rgb_frames_inclusive": [ + 0, + 482 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 481 + ] + }, + { + "demo_id": "demo_05", + "machine_rgb_frames_inclusive": [ + 0, + 481 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 480 + ] + }, + { + "demo_id": "demo_06", + "machine_rgb_frames_inclusive": [ + 0, + 479 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 478 + ] + }, + { + "demo_id": "demo_07", + "machine_rgb_frames_inclusive": [ + 0, + 479 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 478 + ] + }, + { + "demo_id": "demo_08", + "machine_rgb_frames_inclusive": [ + 0, + 478 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 477 + ] + }, + { + "demo_id": "demo_09", + "machine_rgb_frames_inclusive": [ + 0, + 477 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 476 + ] + }, + { + "demo_id": "demo_10", + "machine_rgb_frames_inclusive": [ + 0, + 480 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 479 + ] + }, + { + "demo_id": "demo_11", + "machine_rgb_frames_inclusive": [ + 0, + 479 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 478 + ] + }, + { + "demo_id": "demo_12", + "machine_rgb_frames_inclusive": [ + 0, + 480 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 479 + ] + }, + { + "demo_id": "demo_13", + "machine_rgb_frames_inclusive": [ + 0, + 479 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 478 + ] + }, + { + "demo_id": "demo_14", + "machine_rgb_frames_inclusive": [ + 0, + 481 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 480 + ] + }, + { + "demo_id": "demo_15", + "machine_rgb_frames_inclusive": [ + 0, + 478 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 477 + ] + }, + { + "demo_id": "demo_16", + "machine_rgb_frames_inclusive": [ + 0, + 479 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 478 + ] + }, + { + "demo_id": "demo_17", + "machine_rgb_frames_inclusive": [ + 0, + 481 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 480 + ] + }, + { + "demo_id": "demo_18", + "machine_rgb_frames_inclusive": [ + 0, + 479 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 478 + ] + }, + { + "demo_id": "demo_19", + "machine_rgb_frames_inclusive": [ + 0, + 481 + ], + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "numeric_action_frames_inclusive": [ + 0, + 480 + ] + } +] \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/contract.json b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/contract.json new file mode 100644 index 0000000000000000000000000000000000000000..ca8f6319686ab9e3ad0698e0ee67d6954f2d464a --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/contract.json @@ -0,0 +1,148 @@ +{ + "task_id": "DualArmSetupTable-v1", + "native_horizon": 750, + "robot_uids": [ + "mobile_panda_leaphand_left_urdf", + "mobile_panda_leaphand_urdf" + ], + "instruction": "The robot places a mug on a serving tray, then carries the tray to the front table.", + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "proprio_paths": [ + "agent/mobile_panda_leaphand_left_urdf-0/qpos", + "agent/mobile_panda_leaphand_left_urdf-0/qvel", + "agent/mobile_panda_leaphand_urdf-1/qpos", + "agent/mobile_panda_leaphand_urdf-1/qvel" + ], + "control_mode": "pd_ee_delta_pose", + "action_parts": [ + { + "robot_key": "mobile_panda_leaphand_left_urdf-0", + "width": 25 + }, + { + "robot_key": "mobile_panda_leaphand_urdf-1", + "width": 25 + } + ], + "action_width": 50, + "control_hz": 20, + "action_semantics": "Per robot: six normalized arm components followed by normalized joint deltas for dex hands, or an absolute normalized gripper target for Panda. Mobile bases prepend three absolute joint positions.", + "units_and_coordinates": { + "panda_arm_translation": "normalized [-1,1] maps to [-0.1,0.1] meters in robot root frame", + "panda_arm_rotation": "three components clipped by vector norm to one, multiplied by rot_lower (-0.5 radians), Euler-to-quaternion rotation in root-aligned frame; this records the current controller implementation", + "dex_joint_delta": "normalized [-1,1] maps to [-0.1,0.1] radians", + "panda_gripper": "normalized [-1,1] maps to [-0.01,0.04] meters for the mimic control joint", + "mobile_base": "absolute base joint coordinates; native public action bounds still require validation" + }, + "action_low": [ + -5.0, + -5.0, + -12.5663706144, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -5.0, + -5.0, + -12.5663706144, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0 + ], + "action_high": [ + 5.0, + 5.0, + 12.5663706144, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 5.0, + 5.0, + 12.5663706144, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "initial_hold_recipe": "Copy only robot reset qpos[0:3] into absolute base controls. Zero arm/hand deltas. For Panda gripper use qpos[10], mapped as 2*(q+0.01)/0.05-1. Reject out-of-bounds holds." +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/controller.py b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/controller.py new file mode 100644 index 0000000000000000000000000000000000000000..e26ae28de8d35b7585af89e4529e6247705069fb --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/controller.py @@ -0,0 +1,111 @@ +"""Nonparametric RGB/proprioception feedback controller. +No simulator, task expert, seed lookup, network, or neural weight updates. +""" +from pathlib import Path +import importlib.util +import json +import numpy as np +_ROOT=Path(__file__).resolve().parent +_spec=importlib.util.spec_from_file_location('_d20_features',_ROOT/'features.py') +_features=importlib.util.module_from_spec(_spec);_spec.loader.exec_module(_features) +_C=json.loads((_ROOT/'contract.json').read_text()) +_LOW=np.array(_C['action_low'],np.float64);_HIGH=np.array(_C['action_high'],np.float64) +# Inward-rounded float32 limits preserve legality after dtype conversion. +_LOW32=_LOW.astype(np.float32);_HIGH32=_HIGH.astype(np.float32) +_LOW32=np.where(_LOW32.astype(np.float64)<_LOW,np.nextafter(_LOW32,np.float32(np.inf)),_LOW32) +_HIGH32=np.where(_HIGH32.astype(np.float64)>_HIGH,np.nextafter(_HIGH32,np.float32(-np.inf)),_HIGH32) +_QPATH=[p for p in _C['proprio_paths'] if p.endswith('/qpos')] +_VPATH=[p for p in _C['proprio_paths'] if p.endswith('/qvel')] +_db=None +_phase=None +_last_step=None +_mug_penalty=None +last_diagnostics={} +def reset_episode(): + global _phase,_last_step,_mug_penalty,last_diagnostics + _phase=None;_last_step=None;_mug_penalty=None;last_diagnostics={} +def _load(): + global _db + if _db is None: + with np.load(_ROOT/'library.npz',allow_pickle=False) as z: + _db={k:z[k] for k in z.files} + # Fixed physical scaling, not estimated model weights. + _db['B']=np.load(_ROOT/'arm_feedback.npz')['B'] + _db['scale']=np.tile(np.r_[.15,.15,.3,np.full(7,.35),np.full(16,.6)],2).astype(np.float32) +def _hold(q): + a=np.zeros(50,np.float64) + a[:3]=q[:3];a[25:28]=q[26:29] + return np.clip(a,_LOW32,_HIGH32).astype(np.float32) +def act(obs): + global _phase,_last_step,_mug_penalty,last_diagnostics + step=int(obs.get('step_id',1)) + if step>=_C['native_horizon']: return None + if _last_step is not None and step<_last_step: reset_episode() + _last_step=step + try: + q=np.concatenate([np.asarray(obs['proprioception'][p],dtype=np.float32).reshape(-1) for p in _QPATH]) + if q.shape!=(52,) or not np.isfinite(q).all(): raise ValueError('Invalid qpos') + except (KeyError,ValueError,TypeError): + last_diagnostics={'mode':'finish_invalid_qpos'} + return None # Cannot construct a measured-base hold. + hold=_hold(q) + try: + v=np.concatenate([np.asarray(obs['proprioception'][p],dtype=np.float32).reshape(-1) for p in _VPATH]) + if v.shape!=(52,) or not np.isfinite(v).all(): raise ValueError('Invalid qvel') + im=_features.image_features(obs['rgb']) + except (KeyError,ValueError,TypeError): + last_diagnostics={'mode':'hold_missing_observation'} + return hold + instruction=obs.get('instruction','').lower() + if instruction and not ('mug' in instruction and 'tray' in instruction): + last_diagnostics={'mode':'hold_instruction_mismatch'} + return hold + _load() + if _mug_penalty is None: + # Initial visible mug position, never hidden initialization state. + raw=_features.cv2.resize(np.asarray(obs['rgb']['front_camera']).squeeze(),(320,240),interpolation=_features.cv2.INTER_AREA).astype(float) + rr,gg,bb=raw.transpose(2,0,1) + mask=(rr>gg*1.4+5)&(rr>bb*1.15+3)&(rr<160) + mask[:90]=False;mask[115:]=False;mask[:,:80]=False;mask[:,105:]=False + yy,xx=np.where(mask) + loc=np.asarray(json.loads((_ROOT/'mug_locations.json').read_text()),float)[:,:2] + penalty=np.zeros(20) + if len(xx)>=10: + delta=loc-np.array([np.mean(xx),np.mean(yy)]) + penalty=.004*np.maximum(np.abs(delta[:,0])-.25,0)**2+.0002*delta[:,1]**2 + _mug_penalty=penalty[_db['demo']] + # Every call re-localizes from measured state; no demo identity is selected + # at reset and no action is indexed by elapsed time. + dq=(_db['q']-q)/_db['scale'] + dist=np.mean(dq*dq,axis=1)+.025*np.mean(np.minimum((_db['v']-v)**2,16),axis=1) + dist+=_mug_penalty*(1 if _phase is None else np.clip((.65-_phase)/.1,0,1)) + if _phase is not None: + dp=_db['phase']-_phase + dist+=4*np.maximum(-dp-.025,0)**2+2*np.maximum(dp-.06,0)**2 + candidates=np.argpartition(dist,127)[:128] + rgbdiff=(_db['rgb'][candidates].astype(np.float32)-im)/255. + per_camera=np.mean((rgbdiff*rgbdiff).reshape(-1,5,960),axis=2) + visual=np.average(per_camera,axis=1,weights=[1,1,.02,.02,1]) + score=dist[candidates]+2*visual + k=int(np.argmin(score));j=int(candidates[k]) + # Heuristic OOD thresholds are uncalibrated until authorized rehearsal. + if float(np.mean(dq[j]**2))>1.5 or float(visual[k])>.035: + last_diagnostics={'mode':'hold_out_of_distribution','q_distance':float(np.mean(dq[j]**2)),'rgb_mse':float(visual[k])} + return hold + _phase=float(_db['phase'][j]) + a=_db['a'][j].astype(np.float64).copy() + # Track demonstrated absolute base targets with a local rate limit. + # The output remains an absolute base coordinate in contract order. + for ai,qi in ((0,0),(25,26)): + a[ai:ai+3]=np.clip(a[ai:ai+3],q[qi:qi+3]-.12,q[qi:qi+3]+.12) + # Small local corrections from authorized finite-difference transitions. + bi=min(480,int(round(_phase*480))) + hand_map=np.array([4,0,8,12,5,1,9,13,6,2,10,14,3,7,11,15]) + for robot,(ai,qi) in enumerate(((0,0),(25,26))): + err=_db['q'][j,qi+3:qi+10]-q[qi+3:qi+10] + a[ai+3:ai+9]+=np.clip(.3*(err@_db['B'][bi,robot]),-.12,.12) + he=_db['q'][j,qi+10+hand_map]-q[qi+10+hand_map] + a[ai+9:ai+25]+=np.clip(2*he,-.25,.25) + last_diagnostics={'mode':'retrieved_action','phase':_phase,'rgb_mse':float(visual[k]),'q_distance':float(np.mean(dq[j]**2)),'demo':int(_db['demo'][j]),'frame':int(_db['frame'][j])} + return np.clip(a,_LOW32,_HIGH32).astype(np.float32) +reset_episode() diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/demo_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/demo_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..f56eb75899fdf6f2e0a91790ab7e4b6597dc11fb --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/demo_manifest.json @@ -0,0 +1,2168 @@ +{ + "task_id": "DualArmSetupTable-v1", + "status": "released", + "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data", + "lineage_status": "pinned_comparator", + "episodes": [ + { + "demo_id": "demo_00", + "file": "demo_00.h5", + "length": 481, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 481, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 481, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 482, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "a104570842c19004dd1282f2bfffe020c2f8c76652dbb8bbaf3b7f7f14a6b426", + "source_sha256": "554b64fba6eb255e21d3d66647ae53fd078bf7fec5dedf5df5c10cf6cec2ec13", + "view_sha256": "9ae9aafd598e274d64fcb0a5bb3207627a8ec038cdcf73e456c0aebf36360610" + }, + { + "demo_id": "demo_01", + "file": "demo_01.h5", + "length": 479, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 480, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "239c08d930821073fac9c3cf6c3cea6bef724a8055940c8ca5df659d5e645493", + "source_sha256": "014783c7153b4f120a25d0ceea9bb64ba51f9357484d29a9dc831ddace326e4a", + "view_sha256": "478c9f078f409b0c587789c4516b7472a51d6a2c0a3712d65d80c77462da0b56" + }, + { + "demo_id": "demo_02", + "file": "demo_02.h5", + "length": 480, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 480, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 480, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 481, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "8714bc16204c1338ac8c475e238a358f3d376be957b6bf59f6673233aa5e2275", + "source_sha256": "c8335797d03080155fdc41c043ecea77ce14e362cb56d4093430501e6575d76c", + "view_sha256": "ee80be9d70f214b4ecc7d3d841fb86350125f5d8085db6078c0eae914060526c" + }, + { + "demo_id": "demo_03", + "file": "demo_03.h5", + "length": 479, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 480, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "02f19a9574c72fdf7084e274f9de7183820b32d3a789340709c349830e89ab5c", + "source_sha256": "1e886bde73d3deeb822ab3709e83ad1417a3bba09a04b7dc9eee14c06f0cfb58", + "view_sha256": "88d0572480657dcfff5b589ad4b0a812307c3ff8f3065990edeac1689283dc70" + }, + { + "demo_id": "demo_04", + "file": "demo_04.h5", + "length": 482, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 482, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 482, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 483, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 483, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 483, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 483, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 483, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 483, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 483, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 483, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 483, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "90a99ba46a887a4cd40a77b45705052f79447d3edbbd1c675b8d79e95d16e5f9", + "source_sha256": "5d00c70fd0e7d1cd4a2e3acc867813b7e315a92ded8e5285722afd356515475f", + "view_sha256": "949bf1db38152ea240a1d8abdeeff147fd94927f642a9c08cf95d4868654e58b" + }, + { + "demo_id": "demo_05", + "file": "demo_05.h5", + "length": 481, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 481, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 481, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 482, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "1e621d6a5c02ea58eac1ce58ba50d97eb10c03c57312e0c4bc3224693adc780e", + "source_sha256": "6822d8547da9451e93cfa8a9f65b44be1b65ab66ad068feb0e49f4b2d94fd58d", + "view_sha256": "99d49c2fdf86b52d6e53251dfd562affb217effbb0e194129fa059a2029e418b" + }, + { + "demo_id": "demo_06", + "file": "demo_06.h5", + "length": 479, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 480, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "677208defee2d7528657250cebbc83c6367fb837bc2434b3a3d797934ae4ac7f", + "source_sha256": "2c0a78ab535ec14ff417eba4690f26bb66d7688be393e194cd2d901e3664a27b", + "view_sha256": "e5280a6d32b948d889293c5c8d64536417893ecac8df73accdf19d5b721aae57" + }, + { + "demo_id": "demo_07", + "file": "demo_07.h5", + "length": 479, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 480, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "7da59b8697533d4f60036a4767376bbaa2a57e0f9b7d1188784cecafc0296b51", + "source_sha256": "301f0068c33ae0109f146f5aa40f8674812dc86fbe56e80b7c11c768a77fd58a", + "view_sha256": "45469696dfd35c78b40081ad4c4b6724cc884925fe30d61abb85d37af502dc36" + }, + { + "demo_id": "demo_08", + "file": "demo_08.h5", + "length": 478, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 478, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 478, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 479, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 479, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 479, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 479, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 479, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 479, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 479, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 479, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 479, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "5e2b6f33bbd527b231567d86d95b26258240eb11521fb28dbbe6b866366e7b72", + "source_sha256": "58eebd2370ad18bce094a62e646d48ec965dbe566b25c243f9ecf0e160f7560d", + "view_sha256": "4bffc0c5d3a57aa87cbb7485531ba3131935b3ca8d8b443f3f6d9ff49a35e901" + }, + { + "demo_id": "demo_09", + "file": "demo_09.h5", + "length": 477, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 477, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 477, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 478, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 478, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 478, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 478, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 478, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 478, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 478, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 478, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 478, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "49fcaad7ff72bd0a05f9f1c32603d6d184cae8b57b4f6eb11ea2fdeed9657122", + "source_sha256": "89484939bb8c8d9c977cfbbcd6b8bbe4ab6f820ea687e3cd77bd2e4955db51f5", + "view_sha256": "04afa6492be19ea1e302557e082c98ac05e46595f115d332f4aa047f8a44dd1f" + }, + { + "demo_id": "demo_10", + "file": "demo_10.h5", + "length": 480, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 480, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 480, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 481, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "a210a30225e8b80d80b83053b773d2f535855dacca14649d0fde6a19c09b2a1b", + "source_sha256": "cf465ade6fa419fac279725a3f53559a416c8f5828c80b16a88a9d363cc4318c", + "view_sha256": "2460344bb4748c0f9d62421611b9405346ccd58ea0bb499d7e937df1cca468eb" + }, + { + "demo_id": "demo_11", + "file": "demo_11.h5", + "length": 479, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 480, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "3a6eb588c66414795ee5a8ca965f363462bbed1184d8bbfc5907ddca192fbf55", + "source_sha256": "7d2344d9c430cc37ec52965bfae1aa244b4eece910f8ff8b76d14bcf020fddce", + "view_sha256": "7ee4a1778919148c6f212801f1098058e91cea94b8a7a66f41088689e148923e" + }, + { + "demo_id": "demo_12", + "file": "demo_12.h5", + "length": 480, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 480, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 480, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 481, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 481, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 481, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "0c55bcbdad2932607fb8eca8af4fda471c42dce45a95d36b5087bd704ddce44d", + "source_sha256": "163a679915099806e68a6a7063484d0997c169a811d3527f4b872792e5cc03f0", + "view_sha256": "80e1b7d97101470c69e1df5a70136d3c23eef6735853d8351d1d36d839551b97" + }, + { + "demo_id": "demo_13", + "file": "demo_13.h5", + "length": 479, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 480, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "64cb005954d933994c72d9272480fd725cff2798b532d1719c6dcb010958be98", + "source_sha256": "567205971b25d85c969cd31518d6095922a3e6279d92e94f0aeaf347ec126751", + "view_sha256": "c71990d76629b5ae9ce41e84f18c2a6e25fd9535c0ef7b59f5793076c3cb689f" + }, + { + "demo_id": "demo_14", + "file": "demo_14.h5", + "length": 481, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 481, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 481, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 482, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "755077265f480ae34d06d344fc6af2206dcc4a4673f730542892cfe0b58afcf7", + "source_sha256": "4ebcca917e45751e3fa10192ffab845717b5016f20e892a507511f7c0bbc1e8a", + "view_sha256": "6b0bace59949ddfd54fceaeb61b1c56a4d4eb900f39de3f0d4824bbdfbf4ce18" + }, + { + "demo_id": "demo_15", + "file": "demo_15.h5", + "length": 478, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 478, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 478, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 479, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 479, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 479, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 479, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 479, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 479, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 479, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 479, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 479, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "ff4d9dc04ecbebf1f7d236a935e61ceb29fd1113f292ea5a84d14aaef4a355e3", + "source_sha256": "4285cc57a6d30b0ff943a17a2b109223ca5b0ff43309b0c4c4b035496ab60565", + "view_sha256": "d0a9cfc4b6373c3ec6897a7efab7ebda11c4d050b57fc515b61cee2ea021b6ac" + }, + { + "demo_id": "demo_16", + "file": "demo_16.h5", + "length": 479, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 480, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "2b662083f9be6429f3a7a225839061120d53c09d9a6c5a7ad3495eddb681b188", + "source_sha256": "e91144a5e4a7860b9ca6eb7ca28d3c66e59523a20c248e7485a53efb438f139b", + "view_sha256": "8ec78adac53929df77e5beafca6f42a689604449143470f4fb837a48d5273556" + }, + { + "demo_id": "demo_17", + "file": "demo_17.h5", + "length": 481, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 481, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 481, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 482, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "2b0ae0e57af2f2009a646d13171f07c4d16061a282148c3c2ebca401652499dc", + "source_sha256": "bd0fa2202fe9812f20998ec8985ab1528d47d8d2954dd8f53b666e4abe18ba78", + "view_sha256": "1e15af9046d5058403d4af52d6262e754e99de4e3ffc71fd74f0c02eb81238f5" + }, + { + "demo_id": "demo_18", + "file": "demo_18.h5", + "length": 479, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 479, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 480, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 480, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 480, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "af197b8f60c4faeb356f03c8f82e5483caf123d9332b34f4b3ef8b8760d25061", + "source_sha256": "44a4925c3f96af5369b4fab12b0d11c774d4d9489e039f03c96783020491aa76", + "view_sha256": "af84966543e05eb8186508a6d5d841da28bbdbd5cf78a4b0b5d0e1b61ea1bdaf" + }, + { + "demo_id": "demo_19", + "file": "demo_19.h5", + "length": 481, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 481, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 481, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 482, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 482, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 482, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "7e82a491bb2f365e2d6281b002bd122f2dbc88ea3d7092348b601f53985cd4f4", + "source_sha256": "57ec84271abb3313fd23c59209dd6ebbbc1c4b7103b9a15f8b194be7812dd43a", + "view_sha256": "e3311d9f37f07f873799d8843c5c7186342aa0f29f665b5a27d847414b8896e0" + } + ] +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/environment.lock b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/environment.lock new file mode 100644 index 0000000000000000000000000000000000000000..b2237f47d93aa4c3efad07728ae6acd137912d6d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/environment.lock @@ -0,0 +1,249 @@ +absl-py==2.4.0 +accelerate==1.13.0 +addict==2.4.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.13.5 +aiosignal==1.4.0 +annotated-types==0.7.0 +anyio==4.13.0 +anytree==2.13.0 +asttokens==3.0.1 +async-timeout==5.0.1 +attrs==26.1.0 +av==15.1.0 +blinker==1.9.0 +casadi==3.7.2 +certifi==2026.4.22 +cffi==2.0.0 +charset-normalizer==3.4.7 +click==8.3.3 +cloudpickle==3.1.2 +cmake==4.1.3 +coacd==1.0.11 +colorama==0.4.6 +colorlog==6.10.1 +comm==0.2.3 +ConfigArgParse==1.7.5 +contourpy==1.3.2 +cuda-bindings==12.9.4 +cuda-pathfinder==1.5.4 +cycler==0.12.1 +dacite==1.9.2 +dash==4.1.0 +dataclasses-json==0.6.7 +datasets==4.8.5 +decorator==5.2.1 +deepdiff==8.6.2 +Deprecated==1.3.1 +diffusers==0.35.2 +dill==0.4.1 +docstring_parser==0.18.0 +draccus==0.10.0 +einops==0.8.2 +embreex==4.4.0 +etils==1.13.0 +evdev==1.9.3 +exceptiongroup==1.3.1 +executing==2.2.1 +Farama-Notifications==0.0.6 +fast_simplification==0.1.13 +fastjsonschema==2.21.2 +filelock==3.29.0 +Flask==3.1.3 +fonttools==4.63.0 +freetype-py==2.5.1 +frozenlist==1.8.0 +fsspec==2026.2.0 +genesis-world @ file:///data/gck/genesis-world +git-filter-repo==2.47.0 +gitdb==4.0.12 +GitPython==3.1.50 +glfw==2.10.0 +gs-madrona==0.0.5 +gstaichi==3.3.0 +gym==0.26.2 +gym-notices==0.1.0 +gymnasium==1.3.0 +h11==0.16.0 +h5py==3.16.0 +hf-xet==1.5.0 +hf_transfer==0.1.9 +httpcore==1.0.9 +httpx==0.28.1 +huggingface-hub==0.35.3 +idna==3.15 +ImageIO==2.37.3 +imageio-ffmpeg==0.6.0 +importlib_metadata==9.0.0 +importlib_resources==7.1.0 +inquirerpy==0.3.4 +ipython==8.39.0 +ipywidgets==8.1.8 +itsdangerous==2.2.0 +jedi==0.20.0 +Jinja2==3.1.6 +joblib==1.5.3 +jsonlines==4.0.0 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +jupyter_core==5.9.1 +jupyterlab_widgets==3.0.16 +kiwisolver==1.5.0 +lazy-loader==0.5 +lerobot==0.4.4 +libigl==2.6.2 +llvmlite==0.47.0 +loguru==0.7.3 +lxml==6.1.0 +manifold3d==3.4.1 +-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder +mapbox_earcut==2.0.0 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +marshmallow==3.26.2 +matplotlib==3.10.9 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mergedeep==1.3.4 +moviepy==2.2.1 +mpmath==1.3.0 +msgspec==0.21.1 +mujoco==3.8.1 +multidict==6.7.1 +multiprocess==0.70.19 +mypy_extensions==1.1.0 +nbformat==5.10.4 +nest-asyncio==1.6.0 +networkx==3.4.2 +ninja==1.13.0 +nlopt==2.10.0 +numba==0.65.1 +numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d +nvidia-cublas-cu12==12.8.4.1 +nvidia-cuda-cupti-cu12==12.8.90 +nvidia-cuda-nvrtc-cu12==12.8.93 +nvidia-cuda-runtime-cu12==12.8.90 +nvidia-cudnn-cu12==9.10.2.21 +nvidia-cufft-cu12==11.3.3.83 +nvidia-cufile-cu12==1.13.1.3 +nvidia-curand-cu12==10.3.9.90 +nvidia-cusolver-cu12==11.7.3.90 +nvidia-cusparse-cu12==12.5.8.93 +nvidia-cusparselt-cu12==0.7.1 +nvidia-nccl-cu12==2.27.5 +nvidia-nvjitlink-cu12==12.8.93 +nvidia-nvshmem-cu12==3.4.5 +nvidia-nvtx-cu12==12.8.90 +open3d==0.19.0 +opencv-python==4.13.0.92 +opencv-python-headless==4.12.0.88 +OpenEXR==3.4.11 +orderly-set==5.5.0 +packaging==25.0 +pandas==2.3.3 +parso==0.8.7 +pexpect==4.9.0 +pfzy==0.3.4 +pillow==11.3.0 +pin==4.0.0 +pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work +platformdirs==4.9.6 +plotly==5.24.1 +polyscope==2.6.1 +proglog==0.1.12 +prompt_toolkit==3.0.52 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +pure_eval==0.2.3 +py-cpuinfo==9.0.0 +py-spy==0.4.2 +pyarrow==24.0.0 +pycollada==0.9.3 +pycparser==3.0 +pydantic==2.13.4 +pydantic_core==2.46.4 +PyGEL3D==0.6.1 +pyglet==2.1.14 +pygltflib==1.16.0 +Pygments==2.20.0 +pymeshlab==2025.7.post1 +pynput==1.8.2 +PyOpenGL==3.1.10 +pyparsing==3.3.2 +pyperclip==1.11.0 +PyQt6==6.11.0 +PyQt6-Qt6==6.11.0 +PyQt6_sip==13.11.1 +pyquaternion==0.9.9 +pyserial==3.5 +pysplashsurf==0.12.0.2 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +python-xlib==0.33 +pytransform3d==3.15.0 +pytz==2026.2 +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 +PyYAML==6.0.3 +pyyaml-include==1.4.1 +referencing==0.37.0 +regex==2026.5.9 +requests==2.34.2 +rerun-sdk==0.26.2 +retrying==1.4.2 +rich==14.3.4 +rpds-py==0.30.0 +rtree==1.4.1 +safetensors==0.7.0 +sapien==3.0.3 +scikit-image==0.25.2 +scikit-learn==1.7.2 +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 +sentry-sdk==2.60.0 +setuptools==80.10.2 +shapely==2.1.2 +six==1.17.0 +smmap==5.0.3 +stack-data==0.6.3 +svg.path==7.0 +sympy==1.14.0 +tenacity==9.1.4 +termcolor==3.3.0 +tetgen==0.8.4 +threadpoolctl==3.6.0 +tifffile==2025.5.10 +timm==1.0.27 +toml==0.10.2 +torch==2.10.0 +torchaudio==2.11.0 +torchcodec==0.10.0 +torchvision==0.25.0 +tqdm==4.67.3 +traitlets==5.15.0 +transforms3d==0.4.2 +trimesh==4.12.2 +triton==3.6.0 +typeguard==4.5.2 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +tyro==1.0.13 +tzdata==2026.2 +urllib3==2.7.0 +vhacdx==0.0.10 +viser==1.0.27 +vtk==9.6.1 +wandb==0.24.2 +wcwidth==0.7.0 +websockets==16.0 +Werkzeug==3.1.8 +wheel==0.46.3 +widgetsnbextension==4.0.15 +wrapt==2.1.2 +xxhash==3.7.0 +yarl==1.23.0 +yourdfpy==0.0.60 +z3-solver==4.16.0.0 +zipp==3.23.1 +zstandard==0.25.0 diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/features.py b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/features.py new file mode 100644 index 0000000000000000000000000000000000000000..b459d7c43dbcf51b3fbf31c2c3d2b8dcca08c494 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/features.py @@ -0,0 +1,13 @@ +"""Deterministic image features; no pretrained models or learned weights.""" +import cv2 +import numpy as np +CAMERAS = ('front_camera', 'left_camera', 'robot_camera_0', 'robot_camera_1', 'top_camera') +def image_features(rgb): + out=[] + for camera in CAMERAS: + im=np.asarray(rgb[camera]) + if im.ndim==4 and im.shape[0]==1: im=im[0] + if im.ndim!=3 or im.shape[2]!=3 or im.dtype!=np.uint8: + raise ValueError('Expected uint8 RGB HWC or 1HWC') + out.append(cv2.resize(im,(20,16),interpolation=cv2.INTER_AREA).reshape(-1)) + return np.concatenate(out) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/findings.md b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/findings.md new file mode 100644 index 0000000000000000000000000000000000000000..6780dea8c34b52c6a5ca7e74390d5a48086507ab --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/findings.md @@ -0,0 +1,28 @@ +# Findings +All 20 demos were analyzed; exact visual IDs/indices and evidence are in ../demo_analysis.md and ../evidence/visual_inspection.json. Full-sequence statistics are in ../evidence/action_stats.json. All five RGB streams are compiled at every observation frame; those machine reads are separately recorded in compilation_access.json. +Visual evidence is consistent with mug-to-tray transfer followed by moving the tray to the adjacent table. Stable terminal release and official success remain unknown. Demos are highly similar, 477–482 labeled steps. Global action index 46 has a tiny positive overshoot in each demo; outputs are clipped. +The initial controller was an unrehearsed draft; the continuation record below supersedes that initial status. No neural weights used or updated. Missing geometry and contact sensing, coarse RGB ambiguity, local-policy drift, and uncalibrated rejection thresholds are material limitations. + +## Exploration continuation +Episode 1: 182 native steps including hold; nearest retrieval tracked approach/grasp with q distance around 5e-5, RGB MSE around 5e-5. No lift/transfer tested before finishing. Native success false. Initial base cap 0.04 m slowed progress relative to demonstrated approximately 0.1 m target offsets. Episode 2 tests cap 0.12 m, otherwise unchanged. API execute_actions returns a steps list; harness parsing corrected in same first slot. +Episode 2 interim: cap 0.12 restored near-demo approach timing (phase 0.085 after 41 actions). At saved observation index 200, front image visibly shows mug lifted in hand; q distance 0.00056, RGB MSE 0.000031. Grasp evidence is visual, not full-task success. +Episode 2 completed: native success true, terminated true at step 451 (450 controller actions). Saved images at 200 establish mug lift, 280 mug inside tray, 360 coordinated tray-side hands, 440/final tray across gap on destination table with mug upright. No recovery or OOD hold was exercised. This is interactive evidence, not yet an independently rehearsed artifact. + +Episode 3: exact v02 independent rehearsal valid but native success false at horizon 750. Bundle dd4cc31992ae9c454786dd8e6d66ab1a4408ec0203e3cb4e6bd420eef3973c2c. Latest legal front/top observations show mug on source table and tray unmoved. Offline final-observation diagnosis enters OOD hold (q distance 1.53). Native score cannot be overwritten; attempted visual annotation was rejected, so native false stands. Failure may involve repeated incremental base/hand/arm commands after contact mismatch; trajectory history is unavailable, so this is a hypothesis. +Episode 4: same runtime policy as v02, logged interactive diagnostic, finished at step 401 before full completion. Mug transferred to tray and tray beginning to cross gap in final image. No recovery was needed; native success false at deliberate cutoff. Episode 5 tests absolute demonstrated base targets bounded within 0.12 of measured q, instead of cumulatively transferred target offsets. No hand or arm policy change in this ablation. +Localization exploration: legal initial top RGB from all 20 demos resized to 640x480 for dark-red mug pixel centroid analysis. Demo originals are 320x240 HWC, live 480x640 HWC; normalized content aligns. Mug centroid varies by several pixels; optional geometric retrieval bias not yet deployed. + +Episode 5 failed during approach/contact; diagnostic ended at native step 162. At action 65 matched pose error 0.00031/RGB 0.00016; action 70 RGB jumped to 0.0163 while q error 0.00357; by action 120 selection stalled at frame 72 with q error 0.0502 and RGB 0.0226. Dominant close wrist image term can outweigh proprioception (old score visual multiplier 20). Base absolute-target change did not prevent this failure. Client loop interrupted once to finish this diagnosed episode; pending action was not replayed, latest_observation established exact step 162, then finish_episode. Incremental actions/diagnostics through the last fully returned action preserved; one in-flight action may be absent from saved action log. Logger now persists command before sending and supports a graceful stop file. +Episode 6 tests visual score multiplier 2 and per-camera weights [1,1,0.02,0.02,1] (front,left,wrist0,wrist1,top). This limits close-up occlusion dominance while retaining all views. Absolute bounded base targets retained. No neural fitting, new environment, or external task data used. +Episode 6 completed with native success true at step 448. Weighted-image retrieval passed the prior contact failure interval, visibly lifted mug at observation 200, and completed tray transport. This supports the weighting change in one interactive attempt; independent reliability is still unmeasured for this exact version. + +Episode 7: v04 bundle 1b76096376bd25163dd67b2806cd49311b87eca367b56645979b6254e4caa5d8 valid independent rehearsal, native false at horizon. Final legal images show mug and tray still on source table; robots reached destination side. Offline final-observation retrieval matches terminal frame with q distance 0.251 and weighted RGB 0.00364, demonstrating that terminal pose similarity is not task completion. No physical recovery occurred. Wrist-score correction alone is insufficient. +Episode 8 tests bounded local pose correction. arm_feedback.npz is a non-neural ridge least-squares table mapping observed 7-joint arm increments to six native arm commands, compiled solely from authorized adjacent demo transitions. Gaussian phase bandwidth 0.035; ridge 0.0005; coefficient clamp 12; feedback gain 0.3 with each correction clipped to 0.12 normalized. Finger qpos ordering inferred from observed demo changes: action order maps to hand qpos [4,0,8,12,5,1,9,13,6,2,10,14,3,7,11,15]. Finger reference-error gain 2, correction clamp 0.25. These empirical local corrections are not a simulator or neural model; performance requires live verification. + +Episode 8 retrospective: stopped at native step 233; native success false. Saved front image clearly shows the mug still on the source table and an arm positioned over the tray. Local pose/finger feedback did not ensure grasp. Episode 9 tests the same behavior on a fresh authorized episode. Budget at continuation: 8 used, 12 remaining, inactive. + +Episode 9: native success True at native step 452. Images at 200 show mug lifted, 280 upright mug in tray with withdrawn hand, 360 both hands at tray sides, 440 tray and mug over destination table. Pose feedback did not prevent all grasp failures (episode 8), but this full interactive attempt completed. Episode 10 independently rehearses this version. + +Episode 10: independent valid rehearsal, native false at horizon 750; hash b79a7e34ff8988410ec97d60c4daec48b4987c10d4b9d7346b1b847b89f5c706. Final front image shows mug outside tray, both still on source table. Episode 11 adds initial front-camera red-mug centroid penalty to demo retrieval, fading after phase .55 and zero by .65. Computed from 20 legal initial demo images at common 320x240 resolution; no neural weights or geometric simulator used. Horizontal deadband .25 pixel, quadratic penalty .004; vertical penalty .0002. This is an unvalidated localization heuristic. + +Episode 11: native success True at step 450. The initial-location penalty held retrieval mainly on demo 9 through mug placement; images 200 and 240 show mug lifted then inside tray, and 400 shows tray lifted with mug upright. The penalty fades to zero during tray handling. No physical recovery was exercised. Episode 12 independently tests this exact version. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/freeze_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/freeze_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..7948252b5cd29cadb18fe7256ab0edef4bb7d694 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/freeze_manifest.json @@ -0,0 +1,162 @@ +{ + "files": { + "__pycache__/build_library.cpython-310.pyc": "2d0d6c295f0dfa3a16737075d0e76049bb7bdd6c328f0d7745882c70cf89c360", + "__pycache__/check_synthetic.cpython-310.pyc": "02cb78f2f78d588ff581f0d7d5e2146fd67fff70a3b7624744b237b3a00fd7cb", + "__pycache__/controller.cpython-310.pyc": "4614a86b539817b17779e3d041675d71a64f13c1bd0579fa3491358c7d8defc7", + "__pycache__/features.cpython-310.pyc": "ed43c945dd6d3246acfec236d52915d16b134510d3433df46c3f89b81475cd50", + "arm_feedback.npz": "92adff1237fc27cc2967a4a320aaebd0ed28af4236538aa0145b5089a841d6cc", + "build_library.py": "6ca7a4b2dc5f05006f8594ad8c578b33757c05d5096fae6b18a30a50e1e7798c", + "check_synthetic.py": "a4bfb9fb84a28a7f461f66e7bfe471e3e8f01cf50c37d71bf9e76fb78708350d", + "compilation_access.json": "1e44f0693796a91e93b3239e522198f1a3e4d078461c75f6951ecda47418d3eb", + "contract.json": "9eafa333f370573051ebf3724f75ec3d133fa9f14281c3ed50223be565cae2e8", + "controller.py": "0981c06e18440e9ccf7ec8c9465f424edda4d51f9c7d460553c4673006cdee22", + "demo_manifest.json": "0ad6cbe7897056f676f6bc0e33eafa48305799e7d37752c0edd2678c5110d94b", + "demonstrations_readonly/demo_00.h5": "9ae9aafd598e274d64fcb0a5bb3207627a8ec038cdcf73e456c0aebf36360610", + "demonstrations_readonly/demo_01.h5": "478c9f078f409b0c587789c4516b7472a51d6a2c0a3712d65d80c77462da0b56", + "demonstrations_readonly/demo_02.h5": "ee80be9d70f214b4ecc7d3d841fb86350125f5d8085db6078c0eae914060526c", + "demonstrations_readonly/demo_03.h5": "88d0572480657dcfff5b589ad4b0a812307c3ff8f3065990edeac1689283dc70", + "demonstrations_readonly/demo_04.h5": "949bf1db38152ea240a1d8abdeeff147fd94927f642a9c08cf95d4868654e58b", + "demonstrations_readonly/demo_05.h5": "99d49c2fdf86b52d6e53251dfd562affb217effbb0e194129fa059a2029e418b", + "demonstrations_readonly/demo_06.h5": "e5280a6d32b948d889293c5c8d64536417893ecac8df73accdf19d5b721aae57", + "demonstrations_readonly/demo_07.h5": "45469696dfd35c78b40081ad4c4b6724cc884925fe30d61abb85d37af502dc36", + "demonstrations_readonly/demo_08.h5": "4bffc0c5d3a57aa87cbb7485531ba3131935b3ca8d8b443f3f6d9ff49a35e901", + "demonstrations_readonly/demo_09.h5": "04afa6492be19ea1e302557e082c98ac05e46595f115d332f4aa047f8a44dd1f", + "demonstrations_readonly/demo_10.h5": "2460344bb4748c0f9d62421611b9405346ccd58ea0bb499d7e937df1cca468eb", + "demonstrations_readonly/demo_11.h5": "7ee4a1778919148c6f212801f1098058e91cea94b8a7a66f41088689e148923e", + "demonstrations_readonly/demo_12.h5": "80e1b7d97101470c69e1df5a70136d3c23eef6735853d8351d1d36d839551b97", + "demonstrations_readonly/demo_13.h5": "c71990d76629b5ae9ce41e84f18c2a6e25fd9535c0ef7b59f5793076c3cb689f", + "demonstrations_readonly/demo_14.h5": "6b0bace59949ddfd54fceaeb61b1c56a4d4eb900f39de3f0d4824bbdfbf4ce18", + "demonstrations_readonly/demo_15.h5": "d0a9cfc4b6373c3ec6897a7efab7ebda11c4d050b57fc515b61cee2ea021b6ac", + "demonstrations_readonly/demo_16.h5": "8ec78adac53929df77e5beafca6f42a689604449143470f4fb837a48d5273556", + "demonstrations_readonly/demo_17.h5": "1e15af9046d5058403d4af52d6262e754e99de4e3ffc71fd74f0c02eb81238f5", + "demonstrations_readonly/demo_18.h5": "af84966543e05eb8186508a6d5d841da28bbdbd5cf78a4b0b5d0e1b61ea1bdaf", + "demonstrations_readonly/demo_19.h5": "e3311d9f37f07f873799d8843c5c7186342aa0f29f665b5a27d847414b8896e0", + "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa", + "features.py": "e55efc86425f6031438a55ee2c5881da8da86330da253e575d5ba4bbc8875cf5", + "findings.md": "432c3d9747cfcdce165b19c45a5c378141235a4e6c15f9c9bac9358177ef75f0", + "handoff.md": "d75f38d1f655e36075471cc7f2617fc26d55cabe14f2a11c7a9bd52ce65d4121", + "library.npz": "0fcf38e9e36864e2bf3ecbd49f8800403c75af55909cbecc61e794df07625362", + "model_tool_manifest.yaml": "8cac47c9aef14a8962c1aa697a807d0cbe3a70d6dae7d55a227f9c77b5b5b409", + "mug_locations.json": "d19226ff376aee405dbd74d3657d591a9840ec82b24c820e96f2b5ed852f0c38", + "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e", + "skills.md": "f21af2d15686bbb051078f0fe4b2defdd97f313c43f74e5344a96aae1b19f7cb", + "synthetic_checks.json": "e1705e41654180f771b80d87189628701003b8c0dde57f45cf5e9c1ab556e047", + "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e" + }, + "bundle_hash": "f1f7e10229944b49708dd0013a5319fd473fffd5b76f0dd1de1777d3e8c91a9d", + "exploration_ledger_hash": "dd3e22e6655a8b57131dc6e86e9f2c5dadca361cfc2c0b04e6e5ac84a7dfe36e", + "entrypoint": "controller.reset_episode(); controller.act(obs)", + "selection": { + "rule": "exact-version success rate, valid rehearsal count, recency", + "rehearsals": [ + { + "bundle_hash": "dd4cc31992ae9c454786dd8e6d66ab1a4408ec0203e3cb4e6bd420eef3973c2c", + "episode": 3, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "1b76096376bd25163dd67b2806cd49311b87eca367b56645979b6254e4caa5d8", + "episode": 7, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "episode": 10, + "bundle_hash": "b79a7e34ff8988410ec97d60c4daec48b4987c10d4b9d7346b1b847b89f5c706", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 12, + "bundle_hash": "f1f7e10229944b49708dd0013a5319fd473fffd5b76f0dd1de1777d3e8c91a9d", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 13, + "bundle_hash": "f1f7e10229944b49708dd0013a5319fd473fffd5b76f0dd1de1777d3e8c91a9d", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 14, + "bundle_hash": "f1f7e10229944b49708dd0013a5319fd473fffd5b76f0dd1de1777d3e8c91a9d", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 15, + "bundle_hash": "f1f7e10229944b49708dd0013a5319fd473fffd5b76f0dd1de1777d3e8c91a9d", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 16, + "bundle_hash": "f1f7e10229944b49708dd0013a5319fd473fffd5b76f0dd1de1777d3e8c91a9d", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 17, + "bundle_hash": "f1f7e10229944b49708dd0013a5319fd473fffd5b76f0dd1de1777d3e8c91a9d", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 18, + "bundle_hash": "f1f7e10229944b49708dd0013a5319fd473fffd5b76f0dd1de1777d3e8c91a9d", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 19, + "bundle_hash": "f1f7e10229944b49708dd0013a5319fd473fffd5b76f0dd1de1777d3e8c91a9d", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 20, + "bundle_hash": "f1f7e10229944b49708dd0013a5319fd473fffd5b76f0dd1de1777d3e8c91a9d", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + } + ] + } +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/handoff.md b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/handoff.md new file mode 100644 index 0000000000000000000000000000000000000000..090dfb7c1d950c09c09d5dba4d224b165a13e584 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/handoff.md @@ -0,0 +1,12 @@ +# Candidate handoff +controller.py exports reset_episode() and act(obs), returning a flat 50-component float32 action or None. Keep features.py, contract.json, library.npz, and arm_feedback.npz beside it. Runtime: NumPy, OpenCV, Python standard library. No network, neural weights, RPC, simulator, or development agent required. +The runner owns the initial hold and native 750-step horizon. The controller consumes RGB/proprioception in the documented observation schema and uses step_id when provided. Base action indices 0:3 and 25:28 are absolute positions; all outputs clipped to native limits. Arm and hand outputs are normalized deltas. +Current policy: nonparametric nearest-example retrieval, soft observation-derived phase continuity, reduced wrist-camera influence, bounded absolute base targets. All 20 demos remain represented; no hidden initialization or seed used. last_diagnostics exposes selected demo/frame and distances. +Interactive episode 6 completed with native success after image-weighting correction. The earlier v02 exact bundle failed independent episode 3 and is preserved for audit. The trusted runner records the exact bundle hash, validity, outcomes, and frozen selection; subsequent rehearsal evidence is stored in /workspace/exploration. Completion is never inferred merely from library similarity. No tested dropped-object recovery exists. +The runner supplies verified demo manifest, readonly demos, and common environment lock. Authoring helper scripts are not runtime dependencies. + +The current version adds bounded arm and finger pose-error corrections. arm_feedback.npz contains only local linear coefficients compiled from this task’s authorized demo transitions, not neural weights. Episode 8 failed the mug grasp; episode 9 has visibly lifted the mug at step 201, with full-task outcome pending. + +Episode 9 completed with native success; independent performance of this feedback version remains pending. + +The localized version also requires mug_locations.json, compiled solely from the twenty authorized initial front-camera images. Episode 11 completed with native success after adding this bias. Exact independent rehearsal outcomes, hashes, and final selection are recorded by the trusted API and in /workspace/exploration; these mutable notes never substitute for that record. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/model_tool_manifest.yaml b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/model_tool_manifest.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fce2500de94f9d72fe5c30a753d138ef422e9386 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/model_tool_manifest.yaml @@ -0,0 +1,81 @@ +{ + "stage": "D20_E20_LEGAL_EXPLORATION", + "draft_status": "candidate_for_independent_rehearsal", + "authoring_agent": "Codex; exact backend weight identifier not exposed", + "neural_finetuning": false, + "pretrained_tool_weights": [], + "frozen_weight_references": "No neural tool model loaded; authoring model weights unchanged; exact authoring checkpoint unavailable", + "python": "3.10.20", + "installed_versions": { + "numpy": "2.2.6", + "scipy": "1.15.3", + "opencv-python": "4.13.0.92", + "h5py": "3.16.0", + "torch": "2.10.0" + }, + "runtime_dependencies": [ + "numpy", + "opencv-python", + "Python standard library" + ], + "offline_dependencies": [ + "numpy", + "opencv-python", + "h5py", + "worker_api.API.read_demo", + "Python standard library" + ], + "tools_actually_used": [ + "local shell via exec_command", + "Python", + "NumPy", + "OpenCV", + "h5py via API.read_demo", + "image viewer for contact sheets", + "importlib.metadata for installed versions", + "worker_api.API trusted exploration and rehearsal" + ], + "not_used": [ + "SciPy computation", + "torch computation", + "internet/provider proxy", + "simulator", + "task expert", + "other task data" + ], + "provenance": { + "data": "20 entries in /demo_manifest.json; authorized /demonstrations only", + "contract_sha256": "9bed121ae56d2d2a7dac24fd12dff3cc95a5a54b9745d5b12b829bdaf8aae2eb", + "supplied_manifest_sha256": "5a64962e4716f327a5c84f5434825eb8bc3d1a6587715fc211ed755d9ce8fba6", + "features": "deterministic OpenCV INTER_AREA 20x16 RGB per each of five cameras", + "library": "nonparametric raw qpos/qvel, action labels, RGB features, numeric phase; no neural fitting", + "verified_manifest_and_common_lock": "supplied separately by runner", + "arm_feedback": "Bounded local linear least squares from authorized adjacent demo transitions; no neural weights", + "mug_localization": "Initial front camera red-mask centroid from 20 authorized demos; deterministic image processing; no neural model" + }, + "limitations": [ + "No calibrated camera geometry/contact state", + "No verified physical recovery", + "Heuristic OOD thresholds", + "Independent performance recorded by trusted API, outside this mutable authoring manifest" + ], + "validation": { + "scope": "syntax and artificial-input checks only; no dynamics, no real task testing", + "passed": [ + "real_library_with_artificial_zero_observation_returns_legal_hold", + "synthetic_retrieval_and_clipping", + "batched_rgb", + "measured_base_feedback", + "changed_rgb_changes_to_hold", + "missing_rgb_hold", + "extreme_base_float32_bounds", + "invalid_qpos_finish", + "native_budget_guard", + "reset_clears_episode_state" + ], + "syntax": "all candidate Python files compile", + "first_call_with_library_load_seconds": 0.13772514695301652, + "note": "Timing on artificial input includes file loading; not native-rate validation" + }, + "exploration_episodes_at_authoring": 11 +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/mug_locations.json b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/mug_locations.json new file mode 100644 index 0000000000000000000000000000000000000000..53444e00327fb223dc72311c088af822c3907ec0 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/mug_locations.json @@ -0,0 +1 @@ +[[94.11538461538461, 102.38461538461539, 52], [94.34782608695652, 102.06521739130434, 46], [94.34782608695652, 102.06521739130434, 46], [95.35416666666667, 102.5625, 48], [93.05660377358491, 102.43396226415095, 53], [94.15686274509804, 102.58823529411765, 51], [93.62, 102.46, 50], [95.0, 102.37037037037037, 54], [94.04, 102.1, 50], [95.42553191489361, 102.29787234042553, 47], [94.40816326530613, 102.48979591836735, 49], [93.28571428571429, 102.55102040816327, 49], [94.42553191489361, 102.29787234042553, 47], [94.82352941176471, 102.45098039215686, 51], [95.3061224489796, 102.48979591836735, 49], [95.05660377358491, 102.32075471698113, 53], [95.28571428571429, 102.20408163265306, 49], [93.88461538461539, 102.4423076923077, 52], [94.88461538461539, 102.4423076923077, 52], [93.0, 102.37037037037037, 54]] \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/policy_runner.py b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/policy_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..e49448d6245feb7818ae505f1061708ab97c6ead --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/policy_runner.py @@ -0,0 +1,25 @@ +"""Frozen-program entry point; no development agent and no reset capability.""" +import importlib.util +import sys + +sys.path.insert(0,'/artifact') +sys.path.insert(0,'/') +from worker_api import API + + +def main(): + spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py') + module=importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + module.reset_episode() + api=API() + result=api.latest_observation() + while not (result['terminated'] or result['truncated'] or result['horizon_reached']): + obs=dict(result['observation'],step_id=result['step_id']) + action=module.act(obs) + if action is None:break + response=api.execute_actions([action]) + result=response['steps'][-1] + + +if __name__=='__main__':main() diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/skills.md b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/skills.md new file mode 100644 index 0000000000000000000000000000000000000000..1a2c1cce5170270b5d48f849b84b1e0d4d39e555 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/skills.md @@ -0,0 +1,11 @@ +# Observation-driven behavioral skills +Runtime uses only NumPy, OpenCV, and local library compiled from this task's 20 authorized demos. No neural models, network, task simulator, RPC, or weight updates. +1. Read both robots' qpos/qvel and all five camera views each call. +2. Shortlist examples by measured pose/velocity and soft phase continuity. Compare normalized image features with global cameras weighted 1 each and wrist cameras 0.02 each; image score multiplier 2. This reduces close-up occlusion dominance observed in episode 5. +3. Retrieve arm/hand commands; bound demonstrated absolute base targets locally around measured base coordinates. Do not cumulatively transfer a base target offset. +4. Mug approach, grasp, lift, tray placement, and coordinated tray transport are represented by examples. Interactive episode 6 completed the native task with this behavior. +5. Hold for missing/unfamiliar observations; end on invalid qpos or horizon. No reliable physical recovery from a dropped/missed mug is established. A hold is not a success claim. + +6. Apply bounded local arm reference-error corrections and hand reference-error corrections using the empirically inferred joint ordering. These corrections do not establish object grasp or success. + +7. During mug handling, bias retrieval using the visible initial front-camera mug centroid versus each authorized demo centroid. A horizontal deadband tolerates small rasterization differences; penalty fades from phase .55 to .65. Current pose and all five images still determine each action. If the red mask has fewer than ten pixels, disable this heuristic. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/synthetic_checks.json b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/synthetic_checks.json new file mode 100644 index 0000000000000000000000000000000000000000..a7c8eb574809ca099b4035358661219ab97ba59f --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/synthetic_checks.json @@ -0,0 +1,18 @@ +{ + "scope": "syntax and artificial-input checks only; no dynamics, no real task testing", + "passed": [ + "real_library_with_artificial_zero_observation_returns_legal_hold", + "synthetic_retrieval_and_clipping", + "batched_rgb", + "measured_base_feedback", + "changed_rgb_changes_to_hold", + "missing_rgb_hold", + "extreme_base_float32_bounds", + "invalid_qpos_finish", + "native_budget_guard", + "reset_clears_episode_state" + ], + "syntax": "all candidate Python files compile", + "first_call_with_library_load_seconds": 0.13772514695301652, + "note": "Timing on artificial input includes file loading; not native-rate validation" +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/worker_api.py b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/worker_api.py new file mode 100644 index 0000000000000000000000000000000000000000..ff137d1c68cb70a1549326d2d22b430c9cf4e20c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmSetupTable-v1/frozen/worker_api.py @@ -0,0 +1,81 @@ +"""Standalone worker client; safe to mount without the runner package.""" +import base64 +import json +import socket +import struct +import uuid +import os +from pathlib import Path + +import numpy as np + + +def array_hook(value): + if value.get('__array__') is True: + dtype=np.dtype(value['dtype']) + if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service') + raw=base64.b64decode(value['data'],validate=True) + return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy() + return value + + +class API: + def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'): + self.socket_path=socket_path + self.demo_root=Path(demo_root) + self.manifest=Path(manifest) + + def call(self,method,arguments=None,request_id=None): + # Caller can persist a request ID before sending. Never automatically retry. + request_id=request_id or str(uuid.uuid4()) + request={'request_id':request_id,'method':method,'arguments':arguments or {}} + if os.environ.get('AGENT_E20_RPC_TOKEN'): + request['token']=os.environ['AGENT_E20_RPC_TOKEN'] + payload=json.dumps(request,allow_nan=False).encode() + if len(payload)>65536:raise ValueError('request too large') + with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s: + s.settimeout(1810);s.connect(self.socket_path) + s.sendall(struct.pack('!I',len(payload))+payload) + def exact(n): + chunks=[] + while n: + chunk=s.recv(min(n,1024*1024)) + if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID') + chunks.append(chunk);n-=len(chunk) + return b''.join(chunks) + length=struct.unpack('!I',exact(4))[0] + if length>64*1024*1024:raise RuntimeError('response too large') + result=json.loads(exact(length),object_hook=array_hook) + if not result['ok']:raise RuntimeError(result['error']) + return result['result'] + + def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id) + def latest_observation(self):return self.call('latest_observation') + def execute_actions(self,actions,request_id=None): + return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id) + def finish_episode(self):return self.call('finish_episode') + def budget_status(self):return self.call('budget_status') + def rehearse(self,candidate='candidate',request_id=None): + return self.call('rehearse',{'candidate':candidate},request_id) + def score_rehearsal(self,episode,visible_success,evidence): + return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence}) + def freeze(self):return self.call('freeze') + + def read_demo(self,demo_id,start=0,stop=None,fields=None): + import h5py + manifest=json.loads(self.manifest.read_text()) + if manifest.get('status') not in ('released','released_for_offline_analysis'): + raise RuntimeError('demonstrations not released by trusted preflight') + entries={e['demo_id']:e for e in manifest['episodes']} + if demo_id not in entries:raise ValueError('unauthorized demo ID') + entry=entries[demo_id] + allowed={f['path'] for f in entry['fields']} + fields=sorted(allowed) if fields is None else fields + if not set(fields)<=allowed:raise ValueError('unauthorized demo field') + stop=entry['length']+1 if stop is None else stop + if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start.25)+1,n-1]) + vis=[] + ims=api.read_demo(e['demo_id'],fields=['obs/sensor_data/'+cam+'/rgb' for cam in CAMERAS]) + for t in ix: + vis.append(image_features({cam:ims['obs/sensor_data/'+cam+'/rgb'][t] for cam in CAMERAS})) + del ims + for k,val in dict(q=q[ix],v=v[ix],visual=np.asarray(vis),action=a[ix],phase=ix/n,demo=np.full(len(ix),di),frame=ix).items(): bank[k].append(val) + blocks=[] + for lo,hi in zip(np.linspace(0,n,6,dtype=int)[:-1],np.linspace(0,n,6,dtype=int)[1:]): + aa=a[lo:hi]; blocks.append(dict(range=[int(lo),int(hi)],translation_mean=np.round(aa[:,[3,4,5,28,29,30]].mean(0),4).tolist(),rotation_mean=np.round(aa[:,[6,7,8,31,32,33]].mean(0),4).tolist(),hand_abs_mean=float(np.abs(aa[:,list(range(9,25))+list(range(34,50))]).mean()))) + summary.append(dict(id=e['demo_id'],memory_frames=ix.tolist(),action_blocks=blocks,peak_action_change_frame=int(np.argmax(changes)+1))) + print(e['demo_id'],len(ix),flush=True) +bank={k:np.concatenate(val).astype(np.float32 if k not in ['demo','frame'] else np.int32) for k,val in bank.items()} +bank['qscale']=np.maximum(np.std(bank['q'],axis=0),.15).astype(np.float32) +np.savez_compressed(ROOT/'memory.npz',**bank) +(ROOT/'compilation_log.json').write_text(json.dumps(summary,indent=2)) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/check_synthetic.py b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/check_synthetic.py new file mode 100644 index 0000000000000000000000000000000000000000..c2b2f0b404ebece0492db460ea6a30d6e8af97af --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/check_synthetic.py @@ -0,0 +1,40 @@ +"""Interface/unit checks with artificial observations only; no environment.""" +import ast, copy, json +from pathlib import Path +import numpy as np +import controller as c +checks=[] +for p in Path(__file__).parent.glob('*.py'): ast.parse(p.read_text(),filename=str(p)) +checks.append('all candidate Python files parse') +def obs(batched=False): + return dict(rgb={cam:np.zeros((1,240,320,3) if batched else (240,320,3),np.uint8) for cam in c.CAMERAS},proprioception={'agent/'+k+'/'+p:np.zeros(26,np.float32) for k in c.KEYS for p in ['qpos','qvel']},instruction='synthetic basketball task',step_id=1) +o=obs(); q=np.zeros((2,52),np.float32); v=q.copy(); a=np.zeros((2,50),np.float32); a[0,3]=.2; a[1,3]=-.2 +red=obs(); red['rgb']={cam:np.full((240,320,3),[255,100,0],np.uint8) for cam in c.CAMERAS} +c._bank=dict(q=q,v=v,action=a,phase=np.zeros(2),qscale=np.ones(52),visual=np.stack([c.image_features(o['rgb']),c.image_features(red['rgb'])])) +c.reset_episode(); assert c.act(o)[3] == a[0,3] +c.reset_episode(); assert c.act(red)[3] == a[1,3] +checks.append('synthetic RGB change changes retrieval and action') +c._bank['visual'][1]=c._bank['visual'][0]; c._bank['q'][1]=1 +one=obs() +for k in c.KEYS: one['proprioception']['agent/'+k+'/qpos'][:]=1 +c.reset_episode(); assert c.act(one)[3] == a[1,3] +checks.append('synthetic proprioception change changes retrieval and action') +c.reset_episode(); x=c.act(obs()); c.reset_episode(); y=c.act(obs(True)); assert np.array_equal(x,y) +checks.append('HWC and 1HWC RGB produce equal actions; reset reproducible') +missing=obs(); missing['rgb']={}; missing['proprioception']['agent/'+c.KEYS[1]+'/qpos'][:3]=[.3,-.4,.5] +a=c.act(missing); assert np.allclose(a[25:28],[.3,-.4,.5]); assert np.all(a[28:]==0) +checks.append('missing RGB holds current bases in contract part order') +bad=obs(); bad['proprioception']['agent/'+c.KEYS[0]+'/qpos'][0]=np.nan; assert c.act(bad) is None +last=obs(); last['step_id']=1000; assert c.act(last) is None +checks.append('nonfinite proprioception and exhausted post-hold budget stop') +c._bank=None; c.reset_episode() +rng=np.random.default_rng(123) +for batched in [False,True]: + x=obs(batched) + for k in x['rgb']: x['rgb'][k]=rng.integers(0,256,x['rgb'][k].shape,dtype=np.uint8) + a=c.act(x); assert a.shape==(50,) and a.dtype==np.float32 and np.isfinite(a).all(); assert (a>=c.LOW).all() and (a<=c.HIGH).all() +checks.append('actual compiled bank loads; artificial inputs produce finite legal 50-vectors') +assert len(np.unique(c._bank['demo']))==20 +checks.append('compiled memory represents all 20 demos') +result=dict(status='passed',scope='syntax and synthetic inputs only; no task rollout',checks=checks,memory_rows=len(c._bank['q'])) +(Path(__file__).parent/'synthetic_checks.json').write_text(json.dumps(result,indent=2)+'\n'); print(json.dumps(result,indent=2)) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/compilation_log.json b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/compilation_log.json new file mode 100644 index 0000000000000000000000000000000000000000..62b5188fcc57fb276215ab0ecc296af2ad3bdd6d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/compilation_log.json @@ -0,0 +1,6788 @@ +[ + { + "id": "demo_00", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 199, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 259, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 418, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 505, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 867, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 893 + ], + "action_blocks": [ + { + "range": [ + 0, + 178 + ], + "translation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "rotation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "hand_abs_mean": 0.0 + }, + { + "range": [ + 178, + 357 + ], + "translation_mean": [ + -0.03720000013709068, + 0.10769999772310257, + -0.04010000079870224, + -0.007199999876320362, + -0.044199999421834946, + -0.019600000232458115 + ], + "rotation_mean": [ + -0.017400000244379044, + -0.007899999618530273, + 0.05389999970793724, + -0.003599999938160181, + -0.005900000222027302, + -0.08839999884366989 + ], + "hand_abs_mean": 0.0428704135119915 + }, + { + "range": [ + 357, + 536 + ], + "translation_mean": [ + -0.005900000222027302, + 0.02850000001490116, + 0.03530000150203705, + 0.017100000753998756, + -0.04179999977350235, + 0.03449999913573265 + ], + "rotation_mean": [ + 0.0006000000284984708, + 0.004000000189989805, + 0.032600000500679016, + 0.024299999698996544, + -0.002400000113993883, + -0.02669999934732914 + ], + "hand_abs_mean": 0.045800354331731796 + }, + { + "range": [ + 536, + 715 + ], + "translation_mean": [ + 0.013399999588727951, + -0.00019999999494757503, + 0.0215000007301569, + 0.012799999676644802, + 0.0044999998062849045, + 0.024700000882148743 + ], + "rotation_mean": [ + 0.0003000000142492354, + 0.0012000000569969416, + 0.0015999999595806003, + 0.0008999999845400453, + -0.0012000000569969416, + 0.0003000000142492354 + ], + "hand_abs_mean": 0.016021862626075745 + }, + { + "range": [ + 715, + 894 + ], + "translation_mean": [ + 0.0006000000284984708, + 0.0, + -0.00019999999494757503, + -0.010099999606609344, + 0.011800000444054604, + 0.0835999995470047 + ], + "rotation_mean": [ + 0.00039999998989515007, + 0.00019999999494757503, + 0.000699999975040555, + 0.04259999841451645, + -0.004399999976158142, + -0.008200000040233135 + ], + "hand_abs_mean": 0.011174201034009457 + } + ], + "peak_action_change_frame": 259 + }, + { + "id": "demo_01", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 54, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 114, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 359, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 717, + 720, + 724, + 728, + 732 + ], + "action_blocks": [ + { + "range": [ + 0, + 146 + ], + "translation_mean": [ + 0.04500000178813934, + -0.09640000015497208, + -0.07620000094175339, + 0.03009999915957451, + 0.01769999973475933, + -0.05979999899864197 + ], + "rotation_mean": [ + 0.016200000420212746, + 0.010900000110268593, + 0.016499999910593033, + -0.022600000724196434, + 0.00139999995008111, + -0.020899999886751175 + ], + "hand_abs_mean": 0.03411319851875305 + }, + { + "range": [ + 146, + 293 + ], + "translation_mean": [ + -0.00019999999494757503, + -0.05649999901652336, + 0.05130000039935112, + -0.04280000180006027, + 0.0706000030040741, + 0.0731000006198883 + ], + "rotation_mean": [ + 0.008700000122189522, + -0.007000000216066837, + 0.07760000228881836, + 0.022099999710917473, + 0.00800000037997961, + -0.11680000275373459 + ], + "hand_abs_mean": 0.04277004674077034 + }, + { + "range": [ + 293, + 439 + ], + "translation_mean": [ + 0.00279999990016222, + -0.02160000056028366, + 0.041099999099969864, + 9.999999747378752e-05, + 0.01510000042617321, + 0.032499998807907104 + ], + "rotation_mean": [ + -0.00039999998989515007, + -0.00139999995008111, + 0.0052999998442828655, + -0.02449999935925007, + 0.0012000000569969416, + -0.0034000000450760126 + ], + "hand_abs_mean": 0.040635280311107635 + }, + { + "range": [ + 439, + 586 + ], + "translation_mean": [ + -0.018200000748038292, + 0.006099999882280827, + 9.999999747378752e-05, + -0.017500000074505806, + -0.00559999980032444, + 0.002300000051036477 + ], + "rotation_mean": [ + -0.00019999999494757503, + -0.0, + -9.999999747378752e-05, + -0.000699999975040555, + 0.0008999999845400453, + -0.0 + ], + "hand_abs_mean": 0.01136519480496645 + }, + { + "range": [ + 586, + 733 + ], + "translation_mean": [ + 0.0005000000237487257, + 0.0, + -0.0005000000237487257, + 0.02070000022649765, + -0.025200000032782555, + 0.1006999984383583 + ], + "rotation_mean": [ + -0.00039999998989515007, + -0.00039999998989515007, + 0.000699999975040555, + -0.0544000007212162, + 0.0044999998062849045, + -0.003800000064074993 + ], + "hand_abs_mean": 0.01069757528603077 + } + ], + "peak_action_change_frame": 114 + }, + { + "id": "demo_02", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 198, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 258, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 415, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 502, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 859, + 860, + 864, + 868, + 872, + 876 + ], + "action_blocks": [ + { + "range": [ + 0, + 175 + ], + "translation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "rotation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "hand_abs_mean": 0.0 + }, + { + "range": [ + 175, + 350 + ], + "translation_mean": [ + -0.03830000013113022, + 0.10750000178813934, + -0.04280000180006027, + -0.009399999864399433, + -0.042500000447034836, + -0.02280000038444996 + ], + "rotation_mean": [ + -0.01769999973475933, + -0.008799999952316284, + 0.05050000175833702, + 0.0006000000284984708, + -0.0052999998442828655, + -0.08340000361204147 + ], + "hand_abs_mean": 0.04277293011546135 + }, + { + "range": [ + 350, + 526 + ], + "translation_mean": [ + -0.004000000189989805, + 0.027799999341368675, + 0.0333000011742115, + 0.017899999395012856, + -0.042500000447034836, + 0.03440000116825104 + ], + "rotation_mean": [ + -0.0017000000225380063, + 0.0044999998062849045, + 0.0333000011742115, + 0.022299999371170998, + -0.002199999988079071, + -0.030799999833106995 + ], + "hand_abs_mean": 0.04525868222117424 + }, + { + "range": [ + 526, + 701 + ], + "translation_mean": [ + 0.00989999994635582, + 0.00279999990016222, + 0.025100000202655792, + 0.00930000003427267, + 0.003700000001117587, + 0.0284000001847744 + ], + "rotation_mean": [ + 0.00039999998989515007, + 0.0017000000225380063, + 0.002199999988079071, + 0.0010000000474974513, + -0.0013000000035390258, + 0.0 + ], + "hand_abs_mean": 0.01766582578420639 + }, + { + "range": [ + 701, + 877 + ], + "translation_mean": [ + 0.004699999932199717, + -0.00039999998989515007, + -0.0, + 0.0008999999845400453, + 0.00139999995008111, + 0.0689999982714653 + ], + "rotation_mean": [ + 0.0003000000142492354, + 9.999999747378752e-05, + 0.0003000000142492354, + 0.012400000356137753, + -0.0066999997943639755, + -0.016899999231100082 + ], + "hand_abs_mean": 0.010768049396574497 + } + ], + "peak_action_change_frame": 258 + }, + { + "id": "demo_03", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 199, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 259, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 417, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 904, + 908, + 912, + 916, + 920, + 924, + 926, + 928, + 932, + 936, + 940, + 944, + 948, + 952, + 956, + 960, + 964, + 968, + 972, + 976, + 978 + ], + "action_blocks": [ + { + "range": [ + 0, + 195 + ], + "translation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "rotation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "hand_abs_mean": 0.0 + }, + { + "range": [ + 195, + 391 + ], + "translation_mean": [ + -0.03550000116229057, + 0.11240000277757645, + -0.03099999949336052, + 0.0034000000450760126, + -0.05429999902844429, + -0.004100000020116568 + ], + "rotation_mean": [ + -0.015599999576807022, + -0.0052999998442828655, + 0.06750000268220901, + -0.005499999970197678, + -0.006399999838322401, + -0.09539999812841415 + ], + "hand_abs_mean": 0.044719185680150986 + }, + { + "range": [ + 391, + 587 + ], + "translation_mean": [ + -0.002899999963119626, + 0.015599999576807022, + 0.04670000076293945, + 0.004999999888241291, + -0.023900000378489494, + 0.03849999979138374 + ], + "rotation_mean": [ + 0.00019999999494757503, + 0.0017999999690800905, + 0.011300000362098217, + 0.025299999862909317, + -0.0013000000035390258, + -0.008299999870359898 + ], + "hand_abs_mean": 0.043173372745513916 + }, + { + "range": [ + 587, + 783 + ], + "translation_mean": [ + 0.01360000018030405, + -0.006899999920278788, + -9.999999747378752e-05, + 0.013100000098347664, + 0.000699999975040555, + 0.0020000000949949026 + ], + "rotation_mean": [ + 0.00039999998989515007, + 0.00019999999494757503, + 0.0003000000142492354, + 0.0007999999797903001, + -0.0007999999797903001, + -9.999999747378752e-05 + ], + "hand_abs_mean": 0.010900691151618958 + }, + { + "range": [ + 783, + 979 + ], + "translation_mean": [ + -0.0017000000225380063, + 0.005400000140070915, + -0.00039999998989515007, + -0.016599999740719795, + -0.0017999999690800905, + 0.07519999891519547 + ], + "rotation_mean": [ + 0.0008999999845400453, + 0.0003000000142492354, + 0.0017000000225380063, + -0.02019999921321869, + -0.011800000444054604, + -0.005799999926239252 + ], + "hand_abs_mean": 0.012297047302126884 + } + ], + "peak_action_change_frame": 259 + }, + { + "id": "demo_04", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 273, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 734, + 736, + 740, + 744, + 748 + ], + "action_blocks": [ + { + "range": [ + 0, + 149 + ], + "translation_mean": [ + 0.04410000145435333, + -0.09489999711513519, + -0.07419999688863754, + 0.02889999933540821, + 0.017899999395012856, + -0.05810000002384186 + ], + "rotation_mean": [ + 0.01600000075995922, + 0.01080000028014183, + 0.01720000058412552, + -0.022299999371170998, + 0.00139999995008111, + -0.021299999207258224 + ], + "hand_abs_mean": 0.0338398776948452 + }, + { + "range": [ + 149, + 299 + ], + "translation_mean": [ + 0.003700000001117587, + -0.05180000141263008, + 0.052400000393390656, + -0.04050000011920929, + 0.06859999895095825, + 0.06949999928474426 + ], + "rotation_mean": [ + 0.007000000216066837, + -0.00570000009611249, + 0.07599999755620956, + 0.019099999219179153, + 0.007699999958276749, + -0.11190000176429749 + ], + "hand_abs_mean": 0.043217696249485016 + }, + { + "range": [ + 299, + 449 + ], + "translation_mean": [ + 0.003000000026077032, + -0.020400000736117363, + 0.039500001817941666, + 0.0003000000142492354, + 0.013899999670684338, + 0.03370000049471855 + ], + "rotation_mean": [ + -0.00039999998989515007, + -0.0012000000569969416, + 0.004999999888241291, + -0.022199999541044235, + 0.0010999999940395355, + -0.003000000026077032 + ], + "hand_abs_mean": 0.03853518143296242 + }, + { + "range": [ + 449, + 599 + ], + "translation_mean": [ + -0.01759999990463257, + 0.008700000122189522, + 9.999999747378752e-05, + -0.01720000058412552, + -0.0013000000035390258, + 0.0017999999690800905 + ], + "rotation_mean": [ + -0.00019999999494757503, + -0.0, + -0.0, + -0.000699999975040555, + 0.0007999999797903001, + -9.999999747378752e-05 + ], + "hand_abs_mean": 0.010926153510808945 + }, + { + "range": [ + 599, + 749 + ], + "translation_mean": [ + 0.0008999999845400453, + -0.003000000026077032, + -0.0010000000474974513, + 0.0215000007301569, + -0.030300000682473183, + 0.09759999811649323 + ], + "rotation_mean": [ + -9.999999747378752e-05, + -0.0006000000284984708, + 0.0005000000237487257, + -0.052400000393390656, + 0.004600000102072954, + -0.0032999999821186066 + ], + "hand_abs_mean": 0.010786786675453186 + } + ], + "peak_action_change_frame": 116 + }, + { + "id": "demo_05", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 198, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 258, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 503, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 896, + 900, + 901, + 904, + 908, + 912, + 916, + 920, + 924, + 928, + 932, + 936, + 940, + 944, + 948, + 952 + ], + "action_blocks": [ + { + "range": [ + 0, + 190 + ], + "translation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "rotation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "hand_abs_mean": 0.0 + }, + { + "range": [ + 190, + 381 + ], + "translation_mean": [ + -0.03590000048279762, + 0.11159999668598175, + -0.033799998462200165, + 0.0017000000225380063, + -0.052000001072883606, + -0.00800000037997961 + ], + "rotation_mean": [ + -0.015699999406933784, + -0.005799999926239252, + 0.06859999895095825, + -0.00839999970048666, + -0.006899999920278788, + -0.09759999811649323 + ], + "hand_abs_mean": 0.04448409751057625 + }, + { + "range": [ + 381, + 571 + ], + "translation_mean": [ + -0.003100000089034438, + 0.02250000089406967, + 0.045899998396635056, + 0.007899999618530273, + -0.02810000069439411, + 0.03840000182390213 + ], + "rotation_mean": [ + 9.999999747378752e-05, + 0.003000000026077032, + 0.01489999983459711, + 0.026900000870227814, + -0.001500000013038516, + -0.011300000362098217 + ], + "hand_abs_mean": 0.044733066111803055 + }, + { + "range": [ + 571, + 762 + ], + "translation_mean": [ + 0.014000000432133675, + -0.0066999997943639755, + 0.004000000189989805, + 0.013700000010430813, + 0.0010999999940395355, + 0.007600000128149986 + ], + "rotation_mean": [ + 0.0003000000142492354, + 9.999999747378752e-05, + 9.999999747378752e-05, + 0.000699999975040555, + -0.0008999999845400453, + -9.999999747378752e-05 + ], + "hand_abs_mean": 0.011664070188999176 + }, + { + "range": [ + 762, + 953 + ], + "translation_mean": [ + -0.001500000013038516, + 0.004999999888241291, + -0.00039999998989515007, + -0.014700000174343586, + 0.002099999925121665, + 0.065700002014637 + ], + "rotation_mean": [ + 0.0010000000474974513, + 0.0003000000142492354, + 0.0019000000320374966, + -0.026799999177455902, + -0.006099999882280827, + -0.007499999832361937 + ], + "hand_abs_mean": 0.011499954387545586 + } + ], + "peak_action_change_frame": 258 + }, + { + "id": "demo_06", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 81, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 141, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 298, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 385, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 785, + 788, + 792, + 796, + 799 + ], + "action_blocks": [ + { + "range": [ + 0, + 160 + ], + "translation_mean": [ + 0.042500000447034836, + -0.08129999786615372, + -0.07559999823570251, + 0.034699998795986176, + 0.008700000122189522, + -0.06109999865293503 + ], + "rotation_mean": [ + 0.01269999984651804, + 0.00430000014603138, + -0.005499999970197678, + -0.017999999225139618, + 0.0015999999595806003, + -0.012000000104308128 + ], + "hand_abs_mean": 0.025142017751932144 + }, + { + "range": [ + 160, + 320 + ], + "translation_mean": [ + 0.00019999999494757503, + -0.0575999990105629, + 0.055399999022483826, + -0.04600000008940697, + 0.07169999927282333, + 0.07370000332593918 + ], + "rotation_mean": [ + 0.009399999864399433, + -0.00019999999494757503, + 0.093299999833107, + 0.01730000041425228, + 0.006899999920278788, + -0.11339999735355377 + ], + "hand_abs_mean": 0.04550676792860031 + }, + { + "range": [ + 320, + 480 + ], + "translation_mean": [ + 0.0027000000700354576, + -0.013700000010430813, + 0.03669999912381172, + 0.0006000000284984708, + 0.01209999993443489, + 0.028300000354647636 + ], + "rotation_mean": [ + -0.00019999999494757503, + -0.00019999999494757503, + 0.0034000000450760126, + -0.022099999710917473, + 0.0008999999845400453, + -0.0027000000700354576 + ], + "hand_abs_mean": 0.03772355243563652 + }, + { + "range": [ + 480, + 640 + ], + "translation_mean": [ + -0.01759999990463257, + 0.006099999882280827, + 0.00039999998989515007, + -0.017000000923871994, + -0.0010000000474974513, + 0.0017999999690800905 + ], + "rotation_mean": [ + -0.0003000000142492354, + 0.00019999999494757503, + 0.00019999999494757503, + -0.000699999975040555, + 0.000699999975040555, + -9.999999747378752e-05 + ], + "hand_abs_mean": 0.010741828009486198 + }, + { + "range": [ + 640, + 800 + ], + "translation_mean": [ + 0.0012000000569969416, + -0.00279999990016222, + -0.0010999999940395355, + 0.02019999921321869, + -0.02630000002682209, + 0.09449999779462814 + ], + "rotation_mean": [ + -0.0005000000237487257, + -0.0006000000284984708, + 0.0010999999940395355, + -0.04969999939203262, + 0.004100000020116568, + -0.0034000000450760126 + ], + "hand_abs_mean": 0.011017599143087864 + } + ], + "peak_action_change_frame": 141 + }, + { + "id": "demo_07", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 73, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 133, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 290, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 377, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 761, + 764, + 768, + 772, + 775 + ], + "action_blocks": [ + { + "range": [ + 0, + 155 + ], + "translation_mean": [ + 0.04340000078082085, + -0.08569999784231186, + -0.07699999958276749, + 0.033900000154972076, + 0.011500000022351742, + -0.06159999966621399 + ], + "rotation_mean": [ + 0.013700000010430813, + 0.006099999882280827, + -0.00039999998989515007, + -0.01979999989271164, + 0.001500000013038516, + -0.013799999840557575 + ], + "hand_abs_mean": 0.027571219950914383 + }, + { + "range": [ + 155, + 310 + ], + "translation_mean": [ + 0.0006000000284984708, + -0.05860000103712082, + 0.05310000106692314, + -0.046799998730421066, + 0.07150000333786011, + 0.07440000027418137 + ], + "rotation_mean": [ + 0.00839999970048666, + -0.0026000000070780516, + 0.09399999678134918, + 0.023399999365210533, + 0.00800000037997961, + -0.1193000003695488 + ], + "hand_abs_mean": 0.044688981026411057 + }, + { + "range": [ + 310, + 465 + ], + "translation_mean": [ + 0.00279999990016222, + -0.017500000074505806, + 0.03779999911785126, + 0.0003000000142492354, + 0.013799999840557575, + 0.031199999153614044 + ], + "rotation_mean": [ + -0.0005000000237487257, + -0.00139999995008111, + 0.005100000184029341, + -0.023399999365210533, + 0.0012000000569969416, + -0.003000000026077032 + ], + "hand_abs_mean": 0.03953990340232849 + }, + { + "range": [ + 465, + 620 + ], + "translation_mean": [ + -0.017400000244379044, + 0.005499999970197678, + 9.999999747378752e-05, + -0.016899999231100082, + -0.004800000227987766, + 0.0017000000225380063 + ], + "rotation_mean": [ + -9.999999747378752e-05, + 9.999999747378752e-05, + -9.999999747378752e-05, + -0.0006000000284984708, + 0.0007999999797903001, + -0.00019999999494757503 + ], + "hand_abs_mean": 0.011013309471309185 + }, + { + "range": [ + 620, + 776 + ], + "translation_mean": [ + 0.000699999975040555, + -0.00019999999494757503, + -0.0008999999845400453, + 0.019099999219179153, + -0.02459999918937683, + 0.09700000286102295 + ], + "rotation_mean": [ + -0.0005000000237487257, + -0.0006000000284984708, + 0.0007999999797903001, + -0.05130000039935112, + 0.0031999999191612005, + -0.003700000001117587 + ], + "hand_abs_mean": 0.01072065532207489 + } + ], + "peak_action_change_frame": 133 + }, + { + "id": "demo_08", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 199, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 259, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 417, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 886, + 888, + 892, + 896, + 900, + 904, + 908, + 912, + 916, + 920, + 924, + 928, + 932, + 936, + 937 + ], + "action_blocks": [ + { + "range": [ + 0, + 187 + ], + "translation_mean": [ + 0.0, + 0.0, + 0.0, + -0.0, + 0.0, + 0.0 + ], + "rotation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "hand_abs_mean": 0.0 + }, + { + "range": [ + 187, + 375 + ], + "translation_mean": [ + -0.035599999129772186, + 0.11020000278949738, + -0.03530000150203705, + -0.000699999975040555, + -0.04969999939203262, + -0.010999999940395355 + ], + "rotation_mean": [ + -0.016300000250339508, + -0.006300000008195639, + 0.06440000236034393, + -0.007300000172108412, + -0.006399999838322401, + -0.09560000151395798 + ], + "hand_abs_mean": 0.04403024911880493 + }, + { + "range": [ + 375, + 562 + ], + "translation_mean": [ + -0.0052999998442828655, + 0.02500000037252903, + 0.04309999942779541, + 0.009700000286102295, + -0.031300000846385956, + 0.03759999945759773 + ], + "rotation_mean": [ + 0.0003000000142492354, + 0.003100000089034438, + 0.018400000408291817, + 0.02800000086426735, + -0.0017000000225380063, + -0.013000000268220901 + ], + "hand_abs_mean": 0.04528726637363434 + }, + { + "range": [ + 562, + 750 + ], + "translation_mean": [ + 0.013899999670684338, + -0.006800000090152025, + 0.00839999970048666, + 0.013500000350177288, + 0.0008999999845400453, + 0.011900000274181366 + ], + "rotation_mean": [ + 0.0003000000142492354, + 0.0003000000142492354, + 0.00039999998989515007, + 0.0007999999797903001, + -0.0008999999845400453, + 0.0 + ], + "hand_abs_mean": 0.012323848903179169 + }, + { + "range": [ + 750, + 938 + ], + "translation_mean": [ + -0.0015999999595806003, + 0.0052999998442828655, + -0.000699999975040555, + -0.017100000753998756, + 0.00039999998989515007, + 0.0706000030040741 + ], + "rotation_mean": [ + 0.0010000000474974513, + 0.00039999998989515007, + 0.0017999999690800905, + -0.027499999850988388, + -0.009700000286102295, + -0.005200000014156103 + ], + "hand_abs_mean": 0.01190276350826025 + } + ], + "peak_action_change_frame": 259 + }, + { + "id": "demo_09", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 67, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 127, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 285, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 755, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 807 + ], + "action_blocks": [ + { + "range": [ + 0, + 161 + ], + "translation_mean": [ + 0.041099999099969864, + -0.08839999884366989, + -0.06809999793767929, + 0.026599999517202377, + 0.017000000923871994, + -0.053300000727176666 + ], + "rotation_mean": [ + 0.014800000004470348, + 0.009999999776482582, + 0.017000000923871994, + -0.02070000022649765, + 0.0012000000569969416, + -0.020099999383091927 + ], + "hand_abs_mean": 0.031687181442976 + }, + { + "range": [ + 161, + 323 + ], + "translation_mean": [ + 0.000699999975040555, + -0.04690000042319298, + 0.05079999938607216, + -0.03709999844431877, + 0.06469999998807907, + 0.06159999966621399 + ], + "rotation_mean": [ + 0.004900000058114529, + -0.004699999932199717, + 0.06759999692440033, + 0.012799999676644802, + 0.0071000000461936, + -0.10270000249147415 + ], + "hand_abs_mean": 0.04329809173941612 + }, + { + "range": [ + 323, + 484 + ], + "translation_mean": [ + 0.0027000000700354576, + -0.017999999225139618, + 0.0364999994635582, + 0.000699999975040555, + 0.00989999994635582, + 0.03449999913573265 + ], + "rotation_mean": [ + -0.00039999998989515007, + -0.0012000000569969416, + 0.004800000227987766, + -0.017100000753998756, + 0.0012000000569969416, + -0.00279999990016222 + ], + "hand_abs_mean": 0.0343310683965683 + }, + { + "range": [ + 484, + 646 + ], + "translation_mean": [ + -0.016300000250339508, + 0.00570000009611249, + 0.0, + -0.016499999910593033, + 0.00019999999494757503, + 0.0017999999690800905 + ], + "rotation_mean": [ + -0.00039999998989515007, + -9.999999747378752e-05, + 0.00039999998989515007, + -0.000699999975040555, + 0.0007999999797903001, + -0.0003000000142492354 + ], + "hand_abs_mean": 0.010377815924584866 + }, + { + "range": [ + 646, + 808 + ], + "translation_mean": [ + 0.0010999999940395355, + -0.005400000140070915, + 0.0006000000284984708, + 0.02070000022649765, + -0.0026000000070780516, + 0.08630000054836273 + ], + "rotation_mean": [ + -0.0007999999797903001, + 0.00039999998989515007, + 0.00139999995008111, + 0.03310000151395798, + 0.016699999570846558, + -0.002099999925121665 + ], + "hand_abs_mean": 0.01195400021970272 + } + ], + "peak_action_change_frame": 127 + }, + { + "id": "demo_10", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 198, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 258, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 417, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 870, + 872, + 876, + 880, + 884, + 885 + ], + "action_blocks": [ + { + "range": [ + 0, + 177 + ], + "translation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "rotation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "hand_abs_mean": 0.0 + }, + { + "range": [ + 177, + 354 + ], + "translation_mean": [ + -0.03759999945759773, + 0.10809999704360962, + -0.04179999977350235, + -0.00800000037997961, + -0.043800000101327896, + -0.020800000056624413 + ], + "rotation_mean": [ + -0.01769999973475933, + -0.008299999870359898, + 0.053199999034404755, + -0.00279999990016222, + -0.005799999926239252, + -0.08810000121593475 + ], + "hand_abs_mean": 0.04304802045226097 + }, + { + "range": [ + 354, + 531 + ], + "translation_mean": [ + -0.005499999970197678, + 0.02810000069439411, + 0.03539999946951866, + 0.017400000244379044, + -0.041999999433755875, + 0.033900000154972076 + ], + "rotation_mean": [ + 0.000699999975040555, + 0.003100000089034438, + 0.03240000084042549, + 0.02459999918937683, + -0.002099999925121665, + -0.026799999177455902 + ], + "hand_abs_mean": 0.04548827186226845 + }, + { + "range": [ + 531, + 708 + ], + "translation_mean": [ + 0.011099999770522118, + 0.00039999998989515007, + 0.023800000548362732, + 0.010400000028312206, + 0.004100000020116568, + 0.026799999177455902 + ], + "rotation_mean": [ + 0.0003000000142492354, + 0.0013000000035390258, + 0.0015999999595806003, + 0.0008999999845400453, + -0.0012000000569969416, + 9.999999747378752e-05 + ], + "hand_abs_mean": 0.01669187657535076 + }, + { + "range": [ + 708, + 886 + ], + "translation_mean": [ + 0.0032999999821186066, + 0.0, + -0.00039999998989515007, + -0.01360000018030405, + 0.02160000056028366, + 0.08309999853372574 + ], + "rotation_mean": [ + 0.00039999998989515007, + 0.0003000000142492354, + 0.0006000000284984708, + 0.04520000144839287, + -0.0038999998942017555, + -0.0034000000450760126 + ], + "hand_abs_mean": 0.010636325925588608 + } + ], + "peak_action_change_frame": 258 + }, + { + "id": "demo_11", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 270, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 357, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 706, + 708, + 712, + 716, + 720, + 724, + 728, + 731 + ], + "action_blocks": [ + { + "range": [ + 0, + 146 + ], + "translation_mean": [ + 0.04500000178813934, + -0.09749999642372131, + -0.07509999722242355, + 0.029100000858306885, + 0.018799999728798866, + -0.058800000697374344 + ], + "rotation_mean": [ + 0.01640000008046627, + 0.01119999960064888, + 0.019099999219179153, + -0.02280000038444996, + 0.00139999995008111, + -0.02239999920129776 + ], + "hand_abs_mean": 0.03495793044567108 + }, + { + "range": [ + 146, + 292 + ], + "translation_mean": [ + 0.002199999988079071, + -0.05530000105500221, + 0.05429999902844429, + -0.043800000101327896, + 0.07010000199079514, + 0.07259999960660934 + ], + "rotation_mean": [ + 0.004399999976158142, + -0.005499999970197678, + 0.08250000327825546, + 0.024800000712275505, + 0.008799999952316284, + -0.11909999698400497 + ], + "hand_abs_mean": 0.042743660509586334 + }, + { + "range": [ + 292, + 439 + ], + "translation_mean": [ + 0.002899999963119626, + -0.022199999541044235, + 0.040800001472234726, + 9.999999747378752e-05, + 0.014999999664723873, + 0.03359999880194664 + ], + "rotation_mean": [ + -0.00039999998989515007, + -0.001500000013038516, + 0.005400000140070915, + -0.023900000378489494, + 0.0012000000569969416, + -0.0034000000450760126 + ], + "hand_abs_mean": 0.040214862674474716 + }, + { + "range": [ + 439, + 585 + ], + "translation_mean": [ + -0.018300000578165054, + 0.006099999882280827, + -9.999999747378752e-05, + -0.01769999973475933, + -0.005499999970197678, + 0.00139999995008111 + ], + "rotation_mean": [ + -0.00019999999494757503, + -0.0, + -9.999999747378752e-05, + -0.000699999975040555, + 0.0008999999845400453, + -9.999999747378752e-05 + ], + "hand_abs_mean": 0.01139315590262413 + }, + { + "range": [ + 585, + 732 + ], + "translation_mean": [ + 0.0003000000142492354, + 0.00039999998989515007, + -0.0003000000142492354, + 0.017799999564886093, + -0.020800000056624413, + 0.10249999910593033 + ], + "rotation_mean": [ + -0.0003000000142492354, + -0.0003000000142492354, + 0.00039999998989515007, + -0.05380000174045563, + 0.00430000014603138, + -0.006099999882280827 + ], + "hand_abs_mean": 0.010941563174128532 + } + ], + "peak_action_change_frame": 112 + }, + { + "id": "demo_12", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 66, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 126, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 285, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 815 + ], + "action_blocks": [ + { + "range": [ + 0, + 163 + ], + "translation_mean": [ + 0.04039999842643738, + -0.08879999816417694, + -0.06589999794960022, + 0.024800000712275505, + 0.018300000578165054, + -0.05119999870657921 + ], + "rotation_mean": [ + 0.015399999916553497, + 0.010700000450015068, + 0.019200000911951065, + -0.020600000396370888, + 0.0012000000569969416, + -0.022299999371170998 + ], + "hand_abs_mean": 0.03238530084490776 + }, + { + "range": [ + 163, + 326 + ], + "translation_mean": [ + 0.0035000001080334187, + -0.04560000076889992, + 0.04879999905824661, + -0.03689999878406525, + 0.06300000101327896, + 0.060600001364946365 + ], + "rotation_mean": [ + 0.0038999998942017555, + -0.005499999970197678, + 0.07000000029802322, + 0.014800000004470348, + 0.007699999958276749, + -0.1031000018119812 + ], + "hand_abs_mean": 0.04303625598549843 + }, + { + "range": [ + 326, + 489 + ], + "translation_mean": [ + 0.0026000000070780516, + -0.017899999395012856, + 0.03440000116825104, + 0.0006000000284984708, + 0.008899999782443047, + 0.0340999998152256 + ], + "rotation_mean": [ + -0.0005000000237487257, + -0.00139999995008111, + 0.004900000058114529, + -0.01590000092983246, + 0.0013000000035390258, + -0.00279999990016222 + ], + "hand_abs_mean": 0.033650677651166916 + }, + { + "range": [ + 489, + 652 + ], + "translation_mean": [ + -0.015699999406933784, + 0.004399999976158142, + -0.000699999975040555, + -0.017000000923871994, + 0.0034000000450760126, + 0.002300000051036477 + ], + "rotation_mean": [ + -0.0006000000284984708, + -0.000699999975040555, + 0.0008999999845400453, + -0.0006000000284984708, + 0.0010999999940395355, + -0.0008999999845400453 + ], + "hand_abs_mean": 0.010494782589375973 + }, + { + "range": [ + 652, + 816 + ], + "translation_mean": [ + 0.0012000000569969416, + -0.005499999970197678, + -0.0, + 0.01759999990463257, + -0.004900000058114529, + 0.0722000002861023 + ], + "rotation_mean": [ + -0.0007999999797903001, + 0.00019999999494757503, + 0.001500000013038516, + 0.03519999980926514, + 0.005400000140070915, + -0.007899999618530273 + ], + "hand_abs_mean": 0.011535338126122952 + } + ], + "peak_action_change_frame": 126 + }, + { + "id": "demo_13", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 78, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 138, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 294, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 381, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 761, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812 + ], + "action_blocks": [ + { + "range": [ + 0, + 162 + ], + "translation_mean": [ + 0.04149999842047691, + -0.08299999684095383, + -0.07270000129938126, + 0.031599998474121094, + 0.012000000104308128, + -0.05790000036358833 + ], + "rotation_mean": [ + 0.013100000098347664, + 0.006800000090152025, + 0.004000000189989805, + -0.01940000057220459, + 0.0013000000035390258, + -0.013899999670684338 + ], + "hand_abs_mean": 0.02734283171594143 + }, + { + "range": [ + 162, + 325 + ], + "translation_mean": [ + 0.001500000013038516, + -0.050700001418590546, + 0.04910000041127205, + -0.041200000792741776, + 0.0674000009894371, + 0.06719999760389328 + ], + "rotation_mean": [ + 0.010099999606609344, + -0.0032999999821186066, + 0.07959999889135361, + 0.014000000432133675, + 0.006599999964237213, + -0.10620000213384628 + ], + "hand_abs_mean": 0.04494302347302437 + }, + { + "range": [ + 325, + 487 + ], + "translation_mean": [ + 0.0027000000700354576, + -0.017899999395012856, + 0.0357000008225441, + 0.0006000000284984708, + 0.010499999858438969, + 0.031700000166893005 + ], + "rotation_mean": [ + -0.00039999998989515007, + -0.0012000000569969416, + 0.004600000102072954, + -0.019099999219179153, + 0.0010999999940395355, + -0.0027000000700354576 + ], + "hand_abs_mean": 0.03554895892739296 + }, + { + "range": [ + 487, + 650 + ], + "translation_mean": [ + -0.016499999910593033, + 0.006300000008195639, + 0.0003000000142492354, + -0.016300000250339508, + 0.0013000000035390258, + 0.0017000000225380063 + ], + "rotation_mean": [ + -0.00019999999494757503, + 9.999999747378752e-05, + 0.0, + -0.000699999975040555, + 0.000699999975040555, + -0.0003000000142492354 + ], + "hand_abs_mean": 0.010425606742501259 + }, + { + "range": [ + 650, + 813 + ], + "translation_mean": [ + 0.0003000000142492354, + -0.0026000000070780516, + -0.00019999999494757503, + 0.011500000022351742, + -0.008200000040233135, + 0.07150000333786011 + ], + "rotation_mean": [ + -9.999999747378752e-05, + -9.999999747378752e-05, + 0.0003000000142492354, + 0.025800000876188278, + 0.006300000008195639, + -0.012199999764561653 + ], + "hand_abs_mean": 0.010881857946515083 + } + ], + "peak_action_change_frame": 138 + }, + { + "id": "demo_14", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 67, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 127, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 285, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 735, + 736, + 740, + 744, + 748, + 752, + 756, + 759 + ], + "action_blocks": [ + { + "range": [ + 0, + 152 + ], + "translation_mean": [ + 0.04390000179409981, + -0.08889999985694885, + -0.07689999788999557, + 0.03290000185370445, + 0.013299999758601189, + -0.06120000034570694 + ], + "rotation_mean": [ + 0.0142000000923872, + 0.007699999958276749, + 0.006000000052154064, + -0.020899999886751175, + 0.00139999995008111, + -0.01549999974668026 + ], + "hand_abs_mean": 0.029635315760970116 + }, + { + "range": [ + 152, + 304 + ], + "translation_mean": [ + 0.002899999963119626, + -0.05909999832510948, + 0.05660000070929527, + -0.04500000178813934, + 0.07190000265836716, + 0.07450000196695328 + ], + "rotation_mean": [ + 0.006200000178068876, + -0.002400000113993883, + 0.08730000257492065, + 0.020800000056624413, + 0.007799999788403511, + -0.1168999969959259 + ], + "hand_abs_mean": 0.04368286952376366 + }, + { + "range": [ + 304, + 456 + ], + "translation_mean": [ + 0.002899999963119626, + -0.017500000074505806, + 0.039799999445676804, + 9.999999747378752e-05, + 0.014600000344216824, + 0.032499998807907104 + ], + "rotation_mean": [ + -0.00039999998989515007, + -0.0013000000035390258, + 0.005200000014156103, + -0.02419999986886978, + 0.0012000000569969416, + -0.0031999999191612005 + ], + "hand_abs_mean": 0.040282901376485825 + }, + { + "range": [ + 456, + 608 + ], + "translation_mean": [ + -0.017400000244379044, + 0.006000000052154064, + 0.0, + -0.016699999570846558, + -0.0052999998442828655, + 0.00139999995008111 + ], + "rotation_mean": [ + -0.00019999999494757503, + 9.999999747378752e-05, + -0.00019999999494757503, + -0.0006000000284984708, + 0.0007999999797903001, + -9.999999747378752e-05 + ], + "hand_abs_mean": 0.011151628568768501 + }, + { + "range": [ + 608, + 760 + ], + "translation_mean": [ + 9.999999747378752e-05, + 0.00039999998989515007, + -0.00019999999494757503, + 0.017999999225139618, + -0.020999999716877937, + 0.09700000286102295 + ], + "rotation_mean": [ + -0.0003000000142492354, + -0.00019999999494757503, + 0.00039999998989515007, + -0.05180000141263008, + 0.0044999998062849045, + -0.005200000014156103 + ], + "hand_abs_mean": 0.010805029422044754 + } + ], + "peak_action_change_frame": 127 + }, + { + "id": "demo_15", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 55, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 115, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 260, + 264, + 268, + 272, + 274, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 361, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 745 + ], + "action_blocks": [ + { + "range": [ + 0, + 149 + ], + "translation_mean": [ + 0.044199999421834946, + -0.09549999982118607, + -0.07360000163316727, + 0.0284000001847744, + 0.018400000408291817, + -0.0575999990105629 + ], + "rotation_mean": [ + 0.016200000420212746, + 0.01119999960064888, + 0.019500000402331352, + -0.022299999371170998, + 0.00139999995008111, + -0.022199999541044235 + ], + "hand_abs_mean": 0.034266963601112366 + }, + { + "range": [ + 149, + 298 + ], + "translation_mean": [ + 0.0032999999821186066, + -0.053599998354911804, + 0.053599998354911804, + -0.04170000180602074, + 0.06960000097751617, + 0.07000000029802322 + ], + "rotation_mean": [ + 0.005200000014156103, + -0.005100000184029341, + 0.07769999653100967, + 0.020899999886751175, + 0.008100000210106373, + -0.11420000344514847 + ], + "hand_abs_mean": 0.04285844415426254 + }, + { + "range": [ + 298, + 447 + ], + "translation_mean": [ + 0.003000000026077032, + -0.018200000748038292, + 0.04050000011920929, + 9.999999747378752e-05, + 0.014399999752640724, + 0.03370000049471855 + ], + "rotation_mean": [ + -0.0003000000142492354, + -0.000699999975040555, + 0.004399999976158142, + -0.02290000021457672, + 0.0010000000474974513, + -0.003100000089034438 + ], + "hand_abs_mean": 0.03905120864510536 + }, + { + "range": [ + 447, + 596 + ], + "translation_mean": [ + -0.018400000408291817, + 0.007499999832361937, + -9.999999747378752e-05, + -0.01759999990463257, + -0.0034000000450760126, + 0.0017999999690800905 + ], + "rotation_mean": [ + -0.0003000000142492354, + -0.0, + -0.0, + -0.0007999999797903001, + 0.0007999999797903001, + 0.0 + ], + "hand_abs_mean": 0.011115710251033306 + }, + { + "range": [ + 596, + 746 + ], + "translation_mean": [ + 0.0006000000284984708, + -0.001500000013038516, + -0.0005000000237487257, + 0.019099999219179153, + -0.024000000208616257, + 0.09889999777078629 + ], + "rotation_mean": [ + -0.0003000000142492354, + -0.00039999998989515007, + 0.0005000000237487257, + -0.052000001072883606, + 0.0044999998062849045, + -0.005200000014156103 + ], + "hand_abs_mean": 0.010984967462718487 + } + ], + "peak_action_change_frame": 115 + }, + { + "id": "demo_16", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 199, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 259, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 418, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 504, + 505, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 886, + 888, + 892, + 896, + 900, + 904, + 908, + 910 + ], + "action_blocks": [ + { + "range": [ + 0, + 182 + ], + "translation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "rotation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "hand_abs_mean": 0.0 + }, + { + "range": [ + 182, + 364 + ], + "translation_mean": [ + -0.03700000047683716, + 0.10920000076293945, + -0.038600001484155655, + -0.004900000058114529, + -0.04659999907016754, + -0.016300000250339508 + ], + "rotation_mean": [ + -0.017400000244379044, + -0.007600000128149986, + 0.058800000697374344, + -0.007600000128149986, + -0.006399999838322401, + -0.0940999984741211 + ], + "hand_abs_mean": 0.04347182810306549 + }, + { + "range": [ + 364, + 546 + ], + "translation_mean": [ + -0.004800000227987766, + 0.027899999171495438, + 0.03350000083446503, + 0.014499999582767487, + -0.03689999878406525, + 0.03610000014305115 + ], + "rotation_mean": [ + -0.0031999999191612005, + 0.00559999980032444, + 0.026100000366568565, + 0.027799999341368675, + -0.001500000013038516, + -0.018699999898672104 + ], + "hand_abs_mean": 0.045769304037094116 + }, + { + "range": [ + 546, + 728 + ], + "translation_mean": [ + 0.013199999928474426, + -0.0035000001080334187, + 0.016200000420212746, + 0.012299999594688416, + 0.004699999932199717, + 0.017899999395012856 + ], + "rotation_mean": [ + 0.00019999999494757503, + 0.00039999998989515007, + 0.0006000000284984708, + 0.0007999999797903001, + -0.0010000000474974513, + 0.0003000000142492354 + ], + "hand_abs_mean": 0.013957615941762924 + }, + { + "range": [ + 728, + 911 + ], + "translation_mean": [ + 0.00139999995008111, + 0.00019999999494757503, + -0.0005000000237487257, + -0.014800000004470348, + 0.01940000057220459, + 0.08150000125169754 + ], + "rotation_mean": [ + 0.00039999998989515007, + 0.0003000000142492354, + 0.000699999975040555, + 0.04320000112056732, + -0.004000000189989805, + -0.0032999999821186066 + ], + "hand_abs_mean": 0.010753948241472244 + } + ], + "peak_action_change_frame": 259 + }, + { + "id": "demo_17", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 198, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 258, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 503, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 882, + 884, + 888, + 892, + 895 + ], + "action_blocks": [ + { + "range": [ + 0, + 179 + ], + "translation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "rotation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "hand_abs_mean": 0.0 + }, + { + "range": [ + 179, + 358 + ], + "translation_mean": [ + -0.03709999844431877, + 0.10859999805688858, + -0.040300000458955765, + -0.006800000090152025, + -0.045099999755620956, + -0.018799999728798866 + ], + "rotation_mean": [ + -0.01759999990463257, + -0.007799999788403511, + 0.0544000007212162, + -0.002899999963119626, + -0.005799999926239252, + -0.0892999991774559 + ], + "hand_abs_mean": 0.04332894831895828 + }, + { + "range": [ + 358, + 537 + ], + "translation_mean": [ + -0.004900000058114529, + 0.028599999845027924, + 0.034699998795986176, + 0.014700000174343586, + -0.03999999910593033, + 0.0348999984562397 + ], + "rotation_mean": [ + -0.002099999925121665, + 0.004100000020116568, + 0.026799999177455902, + 0.027499999850988388, + -0.0015999999595806003, + -0.021199999377131462 + ], + "hand_abs_mean": 0.04568580538034439 + }, + { + "range": [ + 537, + 716 + ], + "translation_mean": [ + 0.012900000438094139, + -0.001500000013038516, + 0.019999999552965164, + 0.01209999993443489, + 0.004600000102072954, + 0.023399999365210533 + ], + "rotation_mean": [ + 0.0003000000142492354, + 0.0010999999940395355, + 0.0012000000569969416, + 0.0008999999845400453, + -0.0012000000569969416, + 0.0003000000142492354 + ], + "hand_abs_mean": 0.015416689217090607 + }, + { + "range": [ + 716, + 896 + ], + "translation_mean": [ + 0.0010999999940395355, + 0.00039999998989515007, + -0.0007999999797903001, + -0.01510000042617321, + 0.01549999974668026, + 0.0737999975681305 + ], + "rotation_mean": [ + 0.0005000000237487257, + 0.0005000000237487257, + 0.0007999999797903001, + 0.042500000447034836, + -0.007799999788403511, + -9.999999747378752e-05 + ], + "hand_abs_mean": 0.010703770443797112 + } + ], + "peak_action_change_frame": 258 + }, + { + "id": "demo_18", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 198, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 258, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 415, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 502, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 885, + 888, + 892, + 896, + 898 + ], + "action_blocks": [ + { + "range": [ + 0, + 179 + ], + "translation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "rotation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "hand_abs_mean": 0.0 + }, + { + "range": [ + 179, + 359 + ], + "translation_mean": [ + -0.037300001829862595, + 0.10859999805688858, + -0.039900001138448715, + -0.006500000134110451, + -0.04540000110864639, + -0.018200000748038292 + ], + "rotation_mean": [ + -0.01759999990463257, + -0.00800000037997961, + 0.05510000139474869, + -0.0032999999821186066, + -0.005799999926239252, + -0.08950000256299973 + ], + "hand_abs_mean": 0.04327952489256859 + }, + { + "range": [ + 359, + 539 + ], + "translation_mean": [ + -0.002899999963119626, + 0.0284000001847744, + 0.0348999984562397, + 0.0142000000923872, + -0.03889999911189079, + 0.03530000150203705 + ], + "rotation_mean": [ + -0.002300000051036477, + 0.0044999998062849045, + 0.025499999523162842, + 0.027400000020861626, + -0.001500000013038516, + -0.02019999921321869 + ], + "hand_abs_mean": 0.045834437012672424 + }, + { + "range": [ + 539, + 719 + ], + "translation_mean": [ + 0.011800000444054604, + -0.0024999999441206455, + 0.01860000006854534, + 0.010999999940395355, + 0.004600000102072954, + 0.021900000050663948 + ], + "rotation_mean": [ + 0.0003000000142492354, + 0.0007999999797903001, + 0.0008999999845400453, + 0.0007999999797903001, + -0.0010999999940395355, + 0.0003000000142492354 + ], + "hand_abs_mean": 0.014839649200439453 + }, + { + "range": [ + 719, + 899 + ], + "translation_mean": [ + 0.002400000113993883, + 0.00019999999494757503, + -0.0006000000284984708, + -0.014100000262260437, + 0.015799999237060547, + 0.07360000163316727 + ], + "rotation_mean": [ + 0.0005000000237487257, + 0.00039999998989515007, + 0.000699999975040555, + 0.042500000447034836, + -0.007699999958276749, + 0.00019999999494757503 + ], + "hand_abs_mean": 0.010633067227900028 + } + ], + "peak_action_change_frame": 258 + }, + { + "id": "demo_19", + "memory_frames": [ + 0, + 4, + 8, + 12, + 16, + 20, + 24, + 28, + 32, + 36, + 40, + 44, + 48, + 52, + 56, + 60, + 64, + 68, + 72, + 76, + 80, + 84, + 88, + 92, + 96, + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 132, + 136, + 140, + 144, + 148, + 152, + 156, + 160, + 164, + 168, + 172, + 176, + 180, + 184, + 188, + 192, + 196, + 198, + 200, + 204, + 208, + 212, + 216, + 220, + 224, + 228, + 232, + 236, + 240, + 244, + 248, + 252, + 256, + 258, + 260, + 264, + 268, + 272, + 276, + 280, + 284, + 288, + 292, + 296, + 300, + 304, + 308, + 312, + 316, + 320, + 324, + 328, + 332, + 336, + 340, + 344, + 348, + 352, + 356, + 360, + 364, + 368, + 372, + 376, + 380, + 384, + 388, + 392, + 396, + 400, + 404, + 408, + 412, + 416, + 420, + 424, + 428, + 432, + 436, + 440, + 444, + 448, + 452, + 456, + 460, + 464, + 468, + 472, + 476, + 480, + 484, + 488, + 492, + 496, + 500, + 503, + 504, + 508, + 512, + 516, + 520, + 524, + 528, + 532, + 536, + 540, + 544, + 548, + 552, + 556, + 560, + 564, + 568, + 572, + 576, + 580, + 584, + 588, + 592, + 596, + 600, + 604, + 608, + 612, + 616, + 620, + 624, + 628, + 632, + 636, + 640, + 644, + 648, + 652, + 656, + 660, + 664, + 668, + 672, + 676, + 680, + 684, + 688, + 692, + 696, + 700, + 704, + 708, + 712, + 716, + 720, + 724, + 728, + 732, + 736, + 740, + 744, + 748, + 752, + 756, + 760, + 764, + 768, + 772, + 776, + 780, + 784, + 788, + 792, + 796, + 800, + 804, + 808, + 812, + 816, + 820, + 824, + 828, + 832, + 836, + 840, + 844, + 848, + 852, + 856, + 860, + 864, + 868, + 872, + 876, + 880, + 884, + 888, + 892, + 894, + 896, + 900, + 904, + 908, + 912, + 916, + 918 + ], + "action_blocks": [ + { + "range": [ + 0, + 183 + ], + "translation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "rotation_mean": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "hand_abs_mean": 0.0 + }, + { + "range": [ + 183, + 367 + ], + "translation_mean": [ + -0.03669999912381172, + 0.10980000346899033, + -0.03790000081062317, + -0.0031999999191612005, + -0.0478999987244606, + -0.014399999752640724 + ], + "rotation_mean": [ + -0.017500000074505806, + -0.007499999832361937, + 0.06300000101327896, + -0.007799999788403511, + -0.006500000134110451, + -0.09549999982118607 + ], + "hand_abs_mean": 0.04382259398698807 + }, + { + "range": [ + 367, + 551 + ], + "translation_mean": [ + -0.0052999998442828655, + 0.02329999953508377, + 0.039900001138448715, + 0.012199999764561653, + -0.03449999913573265, + 0.03590000048279762 + ], + "rotation_mean": [ + 0.0005000000237487257, + 0.002899999963119626, + 0.021700000390410423, + 0.02879999950528145, + -0.0013000000035390258, + -0.014999999664723873 + ], + "hand_abs_mean": 0.04552266746759415 + }, + { + "range": [ + 551, + 735 + ], + "translation_mean": [ + 0.014000000432133675, + -0.002899999963119626, + 0.013700000010430813, + 0.014000000432133675, + 0.004000000189989805, + 0.016599999740719795 + ], + "rotation_mean": [ + 0.00039999998989515007, + 0.0005000000237487257, + 0.0010999999940395355, + 0.0008999999845400453, + -0.0010999999940395355, + -0.00019999999494757503 + ], + "hand_abs_mean": 0.013450361788272858 + }, + { + "range": [ + 735, + 919 + ], + "translation_mean": [ + -0.0005000000237487257, + 0.0012000000569969416, + -0.0013000000035390258, + -0.014700000174343586, + 0.01769999973475933, + 0.08169999718666077 + ], + "rotation_mean": [ + 0.0006000000284984708, + 0.0007999999797903001, + 0.0012000000569969416, + 0.043299999088048935, + -0.004000000189989805, + -0.004999999888241291 + ], + "hand_abs_mean": 0.011386444792151451 + } + ], + "peak_action_change_frame": 258 + } +] \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/config.json b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/config.json new file mode 100644 index 0000000000000000000000000000000000000000..53106ca2c378fb04074635b2966f08d4ec3da217 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/config.json @@ -0,0 +1,11 @@ +{ + "hand_gain": 0.2, + "retrieval": false, + "hold_grip": true, + "grip_gain": 1.0, + "squeeze": 0, + "visual_gain": 0, + "pause_steps": 0, + "simple_lift": false, + "constant_contact": false +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/contract.json b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/contract.json new file mode 100644 index 0000000000000000000000000000000000000000..7fd5caef3850966242a0d0f69658f2dfa1e4b3b5 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/contract.json @@ -0,0 +1,148 @@ +{ + "task_id": "DualArmShootBasketball-v1", + "native_horizon": 1000, + "robot_uids": [ + "mobile_panda_leaphand_left_urdf", + "mobile_panda_leaphand_urdf" + ], + "instruction": "The mobile robot needs to pick up a basketball from the ground with two hands and then shoot it.", + "cameras": [ + "front_camera", + "left_camera", + "robot_camera_0", + "robot_camera_1", + "top_camera" + ], + "proprio_paths": [ + "agent/mobile_panda_leaphand_left_urdf-0/qpos", + "agent/mobile_panda_leaphand_left_urdf-0/qvel", + "agent/mobile_panda_leaphand_urdf-1/qpos", + "agent/mobile_panda_leaphand_urdf-1/qvel" + ], + "control_mode": "pd_ee_delta_pose", + "action_parts": [ + { + "robot_key": "mobile_panda_leaphand_left_urdf-0", + "width": 25 + }, + { + "robot_key": "mobile_panda_leaphand_urdf-1", + "width": 25 + } + ], + "action_width": 50, + "control_hz": 20, + "action_semantics": "Per robot: six normalized arm components followed by normalized joint deltas for dex hands, or an absolute normalized gripper target for Panda. Mobile bases prepend three absolute joint positions.", + "units_and_coordinates": { + "panda_arm_translation": "normalized [-1,1] maps to [-0.1,0.1] meters in robot root frame", + "panda_arm_rotation": "three components clipped by vector norm to one, multiplied by rot_lower (-0.5 radians), Euler-to-quaternion rotation in root-aligned frame; this records the current controller implementation", + "dex_joint_delta": "normalized [-1,1] maps to [-0.1,0.1] radians", + "panda_gripper": "normalized [-1,1] maps to [-0.01,0.04] meters for the mimic control joint", + "mobile_base": "absolute base joint coordinates; native public action bounds still require validation" + }, + "action_low": [ + -5.0, + -5.0, + -12.5663706144, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -5.0, + -5.0, + -12.5663706144, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0 + ], + "action_high": [ + 5.0, + 5.0, + 12.5663706144, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 5.0, + 5.0, + 12.5663706144, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "initial_hold_recipe": "Copy only robot reset qpos[0:3] into absolute base controls. Zero arm/hand deltas. For Panda gripper use qpos[10], mapped as 2*(q+0.01)/0.05-1. Reject out-of-bounds holds." +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/controller.py b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/controller.py new file mode 100644 index 0000000000000000000000000000000000000000..7abf96f6dd53ced569ab363cd3d14a683c9383c9 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/controller.py @@ -0,0 +1,192 @@ +"""Compiled D20/E20 observation-conditioned controller; native outcome is runner-owned.""" +from pathlib import Path +import json +import cv2 +import numpy as np +from top_features import features as top_features +ROOT = Path(__file__).resolve().parent +CONTRACT = json.loads((ROOT / 'contract.json').read_text()) +KEYS = [x['robot_key'] for x in CONTRACT['action_parts']] +CAMERAS = ['front_camera', 'left_camera'] +LOW = np.asarray(CONTRACT['action_low'], dtype=np.float32) +HIGH = np.asarray(CONTRACT['action_high'], dtype=np.float32) +_bank = None +_phase = None + +def image_features(rgb): + """Fixed RGB thumbnail and spatial orange/green occupancies; no weights.""" + out=[] + for cam in CAMERAS: + a=np.asarray(rgb[cam]) + if a.ndim == 4 and a.shape[0] == 1: a=a[0] + if a.ndim != 3 or a.shape[2] != 3: raise ValueError('invalid RGB') + a=a.astype(np.uint8) + hsv=cv2.cvtColor(a,cv2.COLOR_RGB2HSV) + orange=((hsv[:,:,0]<25)&(hsv[:,:,1]>130)&(hsv[:,:,2]>90)).astype(np.float32) + green=((hsv[:,:,0]>35)&(hsv[:,:,0]<90)&(hsv[:,:,1]>140)&(hsv[:,:,2]>90)).astype(np.float32) + out.extend([cv2.resize(a,(16,12),interpolation=cv2.INTER_AREA).astype(np.float32).ravel()/255, + 3*cv2.resize(orange,(16,12),interpolation=cv2.INTER_AREA).ravel(), + 2*cv2.resize(green,(16,12),interpolation=cv2.INTER_AREA).ravel()]) + return np.concatenate(out) + +_full=None +_choice=None +_offset=None +_debug={} +_tracks=None +_lost=0 +_starts=None +_grip=None +_top=None +_top_error=np.zeros((2,2)) +_shoot_at=None +_contact=None +CONFIG=json.loads((ROOT/'config.json').read_text()) + +def ball_center(im): + im=np.asarray(im); im=im[0] if im.ndim==4 else im + hsv=cv2.cvtColor(im.astype(np.uint8),cv2.COLOR_RGB2HSV) + mask=((hsv[:,:,0]<25)&(hsv[:,:,1]>150)&(hsv[:,:,2]>100)).astype(np.uint8) + n,l,stats,cents=cv2.connectedComponentsWithStats(mask) + valid=[i for i in range(1,n) if stats[i,4]>4 and .2=1000:return None + if _bank is None: + with np.load(ROOT/'memory.npz') as z:_bank={k:z[k] for k in z.files} + with np.load(ROOT/'full.npz') as z:_full={k:z[k] for k in z.files} + with np.load(ROOT/'ball_tracks.npz') as z:_tracks={k:z[k] for k in z.files} + with np.load(ROOT/'top_tracks.npz') as z:_top={k:z[k] for k in z.files} + _starts=np.array([np.flatnonzero(np.max(abs(_full['action'][_full['demo']==d,3:9]),axis=1)>.03)[0] for d in range(20)]) + p=obs['proprioception'];q=np.concatenate([np.asarray(p['agent/'+k+'/qpos']).reshape(-1) for k in KEYS]) + if _choice is None: + vis=image_features(obs['rgb']);ix=np.flatnonzero(_bank['frame']==0) + ds=np.mean((_bank['visual'][ix]-vis)**2,axis=1) + centers=np.load(ROOT/'initial_centroids.npy');live=ball_center(obs['rgb']['front_camera']) + ds+=10*np.sum((centers[:,:2]-live)**2,axis=1) + _choice=int(_bank['demo'][ix[np.argmin(ds)]]) + side=np.array([0,2,3,5,8,10,16,17,18,19]);side=side if _choice in side else np.array([1,4,6,7,9,11,12,13,14,15]) + targets=np.array([_full['q'][np.flatnonzero((_full['demo']==d)&(_full['frame']==300))[0],:2] for d in side]) + X=np.c_[centers[side,:2],np.ones(len(side))] + coef=np.linalg.lstsq(X,targets,rcond=None)[0] + desired=np.r_[live,1]@coef + own=_full['q'][np.flatnonzero((_full['demo']==_choice)&(_full['frame']==300))[0],:2] + _offset=np.clip(desired-own,-.4,.4) + inds=np.flatnonzero(_full['demo']==_choice) + + raw=step-1 + pause_start=int(_starts[_choice]+300) + pause_len=int(CONFIG.get('pause_steps',0)) + pausing=pause_len>0 and pause_start<=raw=len(inds):return None + i=inds[t];a=_full['action'][i].copy();target=_full['q'][i] + phase=t/len(inds);_phase=phase + if CONFIG.get('retrieval',False) and t>=_starts[_choice]: + rel=t-_starts[_choice] + br=_bank['frame']-_starts[_bank['demo']] + same=(_starts[_bank['demo']]>150)==(_starts[_choice]>150) + pool=np.flatnonzero(same & (abs(br-rel)<24)) + if len(pool): + dims=np.r_[3:10,29:36];hd=np.r_[10:26,36:52] + delta=(_bank['q'][pool][:,dims]-q[dims])/np.maximum(_bank['qscale'][dims],.25) + cost=np.mean(delta**2,axis=1)+.1*np.mean((_bank['q'][pool][:,hd]-q[hd])**2,axis=1) + cost+=.08*((br[pool]-rel)/12)**2 + ni=pool[np.argmin(cost)] + for off in [0,25]:a[off+3:off+25]=_bank['action'][ni,off+3:off+25] + target=_bank['q'][ni] + + weight=min(1,t/40)*np.clip((.82-phase)/.2,0,1) + for j in range(2): + ai=j*25;qi=j*26 + a[ai:ai+2]+=_offset*weight + # Close the hand posture loop using observed joint coordinates. + a[ai+9:ai+25]+=np.clip((target[qi+10:qi+26]-q[qi+10:qi+26])*CONFIG['hand_gain'],-.15,.15) + rel=t-_starts[_choice] + if CONFIG.get('hold_grip',False) and rel>=180: + if _grip is None:_grip=q.copy() + blend=float(np.clip((440-rel)/40,0,1)) + for j in range(2): + ai=j*25;qi=j*26 + grip_action=np.clip((_grip[qi+10:qi+26]-q[qi+10:qi+26])*CONFIG.get('grip_gain',1.),-.15,.15) + a[ai+9:ai+25]=blend*grip_action+(1-blend)*a[ai+9:ai+25] + if CONFIG.get('squeeze',0) and 90150 else -1 + a[4]+=direction*CONFIG['squeeze']*ramp + a[29]-=direction*CONFIG['squeeze']*ramp + if CONFIG.get('visual_gain',0) and 80150 else -1 + ball,hand=top_features(obs['rgb']['top_camera'],direction) + ref=_top['hands'][i] + if hand is not None and np.isfinite(ref).all() and np.linalg.norm(ball-_top['ball'][i])<.12: + err=np.clip(ref-hand,-.03,.03) + _top_error=.8*_top_error+.2*err + for j in range(2): + a[j*25+3:j*25+5]+=np.clip(-direction*CONFIG['visual_gain']*_top_error[j],-.035,.035) + else:_top_error*=.8 + if pause_len and t>=pause_start and t<_starts[_choice]+420: + gi=inds[min(len(inds)-1,int(_starts[_choice]+380))] + closed=_full['q'][gi] + blend=float(np.clip((_starts[_choice]+420-t)/40,0,1)) + for j in range(2): + ai=j*25;qi=j*26 + if pausing:a[ai+3:ai+9]=0 + closure=np.clip((closed[qi+10:qi+26]-q[qi+10:qi+26])*2.,-.3,.3) + a[ai+9:ai+25]=blend*closure+(1-blend)*a[ai+9:ai+25] + if CONFIG.get('simple_lift',False) and rel>=180: + if _grip is None: + _contact=a.copy() + _grip=q.copy() + for j in range(2):_grip[j*26+10:j*26+26]+=.1*a[j*25+9:j*25+25] + if _shoot_at is None: + bidx=[0,1,2,26,27,28] + qs=_full['q'][inds][:,bidx] + arrival=np.flatnonzero(np.max(abs(qs-qs[-1]),axis=1)<.03) + _shoot_at=int(arrival[0]+10) if len(arrival) else len(inds)-100 + for j in range(2): + ai=j*25;qi=j*26 + if rel<400: + a[ai+3:ai+9]=0 + if rel<300:a[ai+5]=CONFIG.get('lift_speed',.04) + elif t<_shoot_at: + if CONFIG.get('carry_hold',False):a[ai+3:ai+9]=0 + else:a[ai+6:ai+9]=0 + if CONFIG.get('constant_contact',False) and t<_shoot_at: + a[ai+3:ai+25]=_contact[ai+3:ai+25] + a[ai+9:ai+25]+=np.clip((_grip[qi+10:qi+26]-q[qi+10:qi+26])*.2,-.1,.1) + continue + if t<_shoot_at: + direction=1 if _starts[_choice]>150 else -1 + a[ai+4]=direction*(1 if j==0 else -1)*CONFIG.get('pinch',.08) + a[ai+9:ai+25]=np.clip((_grip[qi+10:qi+26]-q[qi+10:qi+26])*CONFIG.get('retention_gain',10.),-.5,.5) + else: + a[ai+3:ai+9]=0 + if t<_shoot_at+8:a[ai+3]=(-.4 if _starts[_choice]>150 else .4);a[ai+5]=.6 + initial=_full['q'][inds[0],qi+10:qi+26] + a[ai+9:ai+25]=np.clip((initial-q[qi+10:qi+26])*5.,-1,1) + bad=False + if .32150)&(h[:,:,2]>100)).astype(np.uint8) + n,l,stats,cent=cv2.connectedComponentsWithStats(mask) + candidates=[k for k in range(1,n) if stats[k,4]>im.shape[0]*im.shape[1]*.0007 and .55.085 or abs(delta[0])>.14) + _lost=_lost+1 if bad else 0 + _debug={'demo':_choice,'frame':t,'offset':_offset.tolist(),'lost_count':_lost} + if _lost>=12:return None + return np.clip(a,LOW,HIGH).astype(np.float32) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/demo_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/demo_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..6928db08b6813886aa96c82a8643ab2a954d2358 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/demo_manifest.json @@ -0,0 +1,2168 @@ +{ + "task_id": "DualArmShootBasketball-v1", + "status": "released", + "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data", + "lineage_status": "pinned_comparator", + "episodes": [ + { + "demo_id": "demo_00", + "file": "demo_00.h5", + "length": 894, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 894, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 894, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 895, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 895, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 895, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 895, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 895, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 895, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 895, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 895, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 895, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "9e8bcd04929eaef1502caee66647b6bb891a95bc90b0d97869379dfb059b655b", + "source_sha256": "568e74f5077a1e5ae323082edea17319198a1e85944ba2eaaac47069d01a8611", + "view_sha256": "eb1aa6c335c548b00fff6038c4e7b9c965beb4f9fb987daa289a81f3af6ce1ba" + }, + { + "demo_id": "demo_01", + "file": "demo_01.h5", + "length": 733, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 733, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 733, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 734, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 734, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 734, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 734, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 734, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 734, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 734, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 734, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 734, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "c12a8a3a344089eac2c3c7341653d3c201f966dcf07172b14040c9fd090a28b5", + "source_sha256": "d84a1250dd71859f76448eec77a68394bfeea3e2ab9c1f697ab8eb01d29f9f5f", + "view_sha256": "0ae0e92912697d0e6377ff5236d0bf8d08e26a88812496950f0baba98017ed69" + }, + { + "demo_id": "demo_02", + "file": "demo_02.h5", + "length": 877, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 877, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 877, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 878, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 878, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 878, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 878, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 878, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 878, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 878, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 878, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 878, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "33eb254fd6f02ae912dc0189c24a22fdd17203839d0dbc359965d977917f54b9", + "source_sha256": "7de292445e555d476035ffa97ec5ebd30db3888f13d11030578b800454c5b768", + "view_sha256": "90148c3b9d201cad421a0d3af8a0879b199b32376496dde2d1cc7017e50ffb8f" + }, + { + "demo_id": "demo_03", + "file": "demo_03.h5", + "length": 979, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 979, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 979, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 980, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 980, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 980, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 980, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 980, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 980, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 980, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 980, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 980, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "59eaec42faa4ee69ee4c29c77ba10b5c9eb3fc930186e67e177c0a8c30911429", + "source_sha256": "2013006cbe5811977087dec6e54bef907c94f7da98efb3c700d910295ca469d2", + "view_sha256": "6229518a4297e943d3b823101423d96222db9326a88a02334b4caf72f32dd576" + }, + { + "demo_id": "demo_04", + "file": "demo_04.h5", + "length": 749, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 749, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 749, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 750, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 750, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 750, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 750, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 750, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 750, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 750, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 750, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 750, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "19badaee203487e966a29de7771719510a39fe7b7520e2a55d75fc7aa30e991f", + "source_sha256": "85db87fc1093a3e0a1c8c33ee1a2e927ac945f67e8e24c36a700f6e368ef42cf", + "view_sha256": "ca3f01c9a70fb47c16595d4d40387677f2772a55d1c3d46242eb68e8ec8b480f" + }, + { + "demo_id": "demo_05", + "file": "demo_05.h5", + "length": 953, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 953, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 953, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 954, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 954, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 954, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 954, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 954, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 954, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 954, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 954, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 954, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "a0f94730bb1efccb0adeecaddb026471b44e1e359ebde66d505afb5a3d1f3f45", + "source_sha256": "18f530958191ba09432097060906cb494127324749ab7afc7e8672619d7395be", + "view_sha256": "9bfcf0408a6d60b1f307dbe4ab2ff07a357edc6b324c02ecc86569e81ba709ed" + }, + { + "demo_id": "demo_06", + "file": "demo_06.h5", + "length": 800, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 800, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 800, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 801, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 801, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 801, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 801, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 801, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 801, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 801, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 801, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 801, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "3fed8cdbc4be81690a4fcd78b21b121c36705aeb651bfea4dd27910f34bc424a", + "source_sha256": "545a71cff73579b5b5db956444306ba9d82bb42052a90af7dd08404b02cfae80", + "view_sha256": "180261ec629bca60baa8f1b9474f03afd40133b875c9aa9ae19e10629e8c3f6b" + }, + { + "demo_id": "demo_07", + "file": "demo_07.h5", + "length": 776, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 776, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 776, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 777, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 777, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 777, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 777, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 777, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 777, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 777, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 777, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 777, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "fc68365ca9bd481e1635b327028aefafe97f65a250cd661bfa19d3107d67a3ab", + "source_sha256": "1d3029e0f7d480be4fc8dbaba14f49f941fb0b7f9557a15446c79bfbd3a55b39", + "view_sha256": "8cbf8faf85315c8b266a42dcd644e524277ca306fce9a9de3964dd451ac2aa85" + }, + { + "demo_id": "demo_08", + "file": "demo_08.h5", + "length": 938, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 938, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 938, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 939, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 939, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 939, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 939, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 939, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 939, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 939, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 939, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 939, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "f4ab357b645b995ce9fe93f4d14ba5e7d68eeb824f0f96a84a2487e98e792632", + "source_sha256": "84ae56b061bb55cfd16f83da2eb2cd27bbbab4ea7065857b910f76af4a355cc7", + "view_sha256": "e405bd99a6d472fc05fd5bee7fd9f79f03bf41abdc26c0bc51b2a0b85e5b849e" + }, + { + "demo_id": "demo_09", + "file": "demo_09.h5", + "length": 808, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 808, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 808, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 809, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 809, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 809, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 809, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 809, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 809, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 809, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 809, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 809, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "a8b6026b097267f409f5f781887b7c8c86e5696f1eff43bda20e40590ace829b", + "source_sha256": "f178edb2af1eced4349039a91e18c30f03ed5e312a905832001110213e24199d", + "view_sha256": "79d57cf2c2c85e3443e9c975a1b9e7199ac931e5c819cf23dcabd6ff384031b0" + }, + { + "demo_id": "demo_10", + "file": "demo_10.h5", + "length": 886, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 886, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 886, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 887, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 887, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 887, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 887, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 887, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 887, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 887, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 887, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 887, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "f781108bdb3b854896685e3ffc911aeb6ee55893479324a95cb10e23360c6cb2", + "source_sha256": "e528b1eeb1de79ac671f9fc17537a24993572c1c420e51ee5b17178653e02d86", + "view_sha256": "f313292b7cf12c96183842e00b4b9a8d94d70174cb0b8bbb59b916f4e72c96fd" + }, + { + "demo_id": "demo_11", + "file": "demo_11.h5", + "length": 732, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 732, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 732, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 733, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 733, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 733, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 733, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 733, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 733, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 733, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 733, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 733, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "6cfab3a718704e45ce5494ffb277286e219d7e0360aeb4cd07fb28282a37656c", + "source_sha256": "0c7d9b68ef605da6a58043eae98822b1d36626bcf0d1200a1fb711cf49ce7ad8", + "view_sha256": "7bd7ab6f8b750a6fc098357738489403b7dc3593c44b577814d2b39e64efd14e" + }, + { + "demo_id": "demo_12", + "file": "demo_12.h5", + "length": 816, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 816, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 816, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 817, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 817, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 817, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 817, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 817, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 817, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 817, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 817, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 817, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "f9c5f1e3a15b26613f550ba2ab794e7c7a9813ddfe259c6b5ee0b7bd08cdd0c7", + "source_sha256": "43c9775177201fa2767a3f176f5e4c2690654d1d80034c8e05c02394f1fbdfcf", + "view_sha256": "13ee72fc25a19ce595ca80de311f19d6f3bdc02834e1ffb17a23834348956835" + }, + { + "demo_id": "demo_13", + "file": "demo_13.h5", + "length": 813, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 813, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 813, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 814, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 814, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 814, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 814, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 814, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 814, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 814, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 814, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 814, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "dc34a7973b961b1c515fe06e69a3955ac428f47cff92449e09376369060fe608", + "source_sha256": "05b93a11ea8ea854f38810187253035d058ec878f9bff76de37b25530ee7e5eb", + "view_sha256": "fa2d9d3ab374499c43ed5aa75c01df937def7951ee2677685ca192ee4b245dfa" + }, + { + "demo_id": "demo_14", + "file": "demo_14.h5", + "length": 760, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 760, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 760, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 761, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 761, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 761, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 761, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 761, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 761, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 761, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 761, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 761, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "f9b8ee65f4b6d732de60750dcd452c107ab92af28b25391132ab83c34c1c2604", + "source_sha256": "17abeef4133f95578d0d7fc27282fd0906a3816193d100f8fc5f8efd81235ed5", + "view_sha256": "6fd789a6bedbcc157a9174041f36dbb50ce1bd57a9d107d8aa49a0708d18b099" + }, + { + "demo_id": "demo_15", + "file": "demo_15.h5", + "length": 746, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 746, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 746, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 747, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 747, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 747, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 747, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 747, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 747, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 747, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 747, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 747, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "d5429c1f1b200adf85df424b5e8c3178ec41a052b002707f20218d31d58f0437", + "source_sha256": "8247d7b0fc127160d3a488ef223faf6f2ad7b2e6874dc4349774901470f1f0eb", + "view_sha256": "1565a8bb362bfd6394b1d7c2a9c0b61557ebbcd00737be0c013d4744bcb16061" + }, + { + "demo_id": "demo_16", + "file": "demo_16.h5", + "length": 911, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 911, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 911, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 912, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 912, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 912, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 912, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 912, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 912, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 912, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 912, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 912, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "416a31817cbba6ced5708f3687c647e2d300f066a49388bfbac00e42fd4f2ee3", + "source_sha256": "dde7f901f4e9d723485f27ca0841f0fdac24f3e721c2a6511ac616fb57fac29a", + "view_sha256": "48b1a354ac67ddc4d6841282fe168a724fac98349cea1cd62bc85b3cee71e9e2" + }, + { + "demo_id": "demo_17", + "file": "demo_17.h5", + "length": 896, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 896, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 896, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 897, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 897, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 897, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 897, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 897, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 897, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 897, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 897, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 897, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "f952dd8f0ba2db48980cfb5329e8389310ff5f38af94f9fcabb0f570bc105036", + "source_sha256": "79281fdfb97496c16ec96b445188c72cb7c44bac5b9fd652f8d0365a88cbd00a", + "view_sha256": "37a4eb209adf550e00b9a16e6c7bcbbe2b429b436e9f358e564ceffcb6f79e9a" + }, + { + "demo_id": "demo_18", + "file": "demo_18.h5", + "length": 899, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 899, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 899, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 900, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 900, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 900, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 900, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 900, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 900, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 900, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 900, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 900, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "238aacbedb58149b5808b5c06949cf922be9c0cb3d9e6c0507a601b3d0f90feb", + "source_sha256": "b4b8b5fcd40961efb0b89d2a8409a039bfbd32c8c63cbfc08ec7a476c0e385d1", + "view_sha256": "3b77637c7206f17edb358c81a0feb1212eb33292013e31f374474b14c68690bd" + }, + { + "demo_id": "demo_19", + "file": "demo_19.h5", + "length": 919, + "fields": [ + { + "path": "actions/mobile_panda_leaphand_left_urdf-0", + "shape": [ + 919, + 25 + ], + "dtype": "float32" + }, + { + "path": "actions/mobile_panda_leaphand_urdf-1", + "shape": [ + 919, + 25 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qpos", + "shape": [ + 920, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_left_urdf-0/qvel", + "shape": [ + 920, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qpos", + "shape": [ + 920, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/mobile_panda_leaphand_urdf-1/qvel", + "shape": [ + 920, + 26 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 920, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 920, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 920, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 920, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 920, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "b92820883948fdfe0a5f191abb15ac30b71669c6cc90ccac60c836370a77e971", + "source_sha256": "4e1dd59902cad1f892829acdb633ba233b2a2ba9e480147320e07e576a04d82c", + "view_sha256": "aa2bb35e2e3800fcf5c072561f5d002c2e01bf57585ac4b923df40be4195d828" + } + ] +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/environment.lock b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/environment.lock new file mode 100644 index 0000000000000000000000000000000000000000..b2237f47d93aa4c3efad07728ae6acd137912d6d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/environment.lock @@ -0,0 +1,249 @@ +absl-py==2.4.0 +accelerate==1.13.0 +addict==2.4.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.13.5 +aiosignal==1.4.0 +annotated-types==0.7.0 +anyio==4.13.0 +anytree==2.13.0 +asttokens==3.0.1 +async-timeout==5.0.1 +attrs==26.1.0 +av==15.1.0 +blinker==1.9.0 +casadi==3.7.2 +certifi==2026.4.22 +cffi==2.0.0 +charset-normalizer==3.4.7 +click==8.3.3 +cloudpickle==3.1.2 +cmake==4.1.3 +coacd==1.0.11 +colorama==0.4.6 +colorlog==6.10.1 +comm==0.2.3 +ConfigArgParse==1.7.5 +contourpy==1.3.2 +cuda-bindings==12.9.4 +cuda-pathfinder==1.5.4 +cycler==0.12.1 +dacite==1.9.2 +dash==4.1.0 +dataclasses-json==0.6.7 +datasets==4.8.5 +decorator==5.2.1 +deepdiff==8.6.2 +Deprecated==1.3.1 +diffusers==0.35.2 +dill==0.4.1 +docstring_parser==0.18.0 +draccus==0.10.0 +einops==0.8.2 +embreex==4.4.0 +etils==1.13.0 +evdev==1.9.3 +exceptiongroup==1.3.1 +executing==2.2.1 +Farama-Notifications==0.0.6 +fast_simplification==0.1.13 +fastjsonschema==2.21.2 +filelock==3.29.0 +Flask==3.1.3 +fonttools==4.63.0 +freetype-py==2.5.1 +frozenlist==1.8.0 +fsspec==2026.2.0 +genesis-world @ file:///data/gck/genesis-world +git-filter-repo==2.47.0 +gitdb==4.0.12 +GitPython==3.1.50 +glfw==2.10.0 +gs-madrona==0.0.5 +gstaichi==3.3.0 +gym==0.26.2 +gym-notices==0.1.0 +gymnasium==1.3.0 +h11==0.16.0 +h5py==3.16.0 +hf-xet==1.5.0 +hf_transfer==0.1.9 +httpcore==1.0.9 +httpx==0.28.1 +huggingface-hub==0.35.3 +idna==3.15 +ImageIO==2.37.3 +imageio-ffmpeg==0.6.0 +importlib_metadata==9.0.0 +importlib_resources==7.1.0 +inquirerpy==0.3.4 +ipython==8.39.0 +ipywidgets==8.1.8 +itsdangerous==2.2.0 +jedi==0.20.0 +Jinja2==3.1.6 +joblib==1.5.3 +jsonlines==4.0.0 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +jupyter_core==5.9.1 +jupyterlab_widgets==3.0.16 +kiwisolver==1.5.0 +lazy-loader==0.5 +lerobot==0.4.4 +libigl==2.6.2 +llvmlite==0.47.0 +loguru==0.7.3 +lxml==6.1.0 +manifold3d==3.4.1 +-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder +mapbox_earcut==2.0.0 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +marshmallow==3.26.2 +matplotlib==3.10.9 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mergedeep==1.3.4 +moviepy==2.2.1 +mpmath==1.3.0 +msgspec==0.21.1 +mujoco==3.8.1 +multidict==6.7.1 +multiprocess==0.70.19 +mypy_extensions==1.1.0 +nbformat==5.10.4 +nest-asyncio==1.6.0 +networkx==3.4.2 +ninja==1.13.0 +nlopt==2.10.0 +numba==0.65.1 +numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d +nvidia-cublas-cu12==12.8.4.1 +nvidia-cuda-cupti-cu12==12.8.90 +nvidia-cuda-nvrtc-cu12==12.8.93 +nvidia-cuda-runtime-cu12==12.8.90 +nvidia-cudnn-cu12==9.10.2.21 +nvidia-cufft-cu12==11.3.3.83 +nvidia-cufile-cu12==1.13.1.3 +nvidia-curand-cu12==10.3.9.90 +nvidia-cusolver-cu12==11.7.3.90 +nvidia-cusparse-cu12==12.5.8.93 +nvidia-cusparselt-cu12==0.7.1 +nvidia-nccl-cu12==2.27.5 +nvidia-nvjitlink-cu12==12.8.93 +nvidia-nvshmem-cu12==3.4.5 +nvidia-nvtx-cu12==12.8.90 +open3d==0.19.0 +opencv-python==4.13.0.92 +opencv-python-headless==4.12.0.88 +OpenEXR==3.4.11 +orderly-set==5.5.0 +packaging==25.0 +pandas==2.3.3 +parso==0.8.7 +pexpect==4.9.0 +pfzy==0.3.4 +pillow==11.3.0 +pin==4.0.0 +pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work +platformdirs==4.9.6 +plotly==5.24.1 +polyscope==2.6.1 +proglog==0.1.12 +prompt_toolkit==3.0.52 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +pure_eval==0.2.3 +py-cpuinfo==9.0.0 +py-spy==0.4.2 +pyarrow==24.0.0 +pycollada==0.9.3 +pycparser==3.0 +pydantic==2.13.4 +pydantic_core==2.46.4 +PyGEL3D==0.6.1 +pyglet==2.1.14 +pygltflib==1.16.0 +Pygments==2.20.0 +pymeshlab==2025.7.post1 +pynput==1.8.2 +PyOpenGL==3.1.10 +pyparsing==3.3.2 +pyperclip==1.11.0 +PyQt6==6.11.0 +PyQt6-Qt6==6.11.0 +PyQt6_sip==13.11.1 +pyquaternion==0.9.9 +pyserial==3.5 +pysplashsurf==0.12.0.2 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +python-xlib==0.33 +pytransform3d==3.15.0 +pytz==2026.2 +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 +PyYAML==6.0.3 +pyyaml-include==1.4.1 +referencing==0.37.0 +regex==2026.5.9 +requests==2.34.2 +rerun-sdk==0.26.2 +retrying==1.4.2 +rich==14.3.4 +rpds-py==0.30.0 +rtree==1.4.1 +safetensors==0.7.0 +sapien==3.0.3 +scikit-image==0.25.2 +scikit-learn==1.7.2 +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 +sentry-sdk==2.60.0 +setuptools==80.10.2 +shapely==2.1.2 +six==1.17.0 +smmap==5.0.3 +stack-data==0.6.3 +svg.path==7.0 +sympy==1.14.0 +tenacity==9.1.4 +termcolor==3.3.0 +tetgen==0.8.4 +threadpoolctl==3.6.0 +tifffile==2025.5.10 +timm==1.0.27 +toml==0.10.2 +torch==2.10.0 +torchaudio==2.11.0 +torchcodec==0.10.0 +torchvision==0.25.0 +tqdm==4.67.3 +traitlets==5.15.0 +transforms3d==0.4.2 +trimesh==4.12.2 +triton==3.6.0 +typeguard==4.5.2 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +tyro==1.0.13 +tzdata==2026.2 +urllib3==2.7.0 +vhacdx==0.0.10 +viser==1.0.27 +vtk==9.6.1 +wandb==0.24.2 +wcwidth==0.7.0 +websockets==16.0 +Werkzeug==3.1.8 +wheel==0.46.3 +widgetsnbextension==4.0.15 +wrapt==2.1.2 +xxhash==3.7.0 +yarl==1.23.0 +yourdfpy==0.0.60 +z3-solver==4.16.0.0 +zipp==3.23.1 +zstandard==0.25.0 diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/findings.md b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/findings.md new file mode 100644 index 0000000000000000000000000000000000000000..8f4c2f0188041a297f026e3d9b2e5f6d9ac25dde --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/findings.md @@ -0,0 +1,146 @@ +# E20 exploration journal + +API budget began at 0/20. Contract: DualArmShootBasketball-v1, 1000 native steps including charged hold; 50 actions, absolute base first three values per 25-wide arm. All work uses own authorized D20 data and trusted API only. Native step returns include boolean success. + +Episode 1: original nearest-example candidate, four repeated controls per feedback update. Initial hold observed at step 1. Harness originally assumed execute_actions returned a single observation; actual return contains executed and steps. Four legal actions completed before KeyError. Resumed at step 5 via latest_observation, no reset/replay. Steps 1 and 5 retained. Base approach visible at step 101; phase ~0.067. At step 201 phase ~0.153. No success so far. Full actions after step 5 and native return flags saved incrementally. Images/proprio saved every 100 steps. + +Preregistered visible fallback: only unambiguous two-handed pickup followed by visible release/shot satisfies the public instruction; ambiguous evidence false. Native success flags, when available, take precedence for official outcome. No imagined basket or success from floor proximity. + +Episode 2: independent rehearsal, valid runnable, native success false, exact hash b2d6a278fdcb813da5225aace3742aecf0206adf7c13c4e82539258b02771432. Final legal image retrieved only after rehearsal completed; bases at left hoop, right arm substantially divergent. Outcome already scored from native feedback. score_rehearsal rejected an evidence object (requires string), then rejected a string submission because native scores cannot be overwritten. No score changed. Further native outcomes need no visible override. + +Program diagnosis: continuous candidate clamped timeline to last demo index and kept repeating the final action through horizon. Some demos' final right-arm rotation remains -0.3, so this can cause large post-trajectory drift. Next revision must terminate at demonstration length. Episode 3 tests bounded arm corrections from local linear fits to legal D20 joint increments/action labels. No neural weights fitted. + +Episode 3: interactive bounded arm-feedback diagnostic, ended at step 360 with native false. Initial-image match demo_04; localization offset [0.1041,-0.0832] m. At step 53 both arm joint errors below ~0.001 rad. Step 153 images show ball enclosed and above support. At step 201 right-arm joint differences grew (including ~-1.18 rad wrist), and by step 360 ball was no longer visibly held. This correction is not established stable. Evidence retained in ep03. Episode 4 removes empirical arm/hand corrections to isolate nominal motion and adds end-of-demonstration termination. + +Episode 4: continuous reference commands, no learned arm correction or hand correction. Initial match demo_00; localization offset [-0.0809,0.1186] m. At step 253 both arm joints closely followed the demo (~0.002 rad). Ball visibly retained at steps 301, 401 and 501; at 553 left-camera image shows ball below the hands. Ended interactively at native step 653, success false. The final in-flight four actions (649->653) were not retried; reconstructed deterministically from the saved exact trajectory/offset and marked as reconstructed. Later harness persists pending requests before sending. + +Episode 5: hand correction gain 3, cap .2, no arm correction. Initial match demo_17, offset [0.0107,-0.0029] m. Despite close initial match, ball visibly escaped toward left court by step 353. Ended via STOP file after step 453, success false. Strong hand posture feedback worsened retention relative to episode 4; do not retain gain 3 as best candidate. + +Episode 6 starts gain .2 with arm correction disabled. Added conservative visual early-failure detector: during pickup/transport only, a large roughly round orange component >0.085 image-height below or >0.14 image-width away from reference for 12 controller calls stops the program. Missing/occluded ball gives no failure vote. No visual success detector. Per-frame reference tracks derived solely from authorized D20 RGB. Review sensor mismatch and false-abort risk through subsequent episodes. + +Episode 6: low hand gain .2, no arm correction; demo_16 selected, base offset [0.1815,-0.0885] m. Ball held through step 501, then dropped. Visual-loss stop triggered at step 536; left-camera final image confirms ball below/away from hands. Native success false. Detector's first observed stop is consistent with actual loss, not occlusion. + +Deeper D20 timing analysis: arm motion begins around 198-199 for left-target demos, 52-81 for right-target demos; largest grasp action change is exactly ~60 frames later. During manipulation, left-hand qpos partly opens at ~arm-start+250..300 and recloses by +340..400 (e.g. demo_16 frames 450/500/540/600). This is a grip-transfer phase, not simply a continuous closed grasp. The observed failures at ~520-550 correspond to that transition. Direct stronger hand feedback did not solve it. + +Episode 7 tests state-conditioned retrieval constrained to same target side and ±24 frames relative to arm-start timing. Base route remains localized. Both arm/hand action labels come from one matched state; time penalty discourages stalling. No neural fitting. Remaining concern: cross-demo switching may still destabilize contact or phase alignment later in transport. + +Episode 7: right-target scene, initial match demo_12, offset [-0.0246,0.0704] m. Stage-constrained nearest-state manipulation still ejected the ball before handoff; final step 274 image shows ball on court away from hands, native false. Visual stop is consistent with actual loss. Retrieval is disabled for episode 8. + +Episode 8 tests a grip-retention intervention: at arm-start+180, capture actual observed finger qpos, servo that posture with gain 1 and cap .15 through arm-start+400, then fade back to reference finger commands over 40 steps. Nominal arm actions retained. This tests whether avoiding the mid-motion opening can retain the ball through the observed drop window; it does not presume a recoverable dropped-ball state. + +Episode 8: nominal arms, low hand correction, actual-grip hold. Right-target demo_15, offset [-0.0212,-0.0335] m. Ball retained through step 353, dropped during subsequent lift. Program stopped at step 408, native false; final left camera shows ball below hands. The grip override was still active, so its fade-out did not cause the drop. + +Episode 9: added normalized inward y command .02 between arm-start+90 and +440, with target-side-dependent signs inferred from the demos' closure commands. Left-target demo_17, offset clipped at [0.2,-0.1456] m. Dropped at step 488; native false and final image confirms loss. Constant extra squeeze did not improve retention and is disabled. + +New legal visual analysis: inspected initial robot_camera_0/1 and top_camera from episode 1; robot views face away from the initial ball, top view resolves hand spacing. Automated extraction of top-camera ball and dark low-saturation hand-region centroids from all 20 authorized demos (every fourth frame, repeated to full indexing). No human claim of inspecting all these images. Relative-to-ball hand positions cancel most scene translation. In episode 4, pre-drop top-view hand x offsets lag reference by ~0.012 and ~0.016 normalized image width at step 501. Episode 8 shows opposite-sign lag (~0.012 and ~0.007) for the opposite target direction at step 353. This supports a bounded visual correction toward the demonstrated hand-ball spacing, rather than indiscriminate inward squeeze. + +Episode 10 tests top-camera relative-position feedback (gain 2, cap .035 normalized arm translation, EMA .8/.2), only during manipulation and when both live/reference features are present and near. Grasp-lock and constant squeeze disabled. Scene-localization offset cap expanded from .2 to .4 m; native action bounds still applied. Global/root-frame signs derived from the observed target-side closure commands and known base turn, not hidden kinematics. + +Episode 10: top-camera planar hand/ball feedback, gain 2, no grip lock/squeeze. Right-target demo_11, offset [0.2719,-0.0745] m (the larger offset cap is used). The x-spacing residual decreased between steps 153 and 201, but the ball dropped during opening at step 308. Native false; final front image confirms the ball below the hands. Improving centroid alignment was insufficient to maintain the grasp; rotation/contact geometry and feature confounding remain unresolved. + +Episode 11 tests timing recovery before loss: pause at arm-start+300 for 60 native steps; zero arm deltas during the pause, servo fingers toward the demonstrated posture at arm-start+380 with gain 2 and cap .3. Base route is also paused through mapped reference time. Total native horizon stays 1000. Grip-retention override from episode 8 is enabled before the pause; native shot timing is shifted by the pause. No episode is reset or extended. + +Episode 11: demo_18, offset [0.1027,-0.1254] m. Ball lost before the proposed pause; stopped at 468, native false. Thus the pause intervention was NOT actually exercised and has no performance evidence. + +Episode 12: simpler manipulation path. At arm-start+180 capture observed hand posture, lift both arms vertically with normalized z=.04 for 120 steps, then hold before following the base route. Do not execute the demonstrated handoff. Intended release after demonstrated base arrival uses bounded forward/up arm pulse and finger opening; it was not reached. Ball rose visibly at step 301 but was below hands by 353; stopped interactively after confirmed loss. Native false. The old reference-height loss detector is disabled in this mode because the intended height profile differs; stopping relied on actual saved images. + +Episode 13 tests hand-control normalization: capture the current commanded finger target as q + 0.1*action, then use a bounded 10*(target-current q) correction (cap .5). This follows the contract's .1 radian normalized delta scale; its exact contact behavior requires the real API test. Unlike prior four-step planning, this attempt observes every native step to avoid repeating a stale strong correction. Arm rotations/hand transitions remain disabled during the simple lift; arm deltas will hold during transport. The same target-side route and existing bounded release are used if retention succeeds. + +Episode 13: per-step feedback, captured commanded hand target q+0.1*a, normalized target correction gain 10, cap .5. Ball still dropped during simple vertical lift by step 300; interactive stop after confirmed loss. This did not establish that finger posture alone can retain the ball. Episode 14 adds the demonstrated sustained inward arm-y delta (.08 with target-side/robot-specific signs), replacing the zero inward arm command during lift/transport. Such sustained deltas appear to provide contact pressure; their effect is tested only through the API. + +Coordinate correction from legal D20 labels: first arm approach uses x=-1 for left-target demos and x=+1 for right-target demos. Do NOT rotate arm-x sign by base yaw as if it were body-local forward. The simple release's positive x is correct only for right targets and must be negative for left targets in the next version. The earlier top-feedback transform was therefore also suspect for left targets; furthermore the upper/lower hand correspondence changes with the left-turn base route. The visual feedback branch is disabled. Pinch signs remain those directly recorded in each side's closure actions (+,- for left-target; -,+ for right-target). + +Episode 14: simple lift with captured commanded finger targets, per-step gain 10, and repeated arm-y pair (+.08,-.08) for this left-target scene. Ball was initially held, but hands visibly separated and the ball disappeared from the grasp by steps 450-500; confirmed empty hands in front/top views. Ended interactively after failure. This falsifies the earlier interpretation that repeating the demonstration's lateral pair would provide inward pressure for a frozen grip. The demonstration's changing wrist/finger geometry matters; action sign alone did not establish contact-force direction. Episode 15 tests the opposite lateral pair at half magnitude (-.04,+.04 for left-target; reversed for right-target), with the corrected target-side release x sign. These remain empirical hypotheses until tested. + +Episode 15: reversed lateral pair at half magnitude did not solve retention. By step 450 the ball was clearly on the floor; native success remained false. Ended interactively after this evidence. + +Episode 16: preserved the complete arm/hand contact-phase command from arm-start+180, with a small live finger correction. Ball visibly held at step 300, but released/lost by step 400; native false. This experiment also failed to reach transport with a held ball. + +## Selection for final independent rehearsals + +No development attempt achieved native success. Select the demonstration-guided base/arm route with low hand correction and temporary observed-grip retention (the episode-8 strategy). It showed one of the longest clear holds relative to arm-start timing, through the handoff opening interval; this is a qualitative retention criterion, not a success estimate. Retain the larger .4 m scene-offset cap already exercised in later exploration, end-of-demo termination fix, and conservative visible-loss stop. Disable empirical arm maps, stage retrieval, visual arm correction, constant squeeze, pause, simplified lift, custom release and constant-contact branches. The inactive experiments remain auditable in the saved versions. The exact chosen configuration is candidate/config.json. + +E17-E20 will be independent rehearsals of one unchanged exact bundle. No further behavioral development is planned. Native feedback will remain authoritative; absent native success, any ambiguous final-only visual evidence must be judged false using the preregistered rule. The earlier native score overwrite rejection confirms that native results must not be manually replaced. + + +## Logged interactive outcomes before final rehearsals + +[ + { + "episode": 1, + "last_logged_step": 400, + "native_success": false + }, + { + "episode": 3, + "last_logged_step": 360, + "native_success": false + }, + { + "episode": 4, + "last_logged_step": 649, + "native_success": false + }, + { + "episode": 5, + "last_logged_step": 473, + "native_success": false + }, + { + "episode": 6, + "last_logged_step": 536, + "native_success": false + }, + { + "episode": 7, + "last_logged_step": 274, + "native_success": false + }, + { + "episode": 8, + "last_logged_step": 408, + "native_success": false + }, + { + "episode": 9, + "last_logged_step": 488, + "native_success": false + }, + { + "episode": 10, + "last_logged_step": 308, + "native_success": false + }, + { + "episode": 11, + "last_logged_step": 468, + "native_success": false + }, + { + "episode": 12, + "last_logged_step": 397, + "native_success": false + }, + { + "episode": 13, + "last_logged_step": 360, + "native_success": false + }, + { + "episode": 14, + "last_logged_step": 598, + "native_success": false + }, + { + "episode": 15, + "last_logged_step": 519, + "native_success": false + }, + { + "episode": 16, + "last_logged_step": 498, + "native_success": false + } +] + +Independent episode 2 was runnable and native success false. Final rehearsal results are recorded externally in exploration/ to keep this exact bundle unchanged. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/freeze_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/freeze_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..50fdc78872144f6ae3f84be6ae6858f41d8b0720 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/freeze_manifest.json @@ -0,0 +1,99 @@ +{ + "files": { + "arm_maps.npz": "12f82c1b33d9c7ed6f55ff1d1ebfe7a1480fa86868caa44a527d5d10174007a3", + "ball_tracks.npz": "6f35e98d453af20c17c1d51ca97e125f061cb39fcf74ffbd90137459bfc43657", + "build_memory.py": "b54667f1175b217414bda3d396b1e50d6644cad6c6784e0166d978991e41a936", + "check_synthetic.py": "659eb9e6c4a3f765d8e5e21ad1a63e6166904f83c9cdf94241a8eadccc0a0d64", + "compilation_log.json": "09afee10b6eaf30c8513ec428857b8e7d3cc469efe7e8cc5b2572919ae1b8341", + "config.json": "57082cec9263deb1d6f5337c238d20cc28ee4d5cf93234133edb6047c7c65d42", + "contract.json": "fc4eff8db6de6f549e4781d001b3f16bf09bc802fbf868cf64f4acaa2518af28", + "controller.py": "0b39ebc693466e8443abaeb8ba4659bf42ee24d5977535dbb86fe5543a39a4ba", + "demo_manifest.json": "4522be13855157992c8e3533f0506c2a8b51b992aea1005d4bd0a3f34488ffdd", + "demonstrations_readonly/demo_00.h5": "eb1aa6c335c548b00fff6038c4e7b9c965beb4f9fb987daa289a81f3af6ce1ba", + "demonstrations_readonly/demo_01.h5": "0ae0e92912697d0e6377ff5236d0bf8d08e26a88812496950f0baba98017ed69", + "demonstrations_readonly/demo_02.h5": "90148c3b9d201cad421a0d3af8a0879b199b32376496dde2d1cc7017e50ffb8f", + "demonstrations_readonly/demo_03.h5": "6229518a4297e943d3b823101423d96222db9326a88a02334b4caf72f32dd576", + "demonstrations_readonly/demo_04.h5": "ca3f01c9a70fb47c16595d4d40387677f2772a55d1c3d46242eb68e8ec8b480f", + "demonstrations_readonly/demo_05.h5": "9bfcf0408a6d60b1f307dbe4ab2ff07a357edc6b324c02ecc86569e81ba709ed", + "demonstrations_readonly/demo_06.h5": "180261ec629bca60baa8f1b9474f03afd40133b875c9aa9ae19e10629e8c3f6b", + "demonstrations_readonly/demo_07.h5": "8cbf8faf85315c8b266a42dcd644e524277ca306fce9a9de3964dd451ac2aa85", + "demonstrations_readonly/demo_08.h5": "e405bd99a6d472fc05fd5bee7fd9f79f03bf41abdc26c0bc51b2a0b85e5b849e", + "demonstrations_readonly/demo_09.h5": "79d57cf2c2c85e3443e9c975a1b9e7199ac931e5c819cf23dcabd6ff384031b0", + "demonstrations_readonly/demo_10.h5": "f313292b7cf12c96183842e00b4b9a8d94d70174cb0b8bbb59b916f4e72c96fd", + "demonstrations_readonly/demo_11.h5": "7bd7ab6f8b750a6fc098357738489403b7dc3593c44b577814d2b39e64efd14e", + "demonstrations_readonly/demo_12.h5": "13ee72fc25a19ce595ca80de311f19d6f3bdc02834e1ffb17a23834348956835", + "demonstrations_readonly/demo_13.h5": "fa2d9d3ab374499c43ed5aa75c01df937def7951ee2677685ca192ee4b245dfa", + "demonstrations_readonly/demo_14.h5": "6fd789a6bedbcc157a9174041f36dbb50ce1bd57a9d107d8aa49a0708d18b099", + "demonstrations_readonly/demo_15.h5": "1565a8bb362bfd6394b1d7c2a9c0b61557ebbcd00737be0c013d4744bcb16061", + "demonstrations_readonly/demo_16.h5": "48b1a354ac67ddc4d6841282fe168a724fac98349cea1cd62bc85b3cee71e9e2", + "demonstrations_readonly/demo_17.h5": "37a4eb209adf550e00b9a16e6c7bcbbe2b429b436e9f358e564ceffcb6f79e9a", + "demonstrations_readonly/demo_18.h5": "3b77637c7206f17edb358c81a0feb1212eb33292013e31f374474b14c68690bd", + "demonstrations_readonly/demo_19.h5": "aa2bb35e2e3800fcf5c072561f5d002c2e01bf57585ac4b923df40be4195d828", + "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa", + "findings.md": "b65fda9f8e7f82b1c227822243db12e6295ee119d0b320a7c51c378e1f07ef9d", + "full.npz": "c1bc214fe374e16b9d54446f3ac7a147b063152814fe79c2b6a8ab4ab599bd94", + "handoff.md": "c1bd645c31843196d629a7b250b92d1d7370b37a22b8d5fa5998e6465dc231ba", + "initial_centroids.npy": "6b1e30be3cec151720a4a8d4f452a9c796d00bbde5e02ab9c1726f6c591ca6f5", + "memory.npz": "e7344cb60617dc17c80463724ce0839534a0975492a6d4779181a4d16d5defc0", + "model_tool_manifest.yaml": "c5a1e8336c4d16247d198e24ee41883def7d3c0eecf32b706e2d5602ebecab30", + "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e", + "skills.md": "4d24a12b19d576f18889eec7d300300c74a6984c3e5c5fa2926441cca7c83db0", + "synthetic_checks.json": "e6c62d1936b261c61806487bfd6d7a634b5dd858e8bede488d6487ed060ed6b4", + "top_features.py": "05eb684cbb92cd0e2089ed9ebc6f5009de86c849fb006bef6a24619729519acc", + "top_tracks.npz": "285a74648349113dd2a7b21a65eab862f59ee0e64b341c72a953336af5711dd2", + "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e" + }, + "bundle_hash": "1defc6ce0a246fc92d23dbf4a8809e751c0fbe38b36a88bb3ade379a4d2a21d7", + "exploration_ledger_hash": "4a1bc1576a8525936ebbc697c116880163beea44c716f40e31242056a68066c1", + "entrypoint": "controller.reset_episode(); controller.act(obs)", + "selection": { + "rule": "exact-version success rate, valid rehearsal count, recency", + "rehearsals": [ + { + "episode": 2, + "bundle_hash": "b2d6a278fdcb813da5225aace3742aecf0206adf7c13c4e82539258b02771432", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 17, + "bundle_hash": "1defc6ce0a246fc92d23dbf4a8809e751c0fbe38b36a88bb3ade379a4d2a21d7", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 18, + "bundle_hash": "1defc6ce0a246fc92d23dbf4a8809e751c0fbe38b36a88bb3ade379a4d2a21d7", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 19, + "bundle_hash": "1defc6ce0a246fc92d23dbf4a8809e751c0fbe38b36a88bb3ade379a4d2a21d7", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 20, + "bundle_hash": "1defc6ce0a246fc92d23dbf4a8809e751c0fbe38b36a88bb3ade379a4d2a21d7", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + } + ] + } +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/handoff.md b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/handoff.md new file mode 100644 index 0000000000000000000000000000000000000000..b201e81c581e910233be94b65833518fffb84c32 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/handoff.md @@ -0,0 +1,9 @@ +# Final development handoff + +This is the development snapshot prepared for independent E17-E20 rehearsals. Keep candidate/ unchanged across those rehearsals; record outcomes and final legal images in ../exploration/. The trusted runner selects an independently rehearsed runnable exact bundle at freeze. No official success is asserted by this handoff. + +Entry points: controller.reset_episode() and controller.act(obs). Required runtime assets: controller.py, top_features.py, config.json, contract.json, memory.npz, full.npz, initial_centroids.npy, ball_tracks.npz and top_tracks.npz. Dependencies: Python standard library, NumPy, OpenCV. No network, neural model, environment client, development agent or writable runtime file is needed. Optional build/analysis scripts are audit provenance only. + +Native units: 20 Hz, horizon 1000 including the runner's charged initial hold; two ordered 25-wide parts, each three absolute mobile base controls, six normalized EE deltas, sixteen normalized hand deltas. All output respects the contract bounds. Program stops at its trajectory/horizon limit and never repeats a final action indefinitely. See config.json for the exact selected parameters and findings.md for observed failures and unverified assumptions. + +The runner separately adds the verified demo manifest, readonly demos and common environment lock. No imitation of those trusted artifacts is supplied here. Earlier synthetic checks apply only to the initial draft; real API exploration and independent rehearsals are the relevant validation for this version. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/model_tool_manifest.yaml b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/model_tool_manifest.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6df183e01fc3fca53720f301108cbc92a10f43ac --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/model_tool_manifest.yaml @@ -0,0 +1,64 @@ +{ + "task_id": "DualArmShootBasketball-v1", + "stage": "final development snapshot before E17-E20", + "runtime_dependencies": { + "python": "3.10.20", + "numpy": "2.2.6", + "opencv": "4.12.0" + }, + "runtime_models": [], + "pretrained_weights_loaded": [], + "neural_finetuning": false, + "neural_weight_changes": false, + "network_required": false, + "runtime_environment_imports": false, + "runtime_assets": [ + "controller.py", + "top_features.py", + "config.json", + "contract.json", + "memory.npz", + "full.npz", + "initial_centroids.npy", + "ball_tracks.npz", + "top_tracks.npz", + "skills.md", + "findings.md", + "handoff.md" + ], + "derived_data": "Fixed examples, color/thumbnail descriptors, ball/hand tracks and initial localization regression from this task's 20 authorized D20 demonstrations. No neural fitting.", + "exploration_tools": [ + "worker_api.API budget_status/next_episode/latest_observation/execute_actions/finish_episode/rehearse", + "NumPy", + "OpenCV", + "PIL evidence encoding", + "SciPy offline local linear regression experiment, disabled in selected runtime", + "Python stdlib" + ], + "provenance": { + "demo_analysis": "../demo_analysis.md", + "journal": "../exploration/findings.md", + "versions": "../versions/", + "native_contract": "/task_contract.json", + "authorized_manifest": "/demo_manifest.json" + }, + "runtime_sha256": { + "controller.py": "0b39ebc693466e8443abaeb8ba4659bf42ee24d5977535dbb86fe5543a39a4ba", + "top_features.py": "05eb684cbb92cd0e2089ed9ebc6f5009de86c849fb006bef6a24619729519acc", + "config.json": "57082cec9263deb1d6f5337c238d20cc28ee4d5cf93234133edb6047c7c65d42", + "contract.json": "fc4eff8db6de6f549e4781d001b3f16bf09bc802fbf868cf64f4acaa2518af28", + "memory.npz": "e7344cb60617dc17c80463724ce0839534a0975492a6d4779181a4d16d5defc0", + "full.npz": "c1bc214fe374e16b9d54446f3ac7a147b063152814fe79c2b6a8ab4ab599bd94", + "initial_centroids.npy": "6b1e30be3cec151720a4a8d4f452a9c796d00bbde5e02ab9c1726f6c591ca6f5", + "ball_tracks.npz": "6f35e98d453af20c17c1d51ca97e125f061cb39fcf74ffbd90137459bfc43657", + "top_tracks.npz": "285a74648349113dd2a7b21a65eab862f59ee0e64b341c72a953336af5711dd2", + "skills.md": "4d24a12b19d576f18889eec7d300300c74a6984c3e5c5fa2926441cca7c83db0", + "findings.md": "b65fda9f8e7f82b1c227822243db12e6295ee119d0b320a7c51c378e1f07ef9d", + "handoff.md": "c1bd645c31843196d629a7b250b92d1d7370b37a22b8d5fa5998e6465dc231ba" + }, + "limitations": [ + "Demonstrated task/contact behavior does not guarantee native success", + "Final validation is the exact independent rehearsal, not prior draft synthetic checks", + "No privileged object/contact state or task simulator is used" + ] +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/policy_runner.py b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/policy_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..e49448d6245feb7818ae505f1061708ab97c6ead --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/policy_runner.py @@ -0,0 +1,25 @@ +"""Frozen-program entry point; no development agent and no reset capability.""" +import importlib.util +import sys + +sys.path.insert(0,'/artifact') +sys.path.insert(0,'/') +from worker_api import API + + +def main(): + spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py') + module=importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + module.reset_episode() + api=API() + result=api.latest_observation() + while not (result['terminated'] or result['truncated'] or result['horizon_reached']): + obs=dict(result['observation'],step_id=result['step_id']) + action=module.act(obs) + if action is None:break + response=api.execute_actions([action]) + result=response['steps'][-1] + + +if __name__=='__main__':main() diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/skills.md b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/skills.md new file mode 100644 index 0000000000000000000000000000000000000000..9c17735f3c49f2b37ec7dedd02edc3d55dae8761 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/skills.md @@ -0,0 +1,7 @@ +# Compiled controller skills + +Sources: exactly this task's authorized 20 D20 demonstrations and its E20 API exploration. No neural fine-tuning, external task artifacts, simulator imports, seeds, resets or state restoration. + +The controller locates the ball with fixed color components, selects a demonstration from the initial legal views, maps the ball location to an aligned base route, and executes bounded native actions. It uses legal observed finger joint positions for closed-loop retention. The selected config.json specifies which tested manipulation variant is active; unused experimental branches are disabled by configuration. Early termination never asserts success. Native success is read only by the trusted API/runner. + +reset_episode clears all episode-dependent temporal, localization and grip state. act receives RGB, proprioception and native step_id, and returns one bounded 50-vector or None. All runtime assets are local and immutable. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/synthetic_checks.json b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/synthetic_checks.json new file mode 100644 index 0000000000000000000000000000000000000000..7a6c10af2aa3239031b7a45ab607aec4cb67b7f6 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/synthetic_checks.json @@ -0,0 +1,15 @@ +{ + "status": "passed", + "scope": "syntax and synthetic inputs only; no task rollout", + "checks": [ + "all candidate Python files parse", + "synthetic RGB change changes retrieval and action", + "synthetic proprioception change changes retrieval and action", + "HWC and 1HWC RGB produce equal actions; reset reproducible", + "missing RGB holds current bases in contract part order", + "nonfinite proprioception and exhausted post-hold budget stop", + "actual compiled bank loads; artificial inputs produce finite legal 50-vectors", + "compiled memory represents all 20 demos" + ], + "memory_rows": 4326 +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/top_features.py b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/top_features.py new file mode 100644 index 0000000000000000000000000000000000000000..79c6348b9387521be523807b030d0d86ad3bb6fd --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/top_features.py @@ -0,0 +1,14 @@ +import cv2,numpy as np +def features(im,direction): + im=np.asarray(im);im=im[0] if im.ndim==4 else im;h=cv2.cvtColor(im.astype('uint8'),cv2.COLOR_RGB2HSV);mask=((h[:,:,0]<25)&(h[:,:,1]>150)&(h[:,:,2]>100)).astype('uint8') + n,l,stats,cent=cv2.connectedComponentsWithStats(mask);ids=[k for k in range(1,n) if stats[k,4]>4 and stats[k,2]-.015)&(dx<.085)&(abs(dy)<.06) + out=[] + for sign in [1,-1]: + y,x=np.where(dark&(dy*sign>0)) + if len(x)<5:return ball,None + out.append(np.array([x.mean()/im.shape[1],y.mean()/im.shape[0]])-ball) + return ball,np.array(out) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/worker_api.py b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/worker_api.py new file mode 100644 index 0000000000000000000000000000000000000000..ff137d1c68cb70a1549326d2d22b430c9cf4e20c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmShootBasketball-v1/frozen/worker_api.py @@ -0,0 +1,81 @@ +"""Standalone worker client; safe to mount without the runner package.""" +import base64 +import json +import socket +import struct +import uuid +import os +from pathlib import Path + +import numpy as np + + +def array_hook(value): + if value.get('__array__') is True: + dtype=np.dtype(value['dtype']) + if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service') + raw=base64.b64decode(value['data'],validate=True) + return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy() + return value + + +class API: + def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'): + self.socket_path=socket_path + self.demo_root=Path(demo_root) + self.manifest=Path(manifest) + + def call(self,method,arguments=None,request_id=None): + # Caller can persist a request ID before sending. Never automatically retry. + request_id=request_id or str(uuid.uuid4()) + request={'request_id':request_id,'method':method,'arguments':arguments or {}} + if os.environ.get('AGENT_E20_RPC_TOKEN'): + request['token']=os.environ['AGENT_E20_RPC_TOKEN'] + payload=json.dumps(request,allow_nan=False).encode() + if len(payload)>65536:raise ValueError('request too large') + with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s: + s.settimeout(1810);s.connect(self.socket_path) + s.sendall(struct.pack('!I',len(payload))+payload) + def exact(n): + chunks=[] + while n: + chunk=s.recv(min(n,1024*1024)) + if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID') + chunks.append(chunk);n-=len(chunk) + return b''.join(chunks) + length=struct.unpack('!I',exact(4))[0] + if length>64*1024*1024:raise RuntimeError('response too large') + result=json.loads(exact(length),object_hook=array_hook) + if not result['ok']:raise RuntimeError(result['error']) + return result['result'] + + def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id) + def latest_observation(self):return self.call('latest_observation') + def execute_actions(self,actions,request_id=None): + return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id) + def finish_episode(self):return self.call('finish_episode') + def budget_status(self):return self.call('budget_status') + def rehearse(self,candidate='candidate',request_id=None): + return self.call('rehearse',{'candidate':candidate},request_id) + def score_rehearsal(self,episode,visible_success,evidence): + return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence}) + def freeze(self):return self.call('freeze') + + def read_demo(self,demo_id,start=0,stop=None,fields=None): + import h5py + manifest=json.loads(self.manifest.read_text()) + if manifest.get('status') not in ('released','released_for_offline_analysis'): + raise RuntimeError('demonstrations not released by trusted preflight') + entries={e['demo_id']:e for e in manifest['episodes']} + if demo_id not in entries:raise ValueError('unauthorized demo ID') + entry=entries[demo_id] + allowed={f['path'] for f in entry['fields']} + fields=sorted(allowed) if fields is None else fields + if not set(fields)<=allowed:raise ValueError('unauthorized demo field') + stop=entry['length']+1 if stop is None else stop + if not isinstance(start,int) or not isinstance(stop,int) or not 0<=startdkj',dx,w,dy).reshape(5,-1)).reshape(5,131,14) + coefs.append(b) +np.savez_compressed(root/'adaptation.npz',coefs=coefs,close=close) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/compile_tracking.py b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/compile_tracking.py new file mode 100644 index 0000000000000000000000000000000000000000..3fee34ccca91de603389fe536a26b29cca275c7f --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/compile_tracking.py @@ -0,0 +1,40 @@ +import sys,json +from pathlib import Path +import cv2,numpy as np +sys.path.insert(0,'/') +from worker_api import API +api=API();root=Path(__file__).parent +z=np.load(root/'memory.npz');ps=z['proprio'];acts=z['actions'];src=json.load(open(root/'memory_provenance.json'))['sources'] +def scene(im): + im=cv2.resize(im,(480,640),interpolation=cv2.INTER_LINEAR) + h=cv2.cvtColor(im,cv2.COLOR_RGB2HSV);mask=(h[:,:,0]>=5)&(h[:,:,0]<=20)&(h[:,:,1]>170)&(h[:,:,2]>100) + yy,xx=np.where(mask);sel=(xx>100)&(yy>180)&(yy<470);xx=xx[sel];yy=yy[sel] + if len(xx)<10:return np.zeros(5,np.float32) + slope,intercept=np.polyfit(xx,yy,1) + end=np.percentile(xx,1) + # tube segmentation in the unoccluded central region of the initial view + tube=((h[:,:,1]<75)&(h[:,:,2]>120)&(h[:,:,2]<245)).astype(np.uint8) + tube[:240]=0;tube[440:]=0;tube[:,:70]=0;tube[:,230:]=0 + n,l,stats,cent=cv2.connectedComponentsWithStats(tube) + ids=[i for i in range(1,n) if 150 normalized action correction, estimated only from demonstrated transitions. +q=np.concatenate([ps[:,:7],ps[:,18:25]],axis=1)*.3 +dq=np.zeros_like(q) +for st,en in offsets:dq[st:en-1]=q[st+1:en]-q[st:en-1];dq[en-1]=dq[en-2] +for r in range(2): + qr=q[:,r*7:r*7+7];ds=dq[:,r*7:r*7+7];aa=acts[:,r*7+np.array([0,1,2,5])] + # local regression uses nearby demonstrated poses, not a simulator or neural model. + br=[] + for i in range(len(q)): + dist=np.sum((qr-qr[i])**2,axis=1);ix=np.argpartition(dist,159)[:160] + w=np.exp(-dist[ix]/.12);x=ds[ix];y=aa[ix] + b=np.linalg.solve(x.T@(w[:,None]*x)+np.eye(7)*.0001,x.T@(w[:,None]*y)) + br.append(b) + jac.append(br) +np.savez_compressed(root/'tracking.npz',scene=features,offsets=offsets,q=q,jac=np.asarray(jac,dtype=np.float32)) +print('compiled',features) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/controller.py b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/controller.py new file mode 100644 index 0000000000000000000000000000000000000000..9dc1495a487c46558a2a1faf28ba0dcd9fb147ee --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/controller.py @@ -0,0 +1,37 @@ +"""D20 reference tracking with observed scene selection and proprioceptive feedback.""" +from pathlib import Path +import numpy as np +from geometry import scene +from retrieval import image_features,proprio_features,CAMERAS,PATHS +_BANK=None +_TRACK=None +_selected=None +_t=0 +last_status='ready' +debug={} +def reset_episode(): + global _selected,_t,last_status,debug + _selected=None;_t=0;last_status='ready';debug={} +def act(obs): + global _BANK,_TRACK,_selected,_t,last_status,debug + if int(obs['step_id'])>=470:return None + if _BANK is None: + _BANK=dict(np.load(Path(__file__).with_name('memory.npz'))) + _TRACK=dict(np.load(Path(__file__).with_name('tracking.npz'))) + p=proprio_features(obs['proprioception']) + if _selected is None: + f=scene(np.asarray(obs['rgb']['top_camera']).squeeze());d=np.sum((_TRACK['scene']-f)**2,axis=1) + _selected=int(np.argmin(d));_t=1 + st,en=_TRACK['offsets'][_selected] + row=min(st+_t,en-1) + if _t>=en-st+35:last_status='reference_complete';return None + a=_BANK['actions'][row].copy() + q=np.concatenate([p[:7],p[18:25]])*.3 + err=_TRACK['q'][row]-q + for r in range(2): + corr=err[r*7:r*7+7]@_TRACK['jac'][r,row] + a[r*7+np.array([0,1,2,5])]+=np.clip(.25*corr,-.12,.12) + _t+=1 + debug={'demo':_selected,'frame':int(row-st),'joint_error':float(np.linalg.norm(err))} + last_status='reference_tracking' + return np.clip(a,-1,1).astype(np.float32) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/demo_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/demo_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..9071d4a69e760429ec083c0f48bff0f8c8ffabdd --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/demo_manifest.json @@ -0,0 +1,2168 @@ +{ + "task_id": "DualArmThreadRopeThroughTube-v1", + "status": "released", + "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data", + "lineage_status": "pinned_comparator", + "episodes": [ + { + "demo_id": "demo_00", + "file": "demo_00.h5", + "length": 258, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 258, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 258, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 259, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 259, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 259, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 259, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 259, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 259, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 259, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 259, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 259, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "9d6b45177063cc350895fc5efd1924117cac6e33ea5d8c3faeb2ca3a1862da28", + "source_sha256": "4c309ca19385319746936f013c3e9f5d00108717a1aa67a323b43f32d13bb93b", + "view_sha256": "911a73a9e7e0a2dd47d0843c677de5d1990bab15217efa0dac50b04bc094d99f" + }, + { + "demo_id": "demo_01", + "file": "demo_01.h5", + "length": 207, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 207, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 207, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 208, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 208, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 208, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 208, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 208, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 208, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 208, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 208, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 208, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "ae0b289de8fc093025b686074b5189eb6adeb39252bdb270a0ee47b91f942815", + "source_sha256": "6c61384e588afc464d1934aa03cf8fb43909e41ac1a483f00a7de2a5a010ec8b", + "view_sha256": "66cd80c999248394c21897309950434257a0487b98dac2550e29370e9722617a" + }, + { + "demo_id": "demo_02", + "file": "demo_02.h5", + "length": 262, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 262, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 262, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 263, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 263, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 263, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 263, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 263, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 263, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 263, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 263, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 263, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "7c8b47b41a761766c6ffb4a4c0a7ad878cd372817fc95dac0825f824e7297120", + "source_sha256": "6c7fd99f96d058f8ecd9f510373240660017684637fdc612ec77776e90a50de2", + "view_sha256": "576802479c2879c8ca2766764d2cb401055e2117fab498678e8148851b43f164" + }, + { + "demo_id": "demo_03", + "file": "demo_03.h5", + "length": 212, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 212, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 212, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 213, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 213, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 213, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 213, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 213, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 213, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 213, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 213, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 213, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "8d8522074272f69b5001c8fa0eef2cc16139945246f10fb23bfa46c75e3ec80b", + "source_sha256": "088533891425d556707ead187079ca6ab297f4933ae73d3c168bb18947b86ba5", + "view_sha256": "1380a8150a49dcffb18a29b50c32cfe91e11d933893a1d92c3e594c8619c0429" + }, + { + "demo_id": "demo_04", + "file": "demo_04.h5", + "length": 224, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 224, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 224, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 225, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 225, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 225, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 225, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 225, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 225, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 225, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 225, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 225, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e4d4c0153392ada39dd601929306dffdb9e53138670022f0a92cf6ae2bd89aa4", + "source_sha256": "b11986ba3c70e7c9472bad4815583e2831b0690f59e3844f3d67ccc73a45d39f", + "view_sha256": "0c8a2265c73d228e50958177cdf65dea798526f028549fe226ded6f034c03ef8" + }, + { + "demo_id": "demo_05", + "file": "demo_05.h5", + "length": 188, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 188, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 188, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 189, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 189, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 189, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 189, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 189, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "93cb937c4076e1a40971064b82f8f1e4e0a380c0745a668b0ba4941ff51a557d", + "source_sha256": "c03df1405d3044d4b14d9467160f19d30a8280f23800565489e5c60789bd1738", + "view_sha256": "b932163532d48b1f5ca50bb12c78eb1622dd99be7537c4b5ff575a4262919491" + }, + { + "demo_id": "demo_06", + "file": "demo_06.h5", + "length": 219, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 219, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 219, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 220, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 220, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 220, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 220, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 220, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 220, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 220, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 220, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 220, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "3f2018fc1673a7df4073bb0df786a92b7a83edf4e98610cca045997bc1d8e818", + "source_sha256": "700e944f535f6658d94612995b0ace83ef86cba0d3e724cc2808371917f4b8b2", + "view_sha256": "e38778c8f5405a2e255042e69f7435b69a73a862f4f3510462485ae08f733ccd" + }, + { + "demo_id": "demo_07", + "file": "demo_07.h5", + "length": 190, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 190, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 190, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 191, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 191, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 191, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 191, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 191, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 191, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 191, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 191, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 191, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "cd81efe612311d8a2a43d655546562a4908dfe62783faa262cb5dbe8ccbfeb22", + "source_sha256": "8a73d55df7b8e600f507193404e069306262e4a1b9f19f3556d15b54b3b4b6a5", + "view_sha256": "b2e62c6f30dcffdb8777c384a0838c20080821f8ae1ff2d8cd5de1bed46ad26b" + }, + { + "demo_id": "demo_08", + "file": "demo_08.h5", + "length": 199, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 199, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 199, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 200, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 200, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 200, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 200, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 200, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 200, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 200, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 200, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 200, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "052e8852f93a621b92085da6146e1ec1fe689f52cc16157261df8d397e816381", + "source_sha256": "af9c0b1336f8b1283e7672b389d0c1e277c58c9d8f7939265ac0fa2169cd1d59", + "view_sha256": "5ab030c2b56ac6fc4b1fabf980b1c0609a27a1e2b7990e66342accec0507f903" + }, + { + "demo_id": "demo_09", + "file": "demo_09.h5", + "length": 197, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 197, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 197, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 198, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 198, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 198, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 198, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 198, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 198, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 198, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 198, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 198, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "bce0fb9d0c01d560bfc23ea91c4fbefa0fe2c3034638a1c4b1ed3bf477a7e1d3", + "source_sha256": "f16659224030342ba9f152b3179c284ca66195c22aa8add49fa904d3d92f4190", + "view_sha256": "b335267e2b604b7d037323f613dd64c5a0b2b4484d6fbe7b55afcb6caf04b6b6" + }, + { + "demo_id": "demo_10", + "file": "demo_10.h5", + "length": 306, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 306, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 306, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 307, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 307, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 307, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 307, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 307, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 307, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 307, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 307, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 307, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "8bbf1eae53db3c6edd6b4f694e4585ba24e3638d0428e675915d5ba8c318c842", + "source_sha256": "373ff965c01d1eaaed9517359ca0811c855c019ac1deb6eaad06348926ccb11b", + "view_sha256": "1f1de83a0875b5d47ac96f8ccfbcf2e088aad9ade09f37c89c287d7571fd888e" + }, + { + "demo_id": "demo_11", + "file": "demo_11.h5", + "length": 208, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 208, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 208, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 209, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 209, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 209, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 209, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 209, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 209, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 209, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 209, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 209, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "5d753ec452a7a5812a2f3c11fde153322efd8f27f3b5b31fa8ad6c3fae12f3b6", + "source_sha256": "53094b094b4584cd5d9efd5501dd1e981d2d52b1a28457e67dcf6c5684513fca", + "view_sha256": "04307325c8e676f861ddd351017b0c38d32ccc3d90fbb045e00e74d5b75b6682" + }, + { + "demo_id": "demo_12", + "file": "demo_12.h5", + "length": 236, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 236, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 236, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 237, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 237, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 237, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 237, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 237, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 237, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 237, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 237, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 237, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "cf8e4008a3fbe8fa1878637c3109fec86aaca5507886e18a56961b8de84e3bf0", + "source_sha256": "c46f46e84ae99975618f8e667dcf05bde60850fb464596f98ed6cd9ed28d0f3a", + "view_sha256": "e3e0081282ca733355a0699ccee785825581e90d4d35ee7d229b78aa8134ad35" + }, + { + "demo_id": "demo_13", + "file": "demo_13.h5", + "length": 252, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 252, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 252, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 253, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 253, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 253, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 253, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 253, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 253, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 253, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 253, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 253, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "ded2f3fc20b34f5091e7f20b61b31fd3220da664b9207fe624ee6a242be925f0", + "source_sha256": "023a9d913e15882c5335cbf9cb3e15d42bbd6d9751f4c0736bffb27c1a47c536", + "view_sha256": "837eac7f8f30d1d95f3c7ed092172a0a50319f2d2bdb78b7eb247a7b1119919d" + }, + { + "demo_id": "demo_14", + "file": "demo_14.h5", + "length": 194, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 194, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 194, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 195, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 195, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 195, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 195, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 195, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 195, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 195, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 195, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 195, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "89fc7d6f1e11461e13980b4af8d96983cf44597e7544caef75387a74eca07c12", + "source_sha256": "ae502d3070e578a3c18705f1f9e38c4ceae1d4c3b5a9198620326d5ce42a6545", + "view_sha256": "989c1755d26c6db10af7dbdba8c669230dc3d026699fa0c95510a0c5407c9df4" + }, + { + "demo_id": "demo_15", + "file": "demo_15.h5", + "length": 236, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 236, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 236, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 237, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 237, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 237, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 237, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 237, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 237, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 237, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 237, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 237, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "8b2b196d39aebb2c39d32b013fe9f3d08fcec183539d92688b2cda7e3564406e", + "source_sha256": "0aca80ed425117a4efa7a3023df99573d4d2e51339ba63a50e9b134c586ccc7c", + "view_sha256": "5eb117eb8ca1376cf3a01ab5ddbfa46fd71a1593665e207c66ada2fa383b8271" + }, + { + "demo_id": "demo_16", + "file": "demo_16.h5", + "length": 254, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 254, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 254, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 255, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 255, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 255, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 255, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 255, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 255, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 255, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 255, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 255, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "67adbec212c0a34b4625f9e8eb79e672afdaadf71f1854b2ae5fba6dd8b83da7", + "source_sha256": "399f7e6c7ecfa49087d78c78c0a1ca9cb5b83839cc596b8692e4dea1b1c24caf", + "view_sha256": "fc4d973ce13dff519145347d3a6f8269ae529cea4536e55c488547ccccd54588" + }, + { + "demo_id": "demo_17", + "file": "demo_17.h5", + "length": 213, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 213, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 213, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 214, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 214, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 214, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 214, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 214, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 214, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 214, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 214, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 214, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "02ddfb353ec052f412fbb1f04442849dce02a63687d2238a3b1294ef7c712f11", + "source_sha256": "fe62f5df0bf4dc05a3cde28e344aca94789738f4ec899f4ce4a464f480747df3", + "view_sha256": "f483248e9820bb421236f8fd0d45a239c8c8ce4189a798363026ea7381c15f23" + }, + { + "demo_id": "demo_18", + "file": "demo_18.h5", + "length": 231, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 231, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 231, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 232, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 232, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 232, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 232, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 232, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 232, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 232, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 232, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 232, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "b62fd51a1c40eea03cb70434431275ea8861c1c7f837f1956ed1535c59b10a51", + "source_sha256": "6d9d632760cc5bfe5d92ab8cf324383bd5247ef7bf5999cdc220abebe06614eb", + "view_sha256": "cdae7ca37397fee7f848b793af894cfc12e3b8d49460d952b62c67cfffb30de8" + }, + { + "demo_id": "demo_19", + "file": "demo_19.h5", + "length": 203, + "fields": [ + { + "path": "actions/panda-0", + "shape": [ + 203, + 7 + ], + "dtype": "float32" + }, + { + "path": "actions/panda-1", + "shape": [ + 203, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qpos", + "shape": [ + 204, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-0/qvel", + "shape": [ + 204, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qpos", + "shape": [ + 204, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/panda-1/qvel", + "shape": [ + 204, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 204, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 204, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_0/rgb", + "shape": [ + 204, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera_1/rgb", + "shape": [ + 204, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 204, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e0216bca4f166742b49bf2d265cfe09082c24fabe032df4071e43fd5303ca88b", + "source_sha256": "67512b035944af3529badf5a7e1183d2388c3c36cd2da1638fceb81863d35412", + "view_sha256": "1f774ed8348965faee53921a3238c698c8ac50c809636c824ad00de4b80ab4ac" + } + ] +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/environment.lock b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/environment.lock new file mode 100644 index 0000000000000000000000000000000000000000..b2237f47d93aa4c3efad07728ae6acd137912d6d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/environment.lock @@ -0,0 +1,249 @@ +absl-py==2.4.0 +accelerate==1.13.0 +addict==2.4.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.13.5 +aiosignal==1.4.0 +annotated-types==0.7.0 +anyio==4.13.0 +anytree==2.13.0 +asttokens==3.0.1 +async-timeout==5.0.1 +attrs==26.1.0 +av==15.1.0 +blinker==1.9.0 +casadi==3.7.2 +certifi==2026.4.22 +cffi==2.0.0 +charset-normalizer==3.4.7 +click==8.3.3 +cloudpickle==3.1.2 +cmake==4.1.3 +coacd==1.0.11 +colorama==0.4.6 +colorlog==6.10.1 +comm==0.2.3 +ConfigArgParse==1.7.5 +contourpy==1.3.2 +cuda-bindings==12.9.4 +cuda-pathfinder==1.5.4 +cycler==0.12.1 +dacite==1.9.2 +dash==4.1.0 +dataclasses-json==0.6.7 +datasets==4.8.5 +decorator==5.2.1 +deepdiff==8.6.2 +Deprecated==1.3.1 +diffusers==0.35.2 +dill==0.4.1 +docstring_parser==0.18.0 +draccus==0.10.0 +einops==0.8.2 +embreex==4.4.0 +etils==1.13.0 +evdev==1.9.3 +exceptiongroup==1.3.1 +executing==2.2.1 +Farama-Notifications==0.0.6 +fast_simplification==0.1.13 +fastjsonschema==2.21.2 +filelock==3.29.0 +Flask==3.1.3 +fonttools==4.63.0 +freetype-py==2.5.1 +frozenlist==1.8.0 +fsspec==2026.2.0 +genesis-world @ file:///data/gck/genesis-world +git-filter-repo==2.47.0 +gitdb==4.0.12 +GitPython==3.1.50 +glfw==2.10.0 +gs-madrona==0.0.5 +gstaichi==3.3.0 +gym==0.26.2 +gym-notices==0.1.0 +gymnasium==1.3.0 +h11==0.16.0 +h5py==3.16.0 +hf-xet==1.5.0 +hf_transfer==0.1.9 +httpcore==1.0.9 +httpx==0.28.1 +huggingface-hub==0.35.3 +idna==3.15 +ImageIO==2.37.3 +imageio-ffmpeg==0.6.0 +importlib_metadata==9.0.0 +importlib_resources==7.1.0 +inquirerpy==0.3.4 +ipython==8.39.0 +ipywidgets==8.1.8 +itsdangerous==2.2.0 +jedi==0.20.0 +Jinja2==3.1.6 +joblib==1.5.3 +jsonlines==4.0.0 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +jupyter_core==5.9.1 +jupyterlab_widgets==3.0.16 +kiwisolver==1.5.0 +lazy-loader==0.5 +lerobot==0.4.4 +libigl==2.6.2 +llvmlite==0.47.0 +loguru==0.7.3 +lxml==6.1.0 +manifold3d==3.4.1 +-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder +mapbox_earcut==2.0.0 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +marshmallow==3.26.2 +matplotlib==3.10.9 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mergedeep==1.3.4 +moviepy==2.2.1 +mpmath==1.3.0 +msgspec==0.21.1 +mujoco==3.8.1 +multidict==6.7.1 +multiprocess==0.70.19 +mypy_extensions==1.1.0 +nbformat==5.10.4 +nest-asyncio==1.6.0 +networkx==3.4.2 +ninja==1.13.0 +nlopt==2.10.0 +numba==0.65.1 +numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d +nvidia-cublas-cu12==12.8.4.1 +nvidia-cuda-cupti-cu12==12.8.90 +nvidia-cuda-nvrtc-cu12==12.8.93 +nvidia-cuda-runtime-cu12==12.8.90 +nvidia-cudnn-cu12==9.10.2.21 +nvidia-cufft-cu12==11.3.3.83 +nvidia-cufile-cu12==1.13.1.3 +nvidia-curand-cu12==10.3.9.90 +nvidia-cusolver-cu12==11.7.3.90 +nvidia-cusparse-cu12==12.5.8.93 +nvidia-cusparselt-cu12==0.7.1 +nvidia-nccl-cu12==2.27.5 +nvidia-nvjitlink-cu12==12.8.93 +nvidia-nvshmem-cu12==3.4.5 +nvidia-nvtx-cu12==12.8.90 +open3d==0.19.0 +opencv-python==4.13.0.92 +opencv-python-headless==4.12.0.88 +OpenEXR==3.4.11 +orderly-set==5.5.0 +packaging==25.0 +pandas==2.3.3 +parso==0.8.7 +pexpect==4.9.0 +pfzy==0.3.4 +pillow==11.3.0 +pin==4.0.0 +pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work +platformdirs==4.9.6 +plotly==5.24.1 +polyscope==2.6.1 +proglog==0.1.12 +prompt_toolkit==3.0.52 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +pure_eval==0.2.3 +py-cpuinfo==9.0.0 +py-spy==0.4.2 +pyarrow==24.0.0 +pycollada==0.9.3 +pycparser==3.0 +pydantic==2.13.4 +pydantic_core==2.46.4 +PyGEL3D==0.6.1 +pyglet==2.1.14 +pygltflib==1.16.0 +Pygments==2.20.0 +pymeshlab==2025.7.post1 +pynput==1.8.2 +PyOpenGL==3.1.10 +pyparsing==3.3.2 +pyperclip==1.11.0 +PyQt6==6.11.0 +PyQt6-Qt6==6.11.0 +PyQt6_sip==13.11.1 +pyquaternion==0.9.9 +pyserial==3.5 +pysplashsurf==0.12.0.2 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +python-xlib==0.33 +pytransform3d==3.15.0 +pytz==2026.2 +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 +PyYAML==6.0.3 +pyyaml-include==1.4.1 +referencing==0.37.0 +regex==2026.5.9 +requests==2.34.2 +rerun-sdk==0.26.2 +retrying==1.4.2 +rich==14.3.4 +rpds-py==0.30.0 +rtree==1.4.1 +safetensors==0.7.0 +sapien==3.0.3 +scikit-image==0.25.2 +scikit-learn==1.7.2 +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 +sentry-sdk==2.60.0 +setuptools==80.10.2 +shapely==2.1.2 +six==1.17.0 +smmap==5.0.3 +stack-data==0.6.3 +svg.path==7.0 +sympy==1.14.0 +tenacity==9.1.4 +termcolor==3.3.0 +tetgen==0.8.4 +threadpoolctl==3.6.0 +tifffile==2025.5.10 +timm==1.0.27 +toml==0.10.2 +torch==2.10.0 +torchaudio==2.11.0 +torchcodec==0.10.0 +torchvision==0.25.0 +tqdm==4.67.3 +traitlets==5.15.0 +transforms3d==0.4.2 +trimesh==4.12.2 +triton==3.6.0 +typeguard==4.5.2 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +tyro==1.0.13 +tzdata==2026.2 +urllib3==2.7.0 +vhacdx==0.0.10 +viser==1.0.27 +vtk==9.6.1 +wandb==0.24.2 +wcwidth==0.7.0 +websockets==16.0 +Werkzeug==3.1.8 +wheel==0.46.3 +widgetsnbextension==4.0.15 +wrapt==2.1.2 +xxhash==3.7.0 +yarl==1.23.0 +yourdfpy==0.0.60 +z3-solver==4.16.0.0 +zipp==3.23.1 +zstandard==0.25.0 diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/findings.md b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/findings.md new file mode 100644 index 0000000000000000000000000000000000000000..1bc8396231780a9943152aacc7e2c458f75a9e02 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/findings.md @@ -0,0 +1,9 @@ +# D20/E20 findings + +Only this task's 20 authorized demos and legal API exploration were used. No neural weights were trained or loaded. See ../demo_analysis.md and ../exploration/findings.md for provenance and exploration details. + +The original all-demo nearest-state policy stalled at contact in episode 1 (finished at step 205, native success false). It also apparently missed one grasp. The current controller uses an initial top-view rope line and tube centroid to select a demonstration, advances its phase, and corrects actions using current arm joint errors. Correction matrices are local ridge regressions over authorized demo joint transitions, not simulator-derived kinematics. + +Episode 2 tracked demo_01 and returned native success true at step 154. Joint errors stayed small; both grippers around .009 m during lifting. This single exploratory result does not establish general reliability. The initial tube feature threshold was corrected during episode initialization; the current bundle consistently uses the broader threshold and fixed image size. Exact independent rehearsal is still required. + +Localization: HSV rope mask and low-saturation translucent tube region in initial top view. Pose: qpos reference and empirical differential map, with correction clipped to .12 normalized units. Grasp/timing: demo gripper targets and reference phase. Recovery: no regrasp yet; fixed reference extension 35 calls, then stop. Failures: ambiguous tube mask, wrong reference, missed grasp, fixed timing, thin-rope occlusion, regression errors. Runtime never calls environment APIs or networks and never asserts task success itself. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/freeze_manifest.json b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/freeze_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..189db908ac9cf0a4ab99cfb2ec153176d5920cae --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/freeze_manifest.json @@ -0,0 +1,163 @@ +{ + "files": { + "__pycache__/build_memory.cpython-310.pyc": "2fc69b8a756179351607083faed5aab70502722cb18a07bff414d6afa352b397", + "__pycache__/check_synthetic.cpython-310.pyc": "8acbed9fa9fcfe707a9a04742c351c3b00339dcbe6299fb1f4f788e7d5afd098", + "__pycache__/controller.cpython-310.pyc": "afb1c90c86a612b9281e279a446e8f5c7919e71064c0ae297b246841d0b8eeb9", + "adaptation.npz": "f698355198c62629493ad2057114d7d10478df7356bd2a9fe6839ee52e6e8255", + "build_memory.py": "96bbae6b1d17699dcabc8ede6a475e70f433ba398e7fde62bf8d1876eb44eae2", + "check_synthetic.py": "498769c54e993cfb1c098a4256d8f9aa1db75fa5fb762b6b5fd0a84ac10620cd", + "compile_adaptation.py": "5201e8c86084f45b2dee46c65762da9be780bbdd7760afb8de63d8ef4be5c0c4", + "compile_tracking.py": "992f3ba3866279a25164f97d8bf52201fc63b477b763c30c58e0700b37853be8", + "controller.py": "ed1e65741a1dd43aa5f544aba0fa6b50471fdc2996db07c0c01ab371f28a5516", + "demo_manifest.json": "4e4f231a191a827c9f98a7d0d50fdb0b9a33c779b301153ae358e340898a1c3c", + "demonstrations_readonly/demo_00.h5": "911a73a9e7e0a2dd47d0843c677de5d1990bab15217efa0dac50b04bc094d99f", + "demonstrations_readonly/demo_01.h5": "66cd80c999248394c21897309950434257a0487b98dac2550e29370e9722617a", + "demonstrations_readonly/demo_02.h5": "576802479c2879c8ca2766764d2cb401055e2117fab498678e8148851b43f164", + "demonstrations_readonly/demo_03.h5": "1380a8150a49dcffb18a29b50c32cfe91e11d933893a1d92c3e594c8619c0429", + "demonstrations_readonly/demo_04.h5": "0c8a2265c73d228e50958177cdf65dea798526f028549fe226ded6f034c03ef8", + "demonstrations_readonly/demo_05.h5": "b932163532d48b1f5ca50bb12c78eb1622dd99be7537c4b5ff575a4262919491", + "demonstrations_readonly/demo_06.h5": "e38778c8f5405a2e255042e69f7435b69a73a862f4f3510462485ae08f733ccd", + "demonstrations_readonly/demo_07.h5": "b2e62c6f30dcffdb8777c384a0838c20080821f8ae1ff2d8cd5de1bed46ad26b", + "demonstrations_readonly/demo_08.h5": "5ab030c2b56ac6fc4b1fabf980b1c0609a27a1e2b7990e66342accec0507f903", + "demonstrations_readonly/demo_09.h5": "b335267e2b604b7d037323f613dd64c5a0b2b4484d6fbe7b55afcb6caf04b6b6", + "demonstrations_readonly/demo_10.h5": "1f1de83a0875b5d47ac96f8ccfbcf2e088aad9ade09f37c89c287d7571fd888e", + "demonstrations_readonly/demo_11.h5": "04307325c8e676f861ddd351017b0c38d32ccc3d90fbb045e00e74d5b75b6682", + "demonstrations_readonly/demo_12.h5": "e3e0081282ca733355a0699ccee785825581e90d4d35ee7d229b78aa8134ad35", + "demonstrations_readonly/demo_13.h5": "837eac7f8f30d1d95f3c7ed092172a0a50319f2d2bdb78b7eb247a7b1119919d", + "demonstrations_readonly/demo_14.h5": "989c1755d26c6db10af7dbdba8c669230dc3d026699fa0c95510a0c5407c9df4", + "demonstrations_readonly/demo_15.h5": "5eb117eb8ca1376cf3a01ab5ddbfa46fd71a1593665e207c66ada2fa383b8271", + "demonstrations_readonly/demo_16.h5": "fc4d973ce13dff519145347d3a6f8269ae529cea4536e55c488547ccccd54588", + "demonstrations_readonly/demo_17.h5": "f483248e9820bb421236f8fd0d45a239c8c8ce4189a798363026ea7381c15f23", + "demonstrations_readonly/demo_18.h5": "cdae7ca37397fee7f848b793af894cfc12e3b8d49460d952b62c67cfffb30de8", + "demonstrations_readonly/demo_19.h5": "1f774ed8348965faee53921a3238c698c8ac50c809636c824ad00de4b80ab4ac", + "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa", + "findings.md": "da17bf3d16c752912582285a78afcccfc0cae54966202b40390f9121199d45cd", + "geometry.py": "0c94bc9f423041726bb6f373025e87caeca9de81a8b44cf141f44adaa0c7f38a", + "handoff.md": "820dc64ab5462163f3b06e8bf870ccf8d2837f86b967d4c9ac084f3b0f8ef439", + "memory.npz": "f9b9fbc20765008eaa1f5faeef81344cf4a10d599dbad7129a111ef668c7ed80", + "memory_provenance.json": "f8ef87336c1f503e76c52ebd3a03131efd7e17aa52fdfcb5471e5386b20a58cc", + "model_tool_manifest.yaml": "48fbabe3d084dc6da5ecfacb416b8f627c83dd0d5019460fb16d8743e717775e", + "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e", + "retrieval.py": "a7cbe3ca20bdac64dc10a349df87cb91301001a02976bc395d51427ecb9dc3b4", + "skills.md": "1d5edfd1745cbb85c44ddf045d4854d5fa285754616b7c7011f9ec593e9cf074", + "synthetic_checks.json": "2692d128b27518e178f238af277a14af14a22d9dddfff142ce2b367fed7e36c4", + "tracking.npz": "c420fc3124a9e3dbf02ea2af20e7d8daf680c57d8d962a384f9faf512a169f0b", + "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e" + }, + "bundle_hash": "4b124742f2b6a35aa554b506ee4002e2a010fc98ebc2cc8b4beed124336ad060", + "exploration_ledger_hash": "5f6c74e11a5bccb36019975dcc3ec5db6e2922016e221655976fd8be723ecba0", + "entrypoint": "controller.reset_episode(); controller.act(obs)", + "selection": { + "rule": "exact-version success rate, valid rehearsal count, recency", + "rehearsals": [ + { + "bundle_hash": "4b124742f2b6a35aa554b506ee4002e2a010fc98ebc2cc8b4beed124336ad060", + "episode": 3, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": true, + "valid": true + }, + { + "bundle_hash": "4b124742f2b6a35aa554b506ee4002e2a010fc98ebc2cc8b4beed124336ad060", + "episode": 4, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "fa159264c91f11d36c12dccfca21f07f6ab8b652d440595951a1cfc3782e8283", + "episode": 7, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "bundle_hash": "df205f4c1146ace6f4fb0dec887c3fdba5e155f90291bca667488d8bb428c29a", + "episode": 11, + "independent": true, + "score_source": "native_step_feedback", + "status": "finished", + "success": false, + "valid": true + }, + { + "episode": 13, + "bundle_hash": "63cd79ea829ada6a1dde14a7c9e2b22d134bc08f9526a6fb1c8f1b60955b2d52", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 14, + "bundle_hash": "4b124742f2b6a35aa554b506ee4002e2a010fc98ebc2cc8b4beed124336ad060", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 15, + "bundle_hash": "4b124742f2b6a35aa554b506ee4002e2a010fc98ebc2cc8b4beed124336ad060", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 16, + "bundle_hash": "4b124742f2b6a35aa554b506ee4002e2a010fc98ebc2cc8b4beed124336ad060", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 17, + "bundle_hash": "4b124742f2b6a35aa554b506ee4002e2a010fc98ebc2cc8b4beed124336ad060", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 18, + "bundle_hash": "4b124742f2b6a35aa554b506ee4002e2a010fc98ebc2cc8b4beed124336ad060", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 19, + "bundle_hash": "4b124742f2b6a35aa554b506ee4002e2a010fc98ebc2cc8b4beed124336ad060", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 20, + "bundle_hash": "4b124742f2b6a35aa554b506ee4002e2a010fc98ebc2cc8b4beed124336ad060", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + } + ] + } +} diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/geometry.py b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/geometry.py new file mode 100644 index 0000000000000000000000000000000000000000..866483dba40b97183ab46045338efb0b85fd94c6 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/geometry.py @@ -0,0 +1,15 @@ +import cv2,numpy as np +def scene(im): + im=cv2.resize(im,(480,640),interpolation=cv2.INTER_LINEAR) + h=cv2.cvtColor(im,cv2.COLOR_RGB2HSV);mask=(h[:,:,0]>=5)&(h[:,:,0]<=20)&(h[:,:,1]>170)&(h[:,:,2]>100) + yy,xx=np.where(mask);sel=(xx>100)&(yy>180)&(yy<470);xx=xx[sel];yy=yy[sel] + if len(xx)<10:return np.zeros(5,np.float32) + slope,intercept=np.polyfit(xx,yy,1) + end=np.percentile(xx,1) + # tube segmentation in the unoccluded central region of the initial view + tube=((h[:,:,1]<75)&(h[:,:,2]>120)&(h[:,:,2]<245)).astype(np.uint8) + tube[:240]=0;tube[440:]=0;tube[:,:70]=0;tube[:,230:]=0 + n,l,stats,cent=cv2.connectedComponentsWithStats(tube) + ids=[i for i in range(1,n) if 150=4)&(hsv[:,:,0]<=25)&(hsv[:,:,1]>130)&(hsv[:,:,2]>95)).astype(np.float32) + mask=cv2.resize(mask,(16,12),interpolation=cv2.INTER_AREA) + out.extend([(small/.20).ravel(),(mask/.15).ravel()]) + return np.concatenate(out).astype(np.float32) + + +def proprio_features(p): + out=[] + for path in PATHS: + x=np.asarray(p[path],dtype=np.float32).reshape(-1) + if x.size!=9 or not np.isfinite(x).all(): + raise ValueError('Expected nine finite Panda joint values') + scale=np.array([.30]*7+[.025]*2) if path.endswith('qpos') else np.array([1.5]*7+[.15]*2) + out.append(x/scale) + return np.concatenate(out).astype(np.float32) + + +def reset_episode(): + global _bad,last_status + _bad=0 + last_status='ready_unrehearsed' + + +def _hold(p): + a=np.zeros(14,np.float32) + for r in range(2): + q=np.asarray(p[f'agent/panda-{r}/qpos']).reshape(-1) + a[r*7+6]=2*(float(q[7])+.01)/.05-1 + # Do not silently turn an invalid gripper hold into a different target. + return a if np.isfinite(a).all() and np.all(np.abs(a)<=1) else None + + +def act(obs): + global _BANK,_bad,last_status + if int(obs['step_id'])>=470: + last_status='native_horizon_exhausted'; return None + if int(obs['step_id'])<1: + raise ValueError('Runner must perform the charged initial hold') + if _BANK is None: + with np.load(Path(__file__).with_name('memory.npz'),allow_pickle=False) as z: + _BANK={k:z[k] for k in ('proprio','vision','actions')} + try: + p=proprio_features(obs['proprioception']);v=image_features(obs['rgb']) + except (KeyError,ValueError,TypeError): + last_status='invalid_observation'; return None + # Recompute candidates from CURRENT observation on every call. No episode, + # seed, initial-scene identity, demo clock, or trajectory commitment is used. + pd=np.mean((_BANK['proprio']-p)**2,axis=1) + count=min(384,len(pd)); candidates=np.argpartition(pd,count-1)[:count] + vd=np.mean((_BANK['vision'][candidates].astype(np.float32)-v)**2,axis=1) + score=pd[candidates]+.65*vd + order=np.argsort(score); best=candidates[order[0]] + if pd[best]>9 or vd[order[0]]>4: + _bad+=1;last_status='out_of_support_hold' + if _bad>=20: + last_status='out_of_support_stop';return None + return _hold(obs['proprioception']) + _bad=0 + # Never average open and closed targets, or opposite two-arm grasp modes. + mode=_BANK['actions'][best,[6,13]] + ranked=candidates[order] + same=np.all(_BANK['actions'][ranked][:,[6,13]]==mode,axis=1) + chosen=ranked[same][:5]; ss=score[order][same][:5] + w=np.exp(-(ss-ss.min())/.08); w/=w.sum() + action=np.sum(_BANK['actions'][chosen]*w[:,None],axis=0) + action[[6,13]]=mode + last_status='observation_conditioned_action' + return np.clip(action,-1,1).astype(np.float32) diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/skills.md b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/skills.md new file mode 100644 index 0000000000000000000000000000000000000000..60361cd08b802d993f4b32ab23076b796fc85c65 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/skills.md @@ -0,0 +1,9 @@ +# Implemented methods + +- Normalize top-camera resolution; extract orange rope line and translucent tube centroid. +- Select a reference only from this task's authorized D20 bank. +- Track demonstrated poses with current joint feedback and bounded empirical differential corrections. +- Preserve native two-arm action ordering, gripper targets, and horizon. +- Stop after reference extension or at horizon; do not claim success internally. + +Grasp recovery and visual tube-entry servo are not implemented. Single exploratory native success does not imply reliable skill. diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/synthetic_checks.json b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/synthetic_checks.json new file mode 100644 index 0000000000000000000000000000000000000000..b5c1ced3066b42df0b4d2e727961230a5b477743 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/synthetic_checks.json @@ -0,0 +1,18 @@ +{ + "syntax": "passed", + "synthetic_checks": "passed", + "checks": [ + "14-wide finite bounded output or None", + "vision sensitivity on artificial bank", + "proprioception sensitivity on artificial bank", + "HWC and 1HWC equivalence", + "horizon stop", + "missing camera handling", + "invalid hold rejected", + "episode reset" + ], + "actual_bank_synthetic_input_status": "out_of_support_hold", + "first_call_seconds_including_load": 0.25404375698417425, + "environment_episodes": 0, + "success_evidence": null +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/worker_api.py b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/worker_api.py new file mode 100644 index 0000000000000000000000000000000000000000..ff137d1c68cb70a1549326d2d22b430c9cf4e20c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/DualArmThreadRopeThroughTube-v1/frozen/worker_api.py @@ -0,0 +1,81 @@ +"""Standalone worker client; safe to mount without the runner package.""" +import base64 +import json +import socket +import struct +import uuid +import os +from pathlib import Path + +import numpy as np + + +def array_hook(value): + if value.get('__array__') is True: + dtype=np.dtype(value['dtype']) + if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service') + raw=base64.b64decode(value['data'],validate=True) + return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy() + return value + + +class API: + def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'): + self.socket_path=socket_path + self.demo_root=Path(demo_root) + self.manifest=Path(manifest) + + def call(self,method,arguments=None,request_id=None): + # Caller can persist a request ID before sending. Never automatically retry. + request_id=request_id or str(uuid.uuid4()) + request={'request_id':request_id,'method':method,'arguments':arguments or {}} + if os.environ.get('AGENT_E20_RPC_TOKEN'): + request['token']=os.environ['AGENT_E20_RPC_TOKEN'] + payload=json.dumps(request,allow_nan=False).encode() + if len(payload)>65536:raise ValueError('request too large') + with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s: + s.settimeout(1810);s.connect(self.socket_path) + s.sendall(struct.pack('!I',len(payload))+payload) + def exact(n): + chunks=[] + while n: + chunk=s.recv(min(n,1024*1024)) + if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID') + chunks.append(chunk);n-=len(chunk) + return b''.join(chunks) + length=struct.unpack('!I',exact(4))[0] + if length>64*1024*1024:raise RuntimeError('response too large') + result=json.loads(exact(length),object_hook=array_hook) + if not result['ok']:raise RuntimeError(result['error']) + return result['result'] + + def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id) + def latest_observation(self):return self.call('latest_observation') + def execute_actions(self,actions,request_id=None): + return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id) + def finish_episode(self):return self.call('finish_episode') + def budget_status(self):return self.call('budget_status') + def rehearse(self,candidate='candidate',request_id=None): + return self.call('rehearse',{'candidate':candidate},request_id) + def score_rehearsal(self,episode,visible_success,evidence): + return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence}) + def freeze(self):return self.call('freeze') + + def read_demo(self,demo_id,start=0,stop=None,fields=None): + import h5py + manifest=json.loads(self.manifest.read_text()) + if manifest.get('status') not in ('released','released_for_offline_analysis'): + raise RuntimeError('demonstrations not released by trusted preflight') + entries={e['demo_id']:e for e in manifest['episodes']} + if demo_id not in entries:raise ValueError('unauthorized demo ID') + entry=entries[demo_id] + allowed={f['path'] for f in entry['fields']} + fields=sorted(allowed) if fields is None else fields + if not set(fields)<=allowed:raise ValueError('unauthorized demo field') + stop=entry['length']+1 if stop is None else stop + if not isinstance(start,int) or not isinstance(stop,int) or not 0<=startx[0] +c._bank['q'][:]=0 +c.reset_episode();x=c.act(obs(0,0)) +c.reset_episode();z=c.act(obs(0,26));assert z[0]>x[0] # Isolated RGB feedback +assert c.act(obs(step=300)) is None +c.reset_episode() +for i in range(14): assert np.all(c.act({'step_id':i+1})==0) +assert c.act({'step_id':15}) is None +c.reset_episode();assert c.act(obs()) is not None +print('PASS: bank integrity, synthetic feedback, batching, bounds, reset, malformed input, horizon. No task execution.') diff --git a/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/controller.py b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/controller.py new file mode 100644 index 0000000000000000000000000000000000000000..b8cc3c07831091f43a974bba3375ad4cb3215c0b --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/controller.py @@ -0,0 +1,104 @@ +"""Unrehearsed D20 observation-conditioned action retrieval draft. +No simulator, neural model, hidden state, trajectory/seed matching or online fitting. +""" +from pathlib import Path +import importlib.util +import numpy as np + +_spec = importlib.util.spec_from_file_location('_d20_features', Path(__file__).with_name('features.py')) +_features = importlib.util.module_from_spec(_spec) +_spec.loader.exec_module(_features) +_bank = None +_object = None +_bad = 0 +_last_step = 0 +_last_action = None + +def _load(): + global _bank + if _bank is None: + with np.load(Path(__file__).with_name('reference_bank.npz'), allow_pickle=False) as f: + _bank = {k: f[k] for k in ('q', 'v', 'a', 'rgb', 'terminal')} + _bank['centers'] = np.load(Path(__file__).with_name('object_centers.npy')) + _bank['scale'] = np.maximum(_bank['q'].std(0), .15) + return _bank + +def reset_episode(): + global _bad, _last_step, _last_action, _object + _object = None + _bad = 0 + _last_step = 0 + _last_action = None + +def _reject(): + global _bad + _bad += 1 + # Zero deltas are a legal hold for this arm and dexterous hand. + return None if _bad >= 15 else np.zeros(22, dtype=np.float32) + +def act(obs): + global _bad, _last_step, _last_action, _object + try: + step = int(obs['step_id']) + except (KeyError, TypeError, ValueError): + return _reject() + # Hold was already charged by runner; only steps 1..299 remain. + if step >= 300: + return None + if step < 1: + return _reject() + if step == _last_step and _last_action is not None: + return _last_action.copy() + if step < _last_step: + reset_episode() + _last_step = step + _last_action = None + try: + p = obs['proprioception'] + q = np.asarray(p['agent/qpos'], dtype=np.float32).reshape(-1) + v = np.asarray(p['agent/qvel'], dtype=np.float32).reshape(-1) + if q.shape != (23,) or v.shape != (23,) or not np.isfinite(q).all() or not np.isfinite(v).all(): + return _reject() + images = obs['rgb'] + cams = [i for i,c in enumerate(_features.CAMERAS) if c in images] + if len(cams) < 2: + return _reject() + x = [_features.describe(images[_features.CAMERAS[i]]) for i in cams] + except (KeyError, TypeError, ValueError): + return _reject() + b = _load() + if _object is None: + import cv2 + im=cv2.resize(np.asarray(images['left_camera']).squeeze(),(640,480)) + mask=((im.min(2)>175)&(im.max(2)-im.min(2)<55)).astype('uint8') + mask[:215]=0;mask[:,:200]=0;mask[:,500:]=0 + n,l,stats,c=cv2.connectedComponentsWithStats(mask) + if n>1: _object=c[1+np.argmax(stats[1:,4])] + + visual = np.zeros(len(b['q']), dtype=np.float32) + for i, desc in zip(cams, x): + visual += np.mean((b['rgb'][:,i] - desc)**2, axis=1) / len(cams) + dq = (b['q'] - q) / b['scale'] + posture = .65 * np.mean(dq[:,:7]**2, axis=1) + .35 * np.mean(dq[:,7:]**2, axis=1) + velocity = np.mean(np.minimum((b['v']-v)**2, 4), axis=1) + score = posture + 120 * visual + .02 * velocity + if _object is not None: + score += np.sum((b['centers']-_object)**2,axis=1)/400 + best = int(np.argmin(score)) + # Hand-set uncertainty gates; uncalibrated until a later authorized stage. + if visual[best] > .035 or posture[best] > 6: + return _reject() + _bad = 0 + # Terminal observation has no expert action: hold, do not claim success. + if b['terminal'][best] > .5: + action = np.zeros(22, dtype=np.float32) + else: + # Do not average approach and lift directions across a phase boundary. + compatible = (np.sign(b['a'][:,1]) == np.sign(b['a'][best,1])) & (b['terminal'] < .5) + ids = np.flatnonzero(compatible) + ids = ids[np.argsort(score[ids])[:5]] + weights = np.exp(-(score[ids]-score[ids].min()) / .08) + action = np.average(b['a'][ids], axis=0, weights=weights) + action = np.clip(action, -1, 1).astype(np.float32) + _last_action = action.copy() + return action diff --git a/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/demo_manifest.json b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/demo_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..970ca4a8610630b901503a88b44269f4d482fba7 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/demo_manifest.json @@ -0,0 +1,1488 @@ +{ + "task_id": "LiftBucket-v1", + "status": "released", + "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data", + "lineage_status": "pinned_comparator", + "episodes": [ + { + "demo_id": "demo_00", + "file": "demo_00.h5", + "length": 181, + "fields": [ + { + "path": "actions", + "shape": [ + 181, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 182, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 182, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 182, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 182, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 182, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 182, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e4ee39011317bc1c8a1008612fa7d3134e4f70f5f0fc324043a23bee1ce04ba1", + "source_sha256": "832ce2953f3a56a50151d5bce711200c6768e1d844100307e2410b65b78ffe0d", + "view_sha256": "a2db78556e7ab5db7027dbe30dffad9e9b3fe7998a479f27480a8b51d62b2f99" + }, + { + "demo_id": "demo_01", + "file": "demo_01.h5", + "length": 194, + "fields": [ + { + "path": "actions", + "shape": [ + 194, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 195, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 195, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 195, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 195, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 195, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 195, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "52603b895c78c8bb41760b418a9a794699157a21f221017a90fdcdc551b981d8", + "source_sha256": "a9685d46014ce6f57b1b9eb1f7efd81b1eab70e918d352595b4f96cbde30cafd", + "view_sha256": "7582261a394c48410ccb587d580ee1aa364ab6486d4bf40cdbcefbd67bc68d0b" + }, + { + "demo_id": "demo_02", + "file": "demo_02.h5", + "length": 194, + "fields": [ + { + "path": "actions", + "shape": [ + 194, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 195, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 195, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 195, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 195, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 195, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 195, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "2de7c06e6a058abb7478a93310a68b9efd9a75f858bc5a067c6ce790ef424f3a", + "source_sha256": "243cd5b117ad1fd36819645c6bc91cb2005293c854402e11e9f462cfafa43e12", + "view_sha256": "a45f5099d7c6de672f2eb7234500467a9e8872ec10d134bae872a22e556ca6a7" + }, + { + "demo_id": "demo_03", + "file": "demo_03.h5", + "length": 177, + "fields": [ + { + "path": "actions", + "shape": [ + 177, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 178, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 178, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 178, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 178, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 178, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 178, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "1785d337c03b5844c7c47759fddf3426231eeb7ed15b72b748d9d52708c1b8d3", + "source_sha256": "bd64ba35250e8087bdaf6ba7dd65b1998142cb2447ece173f45e971d3c969f2d", + "view_sha256": "e51f79b7609dc3cbdd9005039048bc52476cbfa7935d4552dc0052d2a4ba9531" + }, + { + "demo_id": "demo_04", + "file": "demo_04.h5", + "length": 161, + "fields": [ + { + "path": "actions", + "shape": [ + 161, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 162, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 162, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 162, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 162, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 162, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 162, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "d67aebd4ac1bb709b7465efb1c46ef91588d4d407eed8b9b3451df7c2f3bd6a9", + "source_sha256": "a588a2f48486fc02ea9a18e9d66d73567a6c1845ccaaf3ec17ad9fe63063ddc7", + "view_sha256": "07eb892bee2938f8c033471b9f6ebf2441355dd4d8e2fb652c9177644999b682" + }, + { + "demo_id": "demo_05", + "file": "demo_05.h5", + "length": 173, + "fields": [ + { + "path": "actions", + "shape": [ + 173, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 174, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 174, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 174, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 174, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 174, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 174, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "5e692eba6856934930900667cdf793a5faa0a2be32954c486a1da9c744b250b7", + "source_sha256": "6878d994f5b9347e3352427ebf71afe8ed8528bf4e60521db71d0ede3c88eeab", + "view_sha256": "393d5d02cb946206345a0d90cdac9adf05f71615cc09cb47f8634a7727271ad7" + }, + { + "demo_id": "demo_06", + "file": "demo_06.h5", + "length": 153, + "fields": [ + { + "path": "actions", + "shape": [ + 153, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 154, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 154, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 154, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 154, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 154, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 154, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "ec083f48c155e18ebb063170b3b5da2d3ec6d2c7896f21c431c98fcc2d0b9ae6", + "source_sha256": "d74eb5617b73227300a976f131582b9c2c2c505a78416fad01c65d984840cfbb", + "view_sha256": "1fc2a022ea78959bdea090f96678e54eea303a4588d01548f95543e06839fbac" + }, + { + "demo_id": "demo_07", + "file": "demo_07.h5", + "length": 185, + "fields": [ + { + "path": "actions", + "shape": [ + 185, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 186, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 186, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 186, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 186, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 186, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 186, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e57666bca80b9ed480033b5556d991e4a1cda4321251beaaf4d95cbcdfc8e687", + "source_sha256": "46f7ead47cebc77c0f65694fa1c371038e968693ff9275abc895ebc1e7cc9ba9", + "view_sha256": "37604c580a6ce0b0e6b02a5bf31ef73afc04d4a9edbafc68dffcda4cb210b590" + }, + { + "demo_id": "demo_08", + "file": "demo_08.h5", + "length": 157, + "fields": [ + { + "path": "actions", + "shape": [ + 157, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 158, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 158, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 158, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 158, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 158, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 158, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "101e677f2710837993085a6e914292f2ef5ab4657ef8f02d6e1f22c06a829e8f", + "source_sha256": "05e1fcee5296c1b975456219abe83647ddb4b243095a97eeaaada57f0181ae98", + "view_sha256": "8c1eb9a2045eb313fe8b4d2588b9083a0a3a570facc5c599326760ec8159d651" + }, + { + "demo_id": "demo_09", + "file": "demo_09.h5", + "length": 162, + "fields": [ + { + "path": "actions", + "shape": [ + 162, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 163, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 163, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 163, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "7c0b48bfcae77b91a6626e3ea45ab772f003d5635a5ba4ab302d4d4bff8a6927", + "source_sha256": "2bf3564528d575c7307c828197e4aa6d6f0a742fca45435d4a264882f751f652", + "view_sha256": "044d0f171bee140b716f7b2a07c289a08662e9286637457a074e7819b2a9fc37" + }, + { + "demo_id": "demo_10", + "file": "demo_10.h5", + "length": 154, + "fields": [ + { + "path": "actions", + "shape": [ + 154, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 155, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 155, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 155, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 155, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 155, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 155, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "9ab78bf379869e42e19fd611f39f4b1fe32542ea7225541d1fa6b20a79933102", + "source_sha256": "2d1b9e7885bd93af8c82a3656cf8e6a2421f8950ef62cbb11e1c8fbaa8e1a7c8", + "view_sha256": "91487675848b8a697b79f0aa6b9a6b7af3cd744b475d44643a1e301ba33d5c01" + }, + { + "demo_id": "demo_11", + "file": "demo_11.h5", + "length": 154, + "fields": [ + { + "path": "actions", + "shape": [ + 154, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 155, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 155, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 155, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 155, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 155, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 155, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "7b95eb002f18e07e706a2cea093340033bc35da69018c813b7f9d023d7b76339", + "source_sha256": "21748c3c730cc67f6aee6911d004437c2bd844a7bf182bfa2e19a04eb0e3d9a4", + "view_sha256": "8bbfbba672419156a8c50d76ee3ed1572d9bc9389fe8ce05b92bfa9791ab723e" + }, + { + "demo_id": "demo_12", + "file": "demo_12.h5", + "length": 179, + "fields": [ + { + "path": "actions", + "shape": [ + 179, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 180, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 180, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 180, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 180, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 180, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 180, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "d8cff2dac10ed46dc660de6abc17f2b6ef8881c011d1a6794167f79af303e91b", + "source_sha256": "9a06eb9d3215aa8aa6d8ed5a5ced1df37eb63ecad921e472c212e5a42ced6f7b", + "view_sha256": "43ccc3ce75ba238379e2d7ca84b2bb765899b01e2141807f98d487130ff71f22" + }, + { + "demo_id": "demo_13", + "file": "demo_13.h5", + "length": 191, + "fields": [ + { + "path": "actions", + "shape": [ + 191, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 192, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 192, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 192, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 192, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 192, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 192, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "ab03a949d84646a7a941873f73b0dc93d7b9eb4713d604290dfb3c36ed7a0e10", + "source_sha256": "955a9dcf7e6c62780c99bd98373e2fa4c724d5578111c631f87e9405267c621c", + "view_sha256": "b5b9fcbb94371ca63e1a075f7bc3aef05e42b099228878bdcf83437963ca1ed5" + }, + { + "demo_id": "demo_14", + "file": "demo_14.h5", + "length": 201, + "fields": [ + { + "path": "actions", + "shape": [ + 201, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 202, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 202, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 202, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 202, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 202, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 202, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "2d4f317cb6e10bcbf570623a21dc592c8f28dd6269a6ba9157d9f2c04d3716a8", + "source_sha256": "05e1d4a33d8d7e16415505f1d95a8c4e5aaffc2f1f29b9cb0e3f1ad7ccca4627", + "view_sha256": "17d36f9e940e227aaeddc7f42df26cbf2920c5aa06484889861d37dc15752917" + }, + { + "demo_id": "demo_15", + "file": "demo_15.h5", + "length": 179, + "fields": [ + { + "path": "actions", + "shape": [ + 179, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 180, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 180, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 180, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 180, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 180, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 180, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e543759a9d427d0e2ec584f496f8340c162740b09f2f0913ee445a05faa27424", + "source_sha256": "7fb0830c89535feb5548ceb0d2ce534424159e27474e46ae4ceb225054852ca9", + "view_sha256": "661c14734b4b4c2009453f0dc61a726e45d0781cff8f163bd82b7cf3081103cd" + }, + { + "demo_id": "demo_16", + "file": "demo_16.h5", + "length": 153, + "fields": [ + { + "path": "actions", + "shape": [ + 153, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 154, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 154, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 154, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 154, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 154, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 154, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "e535548a84a67eecbde9c51566c0e32c4dc5d9e3da491e40ca32ec5ce270d3d2", + "source_sha256": "a4e2ff0873dd014fb07e7f02fd53b833420e4e381ab3f504c2b525a599fa3636", + "view_sha256": "78b4eea560262189bda17414c4179ead232b1894b1cc146dd1a650e67b3f2698" + }, + { + "demo_id": "demo_17", + "file": "demo_17.h5", + "length": 168, + "fields": [ + { + "path": "actions", + "shape": [ + 168, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 169, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 169, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 169, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "10fd77cd973c69c934a5043d6895abe5f152cb9bf1328e61fb80d791f61e72d3", + "source_sha256": "d9819ab15f4bf14dac0bffb089a8a8c9bef0f71bc33621fa3f1f7d8d1c49d7af", + "view_sha256": "a3ed87059e9352f9d46c32a8595dd45dea3c6223ae1c037119c7240271b9d6da" + }, + { + "demo_id": "demo_18", + "file": "demo_18.h5", + "length": 190, + "fields": [ + { + "path": "actions", + "shape": [ + 190, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 191, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 191, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 191, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 191, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 191, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 191, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "82b9d369d386678f454c97de29c64513c46b290749229dc5113607ed1e8c89ba", + "source_sha256": "06aa85a19b349f249aa3c01b695375954756c1d92c0e8841724e33ed8a051669", + "view_sha256": "54c0b13e6f82d2698b193b3aa88deb89fa4435621d58f90de6ffa1295c8fd613" + }, + { + "demo_id": "demo_19", + "file": "demo_19.h5", + "length": 162, + "fields": [ + { + "path": "actions", + "shape": [ + 162, + 22 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 163, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 163, + 23 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 163, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "d25e7c1405530d9075e85ca93c927085886244bd7fc25745c1b2d3fd1234f54f", + "source_sha256": "302994beb2c53b1d5d1fa8fb7766e217ef7c5ded1b8423093906993377aceab0", + "view_sha256": "7efc0fe4f8262caf3494c6c801bf89b768384bfc34ca814abdf53d5ea6b5c14b" + } + ] +} diff --git a/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/environment.lock b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/environment.lock new file mode 100644 index 0000000000000000000000000000000000000000..b2237f47d93aa4c3efad07728ae6acd137912d6d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/environment.lock @@ -0,0 +1,249 @@ +absl-py==2.4.0 +accelerate==1.13.0 +addict==2.4.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.13.5 +aiosignal==1.4.0 +annotated-types==0.7.0 +anyio==4.13.0 +anytree==2.13.0 +asttokens==3.0.1 +async-timeout==5.0.1 +attrs==26.1.0 +av==15.1.0 +blinker==1.9.0 +casadi==3.7.2 +certifi==2026.4.22 +cffi==2.0.0 +charset-normalizer==3.4.7 +click==8.3.3 +cloudpickle==3.1.2 +cmake==4.1.3 +coacd==1.0.11 +colorama==0.4.6 +colorlog==6.10.1 +comm==0.2.3 +ConfigArgParse==1.7.5 +contourpy==1.3.2 +cuda-bindings==12.9.4 +cuda-pathfinder==1.5.4 +cycler==0.12.1 +dacite==1.9.2 +dash==4.1.0 +dataclasses-json==0.6.7 +datasets==4.8.5 +decorator==5.2.1 +deepdiff==8.6.2 +Deprecated==1.3.1 +diffusers==0.35.2 +dill==0.4.1 +docstring_parser==0.18.0 +draccus==0.10.0 +einops==0.8.2 +embreex==4.4.0 +etils==1.13.0 +evdev==1.9.3 +exceptiongroup==1.3.1 +executing==2.2.1 +Farama-Notifications==0.0.6 +fast_simplification==0.1.13 +fastjsonschema==2.21.2 +filelock==3.29.0 +Flask==3.1.3 +fonttools==4.63.0 +freetype-py==2.5.1 +frozenlist==1.8.0 +fsspec==2026.2.0 +genesis-world @ file:///data/gck/genesis-world +git-filter-repo==2.47.0 +gitdb==4.0.12 +GitPython==3.1.50 +glfw==2.10.0 +gs-madrona==0.0.5 +gstaichi==3.3.0 +gym==0.26.2 +gym-notices==0.1.0 +gymnasium==1.3.0 +h11==0.16.0 +h5py==3.16.0 +hf-xet==1.5.0 +hf_transfer==0.1.9 +httpcore==1.0.9 +httpx==0.28.1 +huggingface-hub==0.35.3 +idna==3.15 +ImageIO==2.37.3 +imageio-ffmpeg==0.6.0 +importlib_metadata==9.0.0 +importlib_resources==7.1.0 +inquirerpy==0.3.4 +ipython==8.39.0 +ipywidgets==8.1.8 +itsdangerous==2.2.0 +jedi==0.20.0 +Jinja2==3.1.6 +joblib==1.5.3 +jsonlines==4.0.0 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +jupyter_core==5.9.1 +jupyterlab_widgets==3.0.16 +kiwisolver==1.5.0 +lazy-loader==0.5 +lerobot==0.4.4 +libigl==2.6.2 +llvmlite==0.47.0 +loguru==0.7.3 +lxml==6.1.0 +manifold3d==3.4.1 +-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder +mapbox_earcut==2.0.0 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +marshmallow==3.26.2 +matplotlib==3.10.9 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mergedeep==1.3.4 +moviepy==2.2.1 +mpmath==1.3.0 +msgspec==0.21.1 +mujoco==3.8.1 +multidict==6.7.1 +multiprocess==0.70.19 +mypy_extensions==1.1.0 +nbformat==5.10.4 +nest-asyncio==1.6.0 +networkx==3.4.2 +ninja==1.13.0 +nlopt==2.10.0 +numba==0.65.1 +numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d +nvidia-cublas-cu12==12.8.4.1 +nvidia-cuda-cupti-cu12==12.8.90 +nvidia-cuda-nvrtc-cu12==12.8.93 +nvidia-cuda-runtime-cu12==12.8.90 +nvidia-cudnn-cu12==9.10.2.21 +nvidia-cufft-cu12==11.3.3.83 +nvidia-cufile-cu12==1.13.1.3 +nvidia-curand-cu12==10.3.9.90 +nvidia-cusolver-cu12==11.7.3.90 +nvidia-cusparse-cu12==12.5.8.93 +nvidia-cusparselt-cu12==0.7.1 +nvidia-nccl-cu12==2.27.5 +nvidia-nvjitlink-cu12==12.8.93 +nvidia-nvshmem-cu12==3.4.5 +nvidia-nvtx-cu12==12.8.90 +open3d==0.19.0 +opencv-python==4.13.0.92 +opencv-python-headless==4.12.0.88 +OpenEXR==3.4.11 +orderly-set==5.5.0 +packaging==25.0 +pandas==2.3.3 +parso==0.8.7 +pexpect==4.9.0 +pfzy==0.3.4 +pillow==11.3.0 +pin==4.0.0 +pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work +platformdirs==4.9.6 +plotly==5.24.1 +polyscope==2.6.1 +proglog==0.1.12 +prompt_toolkit==3.0.52 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +pure_eval==0.2.3 +py-cpuinfo==9.0.0 +py-spy==0.4.2 +pyarrow==24.0.0 +pycollada==0.9.3 +pycparser==3.0 +pydantic==2.13.4 +pydantic_core==2.46.4 +PyGEL3D==0.6.1 +pyglet==2.1.14 +pygltflib==1.16.0 +Pygments==2.20.0 +pymeshlab==2025.7.post1 +pynput==1.8.2 +PyOpenGL==3.1.10 +pyparsing==3.3.2 +pyperclip==1.11.0 +PyQt6==6.11.0 +PyQt6-Qt6==6.11.0 +PyQt6_sip==13.11.1 +pyquaternion==0.9.9 +pyserial==3.5 +pysplashsurf==0.12.0.2 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +python-xlib==0.33 +pytransform3d==3.15.0 +pytz==2026.2 +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 +PyYAML==6.0.3 +pyyaml-include==1.4.1 +referencing==0.37.0 +regex==2026.5.9 +requests==2.34.2 +rerun-sdk==0.26.2 +retrying==1.4.2 +rich==14.3.4 +rpds-py==0.30.0 +rtree==1.4.1 +safetensors==0.7.0 +sapien==3.0.3 +scikit-image==0.25.2 +scikit-learn==1.7.2 +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 +sentry-sdk==2.60.0 +setuptools==80.10.2 +shapely==2.1.2 +six==1.17.0 +smmap==5.0.3 +stack-data==0.6.3 +svg.path==7.0 +sympy==1.14.0 +tenacity==9.1.4 +termcolor==3.3.0 +tetgen==0.8.4 +threadpoolctl==3.6.0 +tifffile==2025.5.10 +timm==1.0.27 +toml==0.10.2 +torch==2.10.0 +torchaudio==2.11.0 +torchcodec==0.10.0 +torchvision==0.25.0 +tqdm==4.67.3 +traitlets==5.15.0 +transforms3d==0.4.2 +trimesh==4.12.2 +triton==3.6.0 +typeguard==4.5.2 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +tyro==1.0.13 +tzdata==2026.2 +urllib3==2.7.0 +vhacdx==0.0.10 +viser==1.0.27 +vtk==9.6.1 +wandb==0.24.2 +wcwidth==0.7.0 +websockets==16.0 +Werkzeug==3.1.8 +wheel==0.46.3 +widgetsnbextension==4.0.15 +wrapt==2.1.2 +xxhash==3.7.0 +yarl==1.23.0 +yourdfpy==0.0.60 +z3-solver==4.16.0.0 +zipp==3.23.1 +zstandard==0.25.0 diff --git a/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/features.py b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/features.py new file mode 100644 index 0000000000000000000000000000000000000000..d47e1d7147d03904da3abf43993c4dda3b2461de --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/features.py @@ -0,0 +1,13 @@ +"""Deterministic RGB descriptor; no pretrained or fitted neural weights.""" +import cv2 +import numpy as np +CAMERAS = ('front_camera', 'left_camera', 'robot_camera', 'top_camera') +def describe(image): + im = np.asarray(image) + if im.ndim == 4 and im.shape[0] == 1: + im = im[0] + if im.ndim != 3 or im.shape[2] != 3 or im.dtype != np.uint8: + raise ValueError('RGB must be uint8 HWC or 1HWC') + # Preserve absolute image location: camera calibration is not provided. + small = cv2.resize(im, (24, 24), interpolation=cv2.INTER_AREA) + return (small.astype(np.float32) / 255).reshape(-1) diff --git a/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/findings.md b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/findings.md new file mode 100644 index 0000000000000000000000000000000000000000..272239f5167421c8d798dab5f2751bdeeea07af5 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/findings.md @@ -0,0 +1,5 @@ +# Findings + +All 20 authorized demos were analyzed: 3468 labels, 3488 legal observations; 160 front/left images visually inspected with exact indices in ../demo_analysis.md. Initial robot pose is invariant; bucket placement and approach duration vary. Arm rotations are zero, translations remain within +/-0.1 normalized, and hand closure begins at frames 73–117. Final images suggest bucket elevation by its handle, but do not reveal the actual success criterion. The instruction's “only the handle” wording remains ambiguous. + +The candidate is a nonparametric observation-conditioned action bank using all 20 demos. It has no verified performance. Camera calibration, hand joint names, completion thresholds, recovery, and robustness remain unknown. Synthetic interface checks pass; there have been zero environment episodes, rehearsals, or model-weight updates. See ../evidence/statistics.json for numeric per-demo evidence and ../demo_analysis.md for limitations. diff --git a/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/freeze_manifest.json b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/freeze_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..ffd961478433c81c7b3f302755ee7bd0f4fd322a --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/freeze_manifest.json @@ -0,0 +1,201 @@ +{ + "files": { + "__pycache__/check_synthetic.cpython-310.pyc": "1255743706024b8cbfc705698f1d243fad3286ca0bcd6c346ec23a8385160c83", + "__pycache__/controller.cpython-310.pyc": "cf5cdb363605a9ae0696e142b66d8a745fdac99b272b595f8e74c2a027792e68", + "__pycache__/features.cpython-310.pyc": "e3dd51879dd143c4b7edcaaa5a709b75ab335b408a5aa9e445a749a343e6dcba", + "check_synthetic.py": "36820273f06a2154cc9316410b17c04cc64bbb4e9922a9af70c25e7b630c4112", + "controller.py": "36d8efa5faf3a08a9f46419638d453f4a5150d69430786e2cf78f598d6314ba3", + "demo_manifest.json": "fdeeda7b8b40166e0b155af1d94bee0d1ee12ba30a9c31eb95232edde248e5b1", + "demonstrations_readonly/demo_00.h5": "a2db78556e7ab5db7027dbe30dffad9e9b3fe7998a479f27480a8b51d62b2f99", + "demonstrations_readonly/demo_01.h5": "7582261a394c48410ccb587d580ee1aa364ab6486d4bf40cdbcefbd67bc68d0b", + "demonstrations_readonly/demo_02.h5": "a45f5099d7c6de672f2eb7234500467a9e8872ec10d134bae872a22e556ca6a7", + "demonstrations_readonly/demo_03.h5": "e51f79b7609dc3cbdd9005039048bc52476cbfa7935d4552dc0052d2a4ba9531", + "demonstrations_readonly/demo_04.h5": "07eb892bee2938f8c033471b9f6ebf2441355dd4d8e2fb652c9177644999b682", + "demonstrations_readonly/demo_05.h5": "393d5d02cb946206345a0d90cdac9adf05f71615cc09cb47f8634a7727271ad7", + "demonstrations_readonly/demo_06.h5": "1fc2a022ea78959bdea090f96678e54eea303a4588d01548f95543e06839fbac", + "demonstrations_readonly/demo_07.h5": "37604c580a6ce0b0e6b02a5bf31ef73afc04d4a9edbafc68dffcda4cb210b590", + "demonstrations_readonly/demo_08.h5": "8c1eb9a2045eb313fe8b4d2588b9083a0a3a570facc5c599326760ec8159d651", + "demonstrations_readonly/demo_09.h5": "044d0f171bee140b716f7b2a07c289a08662e9286637457a074e7819b2a9fc37", + "demonstrations_readonly/demo_10.h5": "91487675848b8a697b79f0aa6b9a6b7af3cd744b475d44643a1e301ba33d5c01", + "demonstrations_readonly/demo_11.h5": "8bbfbba672419156a8c50d76ee3ed1572d9bc9389fe8ce05b92bfa9791ab723e", + "demonstrations_readonly/demo_12.h5": "43ccc3ce75ba238379e2d7ca84b2bb765899b01e2141807f98d487130ff71f22", + "demonstrations_readonly/demo_13.h5": "b5b9fcbb94371ca63e1a075f7bc3aef05e42b099228878bdcf83437963ca1ed5", + "demonstrations_readonly/demo_14.h5": "17d36f9e940e227aaeddc7f42df26cbf2920c5aa06484889861d37dc15752917", + "demonstrations_readonly/demo_15.h5": "661c14734b4b4c2009453f0dc61a726e45d0781cff8f163bd82b7cf3081103cd", + "demonstrations_readonly/demo_16.h5": "78b4eea560262189bda17414c4179ead232b1894b1cc146dd1a650e67b3f2698", + "demonstrations_readonly/demo_17.h5": "a3ed87059e9352f9d46c32a8595dd45dea3c6223ae1c037119c7240271b9d6da", + "demonstrations_readonly/demo_18.h5": "54c0b13e6f82d2698b193b3aa88deb89fa4435621d58f90de6ffa1295c8fd613", + "demonstrations_readonly/demo_19.h5": "7efc0fe4f8262caf3494c6c801bf89b768384bfc34ca814abdf53d5ea6b5c14b", + "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa", + "features.py": "059caffaa4e8dbced3e28e1fb54d0641f12982e24dc5def8e3ff67636ad2fa7a", + "findings.md": "2e0e8ae9ff956256da73a937e5d37ad074cc4f1d6dbac83181954739ed5e73ae", + "handoff.md": "8aa4ec83f5af5d3faa5c1820e948a8558e4a239a8bc9ac50aad1d96999e3b523", + "model_tool_manifest.yaml": "e9fcdd0a33184bc7401b8d7811f74de643851daef786ad63b5fba29001ce569b", + "object_centers.npy": "09773c5d3c7bd52e6ba1ec2ed07aef1b94984accdad5582082ee93adbe2b62d3", + "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e", + "reference_bank.npz": "499ed7e775bc746347ff5205a8d65c7fb146112573dbb9443512169341193771", + "skills.md": "dcee6b5a9757d6b89300b17f1036ae9b4f6e5c2eb95e9a456203c0726b7f917b", + "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e" + }, + "bundle_hash": "58a6319be3dfff9a3e1f67981a3ec73533a4406452f5d1038c740e0f2c746469", + "exploration_ledger_hash": "f1ca4b1bea917788352eae27acee509f1ce751b7e0dbbee7bd7f7b1bcf4cb5f5", + "entrypoint": "controller.reset_episode(); controller.act(obs)", + "selection": { + "rule": "exact-version success rate, valid rehearsal count, recency", + "rehearsals": [ + { + "episode": 4, + "bundle_hash": "58a6319be3dfff9a3e1f67981a3ec73533a4406452f5d1038c740e0f2c746469", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 5, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 6, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 7, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 8, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 9, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 10, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 11, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 12, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 13, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 14, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 15, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 16, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 17, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 18, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 19, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 20, + "bundle_hash": "22141932c8d7caf3b10a16832fdba3ef693650f32299630d20b9f9c055a7601e", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + } + ] + } +} diff --git a/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/handoff.md b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/handoff.md new file mode 100644 index 0000000000000000000000000000000000000000..f7674eebaa109b09168f1f11c2e1a62a37fefc2d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/handoff.md @@ -0,0 +1,6 @@ +# LiftBucket compiled controller handoff +Runtime entrypoints: controller.reset_episode() and controller.act(obs). Action is float32 width 22 with native normalized deltas. The runner owns the initial hold, episode lifecycle, and 300-step horizon. + +Offline runtime needs Python, NumPy, OpenCV, features.py, reference_bank.npz and object_centers.npy. No network, neural weights, model development, simulator imports, or external services. All reference data are derived only from this task's 20 authorized demonstrations. Initial left-camera white-handle centroid biases local action retrieval; every action also uses current camera descriptors, joint positions, and velocities. Object localization is fixed per episode before occlusion. Opposing movement phases are not averaged. Terminal reference postures hold. + +Known limitations: segmentation assumes fixed cameras and white handle; centroid uses a fixed image region; demonstration coverage is limited; no calibrated 3D pose, contact sensing, explicit failed-grasp recovery, or runtime success assertion. A hold/early abort handles malformed observations and extreme mismatch. Native success comes exclusively from the trusted API; visible judgments follow evidence/visible_rule.md in the development workspace. Exploration and independent rehearsal results are documented in findings.md and preserved in workspace evidence. diff --git a/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/model_tool_manifest.yaml b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/model_tool_manifest.yaml new file mode 100644 index 0000000000000000000000000000000000000000..02f0bd699b4dde0308ad19ec71ffc2d162cf8ea1 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/model_tool_manifest.yaml @@ -0,0 +1,81 @@ +{ + "stage": "legal_E20_exploration", + "status": "candidate_pending_independent_rehearsal", + "task_id": "LiftBucket-v1", + "exploration_episodes": 2, + "neural_finetuning": false, + "pretrained_weight_references": [], + "host_model": "Not exposed by runtime; no weight modification performed", + "python": "3.10.20", + "installed_initial_library_versions": { + "numpy": "2.2.6", + "scipy": "1.15.3", + "opencv-python": "4.13.0.92", + "h5py": "3.16.0", + "torch": "2.10.0" + }, + "runtime_dependencies": [ + "Python standard library", + "numpy", + "opencv-python" + ], + "preparation_dependencies": [ + "numpy", + "opencv-python", + "h5py", + "worker_api.API.read_demo" + ], + "unused_initial_libraries": [ + "scipy", + "torch" + ], + "actual_tools": [ + "functions.exec / exec_command (local bash and Python)", + "view_image (five legal image contact sheets)", + "worker_api.API.read_demo (local authorized HDF5 reader)", + "Python py_compile" + ], + "network_access_used": false, + "environment_calls": [ + "budget_status", + "next_episode", + "latest_observation", + "execute_actions", + "finish_episode" + ], + "demo_ids": [ + "demo_00", + "demo_01", + "demo_02", + "demo_03", + "demo_04", + "demo_05", + "demo_06", + "demo_07", + "demo_08", + "demo_09", + "demo_10", + "demo_11", + "demo_12", + "demo_13", + "demo_14", + "demo_15", + "demo_16", + "demo_17", + "demo_18", + "demo_19" + ], + "bank_provenance": "All RGB/qpos/qvel observations and action labels in the 20 authorized demonstrations; deterministic resizing; terminal zero actions explicitly synthetic. No external data.", + "limitations": [ + "No calibrated 3D pose or contact sensing", + "Hand-set distance weights and fixed-region white-handle segmentation", + "No failed-grasp recovery", + "Verified manifest and environment lock supplied by runner" + ], + "runtime_assets": [ + "reference_bank.npz", + "object_centers.npy", + "features.py", + "controller.py" + ] +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/policy_runner.py b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/policy_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..e49448d6245feb7818ae505f1061708ab97c6ead --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/policy_runner.py @@ -0,0 +1,25 @@ +"""Frozen-program entry point; no development agent and no reset capability.""" +import importlib.util +import sys + +sys.path.insert(0,'/artifact') +sys.path.insert(0,'/') +from worker_api import API + + +def main(): + spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py') + module=importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + module.reset_episode() + api=API() + result=api.latest_observation() + while not (result['terminated'] or result['truncated'] or result['horizon_reached']): + obs=dict(result['observation'],step_id=result['step_id']) + action=module.act(obs) + if action is None:break + response=api.execute_actions([action]) + result=response['steps'][-1] + + +if __name__=='__main__':main() diff --git a/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/skills.md b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/skills.md new file mode 100644 index 0000000000000000000000000000000000000000..ac92bee26a18931eb7570ed7ea9d6f7f2255fa6f --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/skills.md @@ -0,0 +1,7 @@ +# Task skills +1. Localize the initial white handle in the left view, resized to 640x480; connected-component centroid in a fixed region guides demonstrated action neighborhoods. +2. Approach and pose: compare current multi-camera RGB descriptors and 23 joint positions/velocities with authorized demonstration observations; all demonstrated rotations are zero. +3. Grasp and timing: retrieve compatible arm and sixteen dexterous joint deltas, separating opposing approach/lift phases. Recompute from observation on every policy call. +4. Lift: continue observation-conditioned positive-y/positive-z demonstrated actions while maintaining hand closure. +5. Failure handling: zero-delta hold for terminal-like posture or malformed/extreme mismatch; abort after 15 invalid observations. No validated regrasp recovery; a premature closure may fail permanently. +No external skill, trained neural policy, simulator, or online model fitting is used. diff --git a/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/worker_api.py b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/worker_api.py new file mode 100644 index 0000000000000000000000000000000000000000..ff137d1c68cb70a1549326d2d22b430c9cf4e20c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/LiftBucket-v1/frozen/worker_api.py @@ -0,0 +1,81 @@ +"""Standalone worker client; safe to mount without the runner package.""" +import base64 +import json +import socket +import struct +import uuid +import os +from pathlib import Path + +import numpy as np + + +def array_hook(value): + if value.get('__array__') is True: + dtype=np.dtype(value['dtype']) + if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service') + raw=base64.b64decode(value['data'],validate=True) + return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy() + return value + + +class API: + def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'): + self.socket_path=socket_path + self.demo_root=Path(demo_root) + self.manifest=Path(manifest) + + def call(self,method,arguments=None,request_id=None): + # Caller can persist a request ID before sending. Never automatically retry. + request_id=request_id or str(uuid.uuid4()) + request={'request_id':request_id,'method':method,'arguments':arguments or {}} + if os.environ.get('AGENT_E20_RPC_TOKEN'): + request['token']=os.environ['AGENT_E20_RPC_TOKEN'] + payload=json.dumps(request,allow_nan=False).encode() + if len(payload)>65536:raise ValueError('request too large') + with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s: + s.settimeout(1810);s.connect(self.socket_path) + s.sendall(struct.pack('!I',len(payload))+payload) + def exact(n): + chunks=[] + while n: + chunk=s.recv(min(n,1024*1024)) + if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID') + chunks.append(chunk);n-=len(chunk) + return b''.join(chunks) + length=struct.unpack('!I',exact(4))[0] + if length>64*1024*1024:raise RuntimeError('response too large') + result=json.loads(exact(length),object_hook=array_hook) + if not result['ok']:raise RuntimeError(result['error']) + return result['result'] + + def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id) + def latest_observation(self):return self.call('latest_observation') + def execute_actions(self,actions,request_id=None): + return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id) + def finish_episode(self):return self.call('finish_episode') + def budget_status(self):return self.call('budget_status') + def rehearse(self,candidate='candidate',request_id=None): + return self.call('rehearse',{'candidate':candidate},request_id) + def score_rehearsal(self,episode,visible_success,evidence): + return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence}) + def freeze(self):return self.call('freeze') + + def read_demo(self,demo_id,start=0,stop=None,fields=None): + import h5py + manifest=json.loads(self.manifest.read_text()) + if manifest.get('status') not in ('released','released_for_offline_analysis'): + raise RuntimeError('demonstrations not released by trusted preflight') + entries={e['demo_id']:e for e in manifest['episodes']} + if demo_id not in entries:raise ValueError('unauthorized demo ID') + entry=entries[demo_id] + allowed={f['path'] for f in entry['fields']} + fields=sorted(allowed) if fields is None else fields + if not set(fields)<=allowed:raise ValueError('unauthorized demo field') + stop=entry['length']+1 if stop is None else stop + if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start1e-6);start=int(active[0]) + assert np.isfinite(a).all() and np.max(np.abs(a))<=1 + audit.append({'demo_id':e['demo_id'],'numeric_action_frames':[0,n-1],'numeric_proprio_frames':[0,n], 'rgb_feature_frames':[start,n-1], 'rgb_feature_cameras':list(c.CAMERAS),'leading_stationary_actions_excluded':start}) + for lo in range(start,n,32): + hi=min(lo+32,n);images=api.read_demo(e['demo_id'],lo,hi,fields=['obs/sensor_data/'+cam+'/rgb' for cam in c.CAMERAS]) + for i in range(lo,hi): + visual.append(c.image_features({cam:images['obs/sensor_data/'+cam+'/rgb'][i-lo] for cam in c.CAMERAS})) + qs.append(data['obs/agent/qpos'][i]);vs.append(data['obs/agent/qvel'][i]);actions.append(a[i]);ids.append(number);frames.append(i) + print(e['demo_id'],n,'leading stationary',start,flush=True) +np.savez_compressed(ROOT/'memory.npz',visual=np.asarray(visual,dtype=np.float16),qpos=np.asarray(qs,dtype=np.float32),qvel=np.asarray(vs,dtype=np.float32),actions=np.asarray(actions,dtype=np.float32),demo_index=np.asarray(ids,dtype=np.int16),frame_index=np.asarray(frames,dtype=np.int16)) +json.dump(audit,open(ROOT/'compilation_audit.json','w'),indent=2) +print('rows',len(actions),'descriptor dimensions',len(visual[0])) diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/check_synthetic.py b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/check_synthetic.py new file mode 100644 index 0000000000000000000000000000000000000000..228b796c162dcde7e7c05e06f269b66539bb2de3 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/check_synthetic.py @@ -0,0 +1,36 @@ +"""Syntax/interface checks on fabricated inputs only; never task rehearsal.""" +import importlib.util,json,py_compile +from pathlib import Path +import numpy as np +ROOT=Path(__file__).resolve().parent +py_compile.compile(str(ROOT/'controller.py'),doraise=True) +s=importlib.util.spec_from_file_location('c',ROOT/'controller.py');c=importlib.util.module_from_spec(s);s.loader.exec_module(c) +q=np.array([0,0,0,-1,0,1,0,.02,.02],np.float32) +def obs(color=0,batch=False): + rgb={name:np.full((320,240,3) if name=='top_camera' else (240,320,3),color,np.uint8) for name in c.CAMERAS} + if batch:rgb={k:v[None] for k,v in rgb.items()} + return {'rgb':rgb,'proprioception':{'agent/qpos':q.copy(),'agent/qvel':np.zeros(9,np.float32)},'instruction':'Push the soccer ball into the gate with the panda robot.','step_id':1} +checks=[] +def check(name, condition): + assert condition,name + checks.append(name) +bank=c._load_bank();check('compiled data shape',bank['actions'].shape==(3244,7)) +for color in (0,127,255): + for batched in (False,True): + a=c.act(obs(color,batched));check(f'synthetic constant {color} batched={batched}',a is None or (a.shape==(7,) and np.isfinite(a).all() and (abs(a)<=1).all())) +a=c.act(obs());c.reset_episode();check('reset deterministic',np.array_equal(a,c.act(obs()))) +o=obs();o['step_id']=300;check('native horizon including hold',c.act(o) is None) +o=obs();o['step_id']=299;check('last allowed step',c.act(o) is not None) +o=obs();o['proprioception']['agent/qpos'][0]=np.nan;check('nonfinite proprio rejected',c.act(o) is None) +o=obs();o['rgb']={};check('missing camera hold',np.allclose(c.act(o),[0,0,0,0,0,0,.2])) +o['proprioception']['agent/qpos'][7]=.1;check('invalid hold rejected',c.act(o) is None) +# Fabricated two-state memory isolates observation dependence from any demo. +f0=c.image_features(obs(0)['rgb']);f1=c.image_features(obs(255)['rgb']) +c._BANK={'visual':np.array([f0,f1],np.float16),'qpos':np.array([q,q]),'qvel':np.zeros((2,9),np.float32),'actions':np.array([[.1,0,0,0,0,0,1],[-.1,0,0,0,0,0,1]],np.float32)} +check('current RGB changes action',c.act(obs(0))[0]>0 and c.act(obs(255))[0]<0) +c._BANK['visual'][1]=c._BANK['visual'][0];c._BANK['qpos'][1,:7]+=1 +p=obs(0);p['proprioception']['agent/qpos'][:7]+=1 +check('current proprio changes action',c.act(obs(0))[0]>0 and c.act(p)[0]<0) +c._BANK=bank +json.dump({'status':'passed','scope':'syntax and synthetic inputs only; zero environment episodes; no demo policy replay','checks':checks},open(ROOT/'synthetic_checks.json','w'),indent=2) +print('PASS',len(checks),'checks; no environment accessed') diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/compilation_audit.json b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/compilation_audit.json new file mode 100644 index 0000000000000000000000000000000000000000..e7a6b019a549d9f42a1436f23d13218c2517b21a --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/compilation_audit.json @@ -0,0 +1,402 @@ +[ + { + "demo_id": "demo_00", + "numeric_action_frames": [ + 0, + 154 + ], + "numeric_proprio_frames": [ + 0, + 155 + ], + "rgb_feature_frames": [ + 10, + 154 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_01", + "numeric_action_frames": [ + 0, + 187 + ], + "numeric_proprio_frames": [ + 0, + 188 + ], + "rgb_feature_frames": [ + 10, + 187 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_02", + "numeric_action_frames": [ + 0, + 161 + ], + "numeric_proprio_frames": [ + 0, + 162 + ], + "rgb_feature_frames": [ + 10, + 161 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_03", + "numeric_action_frames": [ + 0, + 158 + ], + "numeric_proprio_frames": [ + 0, + 159 + ], + "rgb_feature_frames": [ + 10, + 158 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_04", + "numeric_action_frames": [ + 0, + 156 + ], + "numeric_proprio_frames": [ + 0, + 157 + ], + "rgb_feature_frames": [ + 10, + 156 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_05", + "numeric_action_frames": [ + 0, + 190 + ], + "numeric_proprio_frames": [ + 0, + 191 + ], + "rgb_feature_frames": [ + 10, + 190 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_06", + "numeric_action_frames": [ + 0, + 172 + ], + "numeric_proprio_frames": [ + 0, + 173 + ], + "rgb_feature_frames": [ + 10, + 172 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_07", + "numeric_action_frames": [ + 0, + 187 + ], + "numeric_proprio_frames": [ + 0, + 188 + ], + "rgb_feature_frames": [ + 10, + 187 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_08", + "numeric_action_frames": [ + 0, + 164 + ], + "numeric_proprio_frames": [ + 0, + 165 + ], + "rgb_feature_frames": [ + 10, + 164 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_09", + "numeric_action_frames": [ + 0, + 173 + ], + "numeric_proprio_frames": [ + 0, + 174 + ], + "rgb_feature_frames": [ + 10, + 173 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_10", + "numeric_action_frames": [ + 0, + 187 + ], + "numeric_proprio_frames": [ + 0, + 188 + ], + "rgb_feature_frames": [ + 10, + 187 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_11", + "numeric_action_frames": [ + 0, + 181 + ], + "numeric_proprio_frames": [ + 0, + 182 + ], + "rgb_feature_frames": [ + 10, + 181 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_12", + "numeric_action_frames": [ + 0, + 167 + ], + "numeric_proprio_frames": [ + 0, + 168 + ], + "rgb_feature_frames": [ + 10, + 167 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_13", + "numeric_action_frames": [ + 0, + 164 + ], + "numeric_proprio_frames": [ + 0, + 165 + ], + "rgb_feature_frames": [ + 10, + 164 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_14", + "numeric_action_frames": [ + 0, + 191 + ], + "numeric_proprio_frames": [ + 0, + 192 + ], + "rgb_feature_frames": [ + 10, + 191 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_15", + "numeric_action_frames": [ + 0, + 150 + ], + "numeric_proprio_frames": [ + 0, + 151 + ], + "rgb_feature_frames": [ + 10, + 150 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_16", + "numeric_action_frames": [ + 0, + 157 + ], + "numeric_proprio_frames": [ + 0, + 158 + ], + "rgb_feature_frames": [ + 10, + 157 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_17", + "numeric_action_frames": [ + 0, + 168 + ], + "numeric_proprio_frames": [ + 0, + 169 + ], + "rgb_feature_frames": [ + 10, + 168 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_18", + "numeric_action_frames": [ + 0, + 181 + ], + "numeric_proprio_frames": [ + 0, + 182 + ], + "rgb_feature_frames": [ + 10, + 181 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + }, + { + "demo_id": "demo_19", + "numeric_action_frames": [ + 0, + 176 + ], + "numeric_proprio_frames": [ + 0, + 177 + ], + "rgb_feature_frames": [ + 10, + 176 + ], + "rgb_feature_cameras": [ + "top_camera", + "front_camera" + ], + "leading_stationary_actions_excluded": 10 + } +] \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/controller.py b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/controller.py new file mode 100644 index 0000000000000000000000000000000000000000..86ea3bc1755ba8ca56955a64928803b4ef0ea9d4 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/controller.py @@ -0,0 +1,53 @@ +"""Image-servo pusher calibrated only from authorized demos/exploration.""" +from pathlib import Path +import sys +sys.path.insert(0,str(Path(__file__).parent)) +import retrieval +from geometry import ball,gate,hand,track_ball +import numpy as np +_S={} +def reset_episode(): + _S.clear();retrieval.reset_episode() +def act(obs): + step=int(obs.get('step_id',1)) + if step>=300:return None + im=obs['rgb']['top_camera'] + if not _S: + h=hand(im);b=track_ball(im,None,h);g=gate(im,b) + _S.update(b=b,g=g,h=h,phase='approach',dz=0.,yaw=0.,push=0,miss=0,retries=0) + if _S['b'] is None or _S['g'] is None or _S['h'] is None:return retrieval.act(obs) + s=_S;oldh=s['h'];h=hand(im,oldh);s['h']=h + seen=track_ball(im,s['b'],h) + if seen is not None:s['b']=seen;s['miss']=0 + else: + s['miss']+=1 + if s['phase']=='push' and s['miss']<15 and np.linalg.norm(s['b']-oldh)<25:s['b']=s['b']+(h-oldh) + b=s['b'];g=s['g'] + if s['miss']>25:s['phase']='withdraw' + d=g-b;d=d/max(np.linalg.norm(d),1.) + raw=np.arctan2(-d[1],d[0])+np.pi/2 + yaw=s['yaw']+(raw-s['yaw']+np.pi/2)%np.pi-np.pi/2;rz=np.clip(-(yaw-s['yaw'])*.8,-.1,.1);s['yaw']+=-.3*rz + a=np.array([0.,0.,0.,0.,0.,rz,1.]) + if s['phase']=='approach': + target=b-d*42 + err=target-h;a[:2]=np.clip(err*np.array([1,-1])*.018,-.1,.1) + a[2]=max(-.1,-7.1-s['dz']) if s['dz']>-7.1 else 0. + if np.linalg.norm(err)>5 and (s['retries']>0 or s['dz']<-5.):a[2]=0. + if s['dz']<=-7.099 and np.linalg.norm(err)<3:s['phase']='push' + elif s['phase']=='push': + s['push']+=1 + # Continue along the gate-directed contact line while correcting lateral drift. + n=np.array([-d[1],d[0]]);lateral=np.dot(b-h,n) + v=d*.07+n*np.clip(lateral*.025,-.12,.12) + v=v*min(1.,.1/max(np.max(np.abs(v)),1e-6)) + a[:2]=v*np.array([1,-1]) + a[2]=-.002 + if np.linalg.norm(g-b)<10 or s['push']>190 or s['miss']>20:s['phase']='withdraw' + else: + a[2]=.1 if s['dz']<-5.8 else 0. + if a[2]==0 and step<240 and s['retries']<1: + fresh=track_ball(im,None,h) + if fresh is not None and np.linalg.norm(fresh-g)>15: + s['b']=fresh;s['phase']='approach';s['push']=0;s['retries']+=1 + s['dz']+=a[2] + return a diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/demo_manifest.json b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/demo_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..440b9eb40d7af3a155d4c99e4bed7502b03b04cf --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/demo_manifest.json @@ -0,0 +1,1488 @@ +{ + "task_id": "PushSoccer-v1", + "status": "released", + "selection_rule": "prefer existing pinned D20, otherwise numeric trajectory ID sort before reading data", + "lineage_status": "pinned_comparator", + "episodes": [ + { + "demo_id": "demo_00", + "file": "demo_00.h5", + "length": 155, + "fields": [ + { + "path": "actions", + "shape": [ + 155, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 156, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 156, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 156, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 156, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 156, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 156, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "ad5c7ca20332ebcd4828b1ae4dd411f29ff71d2810ce5902c725ebb88315ca7c", + "source_sha256": "040f1a726d76d8f56dd637d29e6fe71d6b0d4928aa57c790f3717a59cdb3aba7", + "view_sha256": "4ba87c9f7e8c9bb16228a5e13abe47580f67521fe87728f01063dd2e765bd8bc" + }, + { + "demo_id": "demo_01", + "file": "demo_01.h5", + "length": 188, + "fields": [ + { + "path": "actions", + "shape": [ + 188, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 189, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 189, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 189, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "d348ddf628a32e09b1bdbc9f7bccfb3f918fb338028bc2c04afc129c23b35b6a", + "source_sha256": "566110e36fcb7b572995e06b267f576e53560f95ee1c45a9155bd6c999189fd9", + "view_sha256": "00e7efffb72dcf2ab55a012d88678c0444d43f1ab7ad0d09157235c1bafea505" + }, + { + "demo_id": "demo_02", + "file": "demo_02.h5", + "length": 162, + "fields": [ + { + "path": "actions", + "shape": [ + 162, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 163, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 163, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 163, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "555cfc184b6ef479288c5f0b4b779b2b243e770d561812f328ecc38b421fb7c9", + "source_sha256": "4ecf3d4068c891302e84b1c50cbb78fc4883e31291405ceb3ab7cd741c267952", + "view_sha256": "c6fbda511f98c9e96a020f3368682c56a2821adf23d8ba7f90c0927f755542f6" + }, + { + "demo_id": "demo_03", + "file": "demo_03.h5", + "length": 159, + "fields": [ + { + "path": "actions", + "shape": [ + 159, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 160, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 160, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 160, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 160, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 160, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 160, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "bd588c2828905cb7c00b0e7fe786d63565a209daa3194e91f262ef60b2fd8a91", + "source_sha256": "f9b93e855b797c8d825450ccae3d74bdb013d93c5bb1e85bf625471ff3a66e9b", + "view_sha256": "3374feff6974368337c710346b83a7a40c9acb6a94616997a08d337120ec9121" + }, + { + "demo_id": "demo_04", + "file": "demo_04.h5", + "length": 157, + "fields": [ + { + "path": "actions", + "shape": [ + 157, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 158, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 158, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 158, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 158, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 158, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 158, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "905a0117d9d7baebbf0c2095416b8ecff30fa61a9bc3d4b09492a8f761f45307", + "source_sha256": "51954add870a29143b40845df21b57e383162e0f186ef54b4ef7fd6677cf29cc", + "view_sha256": "640acb35eaa1d44c85f2cef761ed4233874eee3c8022d85d159f2d699e501d54" + }, + { + "demo_id": "demo_05", + "file": "demo_05.h5", + "length": 191, + "fields": [ + { + "path": "actions", + "shape": [ + 191, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 192, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 192, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 192, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 192, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 192, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 192, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "5e1cda0a106d0a0e0b296397cd8dec193e5e178303ded7bd27a54da1c76e110c", + "source_sha256": "84aad6aee8ae5406b41e81388c9155063b414d7f28a0d1b5c0864c02b3acb45a", + "view_sha256": "b6745302893507ca264ebadb2a0795f9da3e7d2ac6015bcf2b13df2b5de7615b" + }, + { + "demo_id": "demo_06", + "file": "demo_06.h5", + "length": 173, + "fields": [ + { + "path": "actions", + "shape": [ + 173, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 174, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 174, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 174, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 174, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 174, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 174, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "54eb4388cb1273adad1aae57ee831881134586ccf50170db1ac9d0500a597919", + "source_sha256": "bacd74afd0ab9104902530ce77d591f6ea555cc03a2cd515fcb7f77de5c7f03e", + "view_sha256": "369bc205aa90daf7c13918d3464f46aa6a93826a77ef5181c8714c1f7aa0a686" + }, + { + "demo_id": "demo_07", + "file": "demo_07.h5", + "length": 188, + "fields": [ + { + "path": "actions", + "shape": [ + 188, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 189, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 189, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 189, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "b1b2bd54b2d88e38ed37ee395a714f9d47ddcacece36078e4a76b329a5b40565", + "source_sha256": "47e45e2ff381f914e29676599e991f2520e48d97bdef61f56bb3841aa67c3740", + "view_sha256": "12a14a1b76eb652ffff8a44054f8fbbc0548ce273fda525bb24ccd47e9cea6a8" + }, + { + "demo_id": "demo_08", + "file": "demo_08.h5", + "length": 165, + "fields": [ + { + "path": "actions", + "shape": [ + 165, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 166, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 166, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 166, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 166, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 166, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 166, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "a70179b844fec2ebc90e0d8106b352cbddc6d102826a2f2607efe05fc033b2e3", + "source_sha256": "3ed38f7997b598e393b0d2831a1f0208653895b6ceb3c1542302fde562d666df", + "view_sha256": "83c1abf3c6fc1dda36af10b98618200dc74600f289fb453a35c8cd612d27d96c" + }, + { + "demo_id": "demo_09", + "file": "demo_09.h5", + "length": 174, + "fields": [ + { + "path": "actions", + "shape": [ + 174, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 175, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 175, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 175, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 175, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 175, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 175, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "a4131de31e571673a5248bab9e9c7856a05a97797f056599b72c845e2e584d8b", + "source_sha256": "ca0f7d71d87d9f39f13e12d6a6e773246fd1c9c563c50c1f523c9ca25c96b277", + "view_sha256": "fc17fd79ee6592bf1cd10780d6ea30fe889327f76be13ea2abc5b43e438bb19f" + }, + { + "demo_id": "demo_10", + "file": "demo_10.h5", + "length": 188, + "fields": [ + { + "path": "actions", + "shape": [ + 188, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 189, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 189, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 189, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 189, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "310395d4a098664b9c0391e23e7522e8d9e0e9e590c83ec95e14b120a90e7241", + "source_sha256": "8f6e51802e5ff1a406d57c3ebe8fe6707f70a9f880c41f1ea0e56196aab52b37", + "view_sha256": "4715e1b877507e088cd19f24724a5f0f16b315370e1164718b2825a0b0551164" + }, + { + "demo_id": "demo_11", + "file": "demo_11.h5", + "length": 182, + "fields": [ + { + "path": "actions", + "shape": [ + 182, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 183, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 183, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 183, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 183, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 183, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 183, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "812d3d32b8d5791cd681e71240cc9ddc1bfb24e92ae8dcbd363660d2aaab19d1", + "source_sha256": "3470e75cb9f8124b74313c44a1931652a334684e2d6d2a406928f5255c7078f3", + "view_sha256": "1a78e832bd00748bb77fbcfc2e2b64b9f2fc93e6d77da331ac8fadef9fbc65a9" + }, + { + "demo_id": "demo_12", + "file": "demo_12.h5", + "length": 168, + "fields": [ + { + "path": "actions", + "shape": [ + 168, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 169, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 169, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 169, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 169, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "17df75a1ba228210cb0551d43a89965a05b5a49fe5482ed39c1b00ad4de1f586", + "source_sha256": "c78a23d4d338477c625e3bb55bcbf414819641d1e5a324de21fc26f9493a9560", + "view_sha256": "247fedea66477ff0c080c316c0cdc27aa6b7b16d1024599241bcaf30c74f5d8e" + }, + { + "demo_id": "demo_13", + "file": "demo_13.h5", + "length": 165, + "fields": [ + { + "path": "actions", + "shape": [ + 165, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 166, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 166, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 166, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 166, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 166, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 166, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "da962e02a6612864b3cedcccbb442d614dc548f4fac363831161e548facb3d49", + "source_sha256": "3550aae741ab1240e5e74fd97ef2a05b6c50aa734f8576cc1877e8efb524219c", + "view_sha256": "41aad09b40ef86f301a925c2cf32b274c10fb9bc421a17063511a9db6ff19c69" + }, + { + "demo_id": "demo_14", + "file": "demo_14.h5", + "length": 192, + "fields": [ + { + "path": "actions", + "shape": [ + 192, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 193, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 193, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 193, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 193, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 193, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 193, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "30cc9b63dd9e7204d6d9fa7fbd51119ca18c3dccb521b191e78094a7ab5cbe5e", + "source_sha256": "15969a55f6741ce4dcefc9c706d4d76c5b125917ae80ad6d54914f5bc30c8f8e", + "view_sha256": "f77a412778ef596f7f7aabe56218a6bc6aede01ddcaa53a4fcb821c8aaea68fe" + }, + { + "demo_id": "demo_15", + "file": "demo_15.h5", + "length": 151, + "fields": [ + { + "path": "actions", + "shape": [ + 151, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 152, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 152, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 152, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 152, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 152, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 152, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "ef97fa923be7b89b0d0039e69b19058ccbd721df10b3f71f43490a81ed3d4050", + "source_sha256": "f98b2487dffa885f47429d57e9f001a25713fcee1107ea9d7b1a28ddb1209fa9", + "view_sha256": "e3ebd836a7ee5788a6fef44bece54bebd1c478a76d9428bb16fd930971e85e76" + }, + { + "demo_id": "demo_16", + "file": "demo_16.h5", + "length": 158, + "fields": [ + { + "path": "actions", + "shape": [ + 158, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 159, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 159, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 159, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 159, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 159, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 159, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "405b27fb73e174ad053e4c1c3974f576f94f1d9db5916b8339f4cadec1bee05f", + "source_sha256": "8a4175c20b7dff21dcf3e8dff249ad12b34a14e88db5ba7cc163eca168a89e3a", + "view_sha256": "d2f9178c8acebf926efbb3689d3a067d1524e1551120abe96bc95e359ff2c4cd" + }, + { + "demo_id": "demo_17", + "file": "demo_17.h5", + "length": 169, + "fields": [ + { + "path": "actions", + "shape": [ + 169, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 170, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 170, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 170, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 170, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 170, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 170, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "596af7c42d33b2e1d85a92dca7efd75fba771537d909c36d1116b6bbaad091bb", + "source_sha256": "a876fb0237638e70e9c12f51929e9235b9f87b0b46abc125a3d08b93a95d69a9", + "view_sha256": "6ff39150d9515c1e3e8c35773e5ee72e8fc9c5b975ae153830db30847144f795" + }, + { + "demo_id": "demo_18", + "file": "demo_18.h5", + "length": 182, + "fields": [ + { + "path": "actions", + "shape": [ + 182, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 183, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 183, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 183, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 183, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 183, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 183, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "42f1cddb798ff31941115d2e7bc0c710ac23b8fcdf25d60c24076d75a68f0b0e", + "source_sha256": "f7a59c5e4a97aa4d24193d38e5bbcb511d0d9360ad2c5edbbe521a09c317b58f", + "view_sha256": "96919a3cab164b92364ffbcbb9ac0181b55e109092a4c85d7d0700b507b3fbfa" + }, + { + "demo_id": "demo_19", + "file": "demo_19.h5", + "length": 177, + "fields": [ + { + "path": "actions", + "shape": [ + 177, + 7 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qpos", + "shape": [ + 178, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/agent/qvel", + "shape": [ + 178, + 9 + ], + "dtype": "float32" + }, + { + "path": "obs/sensor_data/front_camera/rgb", + "shape": [ + 178, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/left_camera/rgb", + "shape": [ + 178, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/robot_camera/rgb", + "shape": [ + 178, + 240, + 320, + 3 + ], + "dtype": "uint8" + }, + { + "path": "obs/sensor_data/top_camera/rgb", + "shape": [ + 178, + 320, + 240, + 3 + ], + "dtype": "uint8" + } + ], + "trajectory_sha256": "2e0af7504537a20cec6d5c740b731cf2ba715de8657cb9cb9a5291d3ed4b39ca", + "source_sha256": "65df4ec42c8f17392a3a51687bb1297ea10179da2374feefeaef7627e0486241", + "view_sha256": "04763477b49476c17ec696bd2584c0b4fff7f7370f77a09968a676e9dbdfe6e9" + } + ] +} diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/environment.lock b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/environment.lock new file mode 100644 index 0000000000000000000000000000000000000000..b2237f47d93aa4c3efad07728ae6acd137912d6d --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/environment.lock @@ -0,0 +1,249 @@ +absl-py==2.4.0 +accelerate==1.13.0 +addict==2.4.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.13.5 +aiosignal==1.4.0 +annotated-types==0.7.0 +anyio==4.13.0 +anytree==2.13.0 +asttokens==3.0.1 +async-timeout==5.0.1 +attrs==26.1.0 +av==15.1.0 +blinker==1.9.0 +casadi==3.7.2 +certifi==2026.4.22 +cffi==2.0.0 +charset-normalizer==3.4.7 +click==8.3.3 +cloudpickle==3.1.2 +cmake==4.1.3 +coacd==1.0.11 +colorama==0.4.6 +colorlog==6.10.1 +comm==0.2.3 +ConfigArgParse==1.7.5 +contourpy==1.3.2 +cuda-bindings==12.9.4 +cuda-pathfinder==1.5.4 +cycler==0.12.1 +dacite==1.9.2 +dash==4.1.0 +dataclasses-json==0.6.7 +datasets==4.8.5 +decorator==5.2.1 +deepdiff==8.6.2 +Deprecated==1.3.1 +diffusers==0.35.2 +dill==0.4.1 +docstring_parser==0.18.0 +draccus==0.10.0 +einops==0.8.2 +embreex==4.4.0 +etils==1.13.0 +evdev==1.9.3 +exceptiongroup==1.3.1 +executing==2.2.1 +Farama-Notifications==0.0.6 +fast_simplification==0.1.13 +fastjsonschema==2.21.2 +filelock==3.29.0 +Flask==3.1.3 +fonttools==4.63.0 +freetype-py==2.5.1 +frozenlist==1.8.0 +fsspec==2026.2.0 +genesis-world @ file:///data/gck/genesis-world +git-filter-repo==2.47.0 +gitdb==4.0.12 +GitPython==3.1.50 +glfw==2.10.0 +gs-madrona==0.0.5 +gstaichi==3.3.0 +gym==0.26.2 +gym-notices==0.1.0 +gymnasium==1.3.0 +h11==0.16.0 +h5py==3.16.0 +hf-xet==1.5.0 +hf_transfer==0.1.9 +httpcore==1.0.9 +httpx==0.28.1 +huggingface-hub==0.35.3 +idna==3.15 +ImageIO==2.37.3 +imageio-ffmpeg==0.6.0 +importlib_metadata==9.0.0 +importlib_resources==7.1.0 +inquirerpy==0.3.4 +ipython==8.39.0 +ipywidgets==8.1.8 +itsdangerous==2.2.0 +jedi==0.20.0 +Jinja2==3.1.6 +joblib==1.5.3 +jsonlines==4.0.0 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +jupyter_core==5.9.1 +jupyterlab_widgets==3.0.16 +kiwisolver==1.5.0 +lazy-loader==0.5 +lerobot==0.4.4 +libigl==2.6.2 +llvmlite==0.47.0 +loguru==0.7.3 +lxml==6.1.0 +manifold3d==3.4.1 +-e git+ssh://git@github.com/HeegerGao/maniladder.git@f6eed17496816bb41ce484f2d7580990a908d3e6#egg=maniladder +mapbox_earcut==2.0.0 +markdown-it-py==4.2.0 +MarkupSafe==3.0.3 +marshmallow==3.26.2 +matplotlib==3.10.9 +matplotlib-inline==0.2.2 +mdurl==0.1.2 +mergedeep==1.3.4 +moviepy==2.2.1 +mpmath==1.3.0 +msgspec==0.21.1 +mujoco==3.8.1 +multidict==6.7.1 +multiprocess==0.70.19 +mypy_extensions==1.1.0 +nbformat==5.10.4 +nest-asyncio==1.6.0 +networkx==3.4.2 +ninja==1.13.0 +nlopt==2.10.0 +numba==0.65.1 +numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1747544640217/work/dist/numpy-2.2.6-cp310-cp310-linux_x86_64.whl#sha256=d6d964caeef85d00073d27cd62b46883d275b3d8162f723f0fcabbd0b3cc3f9d +nvidia-cublas-cu12==12.8.4.1 +nvidia-cuda-cupti-cu12==12.8.90 +nvidia-cuda-nvrtc-cu12==12.8.93 +nvidia-cuda-runtime-cu12==12.8.90 +nvidia-cudnn-cu12==9.10.2.21 +nvidia-cufft-cu12==11.3.3.83 +nvidia-cufile-cu12==1.13.1.3 +nvidia-curand-cu12==10.3.9.90 +nvidia-cusolver-cu12==11.7.3.90 +nvidia-cusparse-cu12==12.5.8.93 +nvidia-cusparselt-cu12==0.7.1 +nvidia-nccl-cu12==2.27.5 +nvidia-nvjitlink-cu12==12.8.93 +nvidia-nvshmem-cu12==3.4.5 +nvidia-nvtx-cu12==12.8.90 +open3d==0.19.0 +opencv-python==4.13.0.92 +opencv-python-headless==4.12.0.88 +OpenEXR==3.4.11 +orderly-set==5.5.0 +packaging==25.0 +pandas==2.3.3 +parso==0.8.7 +pexpect==4.9.0 +pfzy==0.3.4 +pillow==11.3.0 +pin==4.0.0 +pip @ file:///home/task_177498883471825/croot/pip_1774988882575/work +platformdirs==4.9.6 +plotly==5.24.1 +polyscope==2.6.1 +proglog==0.1.12 +prompt_toolkit==3.0.52 +propcache==0.5.2 +protobuf==6.33.6 +psutil==7.2.2 +ptyprocess==0.7.0 +pure_eval==0.2.3 +py-cpuinfo==9.0.0 +py-spy==0.4.2 +pyarrow==24.0.0 +pycollada==0.9.3 +pycparser==3.0 +pydantic==2.13.4 +pydantic_core==2.46.4 +PyGEL3D==0.6.1 +pyglet==2.1.14 +pygltflib==1.16.0 +Pygments==2.20.0 +pymeshlab==2025.7.post1 +pynput==1.8.2 +PyOpenGL==3.1.10 +pyparsing==3.3.2 +pyperclip==1.11.0 +PyQt6==6.11.0 +PyQt6-Qt6==6.11.0 +PyQt6_sip==13.11.1 +pyquaternion==0.9.9 +pyserial==3.5 +pysplashsurf==0.12.0.2 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +python-xlib==0.33 +pytransform3d==3.15.0 +pytz==2026.2 +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 +PyYAML==6.0.3 +pyyaml-include==1.4.1 +referencing==0.37.0 +regex==2026.5.9 +requests==2.34.2 +rerun-sdk==0.26.2 +retrying==1.4.2 +rich==14.3.4 +rpds-py==0.30.0 +rtree==1.4.1 +safetensors==0.7.0 +sapien==3.0.3 +scikit-image==0.25.2 +scikit-learn==1.7.2 +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 +sentry-sdk==2.60.0 +setuptools==80.10.2 +shapely==2.1.2 +six==1.17.0 +smmap==5.0.3 +stack-data==0.6.3 +svg.path==7.0 +sympy==1.14.0 +tenacity==9.1.4 +termcolor==3.3.0 +tetgen==0.8.4 +threadpoolctl==3.6.0 +tifffile==2025.5.10 +timm==1.0.27 +toml==0.10.2 +torch==2.10.0 +torchaudio==2.11.0 +torchcodec==0.10.0 +torchvision==0.25.0 +tqdm==4.67.3 +traitlets==5.15.0 +transforms3d==0.4.2 +trimesh==4.12.2 +triton==3.6.0 +typeguard==4.5.2 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +tyro==1.0.13 +tzdata==2026.2 +urllib3==2.7.0 +vhacdx==0.0.10 +viser==1.0.27 +vtk==9.6.1 +wandb==0.24.2 +wcwidth==0.7.0 +websockets==16.0 +Werkzeug==3.1.8 +wheel==0.46.3 +widgetsnbextension==4.0.15 +wrapt==2.1.2 +xxhash==3.7.0 +yarl==1.23.0 +yourdfpy==0.0.60 +z3-solver==4.16.0.0 +zipp==3.23.1 +zstandard==0.25.0 diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/findings.md b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/findings.md new file mode 100644 index 0000000000000000000000000000000000000000..5368d243c104486a1511bc5900bf1e8c4357e0f7 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/findings.md @@ -0,0 +1,16 @@ +# PushSoccer D20/E20 findings — v5 snapshot + +Authorized sources: exactly demo_00..demo_19 via API.read_demo; original analysis is preserved in /workspace/demo_analysis.md. No other task data, simulator construction, hidden state, resets, seeds, neural training, or network calls were used. Exploration used only the trusted worker API. + +Baseline retrieval: episode 1 ended after one command due to interactive wrapper handling (fixed). Episode 2 native success at143. Episode 3 missed left of gate and stalled. Episode 4 independent baseline rehearsal valid, native false. + +Geometric development: episode 5 direction-only blending missed contact. Episode 6 independent axis clipping distorted push direction. Episode 7 corrected hand path but ball slipped laterally. Episode 8 contacted ball during descent and chased it out of view. These all ended native false. + +This v5 controller was used in episode 9 and reached native success at283 after one recovery. It detects ball and gate in legal top RGB, tracks the dark wrist circle, positions 42 pixels behind the ball at 240x320 analysis resolution, descends using cumulative normalized z calibrated from authorized traces, rotates across the push direction, and uses live ball position for a target 18 pixels behind it. Gripper stays +1; no grasp is needed. It permits one raised re-approach. Retrieval fallback is used if initial geometry is unavailable. + +A subsequent faster v6 variant failed episode10: more speed increased lateral drift. It is not this snapshot. v5 remains slow and has only one interactive success; independent validation is pending. Yaw and vertical displacement are action-integrated estimates, not measured Cartesian poses. Hand/ball occlusion, detector confusion, gate bias, and missed recovery remain limitations. None of these observations imply benchmark-wide performance. + +Native success was present in API returns for all completed attempts, so no visible-rule substitutions were made. Immutable rehearsal selection and freezing are runner-owned; later results are recorded outside this snapshot. + +## v7 continuation (supersedes v5 behavior description) +Episode11 v5 rehearsal ran validly but native false. Episode12 v7 reached native success at244 after recovery. v7 uses perpendicular line correction plus constant forward pressure, masks ball/large robot components for gate fitting, gates late descent on position convergence, makes yaw continuous modulo pi, and withdraws after25 missed ball detections. Gripper confusion was observed during occlusion but recovery completed. Initial ball motion gate remains22px; a stricter experimental gate is not included in this snapshot. diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/freeze_manifest.json b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/freeze_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..61286e39990d190d75e083fb69098255ed9ba264 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/freeze_manifest.json @@ -0,0 +1,125 @@ +{ + "files": { + "__pycache__/controller.cpython-310.pyc": "3b05752830b880d4cfc214517a7d7c420593bf2893c17acc7bdacc317336d657", + "__pycache__/geometry.cpython-310.pyc": "0cb8c73f650bc0b5c8da6d497ab23d5d37d7d36fe1fcb8b157ab26be166bd577", + "build_memory.py": "e40b43aa990b795fac16f528043c4d143512df9dc35643d7088613445076b773", + "check_synthetic.py": "746b70a2f487d96358272dcf64ac3f30008d04c20a6fe05c7b92b06004944743", + "compilation_audit.json": "71df08cf15d89a6a469412bad972c8ec2807de03ad07ca32f6adbc247b25dd1d", + "controller.py": "ed75177dedf9f80a2335573e794c72deaca6035a2d424adc2e0c254e355d043e", + "demo_manifest.json": "e363396519d292333b8b4be17bf7ddb6f23c5d66362eba51f4788f9fd73120e7", + "demonstrations_readonly/demo_00.h5": "4ba87c9f7e8c9bb16228a5e13abe47580f67521fe87728f01063dd2e765bd8bc", + "demonstrations_readonly/demo_01.h5": "00e7efffb72dcf2ab55a012d88678c0444d43f1ab7ad0d09157235c1bafea505", + "demonstrations_readonly/demo_02.h5": "c6fbda511f98c9e96a020f3368682c56a2821adf23d8ba7f90c0927f755542f6", + "demonstrations_readonly/demo_03.h5": "3374feff6974368337c710346b83a7a40c9acb6a94616997a08d337120ec9121", + "demonstrations_readonly/demo_04.h5": "640acb35eaa1d44c85f2cef761ed4233874eee3c8022d85d159f2d699e501d54", + "demonstrations_readonly/demo_05.h5": "b6745302893507ca264ebadb2a0795f9da3e7d2ac6015bcf2b13df2b5de7615b", + "demonstrations_readonly/demo_06.h5": "369bc205aa90daf7c13918d3464f46aa6a93826a77ef5181c8714c1f7aa0a686", + "demonstrations_readonly/demo_07.h5": "12a14a1b76eb652ffff8a44054f8fbbc0548ce273fda525bb24ccd47e9cea6a8", + "demonstrations_readonly/demo_08.h5": "83c1abf3c6fc1dda36af10b98618200dc74600f289fb453a35c8cd612d27d96c", + "demonstrations_readonly/demo_09.h5": "fc17fd79ee6592bf1cd10780d6ea30fe889327f76be13ea2abc5b43e438bb19f", + "demonstrations_readonly/demo_10.h5": "4715e1b877507e088cd19f24724a5f0f16b315370e1164718b2825a0b0551164", + "demonstrations_readonly/demo_11.h5": "1a78e832bd00748bb77fbcfc2e2b64b9f2fc93e6d77da331ac8fadef9fbc65a9", + "demonstrations_readonly/demo_12.h5": "247fedea66477ff0c080c316c0cdc27aa6b7b16d1024599241bcaf30c74f5d8e", + "demonstrations_readonly/demo_13.h5": "41aad09b40ef86f301a925c2cf32b274c10fb9bc421a17063511a9db6ff19c69", + "demonstrations_readonly/demo_14.h5": "f77a412778ef596f7f7aabe56218a6bc6aede01ddcaa53a4fcb821c8aaea68fe", + "demonstrations_readonly/demo_15.h5": "e3ebd836a7ee5788a6fef44bece54bebd1c478a76d9428bb16fd930971e85e76", + "demonstrations_readonly/demo_16.h5": "d2f9178c8acebf926efbb3689d3a067d1524e1551120abe96bc95e359ff2c4cd", + "demonstrations_readonly/demo_17.h5": "6ff39150d9515c1e3e8c35773e5ee72e8fc9c5b975ae153830db30847144f795", + "demonstrations_readonly/demo_18.h5": "96919a3cab164b92364ffbcbb9ac0181b55e109092a4c85d7d0700b507b3fbfa", + "demonstrations_readonly/demo_19.h5": "04763477b49476c17ec696bd2584c0b4fff7f7370f77a09968a676e9dbdfe6e9", + "environment.lock": "f9f11f093744865020243315494d48c69e38ff9e67783e7cf5f0a1e5f22b34aa", + "findings.md": "eabd15bcbb8b2fb706dd8c2b8f40657d596a4a476f85dae2c8e0db7ef2267bd3", + "geometry.py": "c0928a7a2bdd7fc71721688dfaa0fb8930e3cdec542f246aa9e1cb921dc245a7", + "handoff.md": "182952141fd1d0b3c1258a54cf2bf246b89197a8589b335f566d97c7ef4ef7be", + "inspect_demos.py": "6b1307d864b6a565dcd09c3de4da24ea7cda45193f9b7681bf03643023d249ff", + "memory.npz": "d484517e243210b4fd5b965141238c40f98201b1d5a954f7814ce410358dc4ec", + "model_tool_manifest.yaml": "5b015a2ae417b9e50e15e32f30c3daa0c0df2f5b773a466582dd8eb323cb6565", + "policy_runner.py": "cd8a30fc763583fb9bf6570414f01d56aba16241c733fc0cdfdfab0f8f27270e", + "retrieval.py": "c3565327599eafc648edee8ad532a24a8177140127ca6fb3b40c4cbc385557b8", + "scene_geometry.npy": "a02e38b2f8c440701f781d1cd0df96074cfab74e1cd9efab1c5128e3a6f9e29c", + "skills.md": "2d0c5b81690ae1c34f7beb494cf99cafa07bdfc13ba7bab7e1aea6f7bd862517", + "synthetic_checks.json": "ded871bb4ea863253c2f6abbca07544dbbaf984868dbe0f801a006d1b3ac362d", + "worker_api.py": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e", + "write_reports.py": "eb1ccf53993780fd48b9da9c7397e1e33f730673f9ff307f36d720e0952d30f1" + }, + "bundle_hash": "a6549b4d7ce0e72402d94586ccd4f747563c10e196661626451d81ff206c1ced", + "exploration_ledger_hash": "41252c093316649a6d8702e801b3be28276e408a556e907db86d50d0e2200b9c", + "entrypoint": "controller.reset_episode(); controller.act(obs)", + "selection": { + "rule": "exact-version success rate, valid rehearsal count, recency", + "rehearsals": [ + { + "episode": 4, + "bundle_hash": "291762e59688ba6e415b8a29845a4ff23becbb1aa3fac5a57743ac5ac7ed98ee", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 11, + "bundle_hash": "143a0954aaad3df62c4404f25050cb9fb9465df48451af87ede303b63d88cb9c", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 13, + "bundle_hash": "a6549b4d7ce0e72402d94586ccd4f747563c10e196661626451d81ff206c1ced", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 16, + "bundle_hash": "59aaa0da0bca46fe8d210ad90573a532c77fd940d7894cab4a68893184186a33", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 17, + "bundle_hash": "59aaa0da0bca46fe8d210ad90573a532c77fd940d7894cab4a68893184186a33", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + }, + { + "episode": 18, + "bundle_hash": "59aaa0da0bca46fe8d210ad90573a532c77fd940d7894cab4a68893184186a33", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 19, + "bundle_hash": "59aaa0da0bca46fe8d210ad90573a532c77fd940d7894cab4a68893184186a33", + "independent": true, + "valid": true, + "status": "finished", + "success": true, + "score_source": "native_step_feedback" + }, + { + "episode": 20, + "bundle_hash": "59aaa0da0bca46fe8d210ad90573a532c77fd940d7894cab4a68893184186a33", + "independent": true, + "valid": true, + "status": "finished", + "success": false, + "score_source": "native_step_feedback" + } + ] + } +} diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/geometry.py b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/geometry.py new file mode 100644 index 0000000000000000000000000000000000000000..e16cca2f28631777da4363b00322be3982951b97 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/geometry.py @@ -0,0 +1,60 @@ +import cv2,numpy as np + +def ball(rgb): + im=cv2.resize(np.asarray(rgb).squeeze(),(240,320));a=im.astype(float) + mask=((a.max(2)-a.min(2)<35)&(a.mean(2)>135)).astype('uint8')*255 + mask=cv2.morphologyEx(mask,cv2.MORPH_CLOSE,np.ones((5,5),np.uint8)) + n,l,stats,c=cv2.connectedComponentsWithStats(mask) + candidates=[] + for s,p in zip(stats[1:],c[1:]): + x,y,w,h,area=s + if 13<=w<=30 and 13<=h<=30 and 100110)).astype('uint8')*255 + n,l,stats,c=cv2.connectedComponentsWithStats(mask) + for j in range(1,n): + if stats[j,4]>500:mask[l==j]=0 + mask[:,:100]=0 + if ball_center is not None:cv2.circle(mask,tuple(np.rint(ball_center).astype(int)),18,0,-1) + lines=cv2.HoughLinesP(mask,1,np.pi/180,threshold=15,minLineLength=25,maxLineGap=15) + if lines is None:return None + ls=lines[:,0] + if not len(ls):return None + return np.mean(ls.reshape(-1,2),axis=0) + +def hand(rgb,previous=None): + im=cv2.resize(np.asarray(rgb).squeeze(),(240,320)) + cs=cv2.HoughCircles(cv2.cvtColor(im,cv2.COLOR_RGB2GRAY),cv2.HOUGH_GRADIENT,1,12,param1=80,param2=15,minRadius=6,maxRadius=11) + if cs is None:return previous + scores=[] + for x,y,r in cs[0]: + yy,xx=np.ogrid[:320,:240];inside=(xx-x)**2+(yy-y)**2<(r*.65)**2 + pix=im[inside].astype(float) + if pix.mean()>145 or pix.std()>55:continue + score=np.mean(pix.max(1)-pix.min(1))+.1*abs(pix.mean()-80) + if previous is not None:score+=np.linalg.norm(np.array([x,y])-previous)*1.3 + scores.append((score,np.array([x,y]))) + return min(scores,key=lambda t:t[0])[1] if scores else previous + +def track_ball(rgb,previous=None,wrist=None): + im=cv2.resize(np.asarray(rgb).squeeze(),(240,320));gray=cv2.cvtColor(im,cv2.COLOR_RGB2GRAY) + cs=cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT,1,10,param1=80,param2=10 if previous is not None else 14,minRadius=10,maxRadius=14) + candidates=[] + if cs is not None: + yy,xx=np.mgrid[:320,:240] + for x,y,r in cs[0]: + p=np.array([x,y]);v=gray[(xx-x)**2+(yy-y)**2<(r*.85)**2] + if x<65 or (wrist is not None and np.linalg.norm(p-wrist)<11):continue + dist=0 if previous is None else np.linalg.norm(p-previous) + if previous is not None and dist>22:continue + if v.std()>60 and np.mean(v>170)>.25 and np.mean(v<80)>(.02 if previous is not None else .12): + candidates.append((dist-float(v.std())*.03,p)) + if candidates:return min(candidates,key=lambda t:t[0])[1] + p=ball(rgb) + if p is not None and (previous is None or np.linalg.norm(p-previous)<22):return p + return None diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/handoff.md b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/handoff.md new file mode 100644 index 0000000000000000000000000000000000000000..fbb610a839ad373962bd0b0e48ea450f0054963b --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/handoff.md @@ -0,0 +1,6 @@ +# Handoff — v7 image-servo pusher +Entry point controller.py: reset_episode(), act(obs). Offline runtime uses Python, NumPy and OpenCV only. controller imports geometry.py and retrieval.py and can load colocated memory.npz for D20 fallback. No network, model service, simulator, API calls, or development agent are used by the frozen controller. + +Input is legal RGB plus agent/qpos and agent/qvel and step_id. The runner owns initial hold and horizon300. One bounded 7-component native action per call. RGB is resized to240x320 for top-camera geometry. Fallback additionally uses front RGB. Open gripper +1 throughout; arm translation and rotation obey the task contract. + +Current version is the exact policy that achieved native success in interactive episode12. See the v7 continuation in findings.md for updated behavior. Independent rehearsal is required and results are runner-owned. Source/demo analysis, exploration images/actions and prior versions remain in /workspace/evidence, /workspace/demo_analysis.md and /workspace/versions. Do not run preparation scripts to regenerate this snapshot. Original synthetic checks apply only to the historical retrieval draft, not this geometry controller. diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/inspect_demos.py b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/inspect_demos.py new file mode 100644 index 0000000000000000000000000000000000000000..04d8ab898087c8330247ff474c46371b37e3de95 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/inspect_demos.py @@ -0,0 +1,16 @@ +import importlib.util,json,cv2,numpy as np +from pathlib import Path +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() +manifest=json.load(open('/demo_manifest.json')); records=[]; rows=[]; all_a=[] +for e in manifest['episodes']: + n=e['length']; idx=[0,n//4,n//2,3*n//4,n]; cells=[] + d=api.read_demo(e['demo_id'],fields=['actions','obs/agent/qpos','obs/agent/qvel']);a=d['actions']; all_a.append(a) + record={'demo_id':e['demo_id'],'length':n,'visually_inspected_frames':idx,'cameras':['top_camera','front_camera'],'action_min':a.min(0).tolist(),'action_max':a.max(0).tolist(),'action_mean':a.mean(0).tolist(),'quarter_action_means':[x.mean(0).tolist() for x in np.array_split(a,4)],'qpos_start':d['obs/agent/qpos'][0].tolist(),'qpos_end':d['obs/agent/qpos'][-1].tolist(),'action_indices_analyzed':[0,n-1],'proprio_indices_analyzed':[0,n]};records.append(record) + for t in idx: + frames=api.read_demo(e['demo_id'],t,t+1,fields=['obs/sensor_data/'+c+'/rgb' for c in record['cameras']]);cell=np.zeros((212,336,3),np.uint8) + cell[20:,:144]=cv2.resize(frames['obs/sensor_data/top_camera/rgb'][0],(144,192));cell[20:164,144:]=cv2.resize(frames['obs/sensor_data/front_camera/rgb'][0],(192,144));cv2.putText(cell,f"{e['demo_id']} frame {t}",(5,15),cv2.FONT_HERSHEY_SIMPLEX,.45,(255,255,255),1);cells.append(cell) + rows.append(np.concatenate(cells,1)) + if len(rows)==4: + cv2.imwrite(f'/workspace/evidence/sheet_{len(records)//4}.png',cv2.cvtColor(np.concatenate(rows,0),cv2.COLOR_RGB2BGR));rows=[] +json.dump(records,open('/workspace/evidence/demo_statistics.json','w'),indent=2) +a=np.concatenate(all_a);print('total',len(a),'min',a.min(0),'max',a.max(0),'mean',a.mean(0));print([(r['demo_id'],r['length'],r['visually_inspected_frames']) for r in records]) diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/model_tool_manifest.yaml b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/model_tool_manifest.yaml new file mode 100644 index 0000000000000000000000000000000000000000..651a3c2a7b5f555b7f27b22e133d9402ea747638 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/model_tool_manifest.yaml @@ -0,0 +1,126 @@ +{ + "stage": "D20_E20_authorized_exploration", + "task_id": "PushSoccer-v1", + "status": "v7_pending_independent_rehearsal", + "coding_model": { + "identity": "Codex based on GPT-6 per session instructions; exact serving revision unavailable", + "weights": "provider-managed pretrained weights unchanged; no local weight artifact exposed" + }, + "runtime_models": [], + "pretrained_tool_weights": [], + "neural_finetuning": false, + "retrieval_memory": { + "kind": "nonparametric legal observation/action memory, not neural weights", + "file": "memory.npz", + "sha256": "d484517e243210b4fd5b965141238c40f98201b1d5a954f7814ce410358dc4ec", + "rows": 3244, + "feature_dimensions": 10752, + "source_demo_ids": [ + "demo_00", + "demo_01", + "demo_02", + "demo_03", + "demo_04", + "demo_05", + "demo_06", + "demo_07", + "demo_08", + "demo_09", + "demo_10", + "demo_11", + "demo_12", + "demo_13", + "demo_14", + "demo_15", + "demo_16", + "demo_17", + "demo_18", + "demo_19" + ], + "source_action_indices": "10..N-1 inclusive for each demo", + "parameters": "fixed handcrafted descriptor/scoring constants in controller.py; no optimization" + }, + "provenance": { + "demo_manifest_sha256": "c8e6362a45287db5f7c8aca0421d04f93a738c53431ec230182f1dad2ddc3e23", + "task_contract_sha256": "ea6e8cbd242622cb2e8f69861aa1b28444fa07dd5c7097d34b1047af298c7ee3", + "worker_api_sha256": "88cca5fa5c1c9570ca2bd90e8848f67c09224fa498d94e63634ad191e913c41e", + "source": "20 locally mounted sanitized HDF5 demonstrations read through API.read_demo", + "verified_manifest_and_common_lock": "runner supplied separately" + }, + "versions": { + "python": "3.10.20 (main, Mar 11 2026, 17:46:40) [GCC 14.3.0]", + "numpy": "2.2.6", + "opencv": "4.12.0", + "h5py": "3.16.0", + "platform": "Linux-5.15.0-94-generic-x86_64-with-glibc2.35" + }, + "dependencies": { + "runtime": [ + "Python standard library", + "numpy", + "opencv-python (cv2)" + ], + "offline_only": [ + "h5py", + "worker_api.py standalone API.read_demo" + ], + "not_used": [ + "scipy", + "torch", + "external neural models", + "simulators" + ] + }, + "actual_tools": [ + "functions.exec orchestration", + "exec_command local shell/Python", + "write_stdin local process completion", + "view_image contact-sheet inspection", + "Python importlib/json/pathlib/hashlib/platform/py_compile/ast", + "rg attempted but unavailable; local ls inventory", + "NumPy array statistics and retrieval", + "OpenCV resize/color conversion/contact sheets", + "h5py via API.read_demo", + "trusted API next_episode/latest_observation/execute_actions/finish_episode/budget_status/rehearse", + "OpenCV Hough/component image geometry" + ], + "network": { + "requests": 0, + "restriction": "internet only through audited provider proxy", + "proxy_tested": false, + "downloads": 0 + }, + "validation": { + "interactive_native_success_episodes": [ + 2, + 9, + 12 + ], + "independent_rehearsals_before_snapshot": [ + { + "episode": 4, + "valid": true, + "native_success": false + }, + { + "episode": 11, + "valid": true, + "native_success": false + } + ], + "environment_slots_used_before_rehearsal": 12 + }, + "limitations": [ + "v7 single interactive native success, independent validation pending", + "Occlusion can confuse gripper and ball", + "Action-integrated yaw and height", + "Limited one-retry recovery" + ], + "artifact_hashes": { + "controller.py": "ed75177dedf9f80a2335573e794c72deaca6035a2d424adc2e0c254e355d043e", + "geometry.py": "c0928a7a2bdd7fc71721688dfaa0fb8930e3cdec542f246aa9e1cb921dc245a7", + "retrieval.py": "c3565327599eafc648edee8ad532a24a8177140127ca6fb3b40c4cbc385557b8", + "memory.npz": "d484517e243210b4fd5b965141238c40f98201b1d5a954f7814ce410358dc4ec" + }, + "controller": "Handcrafted image servo with D20 retrieval fallback; no neural models or weight updates" +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/policy_runner.py b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/policy_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..e49448d6245feb7818ae505f1061708ab97c6ead --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/policy_runner.py @@ -0,0 +1,25 @@ +"""Frozen-program entry point; no development agent and no reset capability.""" +import importlib.util +import sys + +sys.path.insert(0,'/artifact') +sys.path.insert(0,'/') +from worker_api import API + + +def main(): + spec=importlib.util.spec_from_file_location('controller','/artifact/controller.py') + module=importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + module.reset_episode() + api=API() + result=api.latest_observation() + while not (result['terminated'] or result['truncated'] or result['horizon_reached']): + obs=dict(result['observation'],step_id=result['step_id']) + action=module.act(obs) + if action is None:break + response=api.execute_actions([action]) + result=response['steps'][-1] + + +if __name__=='__main__':main() diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/retrieval.py b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/retrieval.py new file mode 100644 index 0000000000000000000000000000000000000000..2c9625fec03e6710e8880b7bbfcac627f28305fe --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/retrieval.py @@ -0,0 +1,89 @@ +"""Unrehearsed D20 observation-conditioned, non-neural action retrieval. +Only current public images and joint observations enter retrieval. No trajectory +ID, frame index, seed, elapsed-demo alignment, simulator, or kinematics is used. +""" +from pathlib import Path +import numpy as np +import cv2 + +CAMERAS = ('top_camera', 'front_camera') +_BANK = None + +def reset_episode(): + """No per-episode trajectory cursor or scene assumptions to reset.""" + return None + +def image_features(rgb): + parts = [] + for name in CAMERAS: + im = np.asarray(rgb[name]) + if im.ndim == 4 and im.shape[0] == 1: + im = im[0] + if im.ndim != 3 or im.shape[2] != 3 or im.dtype != np.uint8: + raise ValueError('Expected uint8 RGB HWC or 1HWC') + if min(im.shape[:2]) < 8: + raise ValueError('Image too small') + # Both cameras have fixed descriptor sizes; top remains portrait. + small_size = (24, 32) if name == 'top_camera' else (32, 24) + large_size = (48, 64) if name == 'top_camera' else (64, 48) + coarse = cv2.resize(im, small_size, interpolation=cv2.INTER_AREA).astype(np.float32)/255. + fine = cv2.resize(im, large_size, interpolation=cv2.INTER_AREA).astype(np.float32)/255. + # Soft neutral-bright map emphasizes ball, gripper, and gate lines. + neutral = np.clip(1-(fine.max(2)-fine.min(2))/.25, 0, 1)*fine.mean(2) + parts.extend((coarse.ravel()/(.12*np.sqrt(coarse.size)), + neutral.ravel()/(.20*np.sqrt(neutral.size)))) + return np.concatenate(parts).astype(np.float32) + +def _load_bank(): + global _BANK + if _BANK is None: + with np.load(Path(__file__).with_name('memory.npz'), allow_pickle=False) as z: + _BANK = {k: z[k] for k in ('visual','qpos','qvel','actions')} + return _BANK + +def _hold(qpos): + # This is a fallback action, not the runner-owned initial hold. + g = 2*(float(qpos[7])+.01)/.05-1 + if not np.isfinite(g) or not -1 <= g <= 1: + return None + return np.array([0,0,0,0,0,0,g], dtype=np.float32) + +def act(obs): + """Return one legal Panda delta-pose action; None is not a success claim.""" + try: + step = int(obs['step_id']) + if step < 1 or step >= 300: + return None # Native 300 includes the runner's one charged hold. + p = obs['proprioception'] + q = np.asarray(p['agent/qpos'], dtype=np.float32).reshape(-1) + v = np.asarray(p['agent/qvel'], dtype=np.float32).reshape(-1) + if q.size != 9 or v.size != 9 or not np.isfinite(q).all() or not np.isfinite(v).all(): + return None + except (KeyError, TypeError, ValueError, OverflowError): + return None + try: + f = image_features(obs['rgb']) + except (KeyError, TypeError, ValueError, cv2.error): + return _hold(q) + bank = _load_bank() + pd = np.mean(((bank['qpos'][:,:7]-q[:7])/.25)**2, axis=1) + vd = np.mean(((bank['qvel'][:,:7]-v[:7])/.8)**2, axis=1) + # A joint-space shortlist bounds compute; RGB chooses among nearby poses. + k = min(768, len(pd)) + ix = np.argpartition(pd + .08*vd, k-1)[:k] + visual = bank['visual'][ix].astype(np.float32) + distance = np.sum((visual-f)**2, axis=1) + .6*pd[ix] + .08*vd[ix] + order = np.argsort(distance)[:5] + best = order[0] + if float(distance[best]) > 10 or float(pd[ix[best]]) > 16: + return _hold(q) # Unknown observation; no blind replay fallback. + neighbors = ix[order] + a = bank['actions'][neighbors] + # Do not cancel opposite demonstrated pushes by averaging them together. + ref = a[0,:6] + compatible = np.sum(a[:,:6]*ref, axis=1) >= -1e-5 + weights = np.exp(-(distance[order]-distance[best])/.08)*compatible + out = np.sum(a*weights[:,None], axis=0)/weights.sum() + out[3:5] = 0. + out[6] = 1. + return np.clip(out, -1, 1).astype(np.float32) diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/skills.md b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/skills.md new file mode 100644 index 0000000000000000000000000000000000000000..e5ee16f7a45880b0bf3a1e6afe059e1fbd64ba13 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/skills.md @@ -0,0 +1,10 @@ +# Implemented controller capabilities +- Detect neutral ball components and textured circles, gate line segments, and the wrist marker from public top RGB. +- Position behind the ball while descending; rotate gripper across the pushing direction. +- Correct pushing from current ball position and withdraw/re-approach once if needed. +- Fall back to the original authorized D20 observation-action memory when initial geometry is unavailable. +- Keep gripper open and return native bounded single-step actions through horizon300. + +Observed v5 competence: one interactive native success at283. Detection, integrated yaw/height, recovery and timing remain imperfect. No general success detector or grasp capability is claimed. + +V7 adds explicit perpendicular line correction while pushing, gate fitting with ball/robot masking, alignment-gated descent and loss-of-track withdrawal. Interactive native success at244 in episode12; independent result pending. diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/synthetic_checks.json b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/synthetic_checks.json new file mode 100644 index 0000000000000000000000000000000000000000..f0a0b2af940a7f58ef35fc8617642a4dd3012cef --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/synthetic_checks.json @@ -0,0 +1,21 @@ +{ + "status": "passed", + "scope": "syntax and synthetic inputs only; zero environment episodes; no demo policy replay", + "checks": [ + "compiled data shape", + "synthetic constant 0 batched=False", + "synthetic constant 0 batched=True", + "synthetic constant 127 batched=False", + "synthetic constant 127 batched=True", + "synthetic constant 255 batched=False", + "synthetic constant 255 batched=True", + "reset deterministic", + "native horizon including hold", + "last allowed step", + "nonfinite proprio rejected", + "missing camera hold", + "invalid hold rejected", + "current RGB changes action", + "current proprio changes action" + ] +} \ No newline at end of file diff --git a/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/worker_api.py b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/worker_api.py new file mode 100644 index 0000000000000000000000000000000000000000..ff137d1c68cb70a1549326d2d22b430c9cf4e20c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/PushSoccer-v1/frozen/worker_api.py @@ -0,0 +1,81 @@ +"""Standalone worker client; safe to mount without the runner package.""" +import base64 +import json +import socket +import struct +import uuid +import os +from pathlib import Path + +import numpy as np + + +def array_hook(value): + if value.get('__array__') is True: + dtype=np.dtype(value['dtype']) + if dtype.kind not in 'bifu':raise ValueError('non-numeric array from service') + raw=base64.b64decode(value['data'],validate=True) + return np.frombuffer(raw,dtype=dtype).reshape(value['shape']).copy() + return value + + +class API: + def __init__(self,socket_path='/rpc/control.sock',demo_root='/demonstrations',manifest='/demo_manifest.json'): + self.socket_path=socket_path + self.demo_root=Path(demo_root) + self.manifest=Path(manifest) + + def call(self,method,arguments=None,request_id=None): + # Caller can persist a request ID before sending. Never automatically retry. + request_id=request_id or str(uuid.uuid4()) + request={'request_id':request_id,'method':method,'arguments':arguments or {}} + if os.environ.get('AGENT_E20_RPC_TOKEN'): + request['token']=os.environ['AGENT_E20_RPC_TOKEN'] + payload=json.dumps(request,allow_nan=False).encode() + if len(payload)>65536:raise ValueError('request too large') + with socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) as s: + s.settimeout(1810);s.connect(self.socket_path) + s.sendall(struct.pack('!I',len(payload))+payload) + def exact(n): + chunks=[] + while n: + chunk=s.recv(min(n,1024*1024)) + if not chunk:raise RuntimeError('RPC interrupted; do not replay action with a new ID') + chunks.append(chunk);n-=len(chunk) + return b''.join(chunks) + length=struct.unpack('!I',exact(4))[0] + if length>64*1024*1024:raise RuntimeError('response too large') + result=json.loads(exact(length),object_hook=array_hook) + if not result['ok']:raise RuntimeError(result['error']) + return result['result'] + + def next_episode(self,request_id=None):return self.call('next_episode',request_id=request_id) + def latest_observation(self):return self.call('latest_observation') + def execute_actions(self,actions,request_id=None): + return self.call('execute_actions',{'actions':np.asarray(actions).tolist()},request_id) + def finish_episode(self):return self.call('finish_episode') + def budget_status(self):return self.call('budget_status') + def rehearse(self,candidate='candidate',request_id=None): + return self.call('rehearse',{'candidate':candidate},request_id) + def score_rehearsal(self,episode,visible_success,evidence): + return self.call('score_rehearsal',{'episode':episode,'visible_success':visible_success,'evidence':evidence}) + def freeze(self):return self.call('freeze') + + def read_demo(self,demo_id,start=0,stop=None,fields=None): + import h5py + manifest=json.loads(self.manifest.read_text()) + if manifest.get('status') not in ('released','released_for_offline_analysis'): + raise RuntimeError('demonstrations not released by trusted preflight') + entries={e['demo_id']:e for e in manifest['episodes']} + if demo_id not in entries:raise ValueError('unauthorized demo ID') + entry=entries[demo_id] + allowed={f['path'] for f in entry['fields']} + fields=sorted(allowed) if fields is None else fields + if not set(fields)<=allowed:raise ValueError('unauthorized demo field') + stop=entry['length']+1 if stop is None else stop + if not isinstance(start,int) or not isinstance(stop,int) or not 0<=start1e-6);ends.append((r['demo_id'],int(nz[-1])+1,r['length']-int(nz[-1])-1)) +q=np.concatenate(qa);v=np.concatenate(va) +notes=[ +'Ball overlaps the gate region; gripper behind it.', +'Ball partly occluded by hand/gate in the endpoint views.', +'Ball projects into the gate footprint in front view.', +'Ball projects inside/near the lower gate footprint.', +'Ball near the far edge of the gate in top view.', +'Ball partly obscured at the gate by the hand.', +'Ball visibly to the right of the gate in top view and below it in front view.', +'Ball on the far/right side of the gate in top view.', +'Ball beside the right edge of the gate in top view.', +'Ball on the far/right side of the angled gate in top view.', +'Ball near the far/right gate edge in top view.', +'Ball overlaps gate footprint in front view; hand is nearby.', +'Ball at the lower end/edge of the angled gate in top view.', +'Ball projects into the gate footprint in front view.', +'Ball near the upper/right gate edge in top view.', +'Ball at the upper gate edge in top view, within footprint in front view.', +'Ball overlaps the lower gate region in top view.', +'Ball near the lower gate edge in top view.', +'Ball above/right of gate in top view, below it in front view.', +'Ball near the gate left edge in top view, overlapping in front view.' +] +text='''# Offline D20 demonstration analysis — PushSoccer-v1 + +Status: preparation only. The draft has not been rehearsed, validated for task success, or frozen. Zero exploration episodes were spent. No environment or simulator was imported, created, or called. No hidden state, external solution, other-task data, or neural weight update was used. + +## Authorized sources and access + +Read `/task_contract.json`, `/demo_manifest.json`, and `/worker_api.py`. The manifest lists exactly demo_00 through demo_19, status `released_for_offline_analysis`, lineage `pinned_comparator`. All data access used standalone `API.read_demo` loaded with importlib; it reads the sanitized HDF5 locally without RPC. The full manifest was parsed programmatically (the initial terminal print was truncated). Only manifest-authorized RGB, qpos, qvel and action datasets were accessed. No reward, success flag, object pose, depth, segmentation, camera calibration, or robot root pose is available. + +## Actual visual inspection ledger + +Indices are zero-based observation indices. In every row, BOTH top_camera and front_camera were visually inspected at EACH listed index: 100 observation times, 200 images, displayed as five contact sheets. No left_camera or robot_camera image was read or inspected. Contact-sheet scaling preserves orientation, including portrait top-camera images. `evidence/sheet_1.png` through `sheet_5.png` contain consecutive groups of four demos. Numeric analysis used every action index 0..N-1 and every proprioception index 0..N in every demo. Feature compilation additionally read both selected RGB cameras at every index 10..N-1; those machine-processed images are NOT claimed as visually inspected. `candidate/compilation_audit.json` records those inclusive intervals. + +| Demo ID | N actions | Visually inspected indices (both cameras) | Endpoint visual evidence, not a success label | +|---|---:|---|---| +''' +for r,note in zip(records,notes): text+=f"| {r['demo_id']} | {r['length']} | {', '.join(map(str,r['visually_inspected_frames']))} | {note} |\n" +text+=''' +## Sequence and variation + +All 3,444 actions were analyzed. Lengths span 151–192 commands (7.55–9.60 seconds at 20 Hz), with N+1 images/proprio observations. Initial joint positions are exactly identical across the 20 demos; visual ball and gate location/orientation vary substantially. The top view shows a wooden tabletop, a black-and-white ball, a wire gate, and a white arm entering from the left. The front view resolves vertical approach better but sometimes merges the ball, gripper, and gate. Lighting/shadows and robot occlusion affect visual matching. No calibration was supplied, so image distances cannot be treated as meters. + +All demos have ten initial commands `[0,0,0,0,0,0,1]`. Later actions combine descent, lateral positioning and yaw adjustment, then a predominantly positive-root-x push with either sign of root-y, a positive-z withdrawal, and a stationary tail. This phase interpretation is inferred jointly from the sampled images and action sequences; exact contact times are not observable from sparse inspection. The timing is not used as a live policy clock. Every action has gripper +1, rotation components 3 and 4 exactly zero, xyz each within [-0.1,0.1], and component 5 within [-0.16,0.16]. These are normalized labels, NOT meters or radians. The overall mean is approximately `[0.026996,-0.000692,-0.036077,0,0,-0.002772,1]`. + +Per-demo quarter means below use np.array_split in temporal order; each tuple is normalized `(x,y,z,rotation_component_5)`. They show substantial lateral/yaw variation despite broadly shared descent and forward push. Full min/max/means and joint endpoints are in `evidence/demo_statistics.json`. + +| Demo | Quarter 1 | Quarter 2 | Quarter 3 | Quarter 4 | +|---|---|---|---|---| +''' +for r in records: + tuples=[str(tuple(float(f'{x:.3f}') for x in np.array(a)[[0,1,2,5]])) for a in r['quarter_action_means']] + text+='| '+r['demo_id']+' | '+' | '.join(tuples)+' |\n' +text+='\nTrailing fully stationary action intervals (inclusive) are: '+ '; '.join(f'{i}: {start}..{start+count-1} ({count})' for i,start,count in ends)+'.\n' +text+='\nGlobal joint position minima: `'+str(np.round(q.min(0),5).tolist())+'`; maxima: `'+str(np.round(q.max(0),5).tolist())+'`. Per-joint maximum absolute qvel: `'+str(np.round(abs(v).max(0),5).tolist())+'`. These are observed ranges, not joint safety limits.\n' +text+=''' +## Coordinate and interface conventions + +The contract specifies one Panda action part of width seven, robot_key null: `[dx,dy,dz,rx,ry,rz,gripper]`. No mobile-base prefix or second robot is present. Translation normalized [-1,1] maps to [-0.1,0.1] meters in the robot root frame; demonstration translational extrema therefore correspond to requested deltas of ±0.01 m under that contract, not measured realized displacement. Rotation is norm-clipped then multiplied by **-0.5 radians**, using Euler-to-quaternion conversion in a root-aligned frame. The negative scale matters; standard positive axis-angle semantics must not be substituted. Panda gripper is an absolute normalized target, +1 mapping to +0.04 m for its mimic joint. Contract bounds are seven [-1,1] intervals. + +The RGB views suggest that the common positive-x pushing phase moves generally rightward in the top view, while the two signs of y cover opposite lateral directions. This is qualitative, confounded by simultaneous components, and not a calibrated camera-to-root transformation. The draft retains the labels directly instead of introducing an unverified geometric transform or forward kinematics. + +The runner owns the initial hold and its one charged native step. Native horizon remains 300 and frequency 20 Hz. Policy step_id 1 is the first post-hold opportunity; the draft permits steps 1..299 and returns None from 300 onward. It does not reproduce the demos' ten leading holds. It accepts HWC or 1HWC RGB, with qpos/qvel at the exact contract paths. + +## Draft policy and rationale + +`candidate/controller.py` exposes reset_episode() and act(obs). It uses a read-only, nonparametric memory of all 3,244 post-leading-hold demonstration observations/action labels. Each observation is compared anew with current joint position/velocity and two current images. A 768-row joint-space shortlist is reranked using fixed RGB and soft neutral-bright image descriptors. Up to five nearby, direction-compatible labels are averaged. Runtime does not use stored demo IDs, frame indices, step-based phase selection, or a scene identity. Provenance indices are stored in the bank but not loaded by the controller. No learned visual network or neural fitting is involved; handcrafted descriptor scales and gates are uncalibrated draft choices. + +The first ten stationary commands per demo are excluded because observation-only retrieval could otherwise choose a zero command indefinitely at the initial pose. Stationary tails are retained. Native actions are clipped to the public bounds, with open gripper and the observed zero rotation components preserved. Missing images or a far-from-memory observation produces a legal gripper-preserving zero arm action when its gripper mapping is valid; an invalid mapping or invalid proprioception returns None. None means stop, not verified completion. The instruction is accepted but this task-specific draft has no language parser. + +## Uncertainty and limitations + +The images establish progress toward/through the visible gate, not benchmark success. Several endpoints visibly place the ball beside or beyond the projected gate; gate plane crossing, tolerances, direction requirements, contact state, hidden success logic and persistence are unknown. No endpoint was labeled successful, and no visual success detector is claimed. The policy can hold indefinitely near a stationary tail until the horizon; automatic success termination is intentionally absent. + +Image matching can confuse the robot with the similarly colored ball/gate, alias object position, fail under occlusion, depend on table texture/camera placement, or average actions across distinct situations. The joint shortlist can exclude the most relevant scene. No segmentation accuracy, unseen-scene generalization, collision behavior, closed-loop stability, runtime frequency, or physical recovery has been validated. Thresholds may cause stalling or premature refusal. The live initial hold differs in duration from the recorded leading holds; alignment is not assumed. Four cameras are legal but only two are used in this draft. + +The `rg` executable was unavailable during the final artifact review; Python was used for text inspection instead. Tools were limited to local shell/Python execution, NumPy, OpenCV, h5py, standard-library utilities and image viewing. No network request, package install, web search, external model, or provider proxy was used. Internet is restricted to the audited provider proxy as instructed; its availability was not tested. Environment access is unavailable at this stage and was not attempted. SciPy and torch were not imported. The runner will supply the verified manifest and common environment lock separately; this report does not replace either. + +## Checks actually performed + +`candidate/check_synthetic.py` passed 15 syntax/interface checks on fabricated constant-color observations and fabricated two-state memory fixtures. Checks cover legal finite shape/bounds, HWC/1HWC, malformed proprioception, missing camera hold, invalid hold rejection, reset determinism, horizon boundaries, and independent RGB/proprio influence. The actual compiled memory was loaded only with synthetic observations for interface checks. No policy was evaluated on demo observations, no replay score was computed, and no real task or simulator test was run. See `candidate/synthetic_checks.json`. These checks do not establish task competence. +''' +(R/'demo_analysis.md').write_text(text) +(C/'skills.md').write_text('''# Draft controller skills + +- Accept current legal top/front RGB and Panda qpos/qvel, including singleton-batched images. +- Recompute fixed non-neural image descriptors and retrieve nearby demonstrated actions on every call. +- Use demonstrated positioning/descent, push, withdrawal, and stationary labels without a trajectory clock. +- Produce seven bounded action values in contract order; preserve open gripper behavior from the demos. +- Hold on missing visual input when the current gripper target is legal; stop on invalid proprioception or exhausted horizon. + +These are implemented capabilities, not validated physical skills. There is no calibrated ball/gate detector, explicit contact reasoning, recovery planner, language interpretation, or verified completion detector. No imported task expert or pretrained perception model is used. +''') +(C/'findings.md').write_text('''# Offline findings + +All 20 authorized demos were analyzed: 3,444 action labels and all qpos/qvel observations; five top/front visual samples per demo (200 displayed images). Exact IDs/indices are in ../demo_analysis.md and ../evidence/demo_statistics.json. Additional machine feature reads are in compilation_audit.json. + +All initial qpos agree, but ball/gate geometry varies. All demos begin with ten zero-arm/open-gripper commands. The common pattern is descent and alignment, lateral/forward push, vertical withdrawal, stationary tail. xyz label extrema are ±0.1, yaw-component extrema ±0.16, other rotation labels zero, gripper always +1. The contract's rotation scale is negative, and translation labels are normalized. + +Endpoint images do not provide verified success labels. Some balls lie beside or beyond the projected gate. Calibration, success criteria and contact dynamics remain unknown. + +The draft compiles 3,244 labeled observations, excluding only the 200 leading stationary samples. Current RGB and joint observations select actions; no demo cursor or hidden scene identity is used. Fifteen syntax/synthetic checks passed. Zero rollout episodes, no simulator, no neural tuning, no web access. Major risks: scene aliasing, occlusion, incompatible neighbors, shortlist exclusion, stationary-tail stalling, and uncalibrated novelty thresholds. +''') +(C/'handoff.md').write_text('''# Handoff — offline preparation only + +Entry point: controller.py, reset_episode() and act(obs). Required colocated artifact: memory.npz. Runtime dependencies: Python, NumPy, OpenCV; no /demonstrations or API service access is needed at runtime. Import by file path is supported. Proprioception keys are agent/qpos and agent/qvel. RGB requires top_camera and front_camera; other legal cameras are unused. Instruction is accepted but not interpreted. + +Call reset_episode() once per episode. The runner performs its own initial hold. Call act with the first post-hold observation at step_id=1. One seven-component action is returned per call; no action batching or horizon/frequency change is requested. At step_id>=300 or invalid proprioception, None ends the episode without implying success. Camera failure/novelty generally holds; there is no certified success stop. + +Preparation artifacts: ../demo_analysis.md, ../evidence/sheet_1.png through sheet_5.png, ../evidence/demo_statistics.json, compilation_audit.json, synthetic_checks.json, model_tool_manifest.yaml. build_memory.py reproduces the memory from authorized mounts; inspect_demos.py recreates sheets/statistics. check_synthetic.py uses only fabricated observations. write_reports.py generates documentation. scripts use absolute preparation paths; controller resolves only its own adjacent memory. + +No environment was available or called. Draft has NOT been rehearsed, demonstrated successful, or frozen. No exploration budget has been spent. Next authorized stage must verify runtime integration and actual closed-loop behavior before making any performance claim; do not treat synthetic checks as rollouts. The runner separately supplies the verified demo manifest and common environment lock. All task memory is under /workspace. +''') +sha=lambda p:hashlib.sha256(Path(p).read_bytes()).hexdigest() +manifest={ + 'stage':'offline_D20_preparation','task_id':'PushSoccer-v1','status':'draft_unrehearsed_not_frozen', + 'coding_model':{'identity':'Codex based on GPT-6 per session instructions; exact serving revision unavailable','weights':'provider-managed pretrained weights unchanged; no local weight artifact exposed'}, + 'runtime_models':[],'pretrained_tool_weights':[],'neural_finetuning':False, + 'retrieval_memory':{'kind':'nonparametric legal observation/action memory, not neural weights','file':'memory.npz','sha256':sha(C/'memory.npz'),'rows':3244,'feature_dimensions':10752,'source_demo_ids':[r['demo_id'] for r in records],'source_action_indices':'10..N-1 inclusive for each demo','parameters':'fixed handcrafted descriptor/scoring constants in controller.py; no optimization'}, + 'provenance':{'demo_manifest_sha256':sha('/demo_manifest.json'),'task_contract_sha256':sha('/task_contract.json'),'worker_api_sha256':sha('/worker_api.py'),'source':'20 locally mounted sanitized HDF5 demonstrations read through API.read_demo','verified_manifest_and_common_lock':'runner supplied separately'}, + 'versions':{'python':sys.version,'numpy':np.__version__,'opencv':cv2.__version__,'h5py':h5py.__version__,'platform':platform.platform()}, + 'dependencies':{'runtime':['Python standard library','numpy','opencv-python (cv2)'],'offline_only':['h5py','worker_api.py standalone API.read_demo'],'not_used':['scipy','torch','external neural models','simulators']}, + 'actual_tools':['functions.exec orchestration','exec_command local shell/Python','write_stdin local process completion','view_image contact-sheet inspection','Python importlib/json/pathlib/hashlib/platform/py_compile/ast','rg attempted but unavailable; local ls inventory','NumPy array statistics and retrieval','OpenCV resize/color conversion/contact sheets','h5py via API.read_demo'], + 'network':{'requests':0,'restriction':'internet only through audited provider proxy','proxy_tested':False,'downloads':0}, + 'validation':{'syntax_and_synthetic_only':True,'checks_passed':15,'real_task_tests':0,'environment_episodes':0,'demo_policy_replays':0}, + 'limitations':['No environment available; no performance estimate','No success labels or calibrated geometry','Retrieval may alias scenes or stall','Native 20 Hz execution latency not established','Only top/front RGB used','Exact coding-model weight revision not exposed','rg executable unavailable; Python text inspection used instead'], + 'artifact_hashes':{p.name:sha(p) for p in [C/'controller.py',C/'build_memory.py',C/'compilation_audit.json',C/'check_synthetic.py',C/'synthetic_checks.json']}} +# JSON is a valid YAML 1.2 document and avoids an additional YAML dependency. +(C/'model_tool_manifest.yaml').write_text(json.dumps(manifest,indent=2)+'\n') +print('reports written; qpos/qvel/action analysis covered all 20 demos') diff --git a/agent_d20_e20/frozen_20261102/tasks/RopePalmCageHoldDex-v1/frozen/demonstrations_readonly/demo_01.h5 b/agent_d20_e20/frozen_20261102/tasks/RopePalmCageHoldDex-v1/frozen/demonstrations_readonly/demo_01.h5 new file mode 100644 index 0000000000000000000000000000000000000000..fa34023f8717e0195b983dd4a99ed97a45941d02 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/RopePalmCageHoldDex-v1/frozen/demonstrations_readonly/demo_01.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bab25a636b9d182ccf860daa17968a199a379f22ba18668bc86b93b487b4044b +size 81515675 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/bank.npz b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/bank.npz new file mode 100644 index 0000000000000000000000000000000000000000..9c65a4eac1f4a2306aa00fbb2be54bac9d423505 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/bank.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2ae657e57f0e1c62ce6b0573a1ff8a88c791fab967d750c4cc1cc1bcaece826 +size 9410644 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_00.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_00.h5 new file mode 100644 index 0000000000000000000000000000000000000000..291df5edd9c751a0545d810b0b7f37e92447d598 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_00.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32027094b90b832c8c5d996168f980a94f6dc681382efd4f99122e3ee285b2de +size 30445103 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_01.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_01.h5 new file mode 100644 index 0000000000000000000000000000000000000000..8a5b6c0491b816467eb2df223048ce21912cb3f8 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_01.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f16779da596aa643a6ac1f436c86305a3e3eb748bcdf4594ce7731d71cd2fae1 +size 30411974 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_02.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_02.h5 new file mode 100644 index 0000000000000000000000000000000000000000..605546921c76ac81af58fdbec8be5b78897818dc --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_02.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:addc4dc8a5a5f15dd3b430fa846ed337af747866236efd9d0c35d99292340b7d +size 31174090 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_03.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_03.h5 new file mode 100644 index 0000000000000000000000000000000000000000..2691feb934253ace2510af89b7ea75fc97f5b03a --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_03.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61b52f3082f2ae4ab5460ebef32964ff3c46186bd56889e6f16e9cce9e3b3ceb +size 31370969 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_05.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_05.h5 new file mode 100644 index 0000000000000000000000000000000000000000..9efd6b472086edef2a1eca90e07d6f9f4fa38818 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_05.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5505d338ead7de84a0ecbf8779c5e575ead35268045910f199100b2f8a44e02 +size 30428084 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_06.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_06.h5 new file mode 100644 index 0000000000000000000000000000000000000000..159fde57d6b14cfbb7e15a27ae4b61844e898303 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_06.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ca2c72af0acc8536331190d797d66576133855b96ca5d2737567cf6c2ac5dfe +size 30394160 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_07.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_07.h5 new file mode 100644 index 0000000000000000000000000000000000000000..a2c4399b5ed478678f8ad0481669b54b075c2d0b --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_07.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:874d599bf6418ce249f55298b1c6002f4edf660c2c693309b1f69034e34e10df +size 31156458 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_10.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_10.h5 new file mode 100644 index 0000000000000000000000000000000000000000..6bb8f00fa7fe97d7421c7b62d40b0c329e0cab69 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_10.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37b5bacacff1711d83c674029929bf31c35957ca8724600275f04a5322394277 +size 30447329 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_11.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_11.h5 new file mode 100644 index 0000000000000000000000000000000000000000..63d629890cc44ca9cfefbd749bf241658407f09a --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_11.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b53728ba7427cfec80235ff64e1bfa66a935e2e3faa73fb00b7d49ef215f58d +size 30411804 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_12.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_12.h5 new file mode 100644 index 0000000000000000000000000000000000000000..57f6c99f3cae8fafa15871077cee2ede197dac67 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_12.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4241cefe99af9d6801ca66478425b099f8144545ae58ef768c4c1613973ddf37 +size 31178467 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_13.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_13.h5 new file mode 100644 index 0000000000000000000000000000000000000000..ec9198ba0e41557a8c85b6f7aa5fa44b2a38857f --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_13.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09ea5f05aac1530a442813af179ea15af46634f9b134e488f98a1bf93dec675d +size 31371539 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_14.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_14.h5 new file mode 100644 index 0000000000000000000000000000000000000000..170b5091ff6463fe993c6b1437220ba2e3d3a95a --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_14.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c274b5856264852b6fc4f5b31032ceeccf7e43e1bf6a24cae8b85039e49f191 +size 31084371 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_15.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_15.h5 new file mode 100644 index 0000000000000000000000000000000000000000..4290e75d3ff9cee4eaeede1fb613885415560b5c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_15.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7c99599a0ba49abb0ffc60c6c9b8354dd4d05a17111c1d736e74440ea9322d1 +size 30446932 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_16.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_16.h5 new file mode 100644 index 0000000000000000000000000000000000000000..1ae4eadead181872d4008918e3ad0b8ab3b9ef39 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_16.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9b31caf8323c348dfb6f50f1c2c183478cd124dc654045eb5607422f14a7a4c +size 30409447 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_18.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_18.h5 new file mode 100644 index 0000000000000000000000000000000000000000..bbf31f9800f9178322d7a6a9d60458bf2e3e57f1 --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_18.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47105464bee6ae8c1c3bb985ed4d23383c67bbe2a9596c0ede0d34e1b401c57f +size 31372357 diff --git a/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_19.h5 b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_19.h5 new file mode 100644 index 0000000000000000000000000000000000000000..6b712fd88df14cf6bd27e260baf70695d2a5071c --- /dev/null +++ b/agent_d20_e20/frozen_20261102/tasks/SwingRing-v1/frozen/demonstrations_readonly/demo_19.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc613c10b03c817c13987d3f35c812c5937b95b86407b2f4d230819201f25fc2 +size 31089555