Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Endpoint refresh swaps min and max coordinates · case 01
The endpoint array is corrupted every frame and spurious events fire.
Endpoint refresh swaps min and max coordinates · case 02
The endpoint array is corrupted every frame and spurious events fire.
Endpoint refresh swaps min and max coordinates · case 03
The endpoint array is corrupted every frame and spurious events fire.
Endpoint refresh swaps min and max coordinates · case 04
The endpoint array is corrupted every frame and spurious events fire.
Endpoint refresh swaps min and max coordinates · case 05
The endpoint array is corrupted every frame and spurious events fire.
Endpoint array is seeded from the new frame · case 01
No swaps happen so no pairs ever begin or end.
Endpoint array is seeded from the new frame · case 02
No swaps happen so no pairs ever begin or end.
Endpoint array is seeded from the new frame · case 03
No swaps happen so no pairs ever begin or end.
Endpoint array is seeded from the new frame · case 04
No swaps happen so no pairs ever begin or end.
Endpoint array is seeded from the new frame · case 05
No swaps happen so no pairs ever begin or end.
Swap events record pairs in swap orientation · case 01
The same pair appears as both (a,b) and (b,a).
Swap events record pairs in swap orientation · case 02
The same pair appears as both (a,b) and (b,a).
Swap events record pairs in swap orientation · case 03
The same pair appears as both (a,b) and (b,a).
Swap events record pairs in swap orientation · case 04
The same pair appears as both (a,b) and (b,a).
Swap events record pairs in swap orientation · case 05
The same pair appears as both (a,b) and (b,a).
Rotated proxy uses signed cosine and sine · case 01
Boxes rotated into the second quadrant get inverted, too small bounds.
Rotated proxy uses signed cosine and sine · case 02
Boxes rotated into the second quadrant get inverted, too small bounds.
Rotated proxy uses signed cosine and sine · case 03
Boxes rotated into the second quadrant get inverted, too small bounds.
Rotated proxy uses signed cosine and sine · case 04
Boxes rotated into the second quadrant get inverted, too small bounds.
Rotated proxy uses signed cosine and sine · case 05
Boxes rotated into the second quadrant get inverted, too small bounds.
Rotated proxy reuses the horizontal formula vertically · case 01
Rotated boxes get square-ish wrong proxies.
Rotated proxy reuses the horizontal formula vertically · case 02
Rotated boxes get square-ish wrong proxies.
Rotated proxy reuses the horizontal formula vertically · case 03
Rotated boxes get square-ish wrong proxies.
Rotated proxy reuses the horizontal formula vertically · case 04
Rotated boxes get square-ish wrong proxies.
Rotated proxy reuses the horizontal formula vertically · case 05
Rotated boxes get square-ish wrong proxies.
Rotation angle in degrees is passed to trig as radians · case 01
Proxy bounds wobble unpredictably with rotation.
Rotation angle in degrees is passed to trig as radians · case 02
Proxy bounds wobble unpredictably with rotation.
Rotation angle in degrees is passed to trig as radians · case 03
Proxy bounds wobble unpredictably with rotation.
Rotation angle in degrees is passed to trig as radians · case 04
Proxy bounds wobble unpredictably with rotation.
Rotation angle in degrees is passed to trig as radians · case 05
Proxy bounds wobble unpredictably with rotation.
Proxy margin is added only on the maximum corner · case 01
Contacts from the left and below begin late.
Proxy margin is added only on the maximum corner · case 02
Contacts from the left and below begin late.
Proxy margin is added only on the maximum corner · case 03
Contacts from the left and below begin late.
Proxy margin is added only on the maximum corner · case 04
Contacts from the left and below begin late.
Proxy margin is added only on the maximum corner · case 05
Contacts from the left and below begin late.
Rotated proxy halves the already-half extents · case 01
Proxies are half the size of the shape and contacts are missed.
Rotated proxy halves the already-half extents · case 02
Proxies are half the size of the shape and contacts are missed.
Rotated proxy halves the already-half extents · case 03
Proxies are half the size of the shape and contacts are missed.
Rotated proxy halves the already-half extents · case 04
Proxies are half the size of the shape and contacts are missed.
Rotated proxy halves the already-half extents · case 05
Proxies are half the size of the shape and contacts are missed.
Two-link reach test rejects the fully extended pose · case 01
A target exactly at l1+l2 is reported unreachable although the straight arm touches it.
Two-link reach test rejects the fully extended pose · case 02
A target exactly at l1+l2 is reported unreachable although the straight arm touches it.
Two-link reach test rejects the fully extended pose · case 03
A target exactly at l1+l2 is reported unreachable although the straight arm touches it.
Two-link reach test rejects the fully extended pose · case 04
A target exactly at l1+l2 is reported unreachable although the straight arm touches it.
Two-link reach test rejects the fully extended pose · case 05
A target exactly at l1+l2 is reported unreachable although the straight arm touches it.
Two-link solver answers targets inside the unreachable inner hole · case 01
Targets closer than |l1-l2| to the base return a folded pose instead of "unreachable".
Two-link solver answers targets inside the unreachable inner hole · case 02
Targets closer than |l1-l2| to the base return a folded pose instead of "unreachable".
Two-link solver answers targets inside the unreachable inner hole · case 03
Targets closer than |l1-l2| to the base return a folded pose instead of "unreachable".
Two-link solver answers targets inside the unreachable inner hole · case 04
Targets closer than |l1-l2| to the base return a folded pose instead of "unreachable".
Two-link solver answers targets inside the unreachable inner hole · case 05
Targets closer than |l1-l2| to the base return a folded pose instead of "unreachable".
Elbow angle uses the interior triangle angle instead of the joint angle · case 01
Every reachable pose has the elbow bent to the supplementary angle and misses the target.
Elbow angle uses the interior triangle angle instead of the joint angle · case 02
Every reachable pose has the elbow bent to the supplementary angle and misses the target.
Elbow angle uses the interior triangle angle instead of the joint angle · case 03
Every reachable pose has the elbow bent to the supplementary angle and misses the target.
Elbow angle uses the interior triangle angle instead of the joint angle · case 04
Every reachable pose has the elbow bent to the supplementary angle and misses the target.
Elbow angle uses the interior triangle angle instead of the joint angle · case 05
Every reachable pose has the elbow bent to the supplementary angle and misses the target.
Elbow-up and elbow-down requests return swapped branches · case 01
Asking for elbow up yields a negative q2 and elbow down a positive one.
Elbow-up and elbow-down requests return swapped branches · case 02
Asking for elbow up yields a negative q2 and elbow down a positive one.
Elbow-up and elbow-down requests return swapped branches · case 03
Asking for elbow up yields a negative q2 and elbow down a positive one.
Elbow-up and elbow-down requests return swapped branches · case 04
Asking for elbow up yields a negative q2 and elbow down a positive one.
Elbow-up and elbow-down requests return swapped branches · case 05
Asking for elbow up yields a negative q2 and elbow down a positive one.
Shoulder angle adds the forearm offset instead of subtracting it · case 01
The shoulder points past the target by twice the forearm offset angle.
Shoulder angle adds the forearm offset instead of subtracting it · case 02
The shoulder points past the target by twice the forearm offset angle.
Shoulder angle adds the forearm offset instead of subtracting it · case 03
The shoulder points past the target by twice the forearm offset angle.
Shoulder angle adds the forearm offset instead of subtracting it · case 04
The shoulder points past the target by twice the forearm offset angle.
Shoulder angle adds the forearm offset instead of subtracting it · case 05
The shoulder points past the target by twice the forearm offset angle.
Target bearing reflects the goal across the diagonal · case 01
Targets off the 45 degree diagonal are reached at their mirror image.
Target bearing reflects the goal across the diagonal · case 02
Targets off the 45 degree diagonal are reached at their mirror image.
Target bearing reflects the goal across the diagonal · case 03
Targets off the 45 degree diagonal are reached at their mirror image.
Target bearing reflects the goal across the diagonal · case 04
Targets off the 45 degree diagonal are reached at their mirror image.
Target bearing reflects the goal across the diagonal · case 05
Targets off the 45 degree diagonal are reached at their mirror image.
Shoulder angle is wrapped to 0..360 instead of the signed interval · case 01
Shoulder commands below zero come back as large positive angles.
Shoulder angle is wrapped to 0..360 instead of the signed interval · case 02
Shoulder commands below zero come back as large positive angles.
Shoulder angle is wrapped to 0..360 instead of the signed interval · case 03
Shoulder commands below zero come back as large positive angles.
Shoulder angle is wrapped to 0..360 instead of the signed interval · case 04
Shoulder commands below zero come back as large positive angles.
Shoulder angle is wrapped to 0..360 instead of the signed interval · case 05
Shoulder commands below zero come back as large positive angles.
Wrist centre is placed beyond the tool tip instead of behind it · case 01
The tool tip ends 2*l3 past the target along the heading.
Wrist centre is placed beyond the tool tip instead of behind it · case 02
The tool tip ends 2*l3 past the target along the heading.
Wrist centre is placed beyond the tool tip instead of behind it · case 03
The tool tip ends 2*l3 past the target along the heading.
Wrist centre is placed beyond the tool tip instead of behind it · case 04
The tool tip ends 2*l3 past the target along the heading.
Wrist centre is placed beyond the tool tip instead of behind it · case 05
The tool tip ends 2*l3 past the target along the heading.
Tool heading in degrees is used directly as radians · case 01
Headings other than zero produce wild wrist offsets and wrist joint angles.
Tool heading in degrees is used directly as radians · case 02
Headings other than zero produce wild wrist offsets and wrist joint angles.
Tool heading in degrees is used directly as radians · case 03
Headings other than zero produce wild wrist offsets and wrist joint angles.
Tool heading in degrees is used directly as radians · case 04
Headings other than zero produce wild wrist offsets and wrist joint angles.
Tool heading in degrees is used directly as radians · case 05
Headings other than zero produce wild wrist offsets and wrist joint angles.
Wrist joint ignores the shoulder angle when matching heading · case 01
The tool heading is off by exactly the shoulder angle.
Wrist joint ignores the shoulder angle when matching heading · case 02
The tool heading is off by exactly the shoulder angle.
Wrist joint ignores the shoulder angle when matching heading · case 03
The tool heading is off by exactly the shoulder angle.
Wrist joint ignores the shoulder angle when matching heading · case 04
The tool heading is off by exactly the shoulder angle.
Wrist joint ignores the shoulder angle when matching heading · case 05
The tool heading is off by exactly the shoulder angle.
Joint wrap saturates at +/-180 instead of wrapping · case 01
Multi-turn heading requests yield wrist angles pinned at 180 or -180.
Joint wrap saturates at +/-180 instead of wrapping · case 02
Multi-turn heading requests yield wrist angles pinned at 180 or -180.
Joint wrap saturates at +/-180 instead of wrapping · case 03
Multi-turn heading requests yield wrist angles pinned at 180 or -180.
Joint wrap saturates at +/-180 instead of wrapping · case 04
Multi-turn heading requests yield wrist angles pinned at 180 or -180.
Joint wrap saturates at +/-180 instead of wrapping · case 05
Multi-turn heading requests yield wrist angles pinned at 180 or -180.
Shoulder bearing aims at the tool tip rather than the wrist centre · case 01
The two-link sub-chain is rotated toward the tip, so the wrist lands off the required centre.
Shoulder bearing aims at the tool tip rather than the wrist centre · case 02
The two-link sub-chain is rotated toward the tip, so the wrist lands off the required centre.
Shoulder bearing aims at the tool tip rather than the wrist centre · case 03
The two-link sub-chain is rotated toward the tip, so the wrist lands off the required centre.
Shoulder bearing aims at the tool tip rather than the wrist centre · case 04
The two-link sub-chain is rotated toward the tip, so the wrist lands off the required centre.
Shoulder bearing aims at the tool tip rather than the wrist centre · case 05
The two-link sub-chain is rotated toward the tip, so the wrist lands off the required centre.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗