{"abstract":"An exploding simulation is reported as mild drift.","category":"Physics integrator stability","checks":8,"contract":"solve(states, k, m, tol, blowup): states [[x,v],...] of a spring integrator; E=0.5 m v^2+0.5 k x^2. Relative drift r=|E-E0|/E0 (absolute when E0=0). Scan in order: first state with E>blowup*E0 (E0>0) returns [\"blowup\", index, its r]. Otherwise [\"drift\", first index with r>tol, max r] or [\"ok\", -1, max r].","contract_signature":"states, k, m, tol, blowup","evaluation_group":"w2-physics_integrator_stability-energy-drift-monitor","failed_approach":"Breaking out of the loop at the first drift also hides later blowups and truncates the maximum.","family":"w2-physics_integrator_stability-energy-drift-monitor-blowup-precedence","id":"FA-87326","implementations":{"attempt":{"sha256":"c6546b1b7cc8d7b9f363dd322a4b08392a53632ed444fed4372865d3d2fb590b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(states, k, m, tol, blowup):\n    def en(s):\n        return 0.5 * m * s[1] * s[1] + 0.5 * k * s[0] * s[0]\n    e0 = en(states[0])\n    scale = e0 if e0 > 0 else 1.0\n    worst = 0.0\n    first_drift = -1\n    for i, s in enumerate(states):\n        e = en(s)\n        if e0 > 0 and e > blowup * e0:\n            return ['blowup', i, round(abs(e - e0) / scale, 6)]\n        r = abs(e - e0) / scale\n        if r > worst:\n            worst = r\n        if r > tol and first_drift < 0:\n            first_drift = i\n            break\n    if first_drift >= 0:\n        return ['drift', first_drift, round(worst, 6)]\n    return ['ok', -1, round(worst, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[[-0.783, -0.238], [-0.7094, -0.2142], [-0.6366, -0.1928], [-0.5724, -0.1735], [-0.5118, -0.1562], [-0.4515, -0.1405], [-0.4005, -0.1265], [-0.3653, -0.1138]], 0.542, 0.74, 0.01, 1.5], ['drift', 1, 0.781113]], [[[[-0.116, 0.802], [-0.0963, 0.7218], [-0.083, 0.6496], [-0.0736, 0.5847], [-0.0638, 0.5262]], 3.971, 2.001, 0.1, 1.5], ['drift', 1, 0.574622]], [[[[-0.727, -0.401], [-0.7918, -0.4411], [-0.8566, -0.4852], [-0.9532, -0.5337], [-1.0294, -0.5871], [-1.1522, -0.6458], [-1.2399, -0.7104]], 3.173, 0.604, 0.01, 3.0], ['drift', 1, 1.921313]], [[[[0.299, -0.699], [0.3106, -0.713], [0.3249, -0.7272], [0.332, -0.7418]], 1.57, 2.945, 0.01, 2.0], ['drift', 1, 0.135693]], [[[[0.865, 0.17], [0.8809, 0.17], [0.8942, 0.17], [0.8825, 0.17], [0.8875, 0.17]], 4.902, 1.518, 0.05, 2.0], ['drift', 2, 0.067843]], [[[[-0.138, 0.988], [-0.1281, 0.988], [-0.1264, 0.988]], 2.839, 1.096, 0.1, 3.0], ['ok', -1, 0.007747]], [[[[-0.5, -0.212], [-0.5001, -0.2162], [-0.5057, -0.2206], [-0.5073, -0.225], [-0.5207, -0.2295], [-0.5225, -0.2341]], 2.84, 2.401, 0.1, 2.0], ['drift', 5, 0.108825]], [[[[0.0, 0.0], [0.0023, 0.0], [0.008, 0.0], [0.0167, 0.0], [0.0239, 0.0]], 1.47, 2.583, 0.01, 2.0], ['ok', -1, 0.00042]]], [[[[[-0.642, -0.0], [-0.6185, -0.0], [-0.5905, -0.0], [-0.5692, -0.0]], 4.928, 1.024, 0.01, 3.0], ['drift', 1, 0.213933]], [[[[-0.821, -0.56], [-0.7394, -0.504], [-0.6518, -0.4536]], 1.819, 0.974, 0.05, 1.5], ['drift', 1, 0.36456]], [[[[0.881, -0.663], [0.8983, -0.663], [0.8938, -0.663], [0.8794, -0.663], [0.895, -0.663]], 1.391, 0.858, 0.05, 2.0], ['ok', -1, 0.029392]], [[[[-0.758, 0.799], [-0.7781, 0.815], [-0.7769, 0.8313], [-0.7869, 0.8479], [-0.7916, 0.8649], [-0.8053, 0.8822], [-0.8216, 0.8998]], 4.754, 2.008, 0.01, 1.5], ['drift', 1, 0.204677]], [[[[0.0, 0.0], [0.0066, 0.0], [0.0158, 0.0], [0.0191, 0.0], [0.0228, 0.0], [0.023, 0.0]], 1.146, 1.18, 0.1, 1.5], ['ok', -1, 0.000303]], [[[[0.05, 0.208], [0.0629, 0.2288], [0.0783, 0.2517], [0.0915, 0.2768], [0.1073, 0.3045], [0.1215, 0.335]], 0.567, 1.399, 0.05, 3.0], ['drift', 1, 1.669724]], [[[[0.388, 0.822], [0.3906, 0.7973], [0.3822, 0.7734], [0.382, 0.7502], [0.3761, 0.7277], [0.3717, 0.7059], [0.3586, 0.6847], [0.3536, 0.6642]], 1.849, 1.488, 0.05, 3.0], ['drift', 2, 0.308574]], [[[[-0.009, 0.479], [-0.0002, 0.479], [0.0045, 0.479], [0.0118, 0.479], [0.0156, 0.479]], 4.602, 1.292, 0.01, 2.0], ['ok', -1, 0.002517]]], [[[[[0.109, -0.125], [0.1286, -0.1375], [0.1452, -0.1513], [0.1681, -0.1664]], 2.292, 1.906, 0.1, 1.5], ['blowup', 2, 0.612872]], [[[[0.201, -0.117], [0.1866, -0.1053], [0.1651, -0.0948], [0.1587, -0.0853], [0.1496, -0.0768], [0.1401, -0.0691], [0.1356, -0.0622], [0.13, -0.056], [0.1226, -0.0504], [0.1122, -0.0453]], 2.394, 1.441, 0.05, 1.5], ['drift', 1, 0.715793]], [[[[0.009, 0.587], [0.0118, 0.5283], [0.0122, 0.4755], [0.0149, 0.4279], [0.0189, 0.3851], [0.0254, 0.3466]], 2.481, 2.002, 0.1, 1.5], ['drift', 1, 0.649139]], [[[[0.585, -0.43], [0.6088, -0.4386], [0.6199, -0.4474], [0.6363, -0.4563], [0.6676, -0.4654], [0.6834, -0.4748]], 3.589, 1.482, 0.01, 2.0], ['drift', 1, 0.338168]], [[[[0.563, -0.115], [0.5674, -0.115], [0.576, -0.115], [0.5797, -0.115], [0.5794, -0.115], [0.5764, -0.115], [0.5793, -0.115], [0.5693, -0.115], [0.5687, -0.115], [0.5645, -0.115]], 0.631, 2.836, 0.1, 2.0], ['ok', -1, 0.050698]], [[[[-0.864, -0.368], [-0.8698, -0.3754], [-0.8662, -0.3829], [-0.8745, -0.3905]], 1.369, 0.756, 0.05, 1.5], ['ok', -1, 0.033702]], [[[[0.058, -0.164], [0.0735, -0.1804], [0.0839, -0.1984], [0.101, -0.2183], [0.1181, -0.2401]], 2.553, 1.801, 0.1, 3.0], ['drift', 1, 1.44498]], [[[[0.955, 0.743], [0.9477, 0.743], [0.9408, 0.743], [0.9342, 0.743]], 2.622, 2.919, 0.05, 2.0], ['ok', -1, 0.02574]]], [[[[[0.0, 0.0], [0.0094, 0.0], [0.0161, 0.0], [0.025, 0.0], [0.0329, 0.0], [0.0397, 0.0], [0.0448, 0.0], [0.0471, 0.0]], 1.394, 2.588, 0.05, 3.0], ['ok', -1, 0.001546]], [[[[0.644, -0.025], [0.6559, -0.0255], [0.6763, -0.026], [0.689, -0.0265]], 1.658, 2.588, 0.05, 3.0], ['drift', 2, 0.144585]], [[[[0.423, -0.046], [0.4239, -0.046], [0.4257, -0.046], [0.4288, -0.046], [0.4231, -0.046], [0.4219, -0.046], [0.4287, -0.046], [0.4355, -0.046]], 3.517, 0.566, 0.05, 3.0], ['drift', 7, 0.059861]], [[[[-0.83, -0.352], [-0.7456, -0.3168], [-0.6688, -0.2851], [-0.5968, -0.2566], [-0.5378, -0.2309], [-0.4811, -0.2079]], 1.595, 0.91, 0.05, 1.5], ['drift', 1, 0.662823]], [[[[0.699, -0.578], [0.707, -0.578], [0.7158, -0.578], [0.7171, -0.578]], 4.155, 2.539, 0.05, 1.5], ['ok', -1, 0.037]], [[[[-0.418, -0.23], [-0.4168, -0.2346], [-0.4241, -0.2393], [-0.4299, -0.2441], [-0.4457, -0.249], [-0.4569, -0.2539], [-0.4578, -0.259]], 2.552, 1.183, 0.05, 3.0], ['drift', 3, 0.207936]], [[[[0.935, 0.607], [0.9784, 0.6191], [0.9876, 0.6315], [0.9907, 0.6442]], 1.868, 0.979, 0.1, 2.0], ['drift', 2, 0.12335]], [[[[-0.322, -0.896], [-0.3112, -0.8691], [-0.3041, -0.843], [-0.2959, -0.8178], [-0.2873, -0.7932], [-0.277, -0.7694], [-0.2571, -0.7463], [-0.2386, -0.724], [-0.2285, -0.7022], [-0.2117, -0.6812]], 3.185, 1.656, 0.05, 3.0], ['drift', 1, 0.450995]]], [[[[[0.0, 0.0], [0.0076, 0.0], [0.0119, 0.0]], 3.375, 0.919, 0.1, 3.0], ['ok', -1, 0.000239]], [[[[-0.985, -0.74], [-0.8703, -0.666], [-0.7906, -0.5994], [-0.7156, -0.5395], [-0.648, -0.4855], [-0.589, -0.437], [-0.5247, -0.3933], [-0.4684, -0.3539], [-0.4164, -0.3185]], 2.627, 2.374, 0.05, 2.0], ['drift', 1, 0.819081]], [[[[-0.143, -0.952], [-0.1382, -0.952], [-0.1308, -0.952], [-0.1243, -0.952], [-0.1212, -0.952]], 2.712, 1.57, 0.01, 2.0], ['drift', 4, 0.010566]], [[[[0.355, -0.075], [0.3414, -0.0727], [0.3418, -0.0706], [0.3422, -0.0685], [0.3388, -0.0664]], 4.633, 0.948, 0.05, 1.5], ['drift', 1, 0.090335]], [[[[0.174, -0.48], [0.1771, -0.4896], [0.1863, -0.4994], [0.1987, -0.5094], [0.2011, -0.5196]], 1.179, 1.294, 0.01, 1.5], ['drift', 1, 0.189336]], [[[[0.996, -0.695], [0.9888, -0.695], [0.9931, -0.695], [0.9804, -0.695], [0.9865, -0.695], [1.0062, -0.695]], 3.899, 1.966, 0.05, 2.0], ['ok', -1, 0.024953]], [[[[-0.121, -0.819], [-0.1224, -0.8354], [-0.1203, -0.8521], [-0.1142, -0.8691], [-0.1142, -0.8865]], 4.298, 2.862, 0.01, 1.5], ['drift', 1, 0.162713]], [[[[0.304, 0.926], [0.2951, 0.8982], [0.2913, 0.8713], [0.2845, 0.8451], [0.273, 0.8198]], 4.318, 0.794, 0.01, 2.0], ['drift', 1, 0.207843]]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"case %d\" % i, solve(*args), expected)\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":"b8e17bbfa1d07b45507e3c4a660ffdebd7d0ab8b7990935ed714f0d274c5db1e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(states, k, m, tol, blowup):\n    def en(s):\n        return 0.5 * m * s[1] * s[1] + 0.5 * k * s[0] * s[0]\n    e0 = en(states[0])\n    scale = e0 if e0 > 0 else 1.0\n    worst = 0.0\n    first_drift = -1\n    for i, s in enumerate(states):\n        e = en(s)\n        if e0 > 0 and e > blowup * e0:\n            return ['blowup', i, round(abs(e - e0) / scale, 6)]\n        r = abs(e - e0) / scale\n        if r > worst:\n            worst = r\n        if r > tol and first_drift < 0:\n            return ['drift', i, round(r, 6)]\n    if first_drift >= 0:\n        return ['drift', first_drift, round(worst, 6)]\n    return ['ok', -1, round(worst, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[[-0.783, -0.238], [-0.7094, -0.2142], [-0.6366, -0.1928], [-0.5724, -0.1735], [-0.5118, -0.1562], [-0.4515, -0.1405], [-0.4005, -0.1265], [-0.3653, -0.1138]], 0.542, 0.74, 0.01, 1.5], ['drift', 1, 0.781113]], [[[[-0.116, 0.802], [-0.0963, 0.7218], [-0.083, 0.6496], [-0.0736, 0.5847], [-0.0638, 0.5262]], 3.971, 2.001, 0.1, 1.5], ['drift', 1, 0.574622]], [[[[-0.727, -0.401], [-0.7918, -0.4411], [-0.8566, -0.4852], [-0.9532, -0.5337], [-1.0294, -0.5871], [-1.1522, -0.6458], [-1.2399, -0.7104]], 3.173, 0.604, 0.01, 3.0], ['drift', 1, 1.921313]], [[[[0.299, -0.699], [0.3106, -0.713], [0.3249, -0.7272], [0.332, -0.7418]], 1.57, 2.945, 0.01, 2.0], ['drift', 1, 0.135693]], [[[[0.865, 0.17], [0.8809, 0.17], [0.8942, 0.17], [0.8825, 0.17], [0.8875, 0.17]], 4.902, 1.518, 0.05, 2.0], ['drift', 2, 0.067843]], [[[[-0.138, 0.988], [-0.1281, 0.988], [-0.1264, 0.988]], 2.839, 1.096, 0.1, 3.0], ['ok', -1, 0.007747]], [[[[-0.5, -0.212], [-0.5001, -0.2162], [-0.5057, -0.2206], [-0.5073, -0.225], [-0.5207, -0.2295], [-0.5225, -0.2341]], 2.84, 2.401, 0.1, 2.0], ['drift', 5, 0.108825]], [[[[0.0, 0.0], [0.0023, 0.0], [0.008, 0.0], [0.0167, 0.0], [0.0239, 0.0]], 1.47, 2.583, 0.01, 2.0], ['ok', -1, 0.00042]]], [[[[[-0.642, -0.0], [-0.6185, -0.0], [-0.5905, -0.0], [-0.5692, -0.0]], 4.928, 1.024, 0.01, 3.0], ['drift', 1, 0.213933]], [[[[-0.821, -0.56], [-0.7394, -0.504], [-0.6518, -0.4536]], 1.819, 0.974, 0.05, 1.5], ['drift', 1, 0.36456]], [[[[0.881, -0.663], [0.8983, -0.663], [0.8938, -0.663], [0.8794, -0.663], [0.895, -0.663]], 1.391, 0.858, 0.05, 2.0], ['ok', -1, 0.029392]], [[[[-0.758, 0.799], [-0.7781, 0.815], [-0.7769, 0.8313], [-0.7869, 0.8479], [-0.7916, 0.8649], [-0.8053, 0.8822], [-0.8216, 0.8998]], 4.754, 2.008, 0.01, 1.5], ['drift', 1, 0.204677]], [[[[0.0, 0.0], [0.0066, 0.0], [0.0158, 0.0], [0.0191, 0.0], [0.0228, 0.0], [0.023, 0.0]], 1.146, 1.18, 0.1, 1.5], ['ok', -1, 0.000303]], [[[[0.05, 0.208], [0.0629, 0.2288], [0.0783, 0.2517], [0.0915, 0.2768], [0.1073, 0.3045], [0.1215, 0.335]], 0.567, 1.399, 0.05, 3.0], ['drift', 1, 1.669724]], [[[[0.388, 0.822], [0.3906, 0.7973], [0.3822, 0.7734], [0.382, 0.7502], [0.3761, 0.7277], [0.3717, 0.7059], [0.3586, 0.6847], [0.3536, 0.6642]], 1.849, 1.488, 0.05, 3.0], ['drift', 2, 0.308574]], [[[[-0.009, 0.479], [-0.0002, 0.479], [0.0045, 0.479], [0.0118, 0.479], [0.0156, 0.479]], 4.602, 1.292, 0.01, 2.0], ['ok', -1, 0.002517]]], [[[[[0.109, -0.125], [0.1286, -0.1375], [0.1452, -0.1513], [0.1681, -0.1664]], 2.292, 1.906, 0.1, 1.5], ['blowup', 2, 0.612872]], [[[[0.201, -0.117], [0.1866, -0.1053], [0.1651, -0.0948], [0.1587, -0.0853], [0.1496, -0.0768], [0.1401, -0.0691], [0.1356, -0.0622], [0.13, -0.056], [0.1226, -0.0504], [0.1122, -0.0453]], 2.394, 1.441, 0.05, 1.5], ['drift', 1, 0.715793]], [[[[0.009, 0.587], [0.0118, 0.5283], [0.0122, 0.4755], [0.0149, 0.4279], [0.0189, 0.3851], [0.0254, 0.3466]], 2.481, 2.002, 0.1, 1.5], ['drift', 1, 0.649139]], [[[[0.585, -0.43], [0.6088, -0.4386], [0.6199, -0.4474], [0.6363, -0.4563], [0.6676, -0.4654], [0.6834, -0.4748]], 3.589, 1.482, 0.01, 2.0], ['drift', 1, 0.338168]], [[[[0.563, -0.115], [0.5674, -0.115], [0.576, -0.115], [0.5797, -0.115], [0.5794, -0.115], [0.5764, -0.115], [0.5793, -0.115], [0.5693, -0.115], [0.5687, -0.115], [0.5645, -0.115]], 0.631, 2.836, 0.1, 2.0], ['ok', -1, 0.050698]], [[[[-0.864, -0.368], [-0.8698, -0.3754], [-0.8662, -0.3829], [-0.8745, -0.3905]], 1.369, 0.756, 0.05, 1.5], ['ok', -1, 0.033702]], [[[[0.058, -0.164], [0.0735, -0.1804], [0.0839, -0.1984], [0.101, -0.2183], [0.1181, -0.2401]], 2.553, 1.801, 0.1, 3.0], ['drift', 1, 1.44498]], [[[[0.955, 0.743], [0.9477, 0.743], [0.9408, 0.743], [0.9342, 0.743]], 2.622, 2.919, 0.05, 2.0], ['ok', -1, 0.02574]]], [[[[[0.0, 0.0], [0.0094, 0.0], [0.0161, 0.0], [0.025, 0.0], [0.0329, 0.0], [0.0397, 0.0], [0.0448, 0.0], [0.0471, 0.0]], 1.394, 2.588, 0.05, 3.0], ['ok', -1, 0.001546]], [[[[0.644, -0.025], [0.6559, -0.0255], [0.6763, -0.026], [0.689, -0.0265]], 1.658, 2.588, 0.05, 3.0], ['drift', 2, 0.144585]], [[[[0.423, -0.046], [0.4239, -0.046], [0.4257, -0.046], [0.4288, -0.046], [0.4231, -0.046], [0.4219, -0.046], [0.4287, -0.046], [0.4355, -0.046]], 3.517, 0.566, 0.05, 3.0], ['drift', 7, 0.059861]], [[[[-0.83, -0.352], [-0.7456, -0.3168], [-0.6688, -0.2851], [-0.5968, -0.2566], [-0.5378, -0.2309], [-0.4811, -0.2079]], 1.595, 0.91, 0.05, 1.5], ['drift', 1, 0.662823]], [[[[0.699, -0.578], [0.707, -0.578], [0.7158, -0.578], [0.7171, -0.578]], 4.155, 2.539, 0.05, 1.5], ['ok', -1, 0.037]], [[[[-0.418, -0.23], [-0.4168, -0.2346], [-0.4241, -0.2393], [-0.4299, -0.2441], [-0.4457, -0.249], [-0.4569, -0.2539], [-0.4578, -0.259]], 2.552, 1.183, 0.05, 3.0], ['drift', 3, 0.207936]], [[[[0.935, 0.607], [0.9784, 0.6191], [0.9876, 0.6315], [0.9907, 0.6442]], 1.868, 0.979, 0.1, 2.0], ['drift', 2, 0.12335]], [[[[-0.322, -0.896], [-0.3112, -0.8691], [-0.3041, -0.843], [-0.2959, -0.8178], [-0.2873, -0.7932], [-0.277, -0.7694], [-0.2571, -0.7463], [-0.2386, -0.724], [-0.2285, -0.7022], [-0.2117, -0.6812]], 3.185, 1.656, 0.05, 3.0], ['drift', 1, 0.450995]]], [[[[[0.0, 0.0], [0.0076, 0.0], [0.0119, 0.0]], 3.375, 0.919, 0.1, 3.0], ['ok', -1, 0.000239]], [[[[-0.985, -0.74], [-0.8703, -0.666], [-0.7906, -0.5994], [-0.7156, -0.5395], [-0.648, -0.4855], [-0.589, -0.437], [-0.5247, -0.3933], [-0.4684, -0.3539], [-0.4164, -0.3185]], 2.627, 2.374, 0.05, 2.0], ['drift', 1, 0.819081]], [[[[-0.143, -0.952], [-0.1382, -0.952], [-0.1308, -0.952], [-0.1243, -0.952], [-0.1212, -0.952]], 2.712, 1.57, 0.01, 2.0], ['drift', 4, 0.010566]], [[[[0.355, -0.075], [0.3414, -0.0727], [0.3418, -0.0706], [0.3422, -0.0685], [0.3388, -0.0664]], 4.633, 0.948, 0.05, 1.5], ['drift', 1, 0.090335]], [[[[0.174, -0.48], [0.1771, -0.4896], [0.1863, -0.4994], [0.1987, -0.5094], [0.2011, -0.5196]], 1.179, 1.294, 0.01, 1.5], ['drift', 1, 0.189336]], [[[[0.996, -0.695], [0.9888, -0.695], [0.9931, -0.695], [0.9804, -0.695], [0.9865, -0.695], [1.0062, -0.695]], 3.899, 1.966, 0.05, 2.0], ['ok', -1, 0.024953]], [[[[-0.121, -0.819], [-0.1224, -0.8354], [-0.1203, -0.8521], [-0.1142, -0.8691], [-0.1142, -0.8865]], 4.298, 2.862, 0.01, 1.5], ['drift', 1, 0.162713]], [[[[0.304, 0.926], [0.2951, 0.8982], [0.2913, 0.8713], [0.2845, 0.8451], [0.273, 0.8198]], 4.318, 0.794, 0.01, 2.0], ['drift', 1, 0.207843]]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"case %d\" % i, solve(*args), expected)\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":"A deterministic bounded teaching model with stipulated toy conventions and rounded float output; not a production physics engine or a proof of numerical stability. 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":"w2-physics_integrator_stability-energy-drift-monitor-blowup-precedence","generated_at":"2026-09-29T14:50:57.759713+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Game and robotics physics loops depend on integrator update order, step control and stabilization terms; a wrong decision point turns a stable simulation into drifting or exploding motion.","root_cause":"The loop returns drift immediately on the first r>tol.","sha256":"db6b64b29832d39af69572a27e41b36e4a21b426314386d58c724deeef2ff3bc","title":"Monitor returns drift at the first exceedance before scanning for blowup · 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":42.782,"exit_code":1,"observations":[{"actual":["drift",1,0.180374],"check":"case 0","expected":["drift",1,0.781113],"passed":false},{"actual":["drift",1,0.194816],"check":"case 1","expected":["drift",1,0.574622],"passed":false},{"actual":["drift",1,0.187514],"check":"case 2","expected":["drift",1,1.921313],"passed":false},{"actual":["drift",1,0.043892],"check":"case 3","expected":["drift",1,0.135693],"passed":false},{"actual":["drift",2,0.067843],"check":"case 4","expected":["drift",2,0.067843],"passed":true},{"actual":["ok",-1,0.007747],"check":"case 5","expected":["ok",-1,0.007747],"passed":true},{"actual":["drift",5,0.108825],"check":"case 6","expected":["drift",5,0.108825],"passed":true},{"actual":["ok",-1,0.00042],"check":"case 7","expected":["ok",-1,0.00042],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [\"drift\", 1, 0.180374], \"expected\": [\"drift\", 1, 0.781113], \"passed\": false}, {\"check\": \"case 1\", \"actual\": [\"drift\", 1, 0.194816], \"expected\": [\"drift\", 1, 0.574622], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [\"drift\", 1, 0.187514], \"expected\": [\"drift\", 1, 1.921313], \"passed\": false}, {\"check\": \"case 3\", \"actual\": [\"drift\", 1, 0.043892], \"expected\": [\"drift\", 1, 0.135693], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [\"drift\", 2, 0.067843], \"expected\": [\"drift\", 2, 0.067843], \"passed\": true}, {\"check\": \"case 5\", \"actual\": [\"ok\", -1, 0.007747], \"expected\": [\"ok\", -1, 0.007747], \"passed\": true}, {\"check\": \"case 6\", \"actual\": [\"drift\", 5, 0.108825], \"expected\": [\"drift\", 5, 0.108825], \"passed\": true}, {\"check\": \"case 7\", \"actual\": [\"ok\", -1, 0.00042], \"expected\": [\"ok\", -1, 0.00042], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.245,"exit_code":1,"observations":[{"actual":["drift",1,0.180374],"check":"case 0","expected":["drift",1,0.781113],"passed":false},{"actual":["drift",1,0.194816],"check":"case 1","expected":["drift",1,0.574622],"passed":false},{"actual":["drift",1,0.187514],"check":"case 2","expected":["drift",1,1.921313],"passed":false},{"actual":["drift",1,0.043892],"check":"case 3","expected":["drift",1,0.135693],"passed":false},{"actual":["drift",2,0.067843],"check":"case 4","expected":["drift",2,0.067843],"passed":true},{"actual":["ok",-1,0.007747],"check":"case 5","expected":["ok",-1,0.007747],"passed":true},{"actual":["drift",5,0.108825],"check":"case 6","expected":["drift",5,0.108825],"passed":true},{"actual":["ok",-1,0.00042],"check":"case 7","expected":["ok",-1,0.00042],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [\"drift\", 1, 0.180374], \"expected\": [\"drift\", 1, 0.781113], \"passed\": false}, {\"check\": \"case 1\", \"actual\": [\"drift\", 1, 0.194816], \"expected\": [\"drift\", 1, 0.574622], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [\"drift\", 1, 0.187514], \"expected\": [\"drift\", 1, 1.921313], \"passed\": false}, {\"check\": \"case 3\", \"actual\": [\"drift\", 1, 0.043892], \"expected\": [\"drift\", 1, 0.135693], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [\"drift\", 2, 0.067843], \"expected\": [\"drift\", 2, 0.067843], \"passed\": true}, {\"check\": \"case 5\", \"actual\": [\"ok\", -1, 0.007747], \"expected\": [\"ok\", -1, 0.007747], \"passed\": true}, {\"check\": \"case 6\", \"actual\": [\"drift\", 5, 0.108825], \"expected\": [\"drift\", 5, 0.108825], \"passed\": true}, {\"check\": \"case 7\", \"actual\": [\"ok\", -1, 0.00042], \"expected\": [\"ok\", -1, 0.00042], \"passed\": true}], \"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."}}