{"schema":"dvidia.piper-contact-protocol/v0.3","profile":"piper-rigid-block-task-v0.1","scope":"Paired authored PiPER contact-history pilot, privileged native state and synthetic rigid blocks. No learned policy, sensor pipeline, calibrated contact, shoe competence or physical robot qualification.","physical_robot_ready":false,"learned_policy":false,"cohort":"confirmation","seed":813407,"scenes":[{"id":"friction080-mass040-layout00","layout_index":0,"stratum":"nominal","friction":0.8,"mass_kg":0.04,"seed":813407,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29983853519640874,-0.027568087421794316,0.082],"target_position_m":[0.3480263504611899,0.07517012364274386,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.8,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction080-mass040-layout01","layout_index":1,"stratum":"nominal","friction":0.8,"mass_kg":0.04,"seed":813408,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29687092426844836,-0.026704529139887825,0.082],"target_position_m":[0.347925555044736,0.07501730350650714,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.8,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction080-mass060-layout00","layout_index":0,"stratum":"nominal","friction":0.8,"mass_kg":0.06,"seed":813409,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29983853519640874,-0.027568087421794316,0.082],"target_position_m":[0.3480263504611899,0.07517012364274386,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.8,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction080-mass060-layout01","layout_index":1,"stratum":"nominal","friction":0.8,"mass_kg":0.06,"seed":813410,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29687092426844836,-0.026704529139887825,0.082],"target_position_m":[0.347925555044736,0.07501730350650714,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.8,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction055-mass040-layout00","layout_index":0,"stratum":"moderate_friction","friction":0.55,"mass_kg":0.04,"seed":813411,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29983853519640874,-0.027568087421794316,0.082],"target_position_m":[0.3480263504611899,0.07517012364274386,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.55,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction055-mass040-layout01","layout_index":1,"stratum":"moderate_friction","friction":0.55,"mass_kg":0.04,"seed":813412,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29687092426844836,-0.026704529139887825,0.082],"target_position_m":[0.347925555044736,0.07501730350650714,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.55,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction055-mass060-layout00","layout_index":0,"stratum":"moderate_friction","friction":0.55,"mass_kg":0.06,"seed":813413,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29983853519640874,-0.027568087421794316,0.082],"target_position_m":[0.3480263504611899,0.07517012364274386,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.55,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction055-mass060-layout01","layout_index":1,"stratum":"moderate_friction","friction":0.55,"mass_kg":0.06,"seed":813414,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29687092426844836,-0.026704529139887825,0.082],"target_position_m":[0.347925555044736,0.07501730350650714,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.55,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction015-mass040-layout00","layout_index":0,"stratum":"low_friction","friction":0.15,"mass_kg":0.04,"seed":813415,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29983853519640874,-0.027568087421794316,0.082],"target_position_m":[0.3480263504611899,0.07517012364274386,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.15,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction015-mass040-layout01","layout_index":1,"stratum":"low_friction","friction":0.15,"mass_kg":0.04,"seed":813416,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29687092426844836,-0.026704529139887825,0.082],"target_position_m":[0.347925555044736,0.07501730350650714,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.04,"friction":0.15,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction015-mass060-layout00","layout_index":0,"stratum":"low_friction","friction":0.15,"mass_kg":0.06,"seed":813417,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29983853519640874,-0.027568087421794316,0.082],"target_position_m":[0.3480263504611899,0.07517012364274386,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.15,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}},{"id":"friction015-mass060-layout01","layout_index":1,"stratum":"low_friction","friction":0.15,"mass_kg":0.06,"seed":813418,"config":{"timestep":0.001,"control_dt":0.02,"timeout_s":20.0,"settle_s":0.5,"object_position_m":[0.29687092426844836,-0.026704529139887825,0.082],"target_position_m":[0.347925555044736,0.07501730350650714,0.08],"object_half_size_m":[0.02,0.02,0.02],"mass_kg":0.06,"friction":0.15,"table_top_m":0.06,"table_center_xy_m":[0.38,0.0],"table_half_size_xy_m":[0.17,0.22],"table_thickness_m":0.04,"goal_position_tolerance_m":0.025,"goal_dwell_s":0.25,"min_lift_m":0.06,"min_lift_dwell_s":0.1,"retreat_clearance_m":0.1,"joint_target_rate_rad_s":1.5,"jaw_target_rate_m_s":0.05,"tool_orientation_wxyz":[0.0,0.0,1.0,0.0],"carry_orientation_wxyz":[0.25881904510252074,0.0,0.9659258262890683,0.0]}}],"variants":["baseline_placement","baseline_open_jaw","probe_only_placement","probe_only_open_jaw","history_placement","history_open_jaw","hold"],"planned_attempts":84,"contract":{"profile":"piper-rigid-block-task-v0.1","scope":"Authored PiPER rigid-block contact pilot with privileged native state. Pinned upstream servos/inertias/collision proxies/gravity compensation, synthetic commands and uncalibrated contact. No learned skill, camera sensing, shoe manipulation or physical robot qualification.","physical_robot_ready":false,"arm_joint_order":["joint1","joint2","joint3","joint4","joint5","joint6"],"actions":{"joint_targets_rad":"six native position-servo targets in radians","gripper_position_m":"one native single-finger slide target in metres [0,.035]; 0 closed/.035 open; not measured full gap"},"gripper_joints":["joint7","joint8"],"independent_gripper_commands":1,"tcp":"authored site in link6 at local [0,0,.12003] near the distal finger-box centers; not hardware calibrated","object":"free rigid block with native gravity, no weld/equality/mocap or post-reset pose writes","contact":"stock native finger collision boxes; object priority1 authors pair friction explicitly","servo_gains":"unchanged upstream PiPER position servos and force caps; upstream robot gravcomp=1 retained","collision_support_exemption":"fixed base capsule may contact floor; moving robot/table/floor or block/nonfinger contacts are critical","observations":"privileged joint/object/TCP/contact state; no deployable sensor pipeline","success":"valid native physics, sustained bilateral table-free lift and retained carry to supported destination, then actual released/settled destination dwell and retreat","carry_contact_loss_tolerance_seconds":0.04,"contact_force_threshold_n":0.01,"simulation_asset_license":"MIT"},"contact_contract":{"schema":"dvidia.piper-contact-memory/v0.3","parameters":{"history_window_s":0.12,"minimum_history_s":0.1,"trend_rate_m_s":0.025,"trend_displacement_m":0.0025,"minimum_straightness":0.7,"trend_samples":2,"loss_samples":2,"slowdown_joint_delta_scale":0.35,"slowdown_duration_s":0.12,"hold_minimum_s":0.12,"hold_timeout_s":0.8,"settled_rate_m_s":0.008,"settled_displacement_m":0.0015,"settled_dwell_s":0.1,"resumed_joint_delta_scale":0.45,"maximum_reassessments":2},"acquisition":{"schema":"dvidia.piper-grip-guard/v1","parameters":{"probe_height_m":0.01,"probe_speed_m_s":0.02,"probe_min_object_rise_m":0.006,"qualification_dwell_s":0.1,"relative_drift_limit_m":0.003,"monitor_min_probe_motion_m":0.003,"consecutive_alarm_samples":2,"probe_timeout_s":1.4,"close_timeout_s":1.4,"retry_open_timeout_s":1.2,"retry_recenter_timeout_s":1.5,"retry_clearance_m":0.012,"max_retries":1},"observations":"grip check uses causal current privileged TCP/object pose and bilateral native contacts at 20 ms; no mass/friction or scorer input; downstream original motion policy remains unchanged and uses the existing lift outcome flag","qualification":"slow 10 mm probe; object rises at least 6 mm, both pads retain contact, support is absent and TCP-local drift <=3 mm for 100 ms","alarm":"two consecutive snapshots with relative drift, bilateral-contact loss or supported object failing to follow a moving probe; bounded closure/probe timeouts","recovery":"hold measured six joint targets first; only supported objects may be opened/recentered/retried, at most once; support loss stops closed","stop":"requested measured joint targets; native rate limiting and inertia may continue motion, which is recorded","duration":"original fixed episode timeout including every probe/retry/abort holding command","scope":"authored simulator controller, not a sensor implementation, hardware safety controller or learned policy"},"observations":"causal recorded privileged TCP/object poses and native contact/normal force snapshots; no material, mass, future observation or outcome input to the contact check","history":"inclusive past 120 ms of TCP-local object offset; unknown before 100 ms span; displacement is endpoint Euclidean distance, rate is displacement/span, slope is least-squares vector rate, straightness is displacement/summed consecutive path","trend":"rate >=25 mm/s, displacement >=2.5 mm and straightness >=0.7 for two snapshots; two bilateral-contact-loss snapshots independently request closed hold","slowdown":"scale original requested joint-position delta from measured joints by 0.35 for 120 ms, then hold measured joints closed; actual native speed is measured separately","reassessment":"minimum 120 ms hold; known window displacement and maximum pairwise excursion <=1.5 mm and rate <=8 mm/s, loaded bilateral contacts throughout, no table support and object rise >=6 mm sustained for 100 ms; timeout 800 ms, at most two holds","resume":"causally refresh original teacher held offset to current TCP-local object offset and scale requested joint deltas by 0.45 until supported arrival; subsequent persistent slip may hold again within the budget","probe_only":"identical acquisition and retry; removes postqualification carry monitoring only","stop":"measured joint-position requests with jaw closed; inertia and native target rate limits may continue physical motion","duration":"unchanged fixed episode budget including probe, retry, slowdown, hold and abort; no force/gain/dynamics/scorer change","scope":"authored simulator controller with privileged observations; no learned memory, material inference, sensor latency, hardware safety or task qualification claim"},"acquisition_contract":{"schema":"dvidia.piper-grip-guard/v1","parameters":{"probe_height_m":0.01,"probe_speed_m_s":0.02,"probe_min_object_rise_m":0.006,"qualification_dwell_s":0.1,"relative_drift_limit_m":0.003,"monitor_min_probe_motion_m":0.003,"consecutive_alarm_samples":2,"probe_timeout_s":1.4,"close_timeout_s":1.4,"retry_open_timeout_s":1.2,"retry_recenter_timeout_s":1.5,"retry_clearance_m":0.012,"max_retries":1},"observations":"grip check uses causal current privileged TCP/object pose and bilateral native contacts at 20 ms; no mass/friction or scorer input; downstream original motion policy remains unchanged and uses the existing lift outcome flag","qualification":"slow 10 mm probe; object rises at least 6 mm, both pads retain contact, support is absent and TCP-local drift <=3 mm for 100 ms","alarm":"two consecutive snapshots with relative drift, bilateral-contact loss or supported object failing to follow a moving probe; bounded closure/probe timeouts","recovery":"hold measured six joint targets first; only supported objects may be opened/recentered/retried, at most once; support loss stops closed","stop":"requested measured joint targets; native rate limiting and inertia may continue motion, which is recorded","duration":"original fixed episode timeout including every probe/retry/abort holding command","scope":"authored simulator controller, not a sensor implementation, hardware safety controller or learned policy"},"evaluation_contract":{"schema":"dvidia.piper-contact-sampled-evaluation/v0.3","following":{"schema":"dvidia.piper-grip-sampled-evaluation/v1","following_rise_m":0.01,"following_dwell_s":0.1,"qualification_lookahead_s":0.6,"local_offset_drift_limit_m":0.008,"post_alarm_window_s":0.1,"scope":"Independent recorded 20ms boundary proxies, not recomputed native physics or classifier accuracy. Following requires table-free object rise and stable TCP-local object offset, without controller predicates. Unresolved decisions and absent opportunities remain explicit. Alarm delays use simulator timestamps; wall computation is reported separately. Post-alarm path includes native servo motion while holding."},"motion_window_s":0.1,"settled_window_s":0.1,"settled_tcp_speed_limit_m_s":0.01,"minimum_settled_object_rise_m":0.006,"scope":"Independent recorded 20ms boundaries, not detector accuracy or physics recomputation. Motion windows retain actual native movement after commands, not instantaneous arrest. Settled, resumed and completed are separate; no observed true-slip opportunity is not a perfect score."},"implementation_sha256":{"piper_task.py":"4e3f16e6075842631ddb7aa7d53ea6d6c95b54934f7eb751da61b60a432fa167","piper_task_benchmark.py":"d1294fac93bb42a26a654c6fd0950718e528cbf3cd96ffcd53118da0a1646776","robot_profiles.py":"fb90782a6a9979e282182118ae0e3e29d00f101255cc57378dd3f692672bb13d","robot_profiles.lock.json":"4b2ee2ca675aceb2f826983cb3082a3e08e9aa0ff419b23078abcff08ebcc6fe","reference_task.py":"bbc768ccc202b8dd41cbd235b206e6478806ce47c1f30ae15dc662c0c1edcc3e","reference_sim.py":"c1201d22eb13dd07a236ee63cc4ba68e129f6067e8db61ed41af2d820eb5e3b8","reference_replay.py":"f73731434d55bac150db16c7205d341a70b95ce13e582e7a23d11dee31b27a19","piper_grip_guard.py":"90895566cad8d5a3c158a14d3165fa1866cb3d7a4a3eecac3ca0ca8ab3e88dfb","piper_grip_benchmark.py":"7ab72a8cbe77d4db96d3fa45087571e3e1d64f40fe92b6f37032936701f318e1","piper_contact_memory.py":"f608d6647046f6fa02d8ad5e87fad10853837520a6a0fae2043c7ad260a06c4c","piper_contact_benchmark.py":"6ebd44c3704cda8679335f988df0dcc7817b3f8da314b7a4fe8b3939215728bb"},"native_command_units":["rad","rad","rad","rad","rad","rad","m"],"simulation_asset_license":"MIT","layout_offset_limit_m":0.005,"timing_boundary":"Attempt wall includes asset verification, compilation, settling, authored planning/IK, physics, contact scoring and recorded state construction. Protocol/report/trace disk serialization, rendering, training, physical sensing, transport and actuation are excluded. Control computation windows are not sensor-to-actuator reaction times.","comparison":"Two shared XY layouts at each friction and mass; identical native mechanics and starting state within each scene. Baseline, acquisition probe-only and contact-history variants each have separately matched complete arm-tape/open-jaw controls, plus common hold. Probe-only and history share acquisition; only history adapts after qualification. All failures and full-duration aborts remain; invalid/incomplete tapes are never extended.","split_note":"Synthetic declared confirmation does not prove unseen scenes or physical reliability. Controller/evaluation parameters and sources are frozen before any native attempt."}
