{"abstract":"A shifted velocity reference omits angular motion of the lever arm.","category":"Robotics frame conventions","checks":6,"contract":"In a shared planar frame, v is origin velocity, w is signed angular velocity, r goes from origin to target point. Return target velocity v+[-w*ry,w*rx].","contract_signature":"v,w,r","evaluation_group":"model-118233e3d0a3ed9e","failed_approach":"Adding the cross term with reversed sign computes the opposite offset.","family":"z-robotics_frames-twist-reference-point","id":"FA-12116","implementations":{"attempt":{"sha256":"18c9d6e96295ce3bd798ddfb5c3ba34491b0ccce036bedec4c2b065694c8c18f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\ndef rot(v, q):\n    x,y = v\n    return [(x,y),(-y,x),(-x,-y),(y,-x)][q%4]\n\nN = 1\nobservations = []\ndef solve(v,w,r):\n    return [v[0]+w*r[1],v[1]-w*r[0]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('forward lever', solve([0,0],2,[N,0]), [0,2*N])\ncheck('left lever', solve([0,0],2,[0,N]), [-2*N,0])\ncheck('translation and rotation', solve([N,N],-1,[N,2*N]), [3*N,0])\ncheck('zero angular', solve([N,-N],0,[N,N]), [N,-N])\ncheck('zero lever', solve([N,-N],3,[0,0]), [N,-N])\ncheck('negative lever', solve([0,0],-2,[-N,-N]), [-2*N,2*N])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"8a01c9fa8ea7057d6de979b8c98c70fb12da58c2a5a6b33576b6456e5d413b04","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\ndef rot(v, q):\n    x,y = v\n    return [(x,y),(-y,x),(-x,-y),(y,-x)][q%4]\n\nN = 1\nobservations = []\ndef solve(v,w,r):\n    return v\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('forward lever', solve([0,0],2,[N,0]), [0,2*N])\ncheck('left lever', solve([0,0],2,[0,N]), [-2*N,0])\ncheck('translation and rotation', solve([N,N],-1,[N,2*N]), [3*N,0])\ncheck('zero angular', solve([N,-N],0,[N,N]), [N,-N])\ncheck('zero lever', solve([N,-N],3,[0,0]), [N,-N])\ncheck('negative lever', solve([0,0],-2,[-N,-N]), [-2*N,2*N])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Small exact offline frame model; not a robot middleware implementation or continuous pose estimator. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"z-robotics_frames-twist-reference-point","generated_at":"2026-09-29T14:38:54.028531+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Robot adapters must preserve the declared frame, reference point, and representation conventions across interfaces.","root_cause":"Linear velocity at the body origin is copied to an offset point.","sha256":"6ebf71dd8841b25345ac83e8b2a1d980d313ef31c4d56f9ea24c9546fe2d1fb8","title":"A shifted velocity reference omits angular motion of the lever arm · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":38.415,"exit_code":1,"observations":[{"actual":[0,-2],"check":"forward lever","expected":[0,2],"passed":false},{"actual":[2,0],"check":"left lever","expected":[-2,0],"passed":false},{"actual":[-1,2],"check":"translation and rotation","expected":[3,0],"passed":false},{"actual":[1,-1],"check":"zero angular","expected":[1,-1],"passed":true},{"actual":[1,-1],"check":"zero lever","expected":[1,-1],"passed":true},{"actual":[2,-2],"check":"negative lever","expected":[-2,2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"forward lever\", \"actual\": [0, -2], \"expected\": [0, 2], \"passed\": false}, {\"check\": \"left lever\", \"actual\": [2, 0], \"expected\": [-2, 0], \"passed\": false}, {\"check\": \"translation and rotation\", \"actual\": [-1, 2], \"expected\": [3, 0], \"passed\": false}, {\"check\": \"zero angular\", \"actual\": [1, -1], \"expected\": [1, -1], \"passed\": true}, {\"check\": \"zero lever\", \"actual\": [1, -1], \"expected\": [1, -1], \"passed\": true}, {\"check\": \"negative lever\", \"actual\": [2, -2], \"expected\": [-2, 2], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.066,"exit_code":1,"observations":[{"actual":[0,0],"check":"forward lever","expected":[0,2],"passed":false},{"actual":[0,0],"check":"left lever","expected":[-2,0],"passed":false},{"actual":[1,1],"check":"translation and rotation","expected":[3,0],"passed":false},{"actual":[1,-1],"check":"zero angular","expected":[1,-1],"passed":true},{"actual":[1,-1],"check":"zero lever","expected":[1,-1],"passed":true},{"actual":[0,0],"check":"negative lever","expected":[-2,2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"forward lever\", \"actual\": [0, 0], \"expected\": [0, 2], \"passed\": false}, {\"check\": \"left lever\", \"actual\": [0, 0], \"expected\": [-2, 0], \"passed\": false}, {\"check\": \"translation and rotation\", \"actual\": [1, 1], \"expected\": [3, 0], \"passed\": false}, {\"check\": \"zero angular\", \"actual\": [1, -1], \"expected\": [1, -1], \"passed\": true}, {\"check\": \"zero lever\", \"actual\": [1, -1], \"expected\": [1, -1], \"passed\": true}, {\"check\": \"negative lever\", \"actual\": [0, 0], \"expected\": [-2, 2], \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}